Инструмент для обновления расширения конфигурации

16.10.24

База данных - Обновление 1С

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Инструмент для обновления расширения конфигурации (доб. ИзменениеИКонтроль):
.epf 12,70Kb ver:2.0.2
13
13 Скачать (1 SM) Купить за 1 850 руб.

Инструмент позволяет создать файл слияния, с помощью которого можно быстро и надёжно объединить модули расширения с модулями конфигурации.

Для правильной работы инструмента необходимо выполнить всего 2 условия:

    после аннотации ("&Вместо" или "&ИзменениеИКонтроль"), расположенной в строке модуля, и скобкой не должно быть пробелов;
    после аннотации ("Вместо" или "ИзменениеИКонтроль"), расположенной в имени модуля, и скобкой не должно быть пробелов; 

   на-пример, "&Вместо("ИмяМетода")", "&ИзменениеИКонтроль("ИмяМетода")", "Процедура НК_ИмяМетодаВместо(...)", "Функция НК_ИмяМетодаИзменениеИКонтроль(...)".

При выполнении этих условий будет правильно определено имя метода.

Использование инструмента производится в следующем порядке.

В любой папке создайте 3 пустых текстовых файла:  файл расширения, файл конфигурации и файл слияния.

Далее выберите любой  объект расширения, имеющий модуль.  Это может быть общий модуль,  или форма справочника,  его модуль объекта или модуль менеджера - повторяю, любой объект.
Текст выбранного модуля копируйте в файл расширения.

Далее выбираете модуль соответствующего ему объекта основной конфигурации.Текст выбранного модуля копируйте в файл конфигурации.

Далее на соответствующих закладках инструмента выбирайте эти файлы и загружайте их в инструмент.

 

   

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

На закладке "Файл расширения" введите "Префикс расширения" с нижним дефисом "_".
на закладке список модулей нажмите кнопку "Определить методы".

 

 

На закладке "Файл слияния" нажмите кнопку "Создать файл слияния".

 

 

Все! В полученный файл слияния попадут все строки файла расширения, существующие только в файле расширения,  в том числе строки методов с аннотациями "Перед" и "После"
и директивы компиляции модулей формы "&НаКлиенте" или "&НаСервере" и т.п. 

А после строк с аннотацией "&Вместо("ИмяМетода")", или "Метод НК_ИмяМетодаВместо(...)", или "&ИзменениеИКонтроль("ИмяМетода")", или НК_ИмяМетодаИзменениеИКонтроль(...)" будут вставлены строки из файла конфигурации  до включительно строки &КонецМетода.

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

Теперь полученные файл расширения и файл слияния загружайте в бесплатное приложение "KDiff3" или аналогичное ему.

 

 

Здесь анализируйте "конфликты", вставляйте в результирующий файл требуемые различия. Текст результата копируйте в буфер обмена и замените на него текст модуля объекта.

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

Реально я обновил УНФ на версию 3.0.7.122 с громадным количеством изменений за один день. Без этого инструмента этот процесс занимал от нескольких дней, до недели.

Файл можно открыть в пользовательском режиме через меню "Открыть файл" или загрузить в "Печатные формы, отчеты и обработки".

Использовать можно на любой версии платформы 1С в любой конфигурации 1С.

Код открыт.

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

  • Управление нашей фирмой, редакция 3.0, релизы 3.0.8.40

обновление конфигурации подготовка

См. также

Обновление 1С Программист Платформа 1С v8.3 1С:ERP. Управление холдингом Абонемент ($m)

Описан практический пример обновления через копию конфигурации 1С:ERP. Управление холдингом с версии 3.2.6.6 на версию 3.2.6.7, который можно применять на других конфигурациях и версиях.

10 стартмани

18.02.2025    255    PetrovAnton    1    

1

Обновление 1С Программист Платформа 1С v8.3 Абонемент ($m)

Отчет о сравнении конфигураций представляет собой обширный массив информации. Однако у него есть значительное ограничение: его невозможно настраивать, например, добавлять различные группировки, фильтры или сортировку данных. Тем не менее, если преобразовать этот отчет в таблицу и использовать её в качестве источника данных, это открывает возможность для создания универсального отчета с использованием группировок, отборов и сортировки

10 стартмани

18.02.2025    363    1    kalyaka    0    

5

Обновление 1С Программист Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

17.02.2025    179    0    slavik27    0    

3

Обновление 1С Запросы Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

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

2 стартмани

06.02.2025    1514    8    XilDen    24    

34

