Конвертер расширения конфигурации в патч

30.10.24

Разработка - Инструментарий разработчика

Занимались разработкой расширений конфигурации? А как на счет патчей (исправлений)? Впервые изучаете патчи и не знаете, с чего начать? Тогда вам сюда!

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Конвертер расширения конфигурации в патч
.epf 155,30Kb
12
12 Скачать (3 SM) Купить за 2 450 руб.

Цель: написать конвертер расширения конфигурации в патч.

Функционал:
1. Замена всех значений A на B;
2. Замена всех внутренних идентификаторов на новые.

Проблема:

Загрузили патчи EF_00_00000001 и EF_00_00000002 в базу, при запуске программы возникает ошибка "EF_00_00000001: (Критичная): Конфликт внутренних идентификаторов у объекта".

Типичные ошибки программистов:

  1. В базе был создан новый патч, в который добавили новые объекты метаданных (макет, модуль и т.д.), и сохранили его в файл EF_00_00000001.cfe. Затем патч был модифицирован и сохранен в отдельный файл EF_00_00000002.cfe.
  2. В базе был создан новый патч с новыми объектами метаданных (макет, модуль и т.д.), который сохранили в файл EF_00_00000001.cfe. После этого был создан еще один патч на основе копии EF_00_00000001.cfe, который был изменен (удалены и добавлены новые объекты метаданных, а также изменен номер патча).
  3. Программист разработал новый патч в базе, добавив новые объекты метаданных (например, макет, модуль и т.д.), и сохранил его в файл EF_00_00000001.cfe. После этого другой программист создал новый патч, сравнив и объединив его с патчем EF_00_00000001.cfe, затем внес изменения и сохранил в патч EF_00_00000002.cfe.

Правило:

Есть поведение идентификатора при перемещении объекта https://its.1c.ru/db/metod8dev/content/2291/hdoc, что новые идентификаторы создает только при копировании в буфер обмена объектов и создавать патчи нужно с нуля.

Но что делать с патчами, которые создавали не с нуля? Попросить программистов переделать патчи с нуля? А это пустая трата нервов, здоровья и времени.

Решение:

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

Инструкция:

  • Выбрать любой файл расширения конфигурации.
    Расширение конфигурации бывает простое и подготовленное. Их различие заключается в том, что имя подготовленного расширения начинается с префикса "EF_".
  • Заполнить поля "Префикс имен", "Описание исправления", "Изменяемые объекты метаданных" и "Версии программ".
    Вся информация об объектах метаданных доступна в конфигураторе, если открыть файл расширения конфигурации.
  • Нажать "Конвертировать в патч".
    Если возникают сомнения в том, что файл подготовлен должным образом, можно открыть лог-файл и проверить сообщения об ошибках. Также можно загрузить подготовленное расширение в конфигуратор и поочередно открыть все модули, удаляя ненужные роли. Если требуется создать файл с другим именем или заменить тексты в некоторых файлах, достаточно установить соответствующие флажки в форме. Файл может быть сконвертирован в "EF_00_00000001.cfe", если выбрано только простое расширение конфигурации, а если расширение подготовленное, то будет создан файл с исправлением "_2" или с новым номером патча "EF_00_00000002".

Что делает обработка:

  • Подключается к базе, очищает расширение в базе 2, загружает расширение конфигурации в базу 2, выгружает расширение в файлы xml, заменяет все внутренние идентификаторы на новые, добавляет новый общий макет, загружает из файлов xml в расширение конфигурации, выгружает расширение в новый файл cfe и снова очищает расширение.

Проверял в демобазе Управление торговлей 11.5.19.55 в платформе 8.3.25.1394.

Спасибо автору за код из статьи Программное создание расширения.

 
 История изменений:

25.09.2024:

  • Теперь атрибут configVersion нового общего макета устанавливается корректно.
  • Исправлена ошибка, возникавшая при выборе файла с символом "_" в конце.

16.09.2024:

  • Добавлены версии форматов xml для платформы 8.3.29 и ниже.
  • Добавлены поля "Назначение". При выборе файла теперь будет отображаться назначение расширения конфигурации.
  • Теперь при изменении номера ошибки меняется префикс имен конвертируемого патча.

13.12.2022:

  • Добавлены версии форматов xml для платформы 8.3.22 и ниже.
  • Убраны настройки подключения базы, подключение будет непосредственно из макета.

