В современных конфигурациях, таких как Управление торговлей 11, поиск конкретной формы может стать непростой задачей. Это связано с тем, что большинство механизмов реализовано на базе БСП (Библиотеки стандартных подсистем), где формы печати и сохранения являются общими для всей системы, а не принадлежат конкретному документу. Рассмотрим пошагово, как быстро и эффективно найти нужные нам объекты в конфигураторе.
Начиная с версий платформы 8.3.17 и выше, разработчики 1С получили крайне удобный инструмент для мгновенного перехода от интерфейса к метаданным. Проанализируем, как этим воспользоваться:
/Dev или включить соответствующую опцию в настройках конфигуратора.Этот метод является самым быстрым, так как платформа автоматически перенесет фокус в конфигураторе именно на ту форму, которая сейчас открыта перед пользователем. Если это форма печати, мы попадем в общую форму ПечатьДокументов.
Если по какой-то причине интерактивный переход недоступен, мы можем воспользоваться структурным поиском. Выясним, где именно в дереве конфигурации спрятаны механизмы печати. Поскольку в УТ 11 используется БСП, нам нужно искать в общих формах, отфильтровав их по принадлежности к подсистемам.
Разберем алгоритм поиска через фильтр подсистем:
СтандартныеПодсистемы и выберем в ней подсистему Печать.Среди них нас интересуют две ключевые формы:
ПечатьДокументов — это основное окно, где мы видим сформированный печатный лист.СохранениеПечатныхФорм — форма, которая отвечает за диалог сохранения документа на диск, выбор форматов (PDF, Excel, Word) и упаковку в архив.Иногда форма вызывается программно настолько сложным путем, что прямой поиск не дает результатов. В такой ситуации мы можем прибегнуть к методу "остановки по требованию". Проанализируем этот процесс:
ОткрытьФорму(). Это позволит нам точно определить имя вызываемой формы.Важно понимать, что сама форма — это лишь "обертка". Основная логика формирования комплекта документов и их сохранения сосредоточена в общих модулях. Если нам нужно изменить логику формирования файлов, рассмотрим следующие объекты:
УправлениеПечатью — серверный модуль, выполняющий основную работу по сборке табличных документов.УправлениеПечатьюКлиент — модуль, содержащий процедуры для взаимодействия с пользователем, включая вызовы диалогов сохранения.УправлениеПечатьюПереопределяемый — именно здесь разработчики конфигурации вносят изменения, чтобы не затрагивать основное ядро БСП.Например, если нам нужно найти, как конкретный документ попадает в список печати комплекта, мы должны изучить Модуль менеджера этого документа. Посмотрим на пример кода, который обычно отвечает за регистрацию команд печати:
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Добавление команды печати комплекта
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "КомплектДокументов";
КомандаПечати.Представление = НСтр("ru = 'Комплект документов'");
КомандаПечати.ПроверкаПроведенности = Истина;
КонецПроцедуры
Именно через этот идентификатор система понимает, какие формы и модули задействовать при нажатии кнопки в интерфейсе.
Хотя этот метод считается менее надежным, так как заголовки часто формируются программно, мы можем попробовать найти форму по её синониму в дереве метаданных. В строке поиска конфигуратора введите "Печать" или "Сохранение". Если разработчики не переопределили заголовок в коде через свойство Заголовок, то форма СохранениеПечатныхФорм подсветится в списке общих форм.
Однако помните, что в УТ 11 заголовок окна сохранения может динамически меняться в зависимости от того, сохраняете вы один документ или целый архив. Поэтому программные методы поиска (через отладку или режим разработчика) всегда будут в приоритете.
Для поиска форм печати и сохранения в УТ 11 мы рекомендуем следующий алгоритм действий:
/Dev.ПечатьДокументов в ветке Общие -> Общие формы.УправлениеПечатьюКлиент вызовы процедур сохранения.ДобавитьКомандыПечати.Таким образом, комбинируя знание архитектуры БСП и инструменты платформы, мы можем быстро ориентироваться даже в такой масштабной конфигурации, как "Управление торговлей".