Как вывести движения нового документа по регистрам в 1С:Управление торговлей 11

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

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

Способ 1. Подключение типового отчета по движениям через механизмы БСП

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

  1. Регистрация команды в модуле менеджера документа. Откроем модуль менеджера созданного документа и добавим экспортную процедуру ДобавитьКомандыОтчетов:

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

    
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
        // Подключение команд подсистемы БСП "Варианты отчетов"
        МенюОтчеты.ПриСозданииНаСервере(ЭтотОбъект, Элементы.ПодменюОтчеты);
    КонецПроцедуры
    
  3. Проверка типов общей команды. Если отчет вызывается через общую команду (например, ДвиженияДокумента), откроем конфигуратор, найдем соответствующую общую команду в дереве метаданных и проверим свойство Тип параметра команды: созданный документ должен быть отмечен в списке разрешенных типов.

Способ 2. Вывод движений в панель навигации формы («Перейти»)

Если требуется отображать стандартный список записей регистра в панели навигации слева от формы («Перейти»), настроим командный интерфейс платформы.

  1. Проверка связи метаданных. Откроем свойства созданного регистра (накопления или сведений) и убедимся, что на вкладке Регистраторы установлен флаг напротив нашего документа. В самом документе на вкладке Движения регистр также должен быть отмечен.

  2. Настройка командного интерфейса формы. Откроем форму документа в конфигураторе, перейдем на вкладку Командный интерфейс (расположена в нижней части редактора формы). Развернем группу Панель навигации -> Перейти, найдем созданный регистр и принудительно включим для него свойство Видимость.

  3. Настройка прав доступа. Проверим роли пользователя. Для отображения команды перехода у пользователя должны быть назначены права Чтение и Просмотр на созданный регистр. Если прав недостаточно, платформа автоматически скроет пункт меню без вывода ошибок.

Способ 3. Программное открытие списка движений по кнопке

Разберем вариант, когда требуется открыть список движений регистра с отбором по текущему документу по нажатию произвольной кнопки на форме. Для этого создадим команду формы и опишем следующий код:


&НаКлиенте
Процедура ПоказатьДвиженияПоРегистру(Команда)
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("Отбор", Новый Структура("Регистратор", Объект.Ссылка));
    
    ОткрытьФорму("РегистрНакопления.ВашРегистр.ФормаСписка", ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры

Способ 4. Отображение движений на отдельной вкладке документа

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

  1. В реквизиты формы документа добавим новый реквизит СписокДвижений с типом ДинамическийСписок.
  2. В свойствах реквизита укажем основную таблицу — наш регистр.
  3. Перетащим реквизит СписокДвижений в элементы формы (например, на отдельную страницу панели вкладок).
  4. В обработчике ПриСозданииНаСервере установим отбор по текущему регистратору:
    
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
        // Установка фиксированного отбора по регистратору для динамического списка
        ЭлементОтбора = СписокДвижений.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Регистратор");
        ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ЭлементОтбора.ПравоеЗначение = Объект.Ссылка;
        ЭлементОтбора.Использование = Истина;
    КонецПроцедуры
    

Для быстрой проверки записей во время отладки также можно использовать типовой отчет Универсальный отчет, выбрав тип объекта «Регистр накопления / сведений», таблицу «Основные данные» и установив отбор по полю Регистратор.

← На главную