При обновлении конфигураций «1С:Управление торговлей 11», «1С:Комплексная автоматизация 2» или «1С:ERP» нередко меняется классификатор видов маркируемой продукции. Например, общее перечисление для пивной продукции разделяется на отдельные категории: «Пиво в кегах» и «Пиво в потребительских упаковках». После корректировки настроек в справочнике Виды номенклатуры пользователи часто обнаруживают, что в существующих карточках товаров реквизит ОсобенностьУчета остался прежним, а в стандартном окне обработки «Групповое изменение реквизитов» это поле отсутствует в списке доступных для редактирования. Разберем, почему возникает такая ситуация и как правильно обновить данные штатными инструментами программы.
Проанализируем архитектурную причину проблемы. В прикладных решениях 1С реквизит ОсобенностьУчета дублируется: он присутствует как в справочнике Виды номенклатуры, так и непосредственно в элементах справочника Номенклатура. Это классическая денормализация данных, необходимая для высокой скорости проведения документов, проверки кодов маркировки и работы рабочего места кассира (РМК). Автоматической синхронизации задним числом платформа не выполняет: при изменении вида номенклатуры уже записанные позиции не перезаполняются. При этом в самой обработке «Групповое изменение реквизитов» Библиотека стандартных подсистем (БСП) по умолчанию скрывает системные и служебные реквизиты от рядового пользователя, чтобы исключить случайное повреждение учетных механизмов.
Рассмотрим самый быстрый штатный способ, не требующий написания внешних обработок и внесения изменений в конфигурацию. Обработка позволяет принудительно раскрыть полный список атрибутов объекта.
Номенклатура и настроим фильтр отбора (например, по конкретному виду номенклатуры или группе товаров).ОсобенностьУчета.ПивоВПотребительскихУпаковках) и нажмем кнопку Изменить реквизиты.Разберем альтернативный вариант массовой корректировки непосредственно из интерфейса списка товаров, если не требуется открывать общую панель администрирования.
Ctrl + A или удерживая клавишу Shift.Особенность учета, зададим корректное значение и запустим процесс записи.Посмотрим на более строгий программный подход. Простое изменение одного поля может оставить несогласованными другие связанные настройки номенклатуры. В окне «Групповое изменение реквизитов» в режиме разработчика доступна вкладка Выполнить произвольный алгоритм. С ее помощью можно запустить штатную процедуру пересчета реквизитов карточки по ее виду.
В поле алгоритма обработки используем типовой серверный метод:
Отказ = Ложь;
Справочники.Номенклатура.ЗаполнитьРеквизитыПоВидуНоменклатуры(Объект, Ложь, Отказ);
Этот метод программно считывает все правила из связанного элемента Виды номенклатуры и перезаписывает служебные данные в объекте без нарушения внутренней логики конфигурации. Для обеспечения безопасности обязательно включим в дополнительных параметрах выполнение операции в единой транзакции: если по одной из позиций возникнет ошибка записи, платформа выполнит откат всех изменений.
Проанализируем риски прямой перезаписи служебных данных. Позиции с кодами маркировки («Пиво в кегах» и «Пиво в потребительской таре») принципиально по-разному обрабатываются при интеграции с системами ЕГАИС и «Честный Знак». Для кегового пива поддерживается механизм вскрытия тары и частичного выбытия в розлив, а для потребительской упаковки — штучная продажа по кодам DataMatrix.
Если по товару уже зафиксированы остатки на складах, оформлены поступления или имеются открытые кассовые смены, ручное изменение особенности учета приведет к ошибкам формата фискальных данных (ФФД 1.2) при пробитии чеков на ККТ. Методически правильный путь в таком случае — закрыть текущие остатки по старым позициям, создать новый элемент справочника Виды номенклатуры с нужной особенностью и завести под него новые карточки номенклатуры. Это исключит искажение архивных данных и рассинхронизацию с государственными информационными системами.