Имя: Пароль:
1C
 
Прямой запрос: как получить движения на каждый день?
0 neuromancer_
aza
 
12.01.11
11:02
ЗапросНаборов = СоздатьОбъект("ПрямойЗапрос");
   // Выборка остатков наборов
   ТекстЗапросаОстатков=

   "выбрать
   |Рег.НачалоПериода как [День $Дата]
   |, Рег.Товар как [Товар $Справочник.Товары]
   |, Рег.ОстатокТовараНачальныйОстаток как [ОстатокТовараНачОст $Число.15.4]
   |, Рег.ОстатокТовараКонечныйОстаток как [ОстатокТовараКонОст $Число.15.4]
   |, Рег.ОстатокТовараОборот как [ОстатокТовараОборот $Число.15.4]
   |ИЗ $РегистрОстаткиОбороты.ОстаткиТоваров(:ДатаНач, :ДатаКон~, День, , , , ) как Рег";

       ЗапросНаборов.Текст = ТекстЗапросаОстатков;
       ЗапросНаборов.УстановитьТекстовыйПараметр("ДатаНач", ВыбНачПериода);
       ЗапросНаборов.УстановитьТекстовыйПараметр("ДатаКон", ВыбКонПериода);
   
   тзОстаткиНаборов=ЗапросНаборов.Выполнить();

В результате запроса выводятся только те позиции по котрым были движения, а надо бы что б на каждый день периода даже если движения не было. Как такое сделать в одном запросе?
1 DEVIce
 
12.01.11
11:08
Стиль программирования мягко говоря странный. Тебя где учили так виртуозно ставить запятые?
2 МихаилМ
 
12.01.11
11:09
по теме : соединить с таблицей дат.

но такое решение - признак делитантизма.
тк Вам это нужно для ПРЕДСТАВЛЕНИЯ, а не для ИЗВЛЕЧЕНИЯ
данных.
дополняйте датами в обработчике на клиенте.
3 filh
 
12.01.11
11:09
А если движений нет, от куда им попасть в запрос?
4 neuromancer_
aza
 
12.01.11
11:14
Это не мой стиль. так получилось. Это не боевой запрос, просто привел для примера. Результат нужен для дальнейшего объединения с другой таблицей по датам и прочим. И надо что в результат попали данные даже если и не было движений.
5 neuromancer_
aza
 
12.01.11
11:37
ап
6 leshikkam
 
12.01.11
11:40
(0) Используй класс ПрямойЗапрос, эту же ВТ и параметр Дополнение. Получишь именно то что надо
7 МихаилМ
 
12.01.11
11:49
да что ап
в (2) рещение.

таблицу можно временную создать

или читайте faq на sql.ru

там есть решение с объдинением с системной таблицей
8 neuromancer_
aza
 
12.01.11
14:36
решил проблемку. точнее просто надо было обновить класс до версии 1.7.22 от 11.01.2011

Периодичность надо писать как "ДЕНЬ ДОПОЛНЕНИЕ".