Ит.ВыбратьПериоды(,,,); Пока Ит.ПолучитьПериод(,) = 1 Цикл ... КонецЦикла;
Так вот в этой выборке я получаю операции в порядке от НаДатуНач до НаДатуКон. А мне надо наоборот. Т.е., чтобы операции в цикле перебирались от НаДатуКон до НаДатуНач.
Крутой
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0
Если НаДатуНач и НаДатуКон пред выполнением запроса программно корректируются под целое число периодов(или период - день), то можно так:
Ит.ВыбратьПериоды(,,,); текПериод = ДобавитьМесяц(НаДатуКон, -1); // начало последнего периода для месяца, для дня: текПериод = текПериод - 1; Пока текПериод >= НаДатуНач Цикл Ит.ПолучитьПреиод(, текПериод); .... текПериод = ДобавитьМесяц(текПериод, -1); // аналогично
КонецЦикла;
Если же даты как есть - тогда проще будет скопировать результат запроса, свернуть по периодам, отсортировав по убыванию и перебирать в цикле, передавая в Ит.ПолучитьПреиод(). Это будет работать при любом раскладе.
Крутой
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0
Если передавать в ПолучитьПериод() вторым параметром дату начала периода, то получишь итоги по этому периоду.... Из копии результата запроса получаешь список периодов в нужном порядке, и....
Ит.ВыполнитьЗапрос(,ДатаДок,СчетТМЦ,,,1,,5); Если Константа.МетодСписанияТМЦ.Получить(ДатаДок)=Перечисление.МетодСписанияТМЦ.FIFO Тогда Ит.ВыбратьСубконто(2); ИначеЕсли Константа.МетодСписанияТМЦ.Получить(ДатаДок)=Перечисление.МетодСписанияТМЦ.LIFO Тогда Ит.ВыбратьСубконто(2,,,,,,1); КонецЕсли;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!