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