В процессе работы с конфигурацией 1С:Управление нашей фирмой (УНФ) многие пользователи сталкиваются с ситуацией, когда при попытке настроить розничный склад (магазин) программа не позволяет выбрать в качестве основного вида цен динамический (рассчитываемый по формуле) тип цен. Это создает определенные неудобства при работе в Рабочем месте кассира (РМК), так как кассиру приходится вручную выбирать нужную категорию цен при каждой продаже. В этой статье мы подробно разберем технические причины такого ограничения и рассмотрим эффективные способы его обхода.
Проанализируем внутреннее устройство 1С:УНФ, чтобы понять логику разработчиков. Склад в системе — это не просто место хранения, это объект, по которому строится стоимостная отчетность. Основная причина ограничения кроется в способе хранения данных в базе.
1. Механизм регистров сведений. Все цены в системе хранятся в регистре сведений ЦеныНоменклатуры.
Статические цены записываются в этот регистр физически с помощью документа Установка цен. Когда вы формируете отчет или открываете чек, система просто считывает готовое число из базы данных.
Динамические цены (рассчитываемые по формуле от базовой цены) физически не записываются в регистр при каждом изменении курса или базовой цены. Они рассчитываются «на лету» программным кодом в момент открытия карточки товара или подбора. Если бы система позволила выбрать динамический вид цен для склада, ей пришлось бы пересчитывать тысячи формул в режиме реального времени при формировании любого складского отчета, что катастрофически снизило бы производительность.
2. Стоимостная оценка склада. Рассмотрим ситуацию с точки зрения управленческого учета. Отчет «Стоимостная оценка склада в розничных ценах» должен показывать актуальную стоимость остатков. Если цена динамическая и зависит, например, от курса валют, то стоимость остатков менялась бы каждую секунду. Для корректного учета и проведения инвентаризаций системе необходима «точка опоры» — зафиксированная в базе цена.
Если ваша задача состоит в том, чтобы в РМК по умолчанию подставлялась нужная цена (пусть даже динамическая), и вы не хотите каждый раз выбирать её вручную, воспользуемся «мягкой» настройкой системы. Эта настройка не привязывает цену к складу, но привязывает её к конкретному сотруднику, который осуществляет продажи.
Разберем этот метод по шагам:
Проанализируем результат: теперь, когда кассир откроет РМК, система первым делом обратится к его персональным настройкам. Поскольку там указан нужный вид цен, программа автоматически рассчитает его по формуле для каждой позиции в чеке. Это решает проблему «забывчивости» персонала без внесения изменений в конфигурацию.
Начиная с версий 1.6.25 и выше (а также в новой «1С:Рознице 3.0»), разработчики добавили функционал, который позволяет динамическим ценам вести себя как статические. Рассмотрим, как это работает.
В карточке Вида цены появился флаг Авторасчет. Проанализируем, что происходит при его включении:
Базовая * 1.5).ЦеныНоменклатуры.Посмотрим на преимущество: такие виды цен становятся доступными для выбора в карточке склада. Поскольку в базе теперь есть физическая запись цены, система может корректно строить отчеты и быстро выводить данные в РМК без лишних вычислений. Если ваша версия программы позволяет, это самый правильный способ решения задачи.
Выясним причину, почему иногда стоит отказаться от динамических цен в пользу регулярного пересчета. Если у вас большая номенклатурная база (более 5-10 тысяч позиций), постоянные динамические расчеты могут замедлять работу подбора товаров.
Рассмотрим алгоритм работы через регулярную установку цен:
Установка цен.Этот метод гарантирует, что в карточке склада вы всегда сможете выбрать данный вид цен, а ценники, распечатанные утром, будут на 100% совпадать с тем, что кассир увидит в программе в течение дня.
Выясним, почему при динамических ценах часто «не печатается цена» в ценниках (как упоминалось в Сообщении 14 форума). Печать ценников — это групповая обработка. Чтобы вывести цену на печать, программа делает запрос к базе данных. Если цена динамическая и для неё не создана запись в регистре ЦеныНоменклатуры (не был проведен документ Установка цен), то в запросе будет пустое значение.
Важный вывод: Для корректной печати ценников и работы складских механизмов, даже если цена рассчитывается по формуле, она должна иметь физическое воплощение в базе данных. Либо через документ Установка цен, либо через включенный Авторасчет.
Подводя итог, можно сказать, что ограничение выбора динамической цены в карточке склада — это защита целостности данных и производительности системы. Используйте Настройки пользователя для оперативной работы в РМК или переходите на механизм Авторасчета для полноценной автоматизации ценообразования.