Анализ изменений в расширении при обновлении основной конфигурации

10.02.23

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

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

При доработке конфигураций, находящихся на поддержке через расширения возникают проблемы при выпуске вендором новых версий основной конфигурации. Часть проблем можно решить, используя директиву &ИзменениеиКонтроль, однако при использовании директив &Вместо,&После и &Перед нет типовых средств, позволяющих понять, а не потеряло ли расширение актуальность, не требуется ли доработка переопределенных методов.
Также типовая проверка применимости не учитывает переопределение событий форм и их реквизитов (вместо переопределения методов модуля).

Предлагаемое решение представляет собой внешнюю обработку (CfeUpdater.epf), позволяющую увидеть и исправить все проблемные и потенциально проблемные места в расширении, связанном с основной конфигурацией при обновлении последней на новый релиз.

Сама обработка и исходный код выложены доступны тут:  https://github.com/xnd1124/CfeUpdater

Для работы обработки необходимо наличие на компьютере программы, позволяющей выполнять трехстороннее сравнение текстов. Примером таких программ может быть KDiff3, P4Merge.

Обработка использует для разбора текстов с помощью регулярных выражений внешнюю компоненту https://github.com/alexkmbk/RegEx1CAddin и работает как Windows, так и в Linux системах.

Как пользоваться (на примере Linux):

  1. В конфигураторе выгрузить в файлы ( в отдельные каталоги)

 

   

 

  •  Основную конфигурацию до обновления
  •  Новый релиз основной конфигурации
  •  Расширение, в котором ведется доработка основной конфигурации

  2. В любой конфигурации, содержащей БСП, в режиме предприятия открыть обработку CfeUpdater.epf

При самом первом запуске появятся окна о разрешении подключения бинарного файла. Это связано с использованием внешней компоненты по работе с регулярными выражениями https://github.com/alexkmbk/RegEx1CAddin.

 

 

Если все прошло удачно, то в первый раз появится окно, уведомляющее об успешной регистрации компоненты (при дальнейшей работе окна появляться не будут)

 

 

 

  3. По гиперссылке "Настройки" открыть панель настроек и указать путь к программе сравнения текстов (например Kdiff3)

 

 

 

P.S. Если в качестве программы выбрана Kdiff3 или P4merge, то программа автоматически подставит параметры командной строки, необходимые для запуска процедуры сравнения. Для остальных программ, параметры требуется прописать вручную

 

  4. Указать путь к трем предварительно выгруженным каталогам с исходным кодом 

   

  5. Нажать кнопку "Анализ", в результате чего выведется дерево, содержащие все моменты, требующие внимания при обновлении

 

 

   6. Для детального анализа изменений в методе - после двойного клика на строке откроется окно с детальным сравнением различий в методе

 

 

Расширения обновление cfe.

См. также

Обновление для КА 1.1, ЗУП 2.5, БУХ 2.0: НДС, ЕФС-1, Расчет страховых взносов, Мобилизация, Статистика, Электронные трудовые книжки, 2-НДФЛ, Регламентированная отчетность, Кадровый учет, Прослеживаемость импортных товаров

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

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

19900 руб.

01.04.2020    140621    678    352    

232

Автоматическое подтверждение легальности обновления базы или как обновить 100 типовых баз 1С за 5 часов

DevOps и автоматизация разработки Обновление 1С Платформа 1С v8.3 Конфигурации 1cv8 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Расширение для конфигураций 1С для автоматического подтверждения легальности обновления и выполнения обработчиков обновления при пакетном автоматическом обновлении большого числа баз 1С. А также сам модуль обработки по автоматическому обновлению баз.

2 стартмани

08.05.2019    24213    54    VPanin56    26    

26

Ссылочная константа содержит недопустимый ссылочный номер таблицы

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

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

19.03.2024    835    sergey.skirdin    3    

13

Скрипт для обновления базы с расширением из хранилища

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

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

22.01.2024    1117    ke.92@mail.ru    2    

24

Многопоточное обновление 1С: Управление холдингом

Обновление 1С 8.3.14 1С:Управление холдингом Абонемент ($m)

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

1 стартмани

10.01.2024    3179    saver77    18    

24

Не обновляется типовая конфигурация 1С через конфигуратор

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

