Контроль доработок конфигураций

13.04.21

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

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

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

Наименование Файл Версия Размер
Контроль доработок конфигураций:
.cf 174,04Kb
40
.cf 1.1 174,04Kb 40 Скачать

Основные возможности

  • Отображение различий объектов метаданных/модулей конфигураций с помощью отчетов на СКД со всеми возможностями кастомизации. Возможность просмотра различий текстов запросов динамических списков, наборов данных СКД.

  • Полуавтоматическая настройка объединения модулей, позволяющая уменьшить количество монотонной работы по расставлению флажков у процедур/функций в объединяемых модулях
  • Отображение доработок, "потерянных" в процессе обновления

Анализируемые объекты

Подробный анализ доработок предусмотрен для большинства объектов метаданных. Анализируются все открытые модули, управляемые формы, реквизиты, табличные части, команды, роли, подсистемы, схемы компоновки данных, в общем все что выгружается в файлы *.xml или *.bsl в пригодном для анализа виде.

Объекты, исключаемые из подробного анализа (помечены флажком "Неподдерживаемый"): табличные документы, бинарные объекты (в т.ч. обычные, неуправляемые формы), текстовые макеты, содержимое справки, картинки, архивы и т.п. Для таких объектов фиксируется только факт отличия от типового объекта, без подробностей. Если такой объект будет полностью заменен типовым при обновлении релиза, это будет отображено в отчете "Потерянные изменения объектов метаданных", но при частичной потере доработок объекта отчет его не покажет, так как он будет по прежнему отличаться от типового.

Терминология

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

Например для такого куска кода

...
Запрос = Новый Запрос;

//Иванов 20.03.2019
Запрос.УстановитьПараметр("ДокументРасчета", ДокументРасчета)
//Иванов 20.03.2019

Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);
...

маркером является строка "Иванов".

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

Для улучшения качества анализа доработок нужно заполнить набор маркеров и привязать его к обновляемой базе

Запуск базы "Контроль доработок конфигураций"

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

Если вы забудете сделать это, программа не запустится

 

Подготовка к обновлению релиза типовой конфигурации

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

  • Типовую конфигурацию старого релиза
  • Типовую конфигурацию нового релиза
  • Доработанную конфигурацию

Например мы обновляем доработанную конфигурацию ЗУП 3.1.9.207 на 3.1.10.223. Нам понадобятся выгруженные в каталоги конфигурации:

  • ЗУП 3.1.9.207 типовая
  • ЗУП 3.1.10.223 типовая
  • ЗУП 3.1.9.207 доработанная

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

ВНИМАНИЕ! Выгрузка конфигураций в файлы должна проводиться на одной и той же версии платформы!

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

После выгрузки конфигураций в файлы открываем базу "Контроль доработок конфигураций".

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

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

Записываем документ, после этого нажимаем "Заполнить". Поиск различий типовых релизов может занять достаточно продолжительное время, для указанных конфигураций на моем i3/16Gb это примерно полчаса. Если меняется не 3 разряд релиза, а только 4, например обновление с ЗУП 3.1.10.223 на 3.1.10.253, то заполнение различий происходит значительно быстрее, за 5-10 минут.

После заполнения различий сохраняем документ и выбираем его.

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

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

 

Просмотр различий конфигураций

При заполнении документ "Фиксация различий" сравнивает выгруженные файлы конфигураций. Если файлы различаются, то программа пытается определить в чем именно заключаются различия и сохранить эту информацию. Кроме того сохраняется текст отличающихся файлов, а для текстов модулей - отдельно сохраняется текст каждой процедуры/функции. Всю эту информацию можно затем увидеть в самом документе или в отчетах.

Пример определения различий в модулях:

 

Для каждого модуля определяются добавление/изменение/удаление процедур и функций, а также количество маркеров в каждой процедуре/функции. Нажав на гиперссылку "Сравнить тексты" можно увидеть чем конкретно отличаются тексты модулей.

Также можно просмотреть отличия всего модуля целиком:

Пример определения различий в метаданных ("Внутренний путь" - это иерархия в xml-файле):

