Как в 1С:Управление торговлей 11 построить отчет по продажам с расчетом суммы по выбранному виду цен на СКД?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет IT и автоматизация бизнеса
← На главную

При разработке отчетов в конфигурации «1С:Управление торговлей 11» начинающие разработчики часто сталкиваются с трудностями поиска источников данных. В отличие от более старых конфигураций (например, УТ 10.3), здесь отсутствует классический регистр накопления с простыми измерениями Номенклатура и Контрагент. Разберем по шагам, как правильно собрать данные о продажах, получить аналитику и рассчитать показатели в ценах заданного вида через систему компоновки данных (СКД).

Выбор источников данных: регистры продаж и цен

Для решения задачи анализа продаж и расчета переоцененной стоимости нам потребуются два основных регистра:

  1. Регистр накопления ВыручкаИСебестоимостьПродаж (виртуальная таблица Обороты) — основной источник информации о количестве проданного товара и сумме выручки. Не следует использовать регистр ТоварыНаСкладах, так как он отражает исключительно складские складские перемещения и остатки без финансового контекста сделок.
  2. Регистр сведений ЦеныНоменклатуры (виртуальная таблица СрезПоследних) — хранит информацию о действующих ценах номенклатуры в разрезе видов цен.

Особенности архитектуры аналитики в УТ 11

В регистре ВыручкаИСебестоимостьПродаж измерения ссылаются не напрямую на справочники товаров и клиентов, а на специальные ключи аналитики:

  1. Измерение АналитикаУчетаНоменклатуры ссылается на справочник КлючиАналитикиУчетаНоменклатуры. Поле Номенклатура извлекается именно из этого справочника.
  2. Измерение АналитикаУчетаПоПартнерам ссылается на справочник КлючиАналитикиУчетаПоПартнерам. Поле Контрагент или Партнер извлекается из этой структуры.

Важный нюанс с контрагентами: В УТ 11 разделены понятия управленческого учета (Партнер) и регламентированного учета (Контрагент). Если в документе или базе не велся учет по юридическим лицам либо сделка оформлена на розничного покупателя, поле Контрагент в аналитике может оставаться пустым. Для надежного вывода данных рекомендуется использовать конструкцию ВЫБОР КОГДА ... ТОГДА ... ИНАЧЕ ... КОНЕЦ, подставляя партнера при отсутствии контрагента.

Пошаговое построение запроса для набора данных СКД

Разберем по шагам создание запроса для набора данных. По стандартам разработки 1С обращение к ключам аналитики лучше выполнять явным левым соединением, а параметры фильтрации виртуальных таблиц передавать непосредственно в их параметры.


ВЫБРАТЬ
	КлючиПартнеров.Контрагент КАК Контрагент,
	КлючиНоменклатуры.Номенклатура КАК Номенклатура,
	КлючиНоменклатуры.Характеристика КАК Характеристика,
	ПродажиОбороты.КоличествоОборот КАК Количество,
	ПродажиОбороты.СуммаВыручкиОборот КАК СуммаВыручки,
	ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
	РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
		&НачалоПериода,
		&КонецПериода,
		Авто,
		Организация = &Организация
	) КАК ПродажиОбороты
	
	ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК КлючиНоменклатуры
		ПО ПродажиОбороты.АналитикаУчетаНоменклатуры = КлючиНоменклатуры.Ссылка
		
	ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаПоПартнерам КАК КлючиПартнеров
		ПО ПродажиОбороты.АналитикаУчетаПоПартнерам = КлючиПартнеров.Ссылка
		
	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
		&КонецПериода,
		ВидЦены = &ВидЦены
	) КАК ЦеныНоменклатурыСрезПоследних
		ПО КлючиНоменклатуры.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
		И КлючиНоменклатуры.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика

Расчет вычисляемого поля «СуммаПродажиВЦенах»

Выясним, как правильно реализовать колонку СуммаПродажиВЦенах, чтобы итоги по группировкам не искажались при суммировании:

  1. Перейдем на вкладку «Вычисляемые поля» схемы компоновки данных.
  2. Добавим новое поле со следующими свойствами:

    Путь к данным: СуммаПродажиВЦенах

    Выражение: Количество * Цена

    Заголовок: Сумма продажи в ценах

  3. Перейдем на вкладку «Ресурсы» и укажем выражения агрегации для вычисляемых показателей:

    Для поля СуммаВыручки: Сумма(СуммаВыручки)

    Для поля Количество: Сумма(Количество)

    Для поля СуммаПродажиВЦенах: Сумма(СуммаПродажиВЦенах)

Обратите внимание: Использование формулы Сумма(СуммаПродажиВЦенах) на вкладке ресурсов гарантирует, что на уровне строк сначала выполнится перемножение количества на цену, а затем результат будет просуммирован в общих итогах и группировках по контрагентам.

Настройка параметров и отображения в пользовательском интерфейсе

Проанализируем распространенную проблему, когда параметр ВидЦены или Период не отображается на форме отчета в быстром доступе:

  1. На вкладке «Настройки» в нижней части окна перейдем на вкладку «Параметры».
  2. Выделим параметр ВидЦены, нажмем кнопку «Свойства элемента пользовательских настроек» (значок с шестеренкой или через контекстное меню).
  3. Установим флаг «Включать в пользовательские настройки» и выберем режим отображения: «Быстрый доступ».
  4. Если после запуска отчета в режиме предприятия параметр все еще не виден, это означает, что платформа применила сохраненный ранее пользовательский вариант формы. В окне отчета необходимо нажать «Еще» → «Стандартные настройки», чтобы применить измененную схему.

Таким образом, мы построили оптимизированный отчет на СКД, учитывающий модульную архитектуру ключей аналитики 1С:УТ 11 и корректно рассчитывающий плановую стоимость проданных позиций.

← На главную