Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 мая 2022, 11:38

Срез последних для документов, регистров накопления, справочников

Автор MuI_I_Ika, 09 янв 2014, 09:57

0 Пользователей и 1 гость просматривают эту тему.

MuI_I_Ika

Как получить срез последних значений для регистра сведений все мы прекрасно знаем. Но очень часто требуется получить срез последних для какого-либо объекта для которого получение среза последних неспецифично. Например это может быть документ или справочник с реквизитом Дата, или последние значения в регистре накопления.


Ну вот и потребовалось как-то заполнить замечательный реквизит в справочнике номенклатура - Основной поставщик. А как заполнять, конечно по последним поставкам. Вот и получился следующий запрос:


ВЫБРАТЬ
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата) КАК Дата
ПОМЕСТИТЬ НоменклатураПериоды
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ГДЕ
ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания


СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура
;


////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВложенныйЗапрос.Номенклатура,
ВложенныйЗапрос.Ссылка,
ВложенныйЗапрос.Ссылка.Контрагент,
ВложенныйЗапрос.Ссылка.Дата КАК СсылкаДата
ИЗ
(ВЫБРАТЬ
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка) КАК Ссылка
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ НоменклатураПериоды КАК НоменклатураПериоды
ПО ПоступлениеТоваровУслугТовары.Ссылка.Дата = НоменклатураПериоды.Дата
И ПоступлениеТоваровУслугТовары.Номенклатура = НоменклатураПериоды.Номенклатура
ГДЕ
ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура) КАК ВложенныйЗапрос


УПОРЯДОЧИТЬ ПО
СсылкаДата


Как видно из запроса, сначала выбираются последние даты из записей, в разрезе аналитики - номенклатуры. А далее мы уже соединяем саму таблицу с этими датами. Применять МАКСИМУМ сразу к ссылке-документу нельзя, поскольку программа отберет последние по заведению в систему документы, а это не всегда одно и то же с последними по датам документами.

Во вложении так же прилагаю саму обработку.

Теги:
Рейтинг@Mail.ru Rambler's Top100

Поиск