Групповая разработка (Git, хранилище) Обновление 1С Программист Платформа 1С v8.3 Россия Бесплатно (free)

Внедряем проверку новых версий прямо в расширение. Оповещайте о новых версиях и показывайте пользователям список изменений. Для разработчиков, которые хотят сэкономить время и повысить лояльность клиентов!

05.02.2025    1179    Nonik    10    

17

Обновление 1С Программист Бухгалтер Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Бухгалтерский учет НДС Абонемент ($m)

Обновление для конфигурации Управление торговлей 10.3.88.3 добавляет поддержку ставок НДС 5% и 7%, обеспечивает корректную печать этих ставок на актуальных моделях торгового оборудования (АТОЛ, ШТРИХ, ревизия 4004), содержит актуальные правила обмена с конфигурацией "Бухгалтерия предприятия 3.0" для передачи новых ставок. Новые ставки НДС поддерживается в печатных формах УПД, ТТН и т.д. В состав дистрибутива включены обработки для обслуживания торгового оборудования ККТ нового формата (Штрих-М и АТОЛ)

5 стартмани

31.01.2025    1829    29    karpik666    28    

21
Отзывы
24. chkurs 101 21.05.24 17:55 Сейчас в теме
21 мая 2024 г. добавил в код обработки аннотацию "ИзменениеИКонтроль".
Кто уже скачал обработку пришлите, пожалуйста, мне в "личку" ваш e-mail.
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DrZombi 302 03.05.24 12:01 Сейчас в теме
Спасибо, и сомнительно.
У нас в расширении, почти полноценная конфигурация... просто время идет, а доработки требуют :)))


Так, что не всем удобен ваш линейный интерфейс
2. savant 57 03.05.24 13:09 Сейчас в теме
kdiff3 привязывается в настройках и не надо ничего городить и придумывать.
Рамзес; vv2; RocKeR_13; kauksi; Dali; _Ramzes; ubnkfl; baracuda; +8 Ответить
3. Xershi 1262 03.05.24 19:05 Сейчас в теме
(2) вот недавно активно обновлял расширение, подумывал может кдиф бы помог? Слишком много рутины было.
Пока не использую его. Его получается нужно на сервере 1с поставить? И прописать в настройках. Может видели обзор инструмента?
Сам пользуюсь винмердж, для сравнения текстов модулей.
4. maloi3390 04.05.24 10:04 Сейчас в теме
(3) он ставится на той машине, на которой запускается конфигуратор.
vv2; gamletspb; SuhoffGV; +3 Ответить
21. savant 57 15.05.24 11:13 Сейчас в теме
(3)Очень помогает при обновлении. Только иногда подвисает, нужно грохать его через диспетчер и перезапускать конфигуратор. А так он 90% работы делает за тебя.
5. корум 288 05.05.24 13:58 Сейчас в теме
(0) так понимаю, в расширении с методами ИзменениеИконтроль, Перед и После такой задачи не возникает по определению.

Повод пересмотреть архитектуру, а не героически преодолевать самостоятельно созданные трудности.
Рамзес; Vaskin; Dali; +3 Ответить
7. de0nis 506 06.05.24 10:14 Сейчас в теме
(5) Перед и после - да, но они не всегда применимы. А ИзменениеИКонтроль всё равно требует актуализации и сравнения модулей, если процедура поменялась. Но как понял, обработка из публикации для ИзменениеИКонтроль не работает, только для вместо.
6. quazare 3874 06.05.24 07:08 Сейчас в теме
тема называется "инструмент для обновления расширения конфигурации", затем написано "обновление конфигурации, содержащей расширение", далее по тексту - "объединить модули расширения с модулями конфигурации"...

в итоге то что?

а вообще - это не длительный и не кропотливый процесс - залог корректности - это правильно спроектированное расширение - "не лезь" в регистры накоплений расширением.... и т.п....

