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

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С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

27900 руб.

01.04.2020    147083    649    360    

235

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

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

21.10.2024    2656    mixaeel    18    

17

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

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

1 стартмани

26.09.2024    500    3    milkers    2    

7

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

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

24.09.2024    857    gull22    2    

8

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

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

17.09.2024    4364    vatkir    15    

10

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Упрощенное обновление конфигураций 1С (предпочтительно самописных) с помощью батника и Яндекс Диска (по публичной ссылке)

1 стартмани

22.08.2024    554    0    user1694357    0    

4

Обновление 1С Системный администратор Россия Абонемент ($m)

На ИТС есть статья, в которой поверхностно описан процесс автоматического обновления тонких клиентов. В качестве примера, что логично, представлены методы конфигурации 1С. Но, в отличие от того же управления списками баз, для обновления не требуется хранить информацию, потому я решил переписать код на php, чтобы можно было отвязаться от 1С. Не работает для файловых баз, подключенных как File="ПутьКПапкеБазы"; (а жаль), для опубликованных файловых - работает.

1 стартмани

20.08.2024    679    MikeSh    10    

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