При разработке отчетов в конфигурации «1С:Управление торговлей 11» начинающие разработчики часто сталкиваются с трудностями поиска источников данных. В отличие от более старых конфигураций (например, УТ 10.3), здесь отсутствует классический регистр накопления с простыми измерениями Номенклатура и Контрагент. Разберем по шагам, как правильно собрать данные о продажах, получить аналитику и рассчитать показатели в ценах заданного вида через систему компоновки данных (СКД).
Для решения задачи анализа продаж и расчета переоцененной стоимости нам потребуются два основных регистра:
ВыручкаИСебестоимостьПродаж (виртуальная таблица Обороты) — основной источник информации о количестве проданного товара и сумме выручки. Не следует использовать регистр ТоварыНаСкладах, так как он отражает исключительно складские складские перемещения и остатки без финансового контекста сделок.ЦеныНоменклатуры (виртуальная таблица СрезПоследних) — хранит информацию о действующих ценах номенклатуры в разрезе видов цен.В регистре ВыручкаИСебестоимостьПродаж измерения ссылаются не напрямую на справочники товаров и клиентов, а на специальные ключи аналитики:
АналитикаУчетаНоменклатуры ссылается на справочник КлючиАналитикиУчетаНоменклатуры. Поле Номенклатура извлекается именно из этого справочника.АналитикаУчетаПоПартнерам ссылается на справочник КлючиАналитикиУчетаПоПартнерам. Поле Контрагент или Партнер извлекается из этой структуры.Важный нюанс с контрагентами: В УТ 11 разделены понятия управленческого учета (Партнер) и регламентированного учета (Контрагент). Если в документе или базе не велся учет по юридическим лицам либо сделка оформлена на розничного покупателя, поле Контрагент в аналитике может оставаться пустым. Для надежного вывода данных рекомендуется использовать конструкцию ВЫБОР КОГДА ... ТОГДА ... ИНАЧЕ ... КОНЕЦ, подставляя партнера при отсутствии контрагента.
Разберем по шагам создание запроса для набора данных. По стандартам разработки 1С обращение к ключам аналитики лучше выполнять явным левым соединением, а параметры фильтрации виртуальных таблиц передавать непосредственно в их параметры.
ВЫБРАТЬ
КлючиПартнеров.Контрагент КАК Контрагент,
КлючиНоменклатуры.Номенклатура КАК Номенклатура,
КлючиНоменклатуры.Характеристика КАК Характеристика,
ПродажиОбороты.КоличествоОборот КАК Количество,
ПродажиОбороты.СуммаВыручкиОборот КАК СуммаВыручки,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
&НачалоПериода,
&КонецПериода,
Авто,
Организация = &Организация
) КАК ПродажиОбороты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК КлючиНоменклатуры
ПО ПродажиОбороты.АналитикаУчетаНоменклатуры = КлючиНоменклатуры.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаПоПартнерам КАК КлючиПартнеров
ПО ПродажиОбороты.АналитикаУчетаПоПартнерам = КлючиПартнеров.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&КонецПериода,
ВидЦены = &ВидЦены
) КАК ЦеныНоменклатурыСрезПоследних
ПО КлючиНоменклатуры.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И КлючиНоменклатуры.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
Выясним, как правильно реализовать колонку СуммаПродажиВЦенах, чтобы итоги по группировкам не искажались при суммировании:
Путь к данным: СуммаПродажиВЦенах
Выражение: Количество * Цена
Заголовок: Сумма продажи в ценах
Для поля СуммаВыручки: Сумма(СуммаВыручки)
Для поля Количество: Сумма(Количество)
Для поля СуммаПродажиВЦенах: Сумма(СуммаПродажиВЦенах)
Обратите внимание: Использование формулы Сумма(СуммаПродажиВЦенах) на вкладке ресурсов гарантирует, что на уровне строк сначала выполнится перемножение количества на цену, а затем результат будет просуммирован в общих итогах и группировках по контрагентам.
Проанализируем распространенную проблему, когда параметр ВидЦены или Период не отображается на форме отчета в быстром доступе:
ВидЦены, нажмем кнопку «Свойства элемента пользовательских настроек» (значок с шестеренкой или через контекстное меню).Таким образом, мы построили оптимизированный отчет на СКД, учитывающий модульную архитектуру ключей аналитики 1С:УТ 11 и корректно рассчитывающий плановую стоимость проданных позиций.