Столкнулся с проблемой. Нужно было поднять до текущего релиза Розницу 2.3. Обновлял по старинке, через конфигуратор (база клиент-серверная). Указывал логин и пароль, ждал скачивания обновления и обновлял. Но после накатывания 5 релизов следующий устанавливаться не хотел, а точнее конфигуратор гордо говорил, что обновлений больше нет. Решение нашел здесь на форуме и хочу зафиксировать. Чтобы самому не забыть и передать опыт начинающим.

29.11.2023    1351    shestopalovpro    4    

7

Принудительный запуск дополнительных процедур обработки данных после обновления

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

Ручной запуск процедур обработки обработчиков после обновлений. Может быть полезно стажерам, консультантам, разработчикам, администраторам, всем, кто обновляет информационные базы.

1 стартмани

20.11.2023    603    6    IvanTerentev    0    

2
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. TrinitronOTV 14 31.12.22 08:14 Сейчас в теме
А где файлы, чтобы пользоваться вашей обработкой по анализу изменений в расширении?
2. minarenko 31.12.22 10:17 Сейчас в теме
(1) зачем пользоваться? картинки посмотрел и хватит
обработка тут https://github.com/xnd1124/CfeUpdater
6. TrinitronOTV 14 01.01.23 17:26 Сейчас в теме
(2) Спасибо, не обратил внимание на ссылку на GitHub
3. SergeyMordvin 1572 01.01.23 15:19 Сейчас в теме
А в чем плюсы по сравнению с платформенным подключением KDiff3?
4. xnd 90 01.01.23 15:43 Сейчас в теме
(3)
1. Платформа не отслеживает изменения в методах, расширенных при помощи аннотаций после, перед, вместо
2. Платформа не отслеживает расширение обработчиков событий формы и ее реквизитов через расширение самого обработчика, а не его метода (хотя сама рекомендует расширить обработчик)
3. До 8.3.22 платформа не отслеживала удаление расширяемого метода или изменение количества аргументов.
Kolunya; Светлый ум; cleaner_it; +3 Ответить
5. SergeyMordvin 1572 01.01.23 15:46 Сейчас в теме
(4) спасибо, теперь понятнее
7. JohnyDeath 301 04.01.23 12:38 Сейчас в теме
Может пойти чуть дальше и сделать так, чтобы обработка сама выгружала нужные файлы cf и cfe на исходники?
Т.е. наверное надо будет в настройках указать:
1. Путь к базе, откуда будет выгружаться cf и там же храниться нужное расширение
2. Имя нужного расширения
3. Путь к базе с новым cf. Или сам новый cf
35. teller 16.01.23 07:02 Сейчас в теме
(7) кнопку сделать фсе красиво пропустил :)
8. nagaitseff 171 09.01.23 08:35 Сейчас в теме
А что означает? Ошибка поиска метода "ИмяМетода" найдено более одного определения.
9. xnd 90 09.01.23 08:44 Сейчас в теме
(8) Это значит что регулярка, ищущая дополненный в расширении метод в основной/расширенной конфигурации нашла более одной процедуры/метода.
Не могли бы вы выслать текст модуля в расширении, в старой конфигурации и в новой, я проверю не является ли это ошибкой.
10. nagaitseff 171 09.01.23 08:47 Сейчас в теме
(9) в старой и новой конфигурации этот метод не менялся, так как объект создан нами в конфигурации, вызов методов тоже в конфигурации, а сам код написан в расширении.
11. xnd 90 09.01.23 08:48 Сейчас в теме
(10) ну что то же заставило алгоритм начать его искать
12. nagaitseff 171 09.01.23 08:49 Сейчас в теме
(11) дайте адрес электронной почты, вышлю код.
13. пользователь 09.01.23 08:50
Сообщение было скрыто модератором.
...
14. nagaitseff 171 09.01.23 08:51 Сейчас в теме
(11) сюда скину, сообщение скрыто.
15. nagaitseff 171 09.01.23 08:56 Сейчас в теме
16. nagaitseff 171 09.01.23 08:57 Сейчас в теме
единственно бизнес процессов много и может одинаковые названия методов
17. xnd 90 09.01.23 09:14 Сейчас в теме
(16) в модуле расширения нет ни одного метода, расширенного при помощи директив Перед|Вместо|После|ИзменениеИКонтроль
сравнение даже не запускается - возможно приведен не весь текст?
18. nagaitseff 171 09.01.23 09:17 Сейчас в теме
(17) упс, забыл скопировать директиву
Прикрепленные файлы:
Расширение.txt
19. xnd 90 09.01.23 09:22 Сейчас в теме
(18) в расширении присутствует метод ПриСозданииЗадач с точно таким же названием как и в основной конфигурации, мне кажется он должен иметь префикс, иначе будет ошибка двойного определения процедуры?
20. nagaitseff 171 09.01.23 09:23 Сейчас в теме
(19) да, есть префикс с названием организации, я его убрал здесь
21. xnd 90 09.01.23 09:38 Сейчас в теме
(20) воспроизвел - да в основной конфигурации есть несколько похожих методов - надо искать именно переопределенный - выпущу исправительный релиз
22. nagaitseff 171 09.01.23 09:51 Сейчас в теме
(21) спасибо, буду ждать Вашего релиза.
23. xnd 90 09.01.23 10:01 Сейчас в теме
(22) выложил новый релиз на github
nagaitseff; +1 Ответить
24. nagaitseff 171 09.01.23 10:02 Сейчас в теме
(23) ничего себе как быстро, спасибо
25. nagaitseff 171 09.01.23 11:19 Сейчас в теме
(23) ругается теперь на другой метод ((
26. xnd 90 09.01.23 11:20 Сейчас в теме
(25) посмотрите мой профиль на github, перешлите модули в телегу
27. xnd 90 09.01.23 15:58 Сейчас в теме
(25) сегодня будет еще один релиз где данная ошибка даже если будет возникать не будет прерывать выполнение и будет поправлена
29. xnd 90 09.01.23 16:43 Сейчас в теме
30. nagaitseff 171 10.01.23 06:42 Сейчас в теме
(29)
Значение не является значением объектного типа (ТелоМетода)
{ВнешняяОбработка.АнализРасширенияПриОбновлении.Форма.Форма.Форма(538)}:Возврат ТекстСПечатаемымиСимволами(Метод.ТелоМетода);
{ВнешняяОбработка.АнализРасширенияПриОбновлении.Форма.Форма.Форма(512)}:ИначеЕсли ТелоМодуля(ПервыйМетод) <> ТелоМодуля(ВторойМетод) Тогда
{ВнешняяОбработка.АнализРасширенияПриОбновлении.Форма.Форма.Форма(501)}:Строка.РезультатСравненияМетодов =
{ВнешняяОбработка.АнализРасширенияПриОбновлении.Форма.Форма.Форма(148)}:СравнитьМетоды();
31. xnd 90 10.01.23 09:21 Сейчас в теме
32. xnd 90 10.01.23 09:26 Сейчас в теме
(30) проверьте тестовый релиз 1.0.1.4 (тут ссылки проходят модерацию)
33. xnd 90 10.01.23 12:36 Сейчас в теме
Выпустил релиз 1.0.1.5

Исправлены ошибки:

- Значение не является значением объектного типа (ТелоМетода)
- Некорректный поиск переопределенных методов в расширении
nagaitseff; +1 Ответить
34. SoFluffy 11.01.23 13:50 Сейчас в теме
Что-то подобное тоже писал "на коленке" для работы, т.к. возможностей платформы не хватает...
Тут работа весьма внушительнее, автору респект! 👍
36. nagaitseff 171 17.01.23 06:55 Сейчас в теме
(33)
Теперь все просто супер, спасибо.
37. balakin 02.02.23 20:17 Сейчас в теме
Уважаемый автор, может ли обработка анализировать изменения в расширении элементов форм и разных свойств? Или только процедуры и функции?
38. xnd 90 02.02.23 20:20 Сейчас в теме
(37) анализируются в том числе и расширения методов форм и элементов, а не только модулей
39. PerlAmutor 129 07.03.23 07:09 Сейчас в теме
В качестве развития идеи предлагаю оформить обработку в виде .os (onescript) или python скрипта для внедрения в автоматизированные сборки проектов на git.
Дмитрий74Чел; +1 Ответить
40. Lancelot-2M 115 16.03.23 16:39 Сейчас в теме
Функция ЭтоСобственныйОбъектРасширения(ИмяФайла) не срабатывает корректно. В xml файлах объекта и расширения нет строк "<Ob jectBelonging>". Версия обработки 1.0.1.10, хотя заголовок формы 1.0.1.9, платформа 8.3.21.1622
Оставьте свое сообщение