Как правильно интегрировать новый документ в механизмы БСП для работы с печатными формами?

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

Интеграция самописного документа в механизмы БСП часто вызывает затруднения, особенно в сильно переписанных конфигурациях. Рассмотрим по шагам, как заставить работать подсистему «Печать» и «Дополнительные отчеты и обработки», чтобы ваш документ корректно распознавался платформой.

Этап 1: Регистрация объекта в метаданных и БСП

Прежде всего, необходимо, чтобы система «увидела» ваш документ. Одним из проверенных способов является запуск обновления через командную строку с параметром /C ЗапуститьОбновлениеИнформационнойБазы. Это принудительно регистрирует новые объекты в справочнике ОбъектыМетаданных. Также убедитесь, что ваш документ добавлен в определяемый тип ОбъектСДополнительнымиКомандами.

Этап 2: Настройка формы документа

В модуле формы вашего документа необходимо реализовать вызовы процедур БСП для инициализации команд. Важно использовать актуальные методы, так как старые вызовы могут быть несовместимы с современными версиями БСП.

В обработчике ПриСозданииНаСервере добавьте:


// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

Также добавьте необходимые обработчики команд в модуле формы:


&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
    ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, );
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
    ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры

&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
    ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, );
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды
    ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, );
КонецПроцедуры

Этап 3: Регистрация в переопределяемых модулях

Самая распространенная ошибка — забыть добавить документ в общие модули с суффиксом Предопределенный или Переопределяемый. Даже если вы настроили модуль менеджера, БСП может игнорировать документ, пока он явно не указан в массиве объектов.

Проанализируйте общие модули УправлениеПечатьюПредопределенный и ЗаполнениеОбъектовПредопределенный. В процедурах ПриОпределенииОбъектовСКомандамиПечати и ПриОпределенииОбъектовСКомандамиЗаполнения необходимо добавить ваш документ:


Процедура ПриОпределенииОбъектовСКомандамиЗаполнения(Объекты) Экспорт
    Объекты.Добавить(Метаданные.Документы.ИмяВашегоДокумента);
КонецПроцедуры

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

Этап 4: Реализация в модуле менеджера

В модуле менеджера вашего документа необходимо описать процедуры добавления команд и формирования печатных форм:


Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Идентификатор = \"МойМакет\";
    КомандаПечати.Представление = НСтр(\"ru = 'Моя печатная форма'\");
    КомандаПечати.Обработчик = \"УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати\";
    КомандаПечати.СписокФорм = \"ФормаДокумента,ФормаСписка\";
КонецПроцедуры

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    // Реализация логики печати через УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию
КонецПроцедуры

Советы по отладке

  1. Если БСП выдает ошибки при обновлении, попробуйте создать «чистую» конфигурацию с одним объектом, чтобы убедиться, что проблема не в конфликтах имен или структуре метаданных.
  2. При возникновении проблем в клиент-серверном варианте, протестируйте регистрацию в файловой базе — это часто помогает выявить ошибки, связанные с правами доступа или ограничениями путей.
  3. Всегда проверяйте соответствие версий БСП и конфигурации.

Следуя этим шагам, вы сможете успешно интегрировать любые самописные объекты в стандартные подсистемы 1С, обеспечив полноценную работу печати и дополнительных обработок.

← На главную