Для удобства отображения в документе "Фиксация различий" есть фильтры по виду метаданных, виду различий (Добавлен/Изменен/Переименован/Удален) и типу объектов (равно как и Ctrl+F по любой колонке). Это может быть полезно если мы хотим увидеть например сразу все формы, которые были изменены интерактивно (не модули форм, а именно сами формы). Такой возможности Конфигуратор не предоставляет.

Различия конфигураций можно посмотреть также в отчетах "Различия в модулях" и "Различия в метаданных", которые можно открыть из рабочего стола (отчеты открываются с уже заполненными параметрами). Эти отчеты созданы на СКД, позволяют менять настройки, сохранять новые варианты. Сохраненные варианты отчетов можно открывать сразу с рабочего стола (на скриншоте выше это "Проверка соответствия стандартам разработки" и "Отклонения от стандартов разработки").

Пример сформированного отчета "Различия в метаданных":

Ещё одна уникальная функция, которой нет в Конфигураторе - просмотр различий текстов запросов динамических списков и наборов данных СКД (открывается при щелчке по гиперссылке "Сравнить"):

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

 

Полуавтоматическая настройка объединения модулей

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

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

Для процедур/функций измененных дважды состояние флажка не записывается и нажав на переключатель "Отображать строки: Не записанные в файл" можно увидеть только такие процедуры/функции и при объединении заниматься только ими, не тратя времени на остальные. Также можно увидеть доработанные процедуры/функции, которые были удалены в новом типовом релизе и доработки из которых нужно переносить в другие процедуры/функции.

Полученный xml-файл я рекомендую загружать через "Добавить настройки из файла".

При загрузке xml-файла с настройками объединения могут выходить сообщения "Методы не найденные в модулях обеих конфигураций". Виной этому формат файла сохранения настроек, в нем есть только имя процедуры/функции, но нет признака того, процедура это или функция, и если в новой типовой конфигурации процедура была переделана в одноименную функцию (или наоборот), выходит такое сообщение.

Но флажки при этом загружаются верно.

 

Отображение потерянных доработок

После обновления релиза выгружаем полученную конфигурацию в файлы и создаем документ "Различия доработанной конфигурации после обновления". После этого запускаем отчеты "Потерянные изменения объектов метаданных" и "Потерянные изменения модулей", которые выводят доработки метаданных/модулей, исчезнувшие после обновления релиза.

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

 

Поддержка английского языка

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

 

Условия работоспособности

Для корректной работы программе требуется возможность создания COM-объекта "VBScript.RegExp", поэтому беспроблемная работа возможна только при запуске на Windows.

 

Тестовое окружение

Тестирование происходило на платформе 8.3.12.1790, запуск в режиме толстый клиент, файловая база. Операционная система: Windows 10.

Анализ изменений отрабатывался на конфигурациях ЗУП 3.1.9/3.1.10 и БП 3.0.57/3.0.71. Анализировать можно любую конфигурацию с открытыми модулями, но для конфигураций на обычных формах подробный анализ изменений форм недоступен, определяется только факт отличия от типовой формы.

Версия 1.1 от 13.04.2021

  • Адаптация для работы в режиме клиент-сервер (толстый клиент).
  • Оптимизация быстродействия
  • Исправление ошибок
  • Новая функция: "Поиск ссылок на удаленные в новом типовом релизе процедуры/функции".

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

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

контроль доработка конфигурация обновление релиз потерянные изменение различие модуль метаданные

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122268    673    389    

715

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7323    22    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3567    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177771    1074    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99364    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18128    6    8    

40

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28115    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

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

2400 руб.

24.09.2019    23605    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. VKislitsin 960 27.04.20 12:07 Сейчас в теме
Сергей, однозначно плюс! По-моему, очень ценная разработка!
Выгружаем:
Типовую конфигурацию старого релиза
Типовую конфигурацию нового релиза
Доработанную конфигурацию

