Как подключить новый документ к структуре подчиненности и отчету «Связанные документы» в 1С:УТ 11

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

При разработке новой функциональности в конфигурациях на платформе «1С:Предприятие 8.3» (в частности, в «1С:Управление торговлей 11», «1С:ERP» или «1С:Комплексная автоматизация») часто возникает задача включить нетиповой документ в типовой механизм структуры подчиненности. Это необходимо для того, чтобы пользователи могли просматривать цепочки связанных документов (заказы, накладные, оплаты), а также открывать отчет «Связанные документы» непосредственно из формы нового объекта.

Разберем подробно, какие настройки метаданных и программные процедуры требуются для полной интеграции документа в подсистему отчетов БСП.

Шаг 1. Настройка критерия отбора «СвязанныеДокументы» в метаданных

В типовых конфигурациях 1С дерево связей между документами строится на основе специального объекта метаданных — критерия отбора СвязанныеДокументы. Чтобы платформа понимала, как новый документ соотносится с другими, выполним следующие действия в дереве метаданных конфигуратора:

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

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

Шаг 2. Добавление команды отчета в модуле менеджера документа

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

Посмотрим на пример реализации процедуры ДобавитьКомандыОтчетов:


#Область Отчеты

// Заполняет список команд отчетов.
// 
// Параметры:
//   КомандыОтчетов - ТаблицаЗначений - состав полей см. в функции МенюОтчеты.СоздатьКоллекциюКомандОтчетов
//
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов) Экспорт
    
    // Добавление команды "Связанные документы" в подменю "Отчеты"
    ВариантыОтчетовУТПереопределяемый.ДобавитьКомандуСтруктураПодчиненности(КомандыОтчетов);
    
    // При необходимости можно добавить команду просмотра движений документа:
    // ВариантыОтчетовУТПереопределяемый.ДобавитьКомандуДвиженияДокумента(КомандыОтчетов);
    
КонецПроцедуры

#КонецОбласти

Проанализируем вызов: процедура ВариантыОтчетовУТПереопределяемый.ДобавитьКомандуСтруктураПодчиненности проверяет права пользователя на общую форму СтруктураПодчиненности и корректно инициализирует строку с настройками команды (обработчик МенюОтчетыУТКлиент.СтруктураПодчиненности, картинка, сочетание клавиш и расположение в подменю).

Шаг 3. Доработка формы документа

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

Разберем по шагам доработку формы документа:

  1. В редакторе формы в командную панель добавим группу с видом Подменю (или Группа кнопок) и зададим ей имя ПодменюОтчеты.
  2. В модуле формы документа найдем или создадим предопределенный обработчик ПриСозданииНаСервере и добавим вызов инициализации меню:
    
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
        
        // Инициализация подменю отчетов на форме
        МенюОтчеты.ПриСозданииНаСервере(ЭтаФорма, Элементы.ПодменюОтчеты);
        
    КонецПроцедуры
    
  3. В модуль формы необходимо также перенести стандартные подключаемые процедуры-обработчики команд отчетов из любого типового документа (например, РеализацияТоваровУслуг или ЗаказКлиента). Как минимум, на клиенте должна присутствовать процедура:
    
    &НаКлиенте
    Процедура Подключаемый_ВыполнитьКоманду(Команда)
        
        МенюОтчетыКлиент.ВыполнитьКоманду(ЭтаФорма, Команда);
        
    КонецПроцедуры
    

Шаг 4. Проверка прав доступа

Если после выполнения всех настроек кнопка отчета или ссылки на документы не отображаются, выясним причину через права доступа:

  1. У роли пользователя должно быть установлено право Просмотр на общую форму СтруктураПодчиненности и право Чтение на критерий отбора СвязанныеДокументы.
  2. Для корректного отображения всех звеньев цепочки у пользователя должны быть права на чтение всех промежуточных документов, иначе платформа скроет недоступные узлы либо покажет строку «Объект не найден».

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

← На главную