изначально, я должен понимать, что будет, если это расширение у меня отвалится или у кого-то не хватит прав на него.....
Serg O.; RustIG; +2 Ответить
9. chkurs 101 06.05.24 10:47 Сейчас в теме
(6) Как бы изначально правильно не было спроектировано расширение, почти обязательно наступит момент, когда оно вступит в конфликт с текущим вариантом конфигурации. Программисты 1С "любят" изменять наименования общих модулей, их методов и состав общих модулей. Они изменяют иногда наименование и/или тип реквизита объекта конфигурации. И с этип приходится периодически длительно и кропотливо "бороться", внося изменения в конфликтующие методы расширения.
(5) Аннотацию "ИзменениеИконтроль" я стараюсь не использовать, т.к. бывает из-за совершенно не значительных изменений в методе конфигурации (добавления в текст пробела, исправления грамматических ошибок и т.п.) метод расширения конфликтует. Поэтому она и не попала в обработку, и я думаю, что ее следует добавить.
А аннотации "Перед" и "После" используются изначально для внесения в текст метода изменений, необходимых только в данном конкретном расширении. Если эти методы вступят в конфликт с конфигурацией из-за внесенных 1С изменений, то платформа обязательно выдаст ошибку с подробным ее описанием, и эту ошибку легко исправить, не используя Kdiff и ему подобные.
12. корум 288 06.05.24 12:15 Сейчас в теме
(9)
Аннотацию "ИзменениеИконтроль" я стараюсь не использовать

Вот она, фундаментальная ошибка.

Платформа сама по кнопочке "проверить возможность применения" показывает ВСЕ различия, выводит в список, только кдифф пропиши и пользуйся.

Старайся не использовать "вместо" и будет тебе счастье.
maloi3390; Рамзес; user1978635; +3 Ответить
8. RocKeR_13 1381 06.05.24 10:16 Сейчас в теме
Кто-то использует &Вместо? С кучей расширений - это просто ад, не завидую...
Рамзес; корум; +2 Ответить
10. chkurs 101 06.05.24 11:10 Сейчас в теме
(8) Если выполнение текущей задачи обязательно требует применения этой аннотации и вам за это платят, то это не "ад", а обычная работа программиста. И далеко не все заменяемые методы состоят из тысяч строк и "трудно-перевариваемых" алгоритмов. Для таковых можно разделить метод на три части:
с аннотацией "Перед" повторить весь код до изменяемой части метода;
с аннотацией "Вместо" внести свои изменения и добавить в него строку со ссылкой на
отдельный свой метод, состоящий из оставшихся строк исходного метода.
11. RocKeR_13 1381 06.05.24 11:51 Сейчас в теме
(10) Не встречал еще такой задачи, где вместо &Вместо нельзя было бы использовать &ИзменениеИКонтроль.
Рамзес; корум; +2 Ответить
14. oldcopy 174 06.05.24 13:21 Сейчас в теме
(11) Там где вам нужно практически полностью переписать метод своим или серьезно поменять его логику. Мы так делали на условном оформлении, где проще заменить метод полностью, чем добавлять в него в десяток мест &ИзменениеИКонтроль
15. ovasiliev 6 11.05.24 10:59 Сейчас в теме
(11) Вместо &Вместо всегда можно использовать &ИзменениеИКонтроль. Только смысл? Радоваться, что расширение в пользовательском сеансе отваливается, когда компилируется модуль с такой процедурой, а пользователь не обращает внимания на предупреждение и продолжает работать на неактуальном коде?
16. RocKeR_13 1381 13.05.24 09:16 Сейчас в теме
(15) Проще контролировать со стороны разработчика наличие изменений. Уже у нескольких клиентов были случаи, когда горе-разработчики использовали &Вместо, не следили за изменениями исходного кода и после обновления в проводках получалась такая ересь, что бизнес за голову хватался. Когда в базе 5-7 крупных расширений и кто-то от лени начинает в коде постоянно использовать &Вместо - при обновлении конфигурации поддержка таких расширений выливается в значительные затраты времени.
17. ovasiliev 6 13.05.24 12:54 Сейчас в теме
(16) "... при обновлении конфигурации поддержка таких расширений выливается в значительные затраты времени" - но это единственный кошерный выход.
"... кто-то от лени начинает в коде постоянно использовать &Вместо" - от лени надо избавляться. Как и от ленивых. Только если нельзя обойтись &Перед или &После - то только тогда &Вместо. От ленивых не помогут директивы &ИзменениеИКонтроль, от них помогает только директива &ПинкаПодЗад.
Халявы в нашем деле нет. Надо работать, и работать как надо, а не как хотелось бы.
18. RocKeR_13 1381 13.05.24 13:01 Сейчас в теме
(17) Лень бывает разной: одна позволяет найти оптимальные подходы к решению проблем, а другая - к куче ошибок) В любом случае, если у вас 1/2/3 использования &Вместо в одном расширении - это одно дело. Если у вас таких мест более 50 в нескольких расширениях и в разработке задействовано несколько разных обслуживающих организаций - один только поиск таких процедур/функций уже выливается в отдельный вид мазохизма, когда можно нажать одну кнопку для проверки применения всех расширений.
19. ovasiliev 6 13.05.24 13:21 Сейчас в теме
(18) "... когда можно нажать одну кнопку для проверки применения всех расширений." - и что, работает?
20. RocKeR_13 1381 13.05.24 13:22 Сейчас в теме
(19) А не должна? Работает
13. корум 288 06.05.24 12:24 Сейчас в теме
(10)
можно разделить метод на три части

