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