При переходе на новую конфигурацию 1С:Управление торговлей 11 (УТ 11) или при переносе справочников из старых версий систем (например, УТ 10.3 или сторонних программ) пользователи часто сталкиваются с необходимостью массовой настройки параметров учета. Одним из таких ключевых параметров является признак «Вести учет по ГТД» (в современных релизах он может называться «Импортный товар (учет по ГТД или РНПТ)»).
Попытка изменить этот реквизит вручную в каждой карточке товара при больших объемах базы данных превращается в рутину. В то же время стандартная групповая обработка через контекстное меню списка номенклатуры («Изменить выделенные») ведет себя странно: она сообщает об успешном изменении реквизитов, однако по факту флаг в карточках товаров остается незаполненным. Выясним причину этой проблемы и рассмотрим подробные, работающие механизмы ее решения.
Проанализируем ситуацию с технической точки зрения. Реквизит, отвечающий за учет по номерам ГТД, относится к числу так называемых контролирующих (ключевых) реквизитов. Программа оберегает пользователя от случайного изменения этих настроек, поскольку они напрямую влияют на партионный учет, проведение документов и расчет себестоимости.
Когда мы используем стандартную команду «Изменить выделенные» непосредственно из списка номенклатуры, система пытается записать изменения через стандартные механизмы Библиотеки стандартных подсистем (БСП). В этот момент в модуле объекта справочника Номенклатура срабатывают платформенные проверки в процедурах перед записью. Программа проверяет, не заблокирован ли реквизит, и если находит ограничения (например, отсутствие разрешения на редактирование ключевых реквизитов в интерактивном режиме), она тихо отменяет запись конкретного поля.
При этом сама групповая обработка БСП транслирует общее сообщение: «Реквизиты выбранных элементов были изменены», так как сам процесс обхода элементов завершился без критического сбоя СУБД. Но фактически транзакция записи изменений для поля ГТД была заблокирована на уровне бизнес-логики конфигурации.
Для наглядности посмотрим на пример того, как выглядит упрощенная схема проверки в модуле объекта справочника при обычной записи:
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат; // Проверки обходятся, если запись идет в режиме загрузки
КонецЕсли;
// Проверка изменения ключевых параметров
Если ЭтотОбъект.Ссылка.ВестиУчетПоГТД <> ЭтотОбъект.ВестиУчетПоГТД Тогда
// Если редактирование реквизита заблокировано в интерфейсе
Если Не РазрешеноРедактированиеКлючевыхРеквизитов() Тогда
Отказ = Истина; // Запись блокируется платформой
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Чтобы обойти эту проверку при массовом обновлении данных, нам нужно заставить систему записать объект в режиме ОбменДанными.Загрузка = Истина. Это отключает выполнение встроенных бизнес-проверок и позволяет жестко прописать нужное значение в базу данных.
Разберем по шагам, как правильно применить встроенный инструмент администратора для обхода блокировок записи:
Номенклатура.ОбменДанными.Загрузка = Истина. Нажмем ОК для сохранения настроек.После завершения работы обработки все выбранные карточки товаров будут принудительно обновлены, и флаг учета по ГТД гарантированно установится.
Чтобы в будущем при ручном создании новых товаров или при повторном импорте позиций из внешних файлов (например, из файлов Excel) вам не приходилось постоянно прибегать к групповым обработкам, рекомендуется правильно настроить шаблоны на уровне Видов номенклатуры. Рассмотрим, как это сделать:
Теперь для любой новой номенклатуры, создаваемой по данному виду, признак учета по ГТД будет выставляться автоматически «из коробки» без дополнительных манипуляций.
Использование «Режима разработчика» — это мощный инструмент администратора, который требует предельной осторожности. Перед тем как запускать массовое изменение, проанализируем возможные последствия:
Товары организаций. Это заблокирует проведение документов продажи и усложнит закрытие месяца. В такой ситуации вам потребуется либо вводить остатки по ГТД специальными документами («Корректировка регистров» или «Ввод остатков»), либо перепроводить документы поступления, чтобы зафиксировать номера ГТД в учете.Рекомендация: Всегда выполняйте подобные массовые корректировки реквизитов сначала на копии базы данных. Убедитесь, что после применения обработки документы проводятся корректно, и только после этого повторяйте операцию в рабочей базе 1С.