Как в 1С:Управление торговлей 10.3 изменить номер ГТД в серии номенклатуры в обход проверки проведенных документов?

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

В процессе работы с конфигурацией «1С:Управление торговлей 10.3» специалисты нередко сталкиваются с ситуацией, когда в серии номенклатуры задним числом требуется указать или скорректировать номер ГТД либо страну происхождения. При попытке интерактивного или программного сохранения элемента система выдает ошибку: «Существуют документы, проведенные по серии... Реквизиты "Номер ГТД" и "Страна происхождения" не могут быть изменены, элемент не записан». Выясним причину такого поведения платформы, разберем программный способ обхода этой блокировки, а также оценим сопутствующие риски для учета и рассмотрим корректные альтернативные варианты решения.

Причина срабатывания проверки платформы

Проанализируем архитектуру конфигурации. В справочнике СерииНоменклатуры в процедуре ПередЗаписью модуля объекта заложен типовой контроль целостности данных. Если элемент не является новым, при изменении реквизитов НомерГТД или СтранаПроисхождения система выполняет запрос к проведенным документам и регистрам накопления (таким как ТоварыНаСкладах, ТоварыОрганизаций, ПартииТоваровНаСкладах).

Если по данной серии зафиксировано хотя бы одно движение, платформа инициирует отказ от записи. Это сделано намеренно: серия в УТ 10.3 выступает ключевым аналитическим разрезом складского и партионного учета, а также основанием для заполнения печатных форм счетов-фактур и таможенных деклараций.

Программный обход проверки через режим загрузки данных

Для отключения встроенных проверок и событий модуля объекта в платформе 1С предусмотрен специальный механизм обмена данными. Установка свойства ОбменДанными.Загрузка в значение Истина позволяет подавить выполнение кода в процедурах ПередЗаписью и ПриЗаписи.

Посмотрим на пример программного кода внешней обработки для принудительного обновления реквизитов серии:


СерияОбъект = СсылкаНаСерию.ПолучитьОбъект();
СерияОбъект.ОбменДанными.Загрузка = Истина;

СерияОбъект.НомерГТД = НовыйНомерГТД;
СерияОбъект.СтранаПроисхождения = НоваяСтрана;

// При необходимости обновляем наименование серии
СерияОбъект.Наименование = СокрЛП(НовыйНомерГТД) + ", " + СокрЛП(НоваяСтрана);

СерияОбъект.Записать();

Разберем по шагам, что происходит при выполнении этого алгоритма:

  1. Методом ПолучитьОбъект() мы получаем экземпляр справочника для редактирования.
  2. Свойству ОбменДанными.Загрузка присваиваем значение Истина. Это отключает типовую валидацию на наличие проведенных документов.
  3. Заполняем необходимые реквизиты новыми значениями.
  4. Вручную корректируем Наименование, так как типовой алгоритм автоматического формирования наименования серии в обработчиках записи при включенном режиме загрузки выполняться не будет.
  5. Вызываем метод Записать(), который сохраняет изменения напрямую в базу данных.

Риски и последствия принудительной записи серии

Использование свойства ОбменДанными.Загрузка = Истина действительно открывает доступ к изменению защищенных реквизитов, однако несет серьезные учетные риски. Проанализируем, к чему приводит подобное вмешательство:

  1. Искажение данных прошлых периодов. Если часть товара по данной серии уже была реализована или списана в закрытом периоде, изменение реквизитов серии задним числом изменит печатные формы (ТОРГ-12, счет-фактура, УПД) в уже проведенных документах. Это приведет к расхождениям с контрагентами и рискам при налоговых проверках.
  2. Рассинхронизация с бухгалтерией. При типовом обмене между УТ 10.3 и «1С:Бухгалтерией предприятия» справочник серий обычно не переносится напрямую. Реквизиты ГТД и страны транслируются в строки табличных частей бухгалтерских документов. Принудительное изменение серии в базе УТ не обновит уже выгруженные строки в закрытых периодах БП.
  3. Несоответствие наименования и реквизитов. Если программно изменить только реквизит НомерГТД, не изменив строковое поле Наименование, в отчетах и подборе номенклатуры возникнет путаница.

Безопасный регламентный способ исправления остатка

Рассмотрим альтернативное решение, которое позволяет избежать изменения данных закрытого периода и не требует программного отключения проверок конфигурации:

  1. Создаем в справочнике СерииНоменклатуры абсолютно новую серию с корректным номером ГТД и страной происхождения.
  2. В текущем (открытом) периоде оформляем перенос фактического складского остатка со старой серии на новую. Для этого вводим документы СписаниеТоваров (с указанием старой серии) и ОприходованиеТоваров (с указанием новой серии) по одинаковой себестоимости либо используем документ КорректировкаЗаписейРегистров.
  3. Продолжаем дальнейшую реализацию остатка товара уже с новой серии.

Такой подход гарантирует сохранность данных в закрытых периодах, обеспечивает юридическую чистоту ранее выставленных первичных документов и исключает расхождения при последующих обменах данными с регламентированными системами учета.

← На главную