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

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С:Управление нашей фирмой 3.0 Бесплатно (free)

После обновления УНФ до 3.0.10.178 у ряда клиентов исчезла часть функционала: отчёт "Движение товаров", кнопка "Глаз" в Расходной накладной, часть документов складских перемещений. Для решения проблемы надо установить константы, чьё название подпадает под шаблон "Использовать подсистему NNN (Константы)" и соответствует "пропавшему" функционалу по смыслу.

16.01.2025    398    dime2    0    

3

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

Обновление, доработка для 1С: Управление торговлей 10.3 (УТ 10.3) организаций на упрощенной системе с 2025 года для использования ставок НДС 5 и 7 % в документах и печатных формах документов. Начиная с релиза 10.3.40.

4 стартмани

10.01.2025    1835    41    zhuravlev_as    37    

6

Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

В статье рассматривается использование WinMerge для сравнения, объединения и обновления конфигураций 1С. Отдельно рассматривается методика трехстороннего сравнения при обновлении конфигурации

21.10.2024    3344    mixaeel    18    

17

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

Те кто объединял конфигурации находящиеся на поддержке, обновлял подсистемы БСП прекрасно помнят упражнение «10000 тысяч кликов мышкой» или, непонятное словесное заклинание, после которого конфигурация снимается с поддержки целиком.

1 стартмани

26.09.2024    670    7    milkers    2    

7

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Вышел новый релиз для УТ11 5.19.63. На копии базы было выполнено обновление и вылезли проблемы с номенклатурой, подлежащей маркировке. В публикации описаны проблемы, обнаруженные в копии базы конкретной организации.

24.09.2024    1295    gull22    2    

9

Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

Как исправить медленное сравнение конфигурации с файлом cf, сохраненным из хранилища.

17.09.2024    4695    vatkir    15    

10
Отзывы
24. chkurs 100 21.05.24 17:55 Сейчас в теме
21 мая 2024 г. добавил в код обработки аннотацию "ИзменениеИКонтроль".
Кто уже скачал обработку пришлите, пожалуйста, мне в "личку" ваш e-mail.
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DrZombi 301 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 1557 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 494 06.05.24 10:14 Сейчас в теме
(5) Перед и после - да, но они не всегда применимы. А ИзменениеИКонтроль всё равно требует актуализации и сравнения модулей, если процедура поменялась. Но как понял, обработка из публикации для ИзменениеИКонтроль не работает, только для вместо.
6. quazare 3866 06.05.24 07:08 Сейчас в теме
тема называется "инструмент для обновления расширения конфигурации", затем написано "обновление конфигурации, содержащей расширение", далее по тексту - "объединить модули расширения с модулями конфигурации"...

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

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

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

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

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

Старайся не использовать "вместо" и будет тебе счастье.
maloi3390; Рамзес; user1978635; +3 Ответить
8. RocKeR_13 1378 06.05.24 10:16 Сейчас в теме
Кто-то использует &Вместо? С кучей расширений - это просто ад, не завидую...
Рамзес; корум; +2 Ответить
10. chkurs 100 06.05.24 11:10 Сейчас в теме
(8) Если выполнение текущей задачи обязательно требует применения этой аннотации и вам за это платят, то это не "ад", а обычная работа программиста. И далеко не все заменяемые методы состоят из тысяч строк и "трудно-перевариваемых" алгоритмов. Для таковых можно разделить метод на три части:
с аннотацией "Перед" повторить весь код до изменяемой части метода;
с аннотацией "Вместо" внести свои изменения и добавить в него строку со ссылкой на
отдельный свой метод, состоящий из оставшихся строк исходного метода.
11. RocKeR_13 1378 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 1378 13.05.24 09:16 Сейчас в теме
(15) Проще контролировать со стороны разработчика наличие изменений. Уже у нескольких клиентов были случаи, когда горе-разработчики использовали &Вместо, не следили за изменениями исходного кода и после обновления в проводках получалась такая ересь, что бизнес за голову хватался. Когда в базе 5-7 крупных расширений и кто-то от лени начинает в коде постоянно использовать &Вместо - при обновлении конфигурации поддержка таких расширений выливается в значительные затраты времени.
17. ovasiliev 6 13.05.24 12:54 Сейчас в теме
(16) "... при обновлении конфигурации поддержка таких расширений выливается в значительные затраты времени" - но это единственный кошерный выход.
"... кто-то от лени начинает в коде постоянно использовать &Вместо" - от лени надо избавляться. Как и от ленивых. Только если нельзя обойтись &Перед или &После - то только тогда &Вместо. От ленивых не помогут директивы &ИзменениеИКонтроль, от них помогает только директива &ПинкаПодЗад.
Халявы в нашем деле нет. Надо работать, и работать как надо, а не как хотелось бы.
18. RocKeR_13 1378 13.05.24 13:01 Сейчас в теме
(17) Лень бывает разной: одна позволяет найти оптимальные подходы к решению проблем, а другая - к куче ошибок) В любом случае, если у вас 1/2/3 использования &Вместо в одном расширении - это одно дело. Если у вас таких мест более 50 в нескольких расширениях и в разработке задействовано несколько разных обслуживающих организаций - один только поиск таких процедур/функций уже выливается в отдельный вид мазохизма, когда можно нажать одну кнопку для проверки применения всех расширений.
19. ovasiliev 6 13.05.24 13:21 Сейчас в теме
(18) "... когда можно нажать одну кнопку для проверки применения всех расширений." - и что, работает?
20. RocKeR_13 1378 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 100 21.05.24 17:50 Сейчас в теме
(22)
в качестве альтернативы есть бесплатная обработка https://infostart.ru/1c/articles/1779546/

Очень интересная обработка. При подготовке данных для нее формируется громадное количество файлов общим объемом в несколько гигабайт.
я попробовал с ее помощью обновить УНФ 3.0.6.100 до 3.0.8.40, подготовил все необходимые данные, но после "Анализа" на экран ничего не вышло. Отладчиком проанализировал код, вроде-бы работает, но в результат разбора ничего не попадает. Нет пока времени проанализировать глубже, обязательно попробую на других данных...
24. chkurs 100 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 100 01.06.24 15:25 Сейчас в теме
xnd
При обновлении УНФ 3.0.8.40 до 3.0.8.56 на версии 1.0.1.13
Значение не является значением объектного типа (ШапкаМетода)
{ВнешняяОбработкаАнализРасширенияПриОбновпении.Форма.Форма.Форма(81б)}:ТекстовыйФайп‚ДобавитьСтроку(МетодШапкаМетода);
{ВнешняяОбработка.АнализРасширенияПриОбновпении‚Форма.Форма.Форма(775)}:СоэдатьФайпСМетодом(ИмяОсновная, СтрокаРазбора.МетодОсновнаяКонфигурация);
{ВнешняяОбработка.АнапизРасширенияПриОбновпении.Форма.Форма.Форма(757)}:ПоказатьОтпичия(СтрокаРазбора);
[ОшибкаВоВремяВыпопненияВстроенногоЯзыка, ОшибкаИспопьзованияВстроенногоЯзыка]
28. chkurs 100 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
Оставьте свое сообщение