Почему в 1С:УНФ нельзя выбрать динамический вид цен в карточке склада и как решить эту проблему

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

В процессе работы с конфигурацией 1С:Управление нашей фирмой (УНФ) многие пользователи сталкиваются с ситуацией, когда при попытке настроить розничный склад (магазин) программа не позволяет выбрать в качестве основного вида цен динамический (рассчитываемый по формуле) тип цен. Это создает определенные неудобства при работе в Рабочем месте кассира (РМК), так как кассиру приходится вручную выбирать нужную категорию цен при каждой продаже. В этой статье мы подробно разберем технические причины такого ограничения и рассмотрим эффективные способы его обхода.

Разберем техническую архитектуру: почему динамические цены недоступны для склада

Проанализируем внутреннее устройство 1С:УНФ, чтобы понять логику разработчиков. Склад в системе — это не просто место хранения, это объект, по которому строится стоимостная отчетность. Основная причина ограничения кроется в способе хранения данных в базе.

1. Механизм регистров сведений. Все цены в системе хранятся в регистре сведений ЦеныНоменклатуры. Статические цены записываются в этот регистр физически с помощью документа Установка цен. Когда вы формируете отчет или открываете чек, система просто считывает готовое число из базы данных.

Динамические цены (рассчитываемые по формуле от базовой цены) физически не записываются в регистр при каждом изменении курса или базовой цены. Они рассчитываются «на лету» программным кодом в момент открытия карточки товара или подбора. Если бы система позволила выбрать динамический вид цен для склада, ей пришлось бы пересчитывать тысячи формул в режиме реального времени при формировании любого складского отчета, что катастрофически снизило бы производительность.

2. Стоимостная оценка склада. Рассмотрим ситуацию с точки зрения управленческого учета. Отчет «Стоимостная оценка склада в розничных ценах» должен показывать актуальную стоимость остатков. Если цена динамическая и зависит, например, от курса валют, то стоимость остатков менялась бы каждую секунду. Для корректного учета и проведения инвентаризаций системе необходима «точка опоры» — зафиксированная в базе цена.

Решение проблемы через настройки пользователя

Если ваша задача состоит в том, чтобы в РМК по умолчанию подставлялась нужная цена (пусть даже динамическая), и вы не хотите каждый раз выбирать её вручную, воспользуемся «мягкой» настройкой системы. Эта настройка не привязывает цену к складу, но привязывает её к конкретному сотруднику, который осуществляет продажи.

Разберем этот метод по шагам:

  1. Перейдем в раздел Настройки — Настройки пользователей и прав.
  2. Откроем справочник Пользователи и выберем нужного сотрудника (кассира).
  3. Найдем пункт Настройки пользователя (или «Персональные настройки»).
  4. В списке настроек найдем реквизит Основной вид цен продажи.
  5. Укажем здесь наш динамический вид цен.

Проанализируем результат: теперь, когда кассир откроет РМК, система первым делом обратится к его персональным настройкам. Поскольку там указан нужный вид цен, программа автоматически рассчитает его по формуле для каждой позиции в чеке. Это решает проблему «забывчивости» персонала без внесения изменений в конфигурацию.

Использование механизма «Авторасчет» в новых версиях УНФ

Начиная с версий 1.6.25 и выше (а также в новой «1С:Рознице 3.0»), разработчики добавили функционал, который позволяет динамическим ценам вести себя как статические. Рассмотрим, как это работает.

В карточке Вида цены появился флаг Авторасчет. Проанализируем, что происходит при его включении:

Посмотрим на преимущество: такие виды цен становятся доступными для выбора в карточке склада. Поскольку в базе теперь есть физическая запись цены, система может корректно строить отчеты и быстро выводить данные в РМК без лишних вычислений. Если ваша версия программы позволяет, это самый правильный способ решения задачи.

Альтернативный подход: отказ от «чистой» динамики в пользу регламентных операций

Выясним причину, почему иногда стоит отказаться от динамических цен в пользу регулярного пересчета. Если у вас большая номенклатурная база (более 5-10 тысяч позиций), постоянные динамические расчеты могут замедлять работу подбора товаров.

Рассмотрим алгоритм работы через регулярную установку цен:

  1. Создадим вид цен со способом расчета Рассчитывать по другим видам цен.
  2. Вместо того чтобы оставлять её полностью динамической, будем использовать документ Установка цен.
  3. Раз в день или при изменении закупочных цен запустим обработку Формирование цен.
  4. Система рассчитает все цены по формулам и зафиксирует их.

Этот метод гарантирует, что в карточке склада вы всегда сможете выбрать данный вид цен, а ценники, распечатанные утром, будут на 100% совпадать с тем, что кассир увидит в программе в течение дня.

Проблема печати ценников при динамических ценах

Выясним, почему при динамических ценах часто «не печатается цена» в ценниках (как упоминалось в Сообщении 14 форума). Печать ценников — это групповая обработка. Чтобы вывести цену на печать, программа делает запрос к базе данных. Если цена динамическая и для неё не создана запись в регистре ЦеныНоменклатуры (не был проведен документ Установка цен), то в запросе будет пустое значение.

Важный вывод: Для корректной печати ценников и работы складских механизмов, даже если цена рассчитывается по формуле, она должна иметь физическое воплощение в базе данных. Либо через документ Установка цен, либо через включенный Авторасчет.

Подводя итог, можно сказать, что ограничение выбора динамической цены в карточке склада — это защита целостности данных и производительности системы. Используйте Настройки пользователя для оперативной работы в РМК или переходите на механизм Авторасчета для полноценной автоматизации ценообразования.

← На главную