В практической работе розничного магазина часто возникает необходимость изменить цену товара непосредственно в момент его продажи на кассе. Это может быть связано с уценкой бракованного товара, округлением суммы чека в пользу покупателя или проведением мгновенной индивидуальной акции. Однако при попытке сделать это в программе «1С:Управление торговлей 11» (особенно в Базовой версии) пользователи сталкиваются с жестким ограничением системы: колонка «Цена» в Рабочем месте кассира (РМК) заблокирована для редактирования.
В этой статье мы подробно разберем, почему разработчики фирмы «1С» заблокировали ручное изменение цен в РМК, какие технические ограничения накладывает Базовая версия программы и какие легальные практические способы существуют для решения этой задачи без изменения конфигурации.
В старых версиях программных продуктов (например, в «1С:Розница 2.2» или «1С:Управление торговлей 10.3») существовал простой механизм дополнительных прав пользователей. Администратор мог зайти в настройки прав кассира и установить флаг «Разрешить редактирование цен в РМК». В современной конфигурации «1С:Управление торговлей 11» этот механизм был полностью пересмотрен.
В УТ 11 архитектура ценообразования построена на строгом контроле. Цена номенклатуры жестко привязана к Виду цен, который указывается для конкретного склада или розничного магазина. Касса ККМ, в свою очередь, привязывается к этому же складу. В момент подбора товара в РМК система автоматически рассчитывает актуальную розничную цену по действующим документам установки цен. Напрямую изменить значение в поле цены на форме РМК невозможно, так как для реквизита таблицы товаров установлено системное свойство ТолькоПросмотр = Истина. Это сделано для минимизации злоупотреблений со стороны кассиров и обеспечения прозрачности управленческого учета.
На форумах часто советуют решить эту проблему установкой готового расширения конфигурации (файла с расширением .cfe), которое просто снимает ограничение «Только просмотр» с колонки цены. Обратите внимание: для Базовой версии «1С:Управление торговлей 11» этот метод не применим.
Давайте проанализируем технические особенности базовых лицензий:
EF_ и подписаны специальной цифровой подписью разработчика.Поскольку дорабатывать конфигурацию в режиме конфигуратора или использовать расширения в Базовой версии нельзя, рассмотрим доступные штатные и альтернативные варианты решения проблемы.
---
Если ваша задача — продать товар дешевле или дороже установленной розничной цены, лучшим и абсолютно легальным решением будет использование механизма ручных скидок и наценок. Это позволяет скорректировать итоговую стоимость товара, не нарушая логику системы.
Разберем по шагам, как активировать и настроить этот функционал:
Как это работает на рабочем месте кассира:
При оформлении продажи в РМК кассир выбирает нужный товар. Базовая цена остается неизменной, но кассир может нажать кнопку «Скидка/Наценка» (или воспользоваться соответствующей колонкой в таблице товаров) и ввести либо процент скидки, либо фиксированную сумму скидки в рублях. Итоговая цена товара пересчитается автоматически.
Минус метода: в печатной форме чека ККМ покупатель увидит информацию о предоставленной скидке или начисленной наценке. Если вам требуется продать товар по «чистой» измененной цене без упоминания скидок в чеке, данный способ не подойдет.
---
Базовые версии программ «1С» поддерживают работу с внешними отчетами и обработками (файлы формата .epf). Внешние обработки не изменяют структуру метаданных конфигурации, поэтому их использование полностью разрешено лицензией.
Мы можем использовать специализированную внешнюю обработку, которая позволяет кассиру быстро переоценивать товары прямо в процессе продажи. Давайте проанализируем логику работы такого инструмента:
УстановкаЦенНоменклатуры для данного товара и соответствующего вида цен.Рассмотрим пример программного кода, который выполняется внутри такой внешней обработки при нажатии кнопки изменения цены:
// Создание документа установки цен на лету
НовыйДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
НовыйДокумент.Ответственный = Пользователи.ТекущийПользователь();
// Заполнение табличной части товаров
НоваяСтрока = НовыйДокумент.Товары.Добавить();
НоваяСтрока.Номенклатура = ВыбранныйТовар;
НоваяСтрока.ВидЦены = ВыбранныйВидЦены;
НоваяСтрока.Цена = НоваяВведеннаяЦена;
// Запись и проведение документа для применения изменений
Попытка
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
ПоказатьОповещениеПользователя("Успешно", , "Цена товара успешно обновлена!");
Исключение
ВызватьИсключение "Не удалось провести установку цен: " + ОписаниеОшибки();
КонецПопытки;
Этот метод является обходным путем, однако он позволяет изменять цену без вмешательства в код типовой конфигурации и корректно работает в Базовой версии УТ 11.
---
Если стандартный функционал РМК внутри УТ 11 Базовая вас категорически не устраивает, отличным решением станет переход на использование внешнего бесплатного программного продукта «1С:Рабочее место кассира» (1С:РМК).
Это отдельное приложение, разработанное специально для кассовых компьютеров. Мы можем настроить интеграцию между вашей «1С:Управление торговлей 11 Базовая» (которая будет выступать в роли управляющей товароучетной системы) и «1С:РМК» (которое будет установлено непосредственно на рабочем месте продавца).
Преимущества данного подхода:
---
Для сравнения и полноты понимания картины рассмотрим, как данная задача решается в версии ПРОФ программы «1С:Управление торговлей 11». В версии ПРОФ у нас нет ограничений на использование расширений и изменение конфигурации.
Разработчик или администратор может решить задачу двумя путями:
Способ А. Создание расширения конфигурации (Рекомендуемый)
В расширении для формы РМК (документ ЧекККМ) у элемента колонки таблицы товаров снимается флаг ТолькоПросмотр. Также в расширение переносится процедура обработки добавления товара, где принудительно разрешается изменение цены.
Способ Б. Изменение кода в конфигураторе
Если база снята с поддержки, программисты вносят изменения непосредственно в модуль формы РМК (например, в процедуру ДобавитьВКорзину или обработчики интерактивного ввода данных), заменяя жестко прописанное условие:
// В типовом коде:
ПараметрыСтроки.РедактироватьЦену = Ложь;
// Изменяется на:
ПараметрыСтроки.РедактироватьЦену = Истина;
После такого изменения колонка цены становится доступной для ручного ввода, аналогично обычным оптовым документам продажи (таким как «Реализация товаров и услуг»).
В базовой версии УТ 11 напрямую открыть для редактирования ячейку цены в РМК невозможно из-за лицензионных ограничений на изменение кода платформы и запрета сторонних расширений. Тем не менее, мы всегда можем использовать гибкие альтернативные варианты. Для простых ситуаций отлично подойдет штатный механизм ручных скидок и наценок. Если же требуется регулярное и полное изменение цен на кассе без отображения скидок в чеке, оптимальным выходом будет внедрение внешней обработки установки цен или подключение специализированного приложения «1С:РМК».