❓Рубрика: Вопросы на собеседовании #вопросынасобесах
На позицию: Программист 1С
Вопрос: Классический вопрос, спрашивают очень часто - срез последних на каждую дату некоторого списка.
Допустим просят просто объяснить идею как это сделать, а не заставляют писать. Скажем надо получить отчет с колонками: Дата продажи, Контрагент, Номенклатура, Количество, Цена, Сумма. Цена конечно должна быть взята на дату продажи.
Цены хранятся в периодическом регистре сведений "ЦеныНоменклатуры ", продажи берутся из регистра "Продажи".
Ответ: Есть несколько вариантов как пишется такой запрос. Приведем объяснение одного варианта из трех подзапросов пакетного запроса.
Первый запрос пакета группирует данные по периоду, контрагенту и номенклатуре и помещает их во временную таблицу втБезЦены. Далее будем соединять эту таблицу с таблицей цен номенклатуры.
Во втором подзапросе мы соединяем временную таблицу с регистром сведений «ЦеныНоменклатуры» при этом из регистра сведений мы выбираем МАКСИМАЛЬНУЮ дату из меньших или равных дат. Результат этого подзапроса также помещаем во временную таблицу (втМаксПериод).
В последнем запросе пакета, мы еще раз соединяем временную таблицу с таблицей цен номенклатуры. На этот мы соединяем таблице по номенклатуре и периоду. Подпишись на 1С Работа