Подскажите, чтобы выгрузить две типовых (старую и новую) Вы разворачиваете под них какую-то временную базу? Загружаете cf-ник (взятый из дистрибутива или выгруженный как конфигурация поставщика из диалога "настройка поддержки") и выгружаете в XML-файлы?
Мне думается, здесь можно было бы приспособить утилиту ibcmd (описывал в статье), чтобы непосредственно из Вашей Конфигурации "Контроль доработок", можно было сделать выгрузки, указав cf-ники и путь для XML-выгрузки. Для этого потребуется запуск двух команд:
>ibcmd infobase create --db-path="d:\temp\temp_db" --create-database --load="ФайлКонфигурации.cf"
>ibcmd infobase config export --db-path="d:\temp\temp_db" "ПутьДляВыгрузкиXML"
2. Serge R 225 28.04.20 07:00 Сейчас в теме
У меня есть базы с типовыми конфигурациями и каталог, в котором я храню выгрузки xml-файлов из типовых конфигураций. Каждый раз после обновления базы с типовой конфигурацией я выгружаю xml-файлы в этот каталог.
Структура у него такая - <КраткийНомерПлатформыНаКоторойПроизводиласьВыгрузка>\<Кратк­ийИдентификаторКонфигурации>
Например:
D:\12_1790\zp10_223
Здесь 12_1790 - выгрузка производилась платформой 8.3.12.1790, файлы конфигурации ЗУП 3.1.10.223
Сокращать приходится потому что при выгрузке в xml-файлы платформа рекомендует использовать максимально короткие пути.

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

Насчет ibcmd подумаю, но мне кажется лучше иметь готовые выгрузки.
3. sashocq 193 29.04.20 12:43 Сейчас в теме
Видно, что работы проделано много. Но ценность этого как-то сомнительна.
Обновление изменённых модулей несколько лет уже делается на 90% автоматом (KDiff3 или аналог) — платформа это давно позволяет.
Для других изменений (например, то что определенный реквизит не потерял добавленный тип и т. п.) лучше писать обработку, проверяющую все эти моменты (можно через механизм автотестов, или просто с ручным запуском).
И всё получится на порядок быстрее.
4. milanse 38 21.05.20 11:49 Сейчас в теме
(3) чего там kdiff показывает когда перетасовали модуль целиком ?
6. sashocq 193 21.05.20 21:12 Сейчас в теме
(4) Когда перетасовали модуль целиком всё-равно вручную нужно делать. Смотришь изменения что были до этого и ищешь как сделать то же в новом модуле.
8. milanse 38 22.05.20 20:35 Сейчас в теме
(6)пользовался им давно, он не видит процедур и функций, поменяли местами внутри модуля и привет. Автор предлагает инструмент для автоматизации, kdiff инструмент для работы, для кропотливой работы, который никак не облегчает путину обновления, не позволяет понять правильно ли объедены формы? У нас бп3- расширили длину инв номера ОС, периодически упускаем это из виду, в итоге имеем формы, в которых длина меньше, после записи из такой формы теряются данные. И таких вещей не мало. В итоге пелёнка с описанием надо каждый раз пройтись по ней и ничего не упустить. А тут инструмент , позволяет эти вещи зафиксировать и автоматом проверять.
5. milanse 38 21.05.20 11:55 Сейчас в теме
А что насчет сравнения состава типов реквизитов ?
7. Serge R 225 21.05.20 22:20 Сейчас в теме
(5) Если у составного реквизита был добавлен или удален тип, это определяется и будет выглядеть примерно так:
Прикрепленные файлы:
Созинов; milanse; +2 Ответить
9. Elena_Shaulskay 11.08.20 16:33 Сейчас в теме
Столкнулись с такой проблемой, если в новой конфигурации изменен модуль менеджера документа, в старой типовой и доработанной нет изменений в модуле менеджера, то в настройке объединения модулей не показывает изменения в модуле менеджера. Могу прислать скриншоты. Можно это исправить?
11. Serge R 225 14.08.20 19:22 Сейчас в теме
(9)Если в старой доработанной конфигурации нет доработок в модуле менеджера документа, что там контролировать? Смысл данной программы в том чтобы контролировать доработки типовой конфигурации.
10. Elena_Shaulskay 11.08.20 16:55 Сейчас в теме
Также не показывает изменения форм, добавленные, измененные элементы форм, хотя в фиксации различий мы видим изменения самих форм, а не только модуля форм
12. Serge R 225 14.08.20 19:24 Сейчас в теме
(10)Обычные формы или управляемые? Изменения форм показываются только для управляемых форм, это указано в описании. Обычные формы хранятся в бинарном формате, определять там различия очень сложно. Но можно определить сам факт изменения формы от типовой.
Оставьте свое сообщение