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

13.04.21

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Контроль доработок конфигураций:
.cf 174,04Kb ver:1.1
52 3 050 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

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

Подробный анализ доработок предусмотрен для большинства объектов метаданных. Анализируются все открытые модули, управляемые формы, реквизиты, табличные части, команды, роли, подсистемы, схемы компоновки данных, в общем все что выгружается в файлы *.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, т.к. в ней появился признак "Экспортная" у процедур и функций) и документ фиксации различий доработанной конфигурации после обновления.

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

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

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

15500 руб.

02.09.2020    213625    1173    413    

1050

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    40896    223    115    

212

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

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    26738    67    30    

97

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

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

16000 руб.

10.11.2023    18887    76    39    

92

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

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

9500 руб.

17.05.2024    37831    135    55    

176

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше.<br/> Далее в публикации:<br/> MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    4370    8    10    

15

Инструментарий разработчика 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    3731    7    0    

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