При работе с конфигурацией 1С:Управление торговлей (редакция 11) специалисты часто сталкиваются со следующей ситуацией: в системе введен новый вид цен, оформлен документ Установка цен номенклатуры, в настройках склада указан соответствующий розничный вид цен, однако при попытке пробить чек через документ Чек ККМ или в форме Рабочего места кассира (РМК) программа продолжает упорно подставлять старые цены.
Рассмотрим подробно причины возникновения такой проблемы и разберем по шагам как штатные варианты настройки ценообразования, так и программный способ коррекции подбора цен.
Проанализируем ситуацию и выясним, почему типовые механизмы ценообразования 1С:УТ 11 могут игнорировать вновь назначенный вид цен:
Текущее рабочее место → Касса ККМ → Склад кассы → Розничный вид цен. Если касса ККМ привязана к другому складу, цены будут подбираться по настройкам этого склада.Установка цен номенклатуры проведен текущей датой, но временем позже, чем дата/время открытия кассовой смены или создания чека, срезом последних система берет предыдущую действующую цену.Перед тем как приступать к доработке программного кода, проверим последовательность настройки базы штатными средствами.
Шаг 1. Переоценка остатков на розничном складе
Если склад является розничным, необходимо переоценить товары, находящиеся в остатках на этом складе. Простого создания документа Установка цен номенклатуры может быть недостаточно. Выполним переоценку остатков или оприходование (передачу) товара на розничный склад с явным указанием новых розничных цен.
Шаг 2. Проверка правил продаж и соглашений
Разберем настройки типовых условий продаж:
Шаг 3. Проверка даты документа установки цен
Убедимся, что документ Установка цен номенклатуры проведен с временем 00:00:00 даты начала действия цен. Это гарантирует, что при открытии смены кассиром в любое время текущего дня система увидит новые цены как действующие.
Если штатные привязки склада и пользователя не дают нужного результата из-за особенностей настройки конкретной базы, проблему можно решить путем доработки алгоритма поиска цен по параметрам в коде.
Рассмотрим принцип внесения изменений в процедуру определения цен:
Пример логики замещения вида цены в коде 1С:
// Получаем розничный вид цены из карточки склада кассы
ВидЦеныСклада = ОбъектКасса.РозничныйСклад.РозничныйВидЦены;
Если ЗначениеЗаполнено(ВидЦеныСклада) Тогда
// Подменяем расчетный вид цены на розничный вид цены склада
ПараметрыРасчета.ВидЦены = ВидЦеныСклада;
КонецЕсли;
Такая доработка гарантирует, что независимо от настроек соглашений или профиля пользователя, кассир на конкретной торговой точке всегда будет пробивать чеки по виду цен, закрепленному за данным розничным складом.