Переключение на Главную Страницу Страницы: 1 ... 19 20 [21] 22 23 ... 60 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПрямойЗапрос" (число прочтений - 304887 )
Uncle
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 93
Зарегистрирован: 26. Июля 2006
Re: Класс "ПрямойЗапрос"
Ответ #300 - 20. Октября 2009 :: 08:50
Печать  
Может как вариант реализовать поддержку виртуального поля $Рег.ТекущийДокумент13 которое выкручивать уже внутри КОПа в зависимости от ситуации
  
Наверх
 
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #301 - 20. Октября 2009 :: 09:19
Печать  
vandalsvq писал(а) 20. Октября 2009 :: 08:20:
Поскольку не все в типизации можно указать через "_вид".

Исключительно из любопытства - а какие типизации нельзя указать? Ни разу не сталкивался.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #302 - 20. Октября 2009 :: 09:19
Печать  
Тогда не только в таблице движений регистра, но и в других таблицах... виртуальное поле так сказать... хорошая идея. Спасибо за подсказку.

Анестезия отходит, зуб болеть начинает.... бля...
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Uncle
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 93
Зарегистрирован: 26. Июля 2006
Re: Класс "ПрямойЗапрос"
Ответ #303 - 20. Октября 2009 :: 15:14
Печать  
Выздоравливай поскорее! Тебя ждут великие дела  Подмигивание
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #304 - 21. Октября 2009 :: 15:14
Печать  
classic писал(а) 20. Октября 2009 :: 09:19:
vandalsvq писал(а) 20. Октября 2009 :: 08:20:
Поскольку не все в типизации можно указать через "_вид".

Исключительно из любопытства - а какие типизации нельзя указать? Ни разу не сталкивался.


Если не ошибаюсь таким образом нельзя типизировать поле Счет.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
alexmyt
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 26. Мая 2006
Re: Класс "ПрямойЗапрос"
Ответ #305 - 26. Октября 2009 :: 11:39
Печать  
Добрый день!

Подскажите, пожалуйста, почему может не работать типизация результатов запроса к типам 1С?

Имею запрос:
[code]
|ВЫБРАТЬ
|      Об.Счет КАК [Счет $Счет],
|      Об.КорСчет КАК [КорСчет $Счет]
|      Об.Субконто1 КАК [Пайщик $Справочник.КПКПайщики]
|ИЗ $БИОбороты.Основной(
|      :НачПериода,
|      :КонПериода,
|      День,
|      #Счет76_01,
|      (КПКПайщики),
|      ,
|      БЕЗСУБКОНТО,
|      (Сумма),
|      
|) КАК Об
[/code]

На выходе получаю строки из пустых значений. Если в запросе не типизировать столбцы, то выводятся правильные внутренние значения результатов.

База - DBF
  
Наверх
 
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #306 - 26. Октября 2009 :: 12:04
Печать  
Типизация поля Счет и КорСчет скорее всегод должна выглядеть как Счет.Основной, где "Основной" - это наименование плана счетов.
Типизация Субконто1 должна выглядеть так:
ЛЕВО(Субконто1, 9) КАК [Пайщик $Справочник.КПКПайщики]
или так:
Субконто1 КАК [Пайщик $Субконто],
Субконто1_вид КАК Пайщик_вид
  
Наверх
 
IP записан
 
alexmyt
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 26. Мая 2006
Re: Класс "ПрямойЗапрос"
Ответ #307 - 26. Октября 2009 :: 12:10
Печать  
classic - спасибо!
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПрямойЗапрос"
Ответ #308 - 29. Октября 2009 :: 08:22
Печать  
Помогите начать работать с бухитогами на ДБФ, плиз. С виду все понятно, а толку...
1. Состав компонент (сейчас загружается 1sqlite и 1cpp v3.0.1.23)
2. Допустимая версия 1с (стоит 25 релиз)
3. Найдите ошибку Печаль
Попытка
     базаДанных = СоздатьОбъект("SQLiteBase");
Исключение
     ЗагрузитьВнешнююКомпоненту("1sqlite.dll");
     базаДанных = СоздатьОбъект("SQLiteBase");
КонецПопытки;

базаДанных.Открыть(":memory:");