... не встречал конфигурацию с 20+ расширениями?
Именно расширениями, без патчей.

Помнить, что "изменение", "дополнение" и "адаптация" вытесняют друг друга, что расширения применяются сверху вниз по списку расширений в конфигураторе, так ещё и ... "метод" делить на три части??

Истинно говорю тебе - не используй "вместо", береги свой разум.
RocKeR_13; Рамзес; user1978635; +3 Ответить
22. xnd 94 21.05.24 10:32 Сейчас в теме
в качестве альтернативы есть бесплатная обработка https://infostart.ru/1c/articles/1779546/
где анализируется вся конфигурация сразу без ограничений на скобки и пробелы
23. chkurs 101 21.05.24 17:50 Сейчас в теме
(22)
в качестве альтернативы есть бесплатная обработка https://infostart.ru/1c/articles/1779546/

Очень интересная обработка. При подготовке данных для нее формируется громадное количество файлов общим объемом в несколько гигабайт.
я попробовал с ее помощью обновить УНФ 3.0.6.100 до 3.0.8.40, подготовил все необходимые данные, но после "Анализа" на экран ничего не вышло. Отладчиком проанализировал код, вроде-бы работает, но в результат разбора ничего не попадает. Нет пока времени проанализировать глубже, обязательно попробую на других данных...
24. chkurs 101 21.05.24 17:55 Сейчас в теме
21 мая 2024 г. добавил в код обработки аннотацию "ИзменениеИКонтроль".
Кто уже скачал обработку пришлите, пожалуйста, мне в "личку" ваш e-mail.
25. xnd 94 21.05.24 23:33 Сейчас в теме
(23) возможно некорректно были выбраны каталоги - добавил в новую версию вывод описания конфигурации в каталоге ( если каталог выбран некорректно - появится расшифровочное сообщение)
https://github.com/xnd1124/CfeUpdater/releases/tag/1.0.1.11
26. xnd 94 23.05.24 14:52 Сейчас в теме
(23) нашел ошибку по которой у вас скорее всего не осуществлялся разбор (путь к каталогу оканчивался на слеш) она исправлена в 1.0.1.13
27. chkurs 101 01.06.24 15:25 Сейчас в теме
xnd
При обновлении УНФ 3.0.8.40 до 3.0.8.56 на версии 1.0.1.13
Значение не является значением объектного типа (ШапкаМетода)
{ВнешняяОбработкаАнализРасширенияПриОбновпении.Форма.Форма.Форма(81б)}:ТекстовыйФайп‚ДобавитьСтроку(МетодШапкаМетода);
{ВнешняяОбработка.АнализРасширенияПриОбновпении‚Форма.Форма.Форма(775)}:СоэдатьФайпСМетодом(ИмяОсновная, СтрокаРазбора.МетодОсновнаяКонфигурация);
{ВнешняяОбработка.АнапизРасширенияПриОбновпении.Форма.Форма.Форма(757)}:ПоказатьОтпичия(СтрокаРазбора);
[ОшибкаВоВремяВыпопненияВстроенногоЯзыка, ОшибкаИспопьзованияВстроенногоЯзыка]
28. chkurs 101 02.06.24 15:32 Сейчас в теме
(27) При обновлении УНФ 3.0.8.40 до 3.0.8.56 на версии 1.0.1.13
после кнопки "Анализ" при щелчке по строке с конфликтом, в котором аннотации "Перед" или "Вместо"
и проблема "Метод отсутствует в новой конфигурации" проявляется ошибка "Значение не является значением объектного типа (ШапкаМетода)" (возможно, так и надо?!), а при аннотации "Вместо" и при проблемах "Отличаются тексты методов" работает нормально - запускается Kdiff и отрабатываются конфликты.
29. xnd 94 03.06.24 09:18 Сейчас в теме
(28) если метод отсутствует - то хотелось бы все таки посмотреть а что там написано в расширении метода - поэтому открыть было бы полезно - поправлю
30. volkov-mv 10.09.24 11:54 Сейчас в теме
(3) попробовал в качестве теста использовать vscode, работает, на рабочей еще пока что не приходилось применять
https://github.com/zeegin/vscode-merge-tool-adapter-cli
Оставьте свое сообщение