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

30.10.24

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Конвертер расширения конфигурации в патч
.epf 155,30Kb
11
11 Скачать (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С.

12000 руб.

02.09.2020    169603    938    403    

905

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

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

8400 руб.

20.08.2024    12840    100    46    

103

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

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

9360 руб.

17.05.2024    26623    90    48    

134

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

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

22200 руб.

06.10.2023    16883    41    15    

75

SALE! %

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

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

4800 3840 руб.

14.01.2013    190634    1150    0    

918

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

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

15000 руб.

10.11.2023    11429    40    27    

66

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

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

3600 руб.

27.12.2024    879    2    0    

5

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    103963    244    100    

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