Почему не отображается колонка Партия или реквизит типа СправочникСсылка.Партии в 1С:УНФ

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

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

Проверка глобальных функциональных опций

Первым делом проанализируем настройки самой системы. В 1С:УНФ интерфейс крайне динамичен и строится на базе функциональных опций. Если в настройках учета выключено использование партий, система автоматически скрывает все связанные с ними элементы, даже если вы добавили их вручную как новые реквизиты. Выясним, как это включить в пользовательском режиме.

Перейдем в раздел Закупки, далее выберем Еще больше возможностей и найдем пункт Партии номенклатуры. Установка этого флага активирует функциональную опцию ИспользоватьПартииНоменклатуры. Рассмотрим, что происходит "под капотом": система проверяет состояние этой константы и, если она ложна, принудительно скрывает элементы формы, связанные с этой опцией, на уровне ядра платформы, игнорируя настройки видимости в коде.

Влияние функциональных опций на уровне метаданных

Если вы добавили собственный реквизит табличной части и он также не виден, проанализируем его свойства в дереве конфигурации. Обратим внимание на свойство Функциональные опции у созданного объекта. Часто разработчики по ошибке привязывают новый реквизит к стандартной опции ИспользоватьПартииНоменклатуры, полагая, что это правильно для логики партионного учета.

Однако, если эта опция в базе выключена, ваш реквизит исчезнет вместе со стандартными полями. Чтобы поле было видно всегда, независимо от настроек партионного учета в УНФ, необходимо очистить список функциональных опций в свойствах реквизита в конфигураторе. Проверим также настройки самой формы: иногда реквизит может быть включен в Группу формы, которая сама привязана к функциональной опции. В этом случае скрытие группы приведет к исчезновению всех вложенных элементов.

Настройка в карточке номенклатуры

Проанализируем программную логику работы формы документа ЗаказПокупателя. В УНФ часто используется механизм контекстной видимости. Даже если общая настройка партий включена, колонка может скрываться программно, если в текущем документе не выбрано ни одной номенклатурной позиции, для которой ведется учет по партиям.

Рассмотрим порядок действий для проверки:

  1. Зайдем в карточку конкретной номенклатуры, выбранной в документе.
  2. Проверим установку флага Использовать партии (или в категории этой номенклатуры).
  3. Если флаг не установлен, стандартные процедуры УНФ в модуле формы могут скрывать колонку Партия для экономии экранного пространства.

Программное изменение состава полей и прав доступа

Часто причина кроется в правах доступа. В управляемом приложении 1С, если у пользователя нет прав на Просмотр или Редактирование справочника, который является типом данных реквизита, платформа автоматически убирает это поле с формы. Выясним, есть ли у текущего пользователя права на справочник ПартииНоменклатуры.

Разберем ситуацию с программным управлением формой. В УНФ активно используются общие модули для управления интерфейсом, такие как УправлениеФормамиУНФ. Проанализируем типичный фрагмент кода, который может отвечать за видимость:


// В процедуре ПриСозданииНаСервере или ПриЧтенииНаСервере
ПараметрыВидимости = Новый Структура;
ПараметрыВидимости.Вставить("ИспользоватьПартии", ПолучитьФункциональнуюОпцию("ИспользоватьПартииНоменклатуры"));
// Система может динамически устанавливать Видимость колонок табличной части
Элементы.ЗапасыПартия.Видимость = ПараметрыВидимости.ИспользоватьПартии;

Если вы переносите изменения из одной конфигурации в другую, убедитесь, что вы не забыли перенести соответствующие вызовы в модуле формы. Проверьте процедуры УстановитьВидимостьПересчитатьЦены() или аналогичные, где система переопределяет состояние элементов в зависимости от контекста документа.

Очистка кэша и сброс настроек формы

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

Выполним следующие шаги для сброса:

  1. В открытом документе нажмем кнопку Еще.
  2. Выберем пункт Установить стандартные настройки.
  3. Если это не помогло, попробуем зайти в Изменить форму и проверить, нет ли там поля Партия в списке доступных, но не отмеченных флажком.

Тип номенклатуры и группы видимости

Проанализируем еще один нюанс УНФ: тип номенклатуры в строке. Система скрывает партионный учет для типов Услуга или Вид работ, где партии не имеют физического смысла. Если в строке документа выбрана услуга, колонка может программно блокироваться. Если ваш добавленный реквизит "пропадает" синхронно с партиями, проверьте, не находится ли он в одной группе с реквизитом Партия в структуре элементов формы. Группы часто управляются целиком: Элементы.ГруппаПартии.Видимость = Ложь;.

Подводя итог, можно сказать, что решение проблемы чаще всего лежит в плоскости функциональных опций. Если тип реквизита Строка отображается нормально, а тип СправочникСсылка.Партии — нет, это прямой сигнал о том, что либо выключена глобальная опция партионного учета, либо у пользователя отсутствуют права на данный справочник, либо срабатывает встроенный механизм оптимизации интерфейса УНФ.

← На главную