Как найти, где хранятся данные реквизита формы, если его нет в объекте?

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

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

Понимание архитектуры данных в 1С

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

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

Шаг 1: Анализ через отладчик

Первым делом выясним, является ли реквизит сохраняемым. Попробуйте изменить значение поля и записать документ. Если после повторного открытия документа значение сбросилось — данные не хранятся в объекте. Если же значение сохраняется, значит, оно записано в базу под другим именем.

Воспользуйтесь отладчиком:

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

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

Разберем ситуацию на примере «Начисления утверждены»:

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

Шаг 3: Как получить данные в запросе

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


ВЫБРАТЬ
    КадровыйПеревод.НачисленияУтверждены КАК ПереводУтвержден
ИЗ
    Документ.КадровыйПеревод КАК КадровыйПеревод
ГДЕ
    КадровыйПеревод.Ссылка = &Ссылка

Если же данные хранятся в регистре, вам необходимо выполнить соединение с таблицей регистра:


ВЫБРАТЬ
    Регистр.СостояниеДокумента КАК Утверждено
ИЗ
    РегистрСведений.СостоянияДокументов КАК Регистр
ГДЕ
    Регистр.Регистратор = &Ссылка

Рекомендации по поиску

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

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

← На главную