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