Как узнать, откуда заполняются параметры формы выбора сотрудника в 1С:ЗУП 3.1

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

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

Изучаем свойства реквизита в метаданных

Первым делом проанализируем настройки самого объекта метаданных. В 1С:Предприятие 8.3 существует мощный механизм декларативной настройки связей. Откроем конфигуратор, найдем документ Увольнение и перейдем к реквизиту Сотрудник. Нас интересуют два ключевых свойства:

  1. Связи параметров выбора: Это наиболее вероятный «источник». Здесь настраивается зависимость параметров формы выбора от значений других реквизитов текущего документа. Например, если в поле «Организация» документа выбрано конкретное юрлицо, платформа автоматически передаст его в форму выбора сотрудника, чтобы ограничить список. Проверьте, не указана ли там связь по полю Организация.
  2. Параметры выбора: В этом свойстве разработчик может жестко задать постоянные отборы. Например, Отбор.ВАрхиве(Ложь). Эти параметры будут передаваться всегда при интерактивном выборе из этого поля.

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

Программное формирование параметров при вызове формы

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

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


ПараметрыВыбора = Новый Структура;
ПараметрыВыбора.Вставить("Организация", Объект.Организация);
ПараметрыВыбора.Вставить("ПоказыватьУволенных", Ложь);
ПараметрыВыбора.Вставить("КлючНазначенияИспользования", "ПараметрыВыбораСотрудника");

ОткрытьФорму("Справочник.Сотрудники.ФормаВыбора", ПараметрыВыбора, Элементы.Сотрудник);

В данном случае структура ПараметрыВыбора попадает прямиком в ОбработкаПолученияФормы модуля менеджера справочника Сотрудники. Если вы видите заполненные параметры в этой точке, значит, они были сформированы в коде непосредственно перед вызовом формы выбора.

Системные механизмы автоматического связывания платформы

Выясним еще одну интересную особенность платформы 8.3. Существует механизм автоматической передачи параметров по совпадению имен. Если на форме документа есть реквизит с именем Организация, и в форме выбора справочника (или в его динамическом списке) определен параметр с точно таким же именем, платформа может попытаться сопоставить их автоматически. Это происходит даже без явного указания в «Связях параметров выбора», если установлены соответствующие настройки типизации. Хотя в типовых решениях это встречается реже, об этом стоит помнить при отладке.

Использование функциональных опций и расширений

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

Расширение может модифицировать параметры через:

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

Параметры динамического списка и СКД

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

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

Подведем итог: алгоритм поиска «виновника»

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

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

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

← На главную