Проверка кода расширения (#Вместо, #ИзменениеИКонтроль) на наличие изменений в основной конфигурации

Публикация № 1456686

Разработка - Инструментарий разработчика - Прочие инструменты разработчика

Все чаще начинаешь использовать в расширении аннотации #ИзменениеИКонтроль, и что говорить, даже аннотацию #Вместо). И как же быть спокойным, что после обновления заимствованные процедуры не изменились? Некоторые скажут, что платформа контролирует изменение процедур в аннотации #ИзменениеИКонтроль, но платформа нас научила на слово не верить. Каждый раз сравнивать модули руками довольно трудозатратно, для оптимизации этого процесса получилось следующее решение.

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

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

На входе нам нужно три выгрузки конфигурации в файлы:

1. Выгрузка конфигурации до обновления

2. Выгрузка конфигурации после обновления

3. Выгрузка проверяемого расширения

Выгрузка делается в режиме конфигуратора (Конфигурация - Выгрузка конфигурации в файл), в обработке указываются просто пути к данным каталогам.

Суть алгоритма проста, получаем список процедур из расширения с аннотацией #ИзменениеИКонтроль, #Вместо, после чего производим сравнения данных процедур новой и старой конфигурации, выявляя факт изменения.

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

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

Ниже опишу более детально как работает обработка, на примере

1. Выгружаю каталог по описанию выше

 

 

2. Указываем пути к выгруженным файлам

 

 

3. Для теста в расширение были заимствованы процедуры с директивой #Вместо

 

 

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

 

 

 

5. При сравнении получаем следующий результат

 

 

P.S Также побудили к поиску решения по данному вопросу "жаркие" споры в данной публикации, значит, для читателей актуален данный вопрос.

Указание аннотаций #Вместо, #ИзменениеИКонтроль, условно, остальные аннотации легко добавить в поиск.

Анализ изменений тестировался на конфигурации УНФ, но обработка не привязана к какой либо версии конфигурации, важны только файлы выгрузок.

Платформа 8.3.18.1289.

Скачать файлы

Наименование Файл Версия Размер
Проверка кода расширения (#Вместо, #ИзменениеИКонтроль) на наличие изменений в основной конфигурации.:

.epf 7,62Kb
1
.epf 7,62Kb 1 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Kolunya 7 09.06.21 18:03 Сейчас в теме
А кто мешает пользоваться DiffMerge из Конфигуратора?
Очень удобно всё показывает
Прикрепленные файлы:
6. con-men 48 10.06.21 09:04 Сейчас в теме
(1) Да, это как один из вариантов дальнейшего анализа процедуры по которой было предупреждение. Главной задачей было быстро выявить такие процедуры
2. Yashazz 3800 09.06.21 18:05 Сейчас в теме
Да. Один из множества велосипедов, работающих с текстами модулей, выгруженными в файлы. Ценность публикации нулевая, т.к. инструкций о том, как выгружать в файлы, множество, а самое интересное, т.е. методика сравнения и анализа кода, не раскрыта совершенно.
В конце концов, есть банальное сравнение файлов. Так что нэээ, дорогой товарищ, не айс.
5. con-men 48 10.06.21 09:02 Сейчас в теме
(2) Не было основной задачи сравнивать досконально тексты модулей, для этого существует множество инструментов, Главное чтоб был сигнал для пользователя, что та или иная процедура изменилась, а дальше он уже анализирует, у меня при каждом обновлении не валятся предупреждения десятками об изменениях в процедурах, это скорей исключение, а вот просто определить что все заимствованные процедуры остались неизменны при каждом обновлении для меня проблема
3. infosoft-v 531 09.06.21 19:45 Сейчас в теме
Ровно для этого же, о чем писал автор, служит проект diff3cf https://github.com/bia-technologies/diff3cf
Тройное сравнение с выводом результата в виде diff в формате HTML
Не устаю нахваливать этот замечательный продукт от BIA Technologies.
borodatii; +1 Ответить
7. con-men 48 10.06.21 09:10 Сейчас в теме
(3) На глаза попадался, но хотелось своего, родного, 1с-нова)
4. tambu 35 10.06.21 04:49 Сейчас в теме
Плюсанул, к сожалению платформа не предоставляет такого инструмента, а он нужен. Мы пошли другим путем - посадили робота (RPA, благо он у нас есть), он после обновления базы создает новое расширение, в которое заимствует все процедуры и функции используя наше расширение, как образец. Затем уже расширения можно сравнить. Но Ваше решение позволяет отбросить "ложные срабатывания".
Оставьте свое сообщение

См. также

Внешний регламент для 1С Промо

Прочие инструменты разработчика v8 Россия Абонемент ($m)

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

1 стартмани

05.03.2020    5926    8    moolex    11    

Удаление расширения bat (пакетное удаление расширений)

Расширения Чистка базы v8::УФ 1cv8.cf Абонемент ($m)

Пакетное удаление расширений через cmd

1 стартмани

08.06.2021    561    1    XACHAPURIN    7    

Шаблоны кода (управляемые формы)

Практика программирования Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Шаблоны кода на управляемых формах.

1 стартмани

22.05.2021    1498    3    Rustig    16    

Заполнение чека ККМ из Реализации или Заказа через штрихкод документа

Обработка документов Кассовые операции Розничная торговля Сканер штрих-кода Адаптация типовых решений Механизмы оперативного учета Расширения v8 ERP2 УТ11 КА2 Абонемент ($m)

Заполняем Чек ККМ товарами из Реализации товаров или Заказа клиента - сканированием штрихкода Реализации или Заказа клиента.

4 стартмани

30.04.2021    1731    2    Rustig    3    

Подсистема "Показатели объектов" Промо

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

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

2 стартмани

06.03.2021    4224    5    pila86    16    

Консоль кода и дескриптор объектов

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

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

5 стартмани

23.04.2021    1183    2    pimenushka    2    

Конструктор процедур для создания дополнительных реквизитов и сведений для Бухгалтерии 3.0

Прочие инструменты разработчика v8 БП3.0 Россия Абонемент ($m)

Конструктор предназначен для оперативного создания процедур, программно создающих дополнительные реквизиты и сведения объектов. Предназначен для использования в 1С: Бухгалтерии Предприятия 3.0. Может быть подключен в качестве внешней обработки. В конструкторе имеется краткая справка по использованию.

2 стартмани

22.04.2021    3313    4    roma_semenov79    0    

Вспомогательный инструмент для быстрого просмотра объектов метаданных и ролей

Прочие инструменты разработчика Структура метаданных Роли и права v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Просмотр содержимого объектов, движений, регистров, констант и прочего. Анализ роли по объектам доступа и наоборот объекта по ролям доступа. Интуитивно понятный интерфейс, универсальный (под любую, даже самописную базу), под обычные и управляемые приложения.

1 стартмани

22.04.2021    1390    8    user802597    1    

Markdown-editor в 1С (с сохранением в HTML) Промо

Универсальные обработки Прочие инструменты разработчика v8::УФ 1cv8.cf Абонемент ($m)

В этой обработке вы пишете свой текст, используя синтаксис Markdown, а на выходе получаете чистый HTML-код, избавленный от JS-библиотеки, которая его сформировала. Совместим с Webkit и IE.

1 стартмани

04.07.2019    10348    18    riposte    6    

Отладка внешних печатных форм, когда не открывается даже временный файл

Универсальные печатные формы Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

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

2 стартмани

20.04.2021    1011    2    Miracle180882    0    

Автоматические скидки для наборов в УНФ

Розничная торговля Ценообразование, анализ цен Расширения v8 УНФ УУ Абонемент ($m)

Решение вопроса по расчёту автоматических скидок для наборов в УНФ.

1 стартмани

18.04.2021    893    0    delta    0    

Однопальцевое преобразование "одинэсного" запроса в запрос на SQL

Производительность и оптимизация (HighLoad) Прочие инструменты разработчика v8 v8::Запросы 1cv8.cf Абонемент ($m)

Обработка предназначена для преобразования "одинэсных" запросов в запросы на SQL средствами встроенного языка. Разработка не претендует на то, чтобы на 100% повторить то, что разработчики видят при трассировке запросов в инструментах вроде Profiler. Но во многих случаях результат преобразования можно будет без дополнительной ручной обработки выполнить, например, в Managment studio. Актуальные ограничения и проблемы преобразователя описаны в статье. Работает с версией платформы не ниже 8.3.10.

2 стартмани

17.04.2021    1406    2    kser87    8    

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5 Промо

Практика программирования Адаптация типовых решений Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

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

5 стартмани

21.12.2020    5805    21    huxuxuya    11    

Свойства общих модулей

Практика программирования Прочие инструменты разработчика v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Надоело каждый раз искать, какие общие модули глобальные? какие повторно используемые? хочется взглянуть на все контексты выполнения?

1 стартмани

14.04.2021    1220    3    kuzyara    5    

Отладка обработок с плюшками

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Расширение для отладки внешних отчетов и обработок. Плюшки - отключение “отвлекающего” функционала, мешающего процессу разработки.

1 стартмани

14.04.2021    2006    5    pparshin    1    

Контроль заполнения реквизита ИНН в справочнике Контрагенты

Расширения Анализ учета v8 v8::БУ БП3.0 Финансовые услуги, инвестиции Россия Абонемент ($m)

ИНН имеет любое юридическое лицо, зарегистрированное на территории РФ. Расширение устанавливает контроль на заполненность реквизита ИНН в справочнике Контрагенты.

1 стартмани

05.04.2021    936    2    andreyR3    0    

Консоль Программиста 8.3. Управляемые формы, тонкий/толстый клиент Промо

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка в помощь программисту - тестировщику. Консоль позволяет выполнять код 1С на встроенном языка, по сути является универсальной внешней обработкой

2 стартмани

22.08.2013    48015    641    hmanubis    67    

Динамическая модификация форм в расширении

Практика программирования Расширения v8 ERP2 Абонемент ($m)

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

1 стартмани

05.04.2021    1463    0    a.zernin    1    

Простое логирование действий системы

Статистика базы данных Администрирование данных 1С Расширения v8 1cv8.cf Абонемент ($m)

Маленькое расширение для быстрой организации записи и просмота логов действий системы

1 стартмани

21.03.2021    2255    2    Yashazz    3    

Мгновенное отображение HTML-страницы исходя из введённого HTML-кода

Прочие инструменты разработчика v8 Платформа 1C v8.2 1cv8.cf Абонемент ($m)

Обработка поможет найти ошибки в коде HTML и правильно отобразить создаваемый документ. Просто правьте код в нижнем поле и сразу получайте результат в верхнем.

1 стартмани

09.03.2021    1308    1    ilyam23    5    

Работа с My SQL через ODBC

Прочие инструменты разработчика v8 1cv8.cf Россия Абонемент ($m)

Работа с My SQL через ODBC. Разбираем базовые принципы соединения с MySQL и получения данных. Тестировалось на платформе 8.3.18.1208

1 стартмани

05.03.2021    1309    3    vov4ik1212    0    

Универсальный "сравниватель" объектов

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Сравнение реквизитов и табличных частей двух объектов 1С (справочники, документы), чтобы увидеть разницу в значениях.

1 стартмани

03.03.2021    2032    12    pyrkin_vanya    13    

"Все функции" только для объектов расширений

Расширения v8 8.3.14 1cv8.cf Абонемент ($m)

Показывает только объекты ваших расширений. Быстрый доступ к вашим объектам, не нужно постоянно нажимать "Функции для технического специалиста" ("Все функции")

1 стартмани

28.02.2021    1388    5    t278    1    

Вспомогательные таблицы - универсальный инструмент хранения таблиц любой структуры (константы, параметры обработок и т.д.)

Прочие инструменты разработчика v8 Россия Абонемент ($m)

Данный механизм позволит: - Избавиться от поиска по номеру или коду. - Создать таблицу настроек. - Создать таблицу маппинга. - и многое другое... Ограничение одно - ваша фантазия.

1 стартмани

24.02.2021    2725    4    xl_yaz    12    

Создание и поддержка разных редакций (Demo, Lite, Pro и пр.) модулей, отчетов и обработок

Прочие инструменты разработчика v8 Абонемент ($m)

В статье предлагается один из возможных подходов к автоматизации создания и поддержки разных редакций (Demo, Lite, Pro и пр.) модулей, отчетов и обработок. Подход может быть полезным для авторов публикаций с коммерческими разработками.

1 стартмани

16.02.2021    1350    1    bme    2    

Дата запрета наоборот, или Запрет менять все документы с даты

Расширения Обработка документов v8 ERP2 БП3.0 Россия Абонемент ($m)

В связи с переходом с БП 3 на Erp c нового года и было придумано это расширение. Бухгалтер может менять прошлый год в БП 3, но не может создавать/менять документы этого года. Получается дата запрета не прошлого периода, а текущего-будущего. В версии 2 : Добавлена дата в регистр сведений, а так же список исключаемых документов.

3 стартмани

10.02.2021    1103    0    Jimbo    9    

Добавляем гиперссылку на форму с командой без добавления формы в расширение

Расширения Работа с интерфейсом v8 УНФ Абонемент ($m)

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

1 стартмани

10.02.2021    2112    0    umni4ka    5    

Генератор кода схемы компоновки данных (СКД)

Прочие инструменты разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

Формирование кода для программного создания схемы компоновки данных (СКД)

1 стартмани

04.02.2021    5577    46    Sergspectr    35    

Автоматизированная очистка нетиповой конфигурации от //{{MRG

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Удаление //{{MRG из конфигурации автоматизированным способом.

1 стартмани

02.02.2021    1582    1    nemec    0    

Запрет просмотра оборотов по 70 счету

Расширения Зарплата Роли и права v8 v8::БУ v8::Права БП3.0 Россия БУ Абонемент ($m)

Расширение, запрещающее выбранным пользователям формировать отчеты по 70 счету для конфигурации БП 3.0.

1 стартмани

01.02.2021    1615    14    o'neill    5    

Консоль текстов модулей для управляемых форм

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

26.01.2021    2490    20    Reaper_1C    2