Где находится обработчик кнопки «Создать» в списке контрагентов в 1С:УТ 11?

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

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

Однако, открыв форму списка справочника Контрагенты в конфигураторе, мы можем обнаружить, что стандартные свойства событий пусты, а командная панель генерируется автоматически. В этой статье мы подробно разберем, как найти «спрятанный» обработчик кнопки «Создать» и где физически находится форма помощника ввода.

Постановка задачи: почему не видно обработчик?

Рассмотрим типичную ситуацию. Мы открываем форму списка справочника Контрагенты. Нажимаем на таблицу списка правой кнопкой мыши, переходим в свойства и ищем событие, отвечающее за создание нового элемента. Логично предположить, что нас интересует событие ПередНачаломДобавления.

Но, к нашему удивлению, поле обработчика этого события в палитре свойств пустое. При этом в режиме «1С:Предприятие» при нажатии кнопки «Создать» запускается сложный механизм — открывается специальный помощник регистрации нового партнера. Возникает вопрос: где находится код, который инициирует это действие?

Шаг 1. Поиск программного назначения обработчиков

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

Давайте проанализируем модуль формы списка. Чаще всего инициализация происходит в процедуре ПриСозданииНаСервере. Нам необходимо найти код, который связывает событие таблицы формы с конкретной процедурой.

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


// Пример кода в модуле формы списка
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // ... прочий код инициализации ...
    
    // Программное назначение обработчика события
    Элементы.Список.УстановитьДействие("ПередНачаломДобавления", "Подключаемый_ПередНачаломДобавления");
    
    // ... прочий код ...
КонецПроцедуры

Используя глобальный поиск или просмотр модуля, мы найдем, что событие ПередНачаломДобавления перехватывается и направляется в отдельную процедуру (часто с префиксом Подключаемый_). Именно внутри этой процедуры и содержится логика, которая отменяет стандартное добавление строки и открывает форму-помощник.

Шаг 2. Различие между Партнерами и Контрагентами

Прежде чем искать саму форму, важно вспомнить архитектуру современных торговых решений 1С. В УТ 11 существует разделение на две сущности:

  1. Партнеры — управленческая сущность (с кем мы работаем по сути: холдинг, сеть магазинов, частное лицо).
  2. Контрагенты — юридическая сущность (юрлицо или ИП, с которым заключается договор, есть ИНН/КПП).

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

Поэтому искать форму помощника нужно не в справочнике Контрагенты, а в справочнике Партнеры.

Шаг 3. Локализация формы помощника

Итак, мы выяснили, что обработчик события вызывает открытие некой формы. Как правило, в коде используются параметры открытия формы или вызовы общих модулей (например, ПартнерыИКонтрагентыКлиент).

Если проследить цепочку вызовов, мы придем к конкретной форме. В большинстве актуальных релизов УТ 11 эта форма находится по следующему пути:

Справочники -> Партнеры -> Формы -> ПомощникНового

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

Как внести изменения?

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

Вариант А. Изменение логики работы Помощника

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

Вариант Б. Изменение заполнения при создании

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

Посмотрим на обработчик ОбработкаЗаполнения в модуле объекта справочника Партнеры или Контрагенты. Код, написанный здесь, сработает независимо от того, через какую форму создается объект (через помощник, загрузку данных или программно).


// В модуле объекта Справочник.Партнеры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    // Ваша логика заполнения
    Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
        // Обработка переданных параметров
    КонецЕсли;
КонецПроцедуры

Вариант В. Создание своей кнопки

В некоторых случаях типовой помощник настолько сложен и перегружен, что проще сделать свою кнопку. Для этого:

  1. В расширении заимствуем форму списка контрагентов.
  2. Скрываем стандартную кнопку «Создать» (или меняем её видимость).
  3. Добавляем свою команду и кнопку на форму.
  4. В обработчике команды пишем код открытия собственной упрощенной формы создания или используем метод ОткрытьФорму с нужными параметрами заполнения.

Резюме

Подведем итог нашего расследования. Если вы не можете найти обработчик кнопки в палитре свойств:

  1. Проверьте модуль формы, процедуру ПриСозданииНаСервере на наличие метода УстановитьДействие для события таблицы ПередНачаломДобавления.
  2. Помните, что в УТ 11/ERP основные механизмы ввода клиентов сосредоточены в справочнике Партнеры.
  3. Целевая форма, которую чаще всего нужно править, называется ПомощникНового и находится в формах справочника Партнеры.

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

← На главную