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

Публикация № 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    5947    8    moolex    11    

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

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

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

1 стартмани

08.06.2021    568    1    XACHAPURIN    7    

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

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

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

1 стартмани

22.05.2021    1510    3    Rustig    16    

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

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

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

4 стартмани

30.04.2021    1750    2    Rustig    3    

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

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

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

2 стартмани

06.03.2021    4239    5    pila86    16    

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

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

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

5 стартмани

23.04.2021    1186    2    pimenushka    2    

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

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

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

2 стартмани

22.04.2021    3324    4    roma_semenov79    0    

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

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

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

1 стартмани

22.04.2021    1401    8    user802597    1    

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

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

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

1 стартмани

04.07.2019    10354    18    riposte    6    

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

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

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

2 стартмани

20.04.2021    1012    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    1409    2    kser87    8    

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

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

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

5 стартмани

21.12.2020    5825    21    huxuxuya    11    

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

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

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

1 стартмани

14.04.2021    1222    3    kuzyara    5    

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

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

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

1 стартмани

14.04.2021    2019    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    48020    641    hmanubis    67    

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

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

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

1 стартмани

05.04.2021    1463    0    a.zernin    1    

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

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

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

1 стартмани

21.03.2021    2259    2    Yashazz    3    

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

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

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

1 стартмани

09.03.2021    1311    1    ilyam23    5    

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

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

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

1 стартмани

05.03.2021    1312    3    vov4ik1212    0    

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

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

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

1 стартмани

03.03.2021    2035    12    pyrkin_vanya    13    

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

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

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

1 стартмани

28.02.2021    1392    5    t278    1    

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

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

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

1 стартмани

24.02.2021    2732    4    xl_yaz    12    

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

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

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

1 стартмани

16.02.2021    1351    1    bme    2    

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

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

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

3 стартмани

10.02.2021    1105    0    Jimbo    9    

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

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

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

1 стартмани

10.02.2021    2116    0    umni4ka    5    

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

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

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

1 стартмани

04.02.2021    5590    46    Sergspectr    35    

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

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

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

1 стартмани

02.02.2021    1586    1    nemec    0    

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

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

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

1 стартмани

01.02.2021    1616    14    o'neill    5    

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

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

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

1 стартмани

26.01.2021    2494    20    Reaper_1C    2    

Сравнение функций/процедур из расширения с функциями/процедурами из конфигурации

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

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

1 стартмани

18.01.2021    1774    4    Wilka    1    

DT2CF - Экстрактор конфигурации из дампа информационной базы

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

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

10 стартмани

21.12.2020    2799    5    SerVer1C    5    

FormCodeGenerator Программная доработка форм. Часть 1 (Режим работы "Палитра")

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

Данная публикация является описанием функционирования обработки "FormCodeGenerator " в режиме генерирования кода "на лету", без особых заморочек, данный режим идеально подходит для того что бы запустить, потыкать и забыть :)

1 стартмани

14.12.2020    4837    76    huxuxuya    9    

Работа с сериализатором XDTO

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

Отладочное расширение для просмотра объектов, преобразованных в XML, с помощью сериализатора XDTO, а также для выгрузки в xml.

1 стартмани

06.12.2020    2076    1    simon_sidoruk    5    

Обновление предопределенных данных

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

Обновляет предопределенные элементы, созданные в конфигураторе. Тестировалось на платформе 8.3.15.1869

1 стартмани

01.12.2020    1972    7    user618575_VladimirGluhov.1c    2    

Автозапуск документов, справочников, обработок, отчетов, журналов при запуске программы 1С

Универсальные обработки Расширения v8 8.3.14 1cv8.cf Розница УНФ БП3.0 УТ11 КА2 ЗУП3.x Абонемент ($m)

Универсальное расширение "При запуске программы". Предназначено для автоматического запуска документов, справочников, отчетов, обработок, журналов документов при запуске программы 1С.

1 стартмани

29.11.2020    2300    10    sashs1980    2    

[Расширение] Обход ошибки при записи документов через COM-соединение в 1С Бухгалтерии 3.0.84.42

Обмен данными 1С Расширения v8 v8::БУ БП3.0 Россия БУ Абонемент ($m)

При создании и записи документов "Поступление (акты, накладные, УПД)" (возможно и других) через COM-соединение из другой базы возникает ошибка:

1 стартмани

25.11.2020    2811    13    on_this_day    4    

Отчет по Глобальным командам и Подпискам на события в конфигурации с возможностью отбора по Документам и Справочникам

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

Позволяет "посмотреть" все "подписки на события" и "глобальные команды" и при необходимости "отфильтровать" их по нужному объекту в конфигурации - "Документу" или "Справочнику". Поможет понять, где ещё может "обрабатываться" объект...

1 стартмани

23.11.2020    1908    3    AnryMc    5    

Шаблон расширения с функцией сохранения настроек

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

Удобный механизм для быстрого создания сохраняемых настроек в расширении.

1 стартмани

20.11.2020    1522    0    pm74    1    

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

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

В этой статье поделюсь некоторыми изысканиями о внутреннем устройстве стандартной подсистемы "Обновление версии ИБ" и расскажу, как разработать свою подсистему, в которой будет работать отчёт с описанием изменений.

1 стартмани

20.11.2020    5579    10    stas_ganiev    4    

Подготовка к 1С:Совместимо. Инструментарий в помощь программисту

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

Инструментарий в помощь программисту для подготовки конфигурации к сертификации 1С:Совместимо.

1 стартмани

16.11.2020    2171    3    BrainAttack    0    

Автоматическое формирование должностных инструкций

Загрузка и выгрузка в Excel Расширения v8 ЗУП3.x Россия УУ Абонемент ($m)

Готовый механизм автоматизации создания должностных инструкций по шаблонам. Заполнение шаблонов Word из Excel, сохранение в БД. Расширение разработано для ЗУП 3.1.

2 стартмани

10.11.2020    2311    5    sizeoff    0