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

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.

См. также

SALE! 5%

Обновление для КА 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 18905 руб.

01.04.2020    137800    658    346    

230

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

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

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

29.11.2023    629    shestopalovpro    3    

4

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

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

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

1 стартмани

20.11.2023    271    1    IvanTerentev    0    

1

Ошибка SDBL "Нет таблицы или отсутствует RefSelf"

Инструменты администратора БД Обновление 1С Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

15.11.2023    972    Yashazz    0    

8

УТ 11.5: Преобразование дополнительных реквизитов после перехода с УТ 10.3

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

После перехода с конфигурации УТ 10.3 на УТ 11.5 дополнительные реквизиты номенклатуры оказались недоступными для редактирования. Обработка позволяет исправить эту проблему.

2 стартмани

31.10.2023    250    1    pentanom    0    

0

Инструкция по переносу объектов из расширения Cfe в основную конфигурацию Cf.

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

Широко разрекламированная кампания 1С по развитию расширений привела к тому, что разработчики погнались за мнимым удобством обновлений и вместо гармоничного развития продукта рождается калека. Пришлось столкнуться с разработкой, когда к конфигурации прикрутили 7 расширений. В чем подвох: - Отладка и так достаточно сложна, а при такой разработке становится практически невозможной. - Проверить и отладить отчет из конфигуратора нереально, т.к. часть объектов находится по разным расширениям.

29.10.2023    3931    almas    0    

48

Калькулятор обновлений 1С конфигураций на HTML с пополнением через EXCEL

Обновление 1С Абонемент ($m)

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

1 стартмани

02.10.2023    2793    0    erus88    9    

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

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

- Значение не является значением объектного типа (ТелоМетода)
- Некорректный поиск переопределенных методов в расширении
nagaitseff; +1 Ответить
34. SoFluffy 11.01.23 13:50 Сейчас в теме
Что-то подобное тоже писал "на коленке" для работы, т.к. возможностей платформы не хватает...
Тут работа весьма внушительнее, автору респект! 👍
36. nagaitseff 167 17.01.23 06:55 Сейчас в теме
(33)
Теперь все просто супер, спасибо.
37. balakin 02.02.23 20:17 Сейчас в теме
Уважаемый автор, может ли обработка анализировать изменения в расширении элементов форм и разных свойств? Или только процедуры и функции?
38. xnd 86 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
Оставьте свое сообщение