Как быстро изменить заблокированные реквизиты у множества элементов в 1С:УНФ 3?

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

При активной работе в программе «1С:Управление нашей фирмой» (редакция 3) пользователи нередко сталкиваются с ситуацией, когда ключевые поля карточки номенклатуры, контрагента или договора становятся недоступными для прямого редактирования. Если требуется скорректировать такое значение не в одном элементе, а в десятках или сотнях позиций, ручное открытие каждой карточки и снятие блокировки через меню занимает огромное количество времени. Разберем, почему программа блокирует эти данные и как выполнить массовое изменение быстро и безопасно.

Выясним причину: почему реквизиты блокируются

В конфигурации 1С:УНФ 3 на базе Библиотеки стандартных подсистем задействован специальный механизм защиты ключевых полей. Как только элемент справочника записывается в базу и начинает использоваться в первичных документах, система автоматически блокирует поля (например, базовую единицу измерения, вид номенклатуры, ставку НДС или тип контрагента).

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

Способ 1. Использование встроенной обработки «Групповое изменение реквизитов»

Рассмотрим классический путь запуска типовой обработки, позволяющей централизованно отбирать элементы по любым условиям и перезаписывать нужные поля.

  1. Перейдем в раздел Настройки (или Администрирование в зависимости от интерфейса программы).
  2. Откроем пункт Обслуживание (или Корректировка данных).
  3. Найдем и запустим обработку Групповое изменение реквизитов.
  4. В поле «Изменять» выберем требуемый справочник, например, справочник номенклатуры.
  5. По ссылке «Все элементы» настроим отбор, чтобы ограничить выборку только теми позициями, которые нуждаются в правке (например, по конкретной группе или признаку).
  6. В списке доступных полей найдем нужный реквизит, установим напротив него флаг и укажем новое значение.
  7. Нажмем кнопку Изменить реквизиты для применения правок ко всей выборке.

Способ 2. Быстрый запуск через команду «Изменить выделенные» прямо из списка

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

  1. Откроем нужный список объектов (например, общий список справочника «Номенклатура»).
  2. Выделим строки, которые необходимо скорректировать. Для выделения группы строк удерживаем клавишу Shift или Ctrl, а для выделения всех видимых строк используем комбинацию Ctrl + A.
  3. Нажмем правую кнопку мыши по выделенным строкам или раскроем командное меню Еще.
  4. Выберем команду Изменить выделенные....
  5. В открывшемся окне найдем требуемое поле, отметим его флажком, укажем новое значение и выполним изменение.

Тонкости настройки: как увидеть заблокированные и служебные поля

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

  1. В окне группового изменения нажмем кнопку Дополнительные параметры (в некоторых версиях интерфейса — «Специальные возможности»).
  2. Установим флажок Показывать служебные реквизиты. После этого таблица отобразит системные и закрытые поля.
  3. Обратим внимание на параметры транзакционности: по умолчанию могут быть активны флажки «Изменять в транзакции» и «Прерывать по ошибке». Если среди сотен элементов окажется хотя бы один заблокированный другим пользователем, программа прервет всю операцию и откатит уже внесенные изменения. Чтобы обработать максимально возможное число элементов и выявить проблемные, снимем признак транзакции.

Важные ограничения и риски при изменении

Массовая перезапись закрытых полей требует строгого соблюдения правил безопасности данных:

  1. Резервное копирование: перед выполнением любых массовых изменений обязательно создадим резервную копию базы данных. Отменить операцию стандартной кнопкой «Назад» невозможно.
  2. Права доступа: запуск обработки группового изменения и обход блокировок доступны только учетным записям с административными правами либо с назначенной ролью «Полные права» (или «Редактирование реквизитов объектов»).
  3. Движения регистров: групповая обработка перезаписывает поля в самих карточках элементов, но не перепроводит связанные с ними проведенные накладные, заказы и перемещения. Если изменился реквизит, влияющий на учет (например, ставка налога или вид номенклатуры), потребуется дополнительно перепровести связанные документы для актуализации движений в регистрах.

Альтернативные программные способы для разработчиков

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

Для мгновенной программной записи без вызова обработчиков валидации и блокировки реквизитов используют свойство загрузки данных:


Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
    Объект = Выборка.ПолучитьОбъект();
    Объект.ОбменДанными.Загрузка = Истина;
    Объект.СтавкаНДС = Справочники.СтавкиНДС.НДС20;
    Объект.Записать();
КонецЦикла;

Если же необходимо навсегда снять защиту с определенного реквизита типовой конфигурации без снятия с поддержки, программист может создать расширение и переопределить экспортную функцию ПолучитьБлокируемыеРеквизитыОбъекта() в модуле менеджера соответствующего справочника, исключив нужное поле из массива блокируемых.

← На главную