Почему в «Универсальном редакторе реквизитов» не отображаются некоторые поля?

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

Часто при работе с типовыми обработками, такими как Универсальный подбор и обработка объектов (часто называемой «Универсальный редактор реквизитов») или Групповое изменение реквизитов, мы сталкиваемся с тем, что нужный нам реквизит отсутствует в списке доступных для редактирования. При этом мы точно знаем, что в Конфигураторе этот реквизит у объекта есть, а в Консоли запросов данные по нему успешно считываются. Давайте разберем, почему это происходит и как вернуть видимость нужных полей.

Разберемся с влиянием функциональных опций

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

Чтобы выяснить, почему реквизит скрыт, выполним следующие действия:

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

Что делать, если нужно изменить реквизит принудительно?

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

  1. Включение функциональной опции: Если это допустимо бизнес-процессами, включите соответствующую настройку в разделе НСИ и администрирование. После этого реквизит станет доступен в стандартных обработках автоматически.
  2. Программное изменение данных: Если включать опцию в системе не требуется, воспользуемся Консолью кода. Это самый надежный способ, так как он игнорирует ограничения форм и настроек видимости, работая напрямую с объектом.

Пример программного исправления данных

Разберем, как принудительно записать значение в реквизит, который «не виден» в стандартных обработках. Для этого нам потребуется создать простую процедуру, которая выбирает нужные объекты и меняет их значение:


// Пример кода для изменения реквизита без участия интерфейсных форм
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.ЗаказПоставщику ГДЕ Проведен = ЛОЖЬ";
Результат = Запрос.Выполнить().Выбрать();

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

Использование метода ПолучитьОбъект() позволяет нам работать с данными как с полноценным объектом 1С, а метод Записать() сохранит изменения в базе данных, даже если на уровне формы поле было скрыто или заблокировано.

Дополнительные причины отсутствия полей

Если после проверки функциональных опций поле все равно не появилось, проанализируем следующие моменты:

В завершение, если вам нужно оперативно выровнять данные в документах, не тратьте время на поиск «галочки» в настройках, если вы уверены в результате — программный код всегда дает больше контроля над базой, чем визуальные инструменты. Используйте Консоль кода для массовых исправлений, но всегда делайте резервную копию базы перед выполнением подобных операций.

← На главную