Как выгрузить список захваченных объектов хранилища конфигурации в табличный документ MXL?

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

В процессе коллективной разработки в среде 1С нередко возникает необходимость зафиксировать перечень объектов, которые находятся в захвате у конкретного разработчика или команды в целом. Это требуется для проведения код-ревью, составления отчетов о проделанной работе или переноса изменений. Однако разработчики сталкиваются с тем, что в окне хранилища конфигурации и в основном дереве метаданных отсутствует привычная стандартная команда Вывести список. Разберем причины такого поведения платформы и детально рассмотрим рабочие способы выгрузки захваченных объектов в табличный документ mxl.

Ограничения платформы и причины отсутствия команды «Вывести список»

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

Кроме того, во встроенном языке 1С отсутствует прямое API для взаимодействия со статусами хранилища конфигурации из кода информационной базы. Также и пакетный запуск конфигуратора с параметром /ConfigurationRepositoryReport предназначен исключительно для формирования отчета по уже помещенным версиям и истории коммитов (с параметрами -NBegin, -NEnd, -GroupByObject), но не предоставляет данных по текущим активным захватам. Тем не менее задачу можно решить штатными механизмами конфигуратора.

Способ 1. Копирование списка захваченных объектов через буфер обмена

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

  1. Откроем главное меню: Конфигурация → Хранилище конфигурации → Хранилище.
  2. По умолчанию объекты представлены иерархическим деревом. Перейдем в меню окна хранилища и выберем Вид → Список. Это действие преобразует иерархию в плоскую таблицу.
  3. Нажмем Действия → Отбор и укажем критерий фильтрации, например, выберем статус Все захваченные или укажем конкретного пользователя хранилища.
  4. Обратим внимание на состав колонок: в режиме списка отображаются имя объекта, пользователь, выполнивший захват, дата и время захвата, имя рабочей станции и путь к каталогу информационной базы.
  5. Выделим все строки с помощью комбинации клавиш Ctrl + A и скопируем их в буфер обмена нажатием Ctrl + C.
  6. Создадим новый табличный документ через главное меню: Файл → Новый → Табличный документ.
  7. Установим курсор в первую ячейку и вставим скопированные данные нажатием Ctrl + V.
  8. Сохраним полученный результат в формате табличного документа mxl через меню Файл → Сохранить.

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

Способ 2. Формирование отчета через сравнение с конфигурацией хранилища

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

  1. Перейдем в меню Конфигурация → Хранилище конфигурации → Сравнить/объединить с конфигурацией хранилища.
  2. Дождемся окончания процесса сопоставления текущей локальной конфигурации с данными из хранилища. Время анализа зависит от объема конфигурации и скорости подключения к хранилищу.
  3. В открывшемся окне сравнения будут наглядно показаны все различия между захваченными объектами и их версиями в хранилище.
  4. На панели инструментов окна сравнения воспользуемся кнопкой Отчет о сравнении (или вызовем команду через главное меню Действия → Отчет о сравнении).
  5. Настроим состав выводимых колонок и степень детализации структуры метаданных.
  6. Платформа сформирует полноценный отчет в виде стандартного табличного документа, содержащий полные пути к каждому измененному объекту метаданных, подчиненным реквизитам, макетам и формам.
  7. Сохраним сформированный документ в файл с расширением .mxl.

Способ 3. Визуальный контроль структуры через фильтр дерева конфигурации

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

  1. Откроем окно метаданных через Конфигурация → Открыть конфигурацию.
  2. На командной панели дерева конфигурации нажмем кнопку Только захваченные объекты.
  3. Дерево мгновенно скроет все нередактируемые объекты, оставив на экране исключительно те элементы, которые находятся в захвате, с сохранением их полной подчиненности и принадлежности к веткам метаданных.

Альтернативный вариант: прямой разбор файла хранилища 1CD

Рассмотрим ситуацию, когда необходимо автоматизировать регулярное получение списка захватов без интерактивного входа в конфигуратор 1С. Файловое хранилище конфигурации представляет собой специализированную базу данных в формате 1Cv8ddb.1CD.

Структура таблиц хранилища содержит служебную информацию о текущем состоянии базы:

  1. Таблица учетных записей пользователей хранилища.
  2. Таблица состояния объектов с полями REVISED (признак захвата), REVISORID (идентификатор пользователя, выполнившего захват) и REVISEDATE (временная метка захвата).
  3. Таблица версий метаданных, позволяющая сопоставить внутренние идентификаторы с реальными именами и типами объектов.

С помощью внешних скриптов чтения формата 1CD можно автоматизировать регулярный сбор данных о захваченных объектах и формировать итоговые отчеты по расписанию.

← На главную