19.04.2022:

  • Добавлены версии форматов xml для платформы 8.3.21 и ниже.

18.04.2022:

  • Добавлены настройки текущей базы.
  • Исправлены выявленные ошибки.

Опубликованы примеры скриншотов.

09.11.2021:

  • Добавлена информация о выбранном файле и информация о конвертируемом патче. При выборе файла отобразится информация о выбранном файле, но прежде чем конвертировать патч можно добавить дополнительную инфу о конвертируемом патче.
  • Перенесена закладка "Настройки" в закладку "Основное".
  • Переименован режим "Перезаписывать измененный патч" вместо "Создать патч с нуля".
  • Исправлены выявленные ошибки.

23.09.2021:

  • Добавлена кнопка "Информация о патче" в закладке "Основное" в режиме "Создать патч с нуля". Прежде чем конвертировать в режиме "Создать патч с нуля", получите сначала информацию о патче (версии программ, изменяемые объекты метаданных, описание исправления).
  • Исправлены выявленные ошибки.

23.09.2021:

  • Добавлена кнопка "Информация о текущей ИБ" в закладке "Настройки". Получить информацию о текущей базе для подключения к другой базе (текущий пользователь и путь к текущей базе).
  • Исправлена ошибка записи макета в файл TXT в одну строку в режиме "Создать патч с нуля".

16.09.2021:

  • Добавлен новый режим "Загрузить выбранный файл расширения конфигурации в текущую базу". После загрузки файла расширения предлагает перезапустить программу.

16.09.2021:

  • Добавлен подробный лог файла при конвертации расширения конфигурации в патч. Файл для вывода служебных сообщений больше не очищается.
  • Добавлен новый режим "Использовать текущую версию программы". Добавляет/удаляет текущую версию программы, удаляет дубли версий, лишние пробелы и сортирует номера версий в поле "Версии программ".
  • Исправлена ошибка в режиме "Создать патч с нуля". Некорректно заполняется макет.

27.08.2021:

  • Изменен режим с "Не изменять номер и идентификатор патча" на "Создать патч с нуля". Патч можно создавать с нуля, например, нужно из расширения EF_00_00000001 сделать патч, в расширении не был создан макет, не все флаги по регламенту сделаны (было: умеет создавать с нуля только из обычного расширения; стало: умеет создавать с нуля из обычного и подготовленного расширения).
  • Исправлено удаление тега (было: не все теги удалялись корректно, например, не снят флаг "Основные роли"; стало: теги удаляются корректно).

20.08.2021:

  • Добавлен новый режим "Загрузить конвертируемый патч в базу". После загрузки патча предлагает перезапустить программу.
  • Исправлено удаление расширения конфигурации (было: очищать все расширения конфигурации, стало: выборочное удаление расширения конфигурации).

03.08.2021:

  • Добавлено поле "Добавить суффикс патча (в случае первого отзыва)". В случае отзыва добавляет суффикс патча.
    Пример:
    - EF_00_00000001 - отозвали из-за ошибок;
    - EF_00_00000001_2 - новая версия патча.

15.07.2021:

  • Добавлены новые поля: Описание исправления, Изменяемые объекты метаданных и Версии программ. Поля обязательно нужны для заполнения одноименного общего макета при создании нового патча.

02.06.2021:

  • Добавлена возможность конвертирования из простого расширения в патч.

 24.05.2021:

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

 

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 11, релизы 11.5.19.55

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    177526    986    403    

942

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    19020    127    69    

130

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    12789    53    33    

72

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    18743    49    19    

82

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

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

9360 руб.

17.05.2024    28886    100    48    

146

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18609    7    32    

43

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1699    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. ivanov_alex 66 19.04.22 10:13 Сейчас в теме
А возможность конвертации базовых патчей возможна?
14. ZhokhovM 763 19.04.22 15:42 Сейчас в теме
(13)да. можно из любого типового патча преобразовать в любой отраслевой/типовой патч.
16. ivanov_alex 66 19.04.22 18:31 Сейчас в теме
(14)какой подписью подписывается базовое расширение?
17. ZhokhovM 763 19.04.22 22:48 Сейчас в теме
(16)не сталкивался с подписью в базовых расширениях/патчах(
Оставьте свое сообщение