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

13.12.22

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

Занимался расширениями конфигурации? А патчами (исправлениями)? Давали простые расширения клиентам, а патчи(исправления) нет? Публиковали патчи(исправления) на сайте releases и отзывали сразу? Некоторые программисты копируют патчи и наполняют патчи через сравнение/объединение или не создают их с нуля или создают только простые расширения? Прошло несколько месяцев с момента публикации последнего патча и попросили переделать расширение в патч в срочном порядке и опубликовать, но уже все подзабыли? Тогда вам сюда!

Скачать исходный код

Наименование Файл Версия Размер
Конвертер расширения конфигурации в патч
.epf 154,17Kb
11
.epf 154,17Kb 11 Скачать

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

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

Расширение конфигурации: простое и подготовленное расширение(имя расширения начинается с EF_).

Простое расширение

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

Сценарий пользования обработки:

  • В закладке "Основное" выбрать файл расширения конфигурации МоеРасширение.cfe и нажать "Конвертировать в патч".
  • Файл сконвертировался EF_00_00000001.cfe.

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

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

Подготовленное расширение

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

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

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

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

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

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

Сценарий пользования обработки:

  • В закладке "Основное" выбрать файл расширения конфигурации EF_00_00000001.cfe и нажать "Конвертировать в патч".
  • Файл сконвертировался EF_00_00000002.cfe. Зайти в базу 2 и загрузить 2 патча: EF_00_00000001.cfe и EF_00_00000002.cfe. Ошибки нет. Можно продолжать модифицировать и сохранять патч EF_00_00000002.cfe.

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

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

Проверял в демобазе Управление торговлей 11.5.8.341 в платформе 8.3.22.1704. Более сложные расширения не проверял.

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

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

13.12.2022:

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

19.04.2022:

  • Добавлена версия формата 2.13 и 2.14 для платформы 8.3.20 и 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:

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

 

См. также

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    124936    682    389    

732

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

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

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

18000 руб.

06.10.2023    7770    24    6    

42

Infostart УДиФ: Управление данными и формами

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

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

10000 руб.

10.11.2023    4283    12    2    

36

SALE! %

PowerTools

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

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

3600 2280 руб.

14.01.2013    178645    1083    0    

861

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

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

5000 руб.

07.02.2018    99623    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

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

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18389    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

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

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23856    16    15    

33

1С HTML Шаблоны / HTML Templates

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

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

2040 руб.

27.12.2017    28322    3    10    

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