запрос = базаДанных.НовыйЗапрос();
запрос.Отладка(1);
ТекстЗапроса="
|create table #СписокСчетов(val char(9) primary key)
|insert into #СписокСчетов
|select ID from ПланыСчетов
|where planid = :ПланСчетов.Основной
|and code = '41.1'
|Select Остатки.*
|From $БИОстатки.Основной(,,(Номенклатура),(Количество,Сумма),) As Остатки
|";
Тз=запрос.ВыполнитьЗапрос(ТекстЗапроса);
ТЗ.ВыбратьСтроку();
Сообщение об ошибке: {D:\1CBASE\SBDBVERA2009\ТЕСТПРЯМОЙЗАПРОС.ERT(24)}: near "#СписокСчетов": syntax error
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПрямойЗапрос"
Ответ #309 - 29. Октября 2009 :: 10:00
Печать  
Пока вопрос снялся - протупил где только мог.
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПрямойЗапрос"
Ответ #310 - 29. Октября 2009 :: 11:44
Печать  
Вроде остатки по счету по субконто получаются, с бухитогами сверил. Следующая беда - не могу наложить условие (в моем случае список номенклатуры) - возвращает пустую таблицу
     запрос=СоздатьОбъект("ПрямойЗапрос");
     СЗ=СоздатьОбъект("СписокЗначений");
     ВыбДок.ВыгрузитьТабличнуюЧасть(СЗ,"Товар");
     запрос.УложитьСписокЗначений(СЗ,"#ТаблицаНоменклатуры","Номенклатура");
     запрос.ВыполнитьЗапрос("create table #СписокСчетов(val char(9) primary key)");
     запрос.ВыполнитьЗапрос("
     |insert into #СписокСчетов
     |select ID from ПланыСчетов
     |where planid = :ПланСчетов.Основной
     |and LTRIM(RTRIM(SCHKOD)) = '41. 1.'");
     ТекстЗапроса="
     |Select Остатки.Субконто1 As [Номенклатура $Субконто]
     |, Остатки.Субконто1_вид As Номенклатура_вид
     |, Round(Остатки.КоличествоОстатокДт,2)-Round(Остатки.КоличествоОстатокКт,2) Количество
     |, Round(Остатки.СуммаОстатокДт,2)-Round(Остатки.СуммаОстатокКт,2) Сумма
     |From $БИОстатки.Основной(:ВыбДата~,#СписокСчетов,(Номенклатура),(Количество,Сумма)
     |,
     |Субконто1 in (Select Val From #ТаблицаНоменклатуры)
     |) As Остатки
     |";
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #311 - 29. Октября 2009 :: 13:38
Печать  
Дело в том что само по себе поле субконто хранит больше чем 9 символов поэтому и не может сравнить. Делай так
Код
Выбрать все
(СРЕД(Субконто1,1,9) in (select val from #ТаблицаНоменклатуры)) 



Пы.сы. я вернулся Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПрямойЗапрос"
Ответ #312 - 29. Октября 2009 :: 15:26
Печать  
Теперь заработало как надо. Таблицу счетов создавать неудобно - придумаю что-нибудь.
Какие общие рекомендации?
1. ПриНачалеРаботыСистемы загрузить 1sqlite и создать переменную БазаДанных1sqlite Экспорт и открыть базу или каждый раз заново?
2. Чистить временные таблицы или пусть болтаются (много их не будет и названия одни и те же)
3. Объект запрос=СоздатьОбъект("ПрямойЗапрос") создавать каждый раз или опять же глобальной переменной
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПрямойЗапрос"
Ответ #313 - 29. Октября 2009 :: 15:48
Печать  
Скучно. Без фильтра по номенклатуре запрос выигрывал у бухитогов. С фильтром медленнее в 3-4 раза. Что-то где-то у меня не так.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #314 - 29. Октября 2009 :: 15:58
Печать  
ANik писал(а) 29. Октября 2009 :: 15:26:
Теперь заработало как надо. Таблицу счетов создавать неудобно - придумаю что-нибудь.
Какие общие рекомендации?
1. ПриНачалеРаботыСистемы загрузить 1sqlite и создать переменную БазаДанных1sqlite Экспорт и открыть базу или каждый раз заново?
2. Чистить временные таблицы или пусть болтаются (много их не будет и названия одни и те же)
3. Объект запрос=СоздатьОбъект("ПрямойЗапрос") создавать каждый раз или опять же глобальной переменной


Вообще объект "ПрямойЗапрос" можно создать один раз и его и использовать, только одно "но". Все параметры пользователя установленные будут хранится. Как вариант - использование идентичных идентификатором параметров, чтобы не забивать надолго.
Временные таблицы советую грохать всегда после окончания их использования. И если и хранить то только важные. Для SQL это особенно важно.
Объекты 1sqlite создавать вообще нет необходимости поскольку они создаются самим классом.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 19 20 [21] 22 23 ... 60
ОтправитьПечать