Доброго времени. Обработка разработана, как показательный шаблон для выборки цен номенклатуры с отбором по номенклатуре и периоду.
1. Задаем параметры в шапке документа (Номенклатура, ДатаНачала, ДатаОкончания).
2. Выполнить!
3. Табличное поле заполняется последней ценой каждого месяца периода.
Сам текст запроса:
ВЫБРАТЬ
0 КАК Число
ПОМЕСТИТЬ Числа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
3
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
4
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
5
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
6
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
7
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
8
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
9
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
сч1.Число * 1 + сч2.Число * 10 + сч3.Число * 100 + сч4.Число * 1000 КАК Число
ПОМЕСТИТЬ врСчетчик
ИЗ
Числа КАК сч1,
Числа КАК сч2,
Числа КАК сч3,
Числа КАК сч4
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, сч.Число) КАК ДатаНачала,
КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, сч.Число), МЕСЯЦ) КАК ДатаОкончания
ПОМЕСТИТЬ врДаты
ИЗ
врСчетчик КАК сч
ГДЕ
РАЗНОСТЬДАТ(&ДатаНачала, &ДатаОкончания, МЕСЯЦ) >= сч.Число
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВложенныйЗапрос.Номенклатура,
ВложенныйЗапрос.Период,
ВложенныйЗапрос.ДатаНачала,
ВложенныйЗапрос.ДатаОкончания,
ЦеныНоменклатуры.Цена
ИЗ
(ВЫБРАТЬ
ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период,
Даты.ДатаОкончания КАК ДатаОкончания,
Даты.ДатаНачала КАК ДатаНачала
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ВНУТРЕННЕЕ СОЕДИНЕНИЕ врДаты КАК Даты
ПО (ЦеныНоменклатуры.Период МЕЖДУ Даты.ДатаНачала И Даты.ДатаОкончания)
И (ЦеныНоменклатуры.Номенклатура = &Номенклатура)
СГРУППИРОВАТЬ ПО
ЦеныНоменклатуры.Номенклатура,
Даты.ДатаНачала,
Даты.ДатаОкончания) КАК ВложенныйЗапрос
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО ВложенныйЗапрос.Номенклатура = ЦеныНоменклатуры.Номенклатура
И ВложенныйЗапрос.Период = ЦеныНоменклатуры.Период