Автоматическое формирование отчета по качеству кода, используя конфигурацию "Автоматизированная проверка конфигураций"

06.02.17

Разработка - DevOps и автоматизация разработки

Обработка позволяет создавать отчет по качеству кода в автоматическом режиме на сервере сборок Jenkins, используя конфигурацию "Автоматизированная проверка конфигураций"

Скачать исходный код

Наименование Файл Версия Размер
RunnerAcc.epf
.epf 19,29Kb
7
.epf 19,29Kb 7 Скачать

Обработка работает в конфигурации "Автоматизированная проверка конфигураций " версия  1.1.12.26 (c более ранними работать не будет).

Как пользоваться конфигурацией читайте здесь. В публикации будут описана только работа с обработкой.

Подготовительный этап:

  • В регистре "Особенности" в измерении "Объект" хранится путь до проверяемого объекта, если в конфигурации есть форма с именем "ПоддержкаИОбслуживание" и команда с таким же именем, особенности формы игнорируются. Для исправления нужно изменить процедуру " АктуализироватьОсобенности" в модуле документа " ПроверкаВерсии " (1С обещала исправить в следующем релизе). Код приведен в конце статьи.

Инструкция по работе с обработкой:

Параметры обработки (англоязычный вариант используется в пакетном запуске):

  • "Путь к базе / Base" (обязательный) - путь к файловой базе 1с, которую хотите проверить,
  • "Путь к словарю / Vocabulary" - путь к словарю, где хранится слова-исключения для проверки орфографических ошибок (формат файла совпадает с форматом, который использует конфигурация при выгрузке регистра "ВерныеСлова"),
  • "Путь к особенностям / Specificity" - путь к файлу с особенностями (формат отличается от принятого в конфигурации из-за ошибки с сохранением поля "Уточнение" и для уменьшения размера),
  • "Путь к требованиям / Requirements" и "Путь к требованиям исключениям / IgnoreRequirements" -  путь к файлам с описанием требований, которые хотим чтобы проверялись.  Формат файла - текстовый файл, кодировка UTF8 с наименованием требования, разделитель перевод строки. Сначала программа пытается прочитать требования, если их нет, то читает все требования за исключением требований-исключений и требований, в которых есть этап "ВыполнитьПлатформеннуюПроверкуКонфигурации",
  • "Путь к платформе / Path" -  путь к папке, где лежит 1cv8.exe, если не указывать, то использует версию платформы, в которой запущена конфигурации "Автоматизированная проверка конфигураций".
  • "Путь к объектам / Object" - путь к файлу с указанием объектов, которые нужно проверять. Формат файла - текстовый файл, кодировка UTF8, разделитель перевод строки, нужно писать строки следующего вида "cf/DataProcessors/ЖурналРегистрации", программа берет только имя объекта, т.е. ЖурналРегистрации.
  • "Путь к объектам исключениям / IgnoreObject" -  путь к файлу с указанием объектов, которые проверять не надо. Формат файла - текстовый файл, кодировка ANSI, разделитель перевод строки, писать нужно имя объекта как оно выводится при платформенной проверки конфигурации, например "Обработка.Запросник2_0".
  • Report - путь до отчета, который получается после проверки. В интерактивном режиме параметр отсутствует.

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

Для пакетного запуска нужно в командной строке указать запуск 1с в режиме предприятия в толстом клиенте с открытием обработки RunnerAcc.epf и с передачей параметров запуска (формат: имя параметра = значение, разделитель точка с запятой), например: "C:\Program Files (x86)\1cv8\8.3.8.2137\bin\1cv8.exe" ENTERPRISE /IBConnectionString File=ACC /RunModeOrdinaryApplication /Execute "RunnerAcc.epf" /C "Base=base;Report=Report.html"

Для вывода отчета в Jenkins используется плагин HTML Publisher plugin, в резульатет получится отчет в html .

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

P.P.S. Патч процедуры в тексте статьи не хотел приводить, но Инфостарт запрещает делать файлы бесплатными для скачивания, поэтому пришлось добавить.

Процедура АктуализироватьОсобенности(НайденныеОшибки)
	
	ЗапросПоОсобенностям = Новый Запрос;
	ЗапросПоОсобенностям.Текст = "
	|ВЫБРАТЬ
	|	Особенности.*
	|ИЗ
	|	РегистрСведений.Особенности КАК Особенности
	|ГДЕ
	|	Особенности.Конфигурация = &Конфигурация";
	ЗапросПоОсобенностям.УстановитьПараметр("Конфигурация", Конфигурация);
	
	ТаблицаОсобенностей = ЗапросПоОсобенностям.Выполнить().Выгрузить();
	
	КоличествоОсобенностей = ТаблицаОсобенностей.Количество();
	Если КоличествоОсобенностей = 0 Тогда
		Возврат;
	КонецЕсли;
	
	МассивНеактуальныхОсобенностей = Новый Массив;
	
	ЗапросПоОбъектам = Новый Запрос;
	ЗапросПоОбъектам.Текст = "
	|ВЫБРАТЬ
	|	СтруктураКонфигурации.Ссылка КАК Ссылка,
	|	СтруктураКонфигурации.Путь КАК Путь
	|ИЗ
	|	Справочник.СтруктураКонфигурации КАК СтруктураКонфигурации
	|ГДЕ
	|	СтруктураКонфигурации.Владелец = &Владелец
	|	И СтруктураКонфигурации.Путь В(&Путь)";
	
	ЗапросПоОбъектам.УстановитьПараметр("Владелец", Версия);
	ЗапросПоОбъектам.УстановитьПараметр("Путь", ТаблицаОсобенностей.ВыгрузитьКолонку("Объект"));
	ТаблицаОбъектов = ЗапросПоОбъектам.Выполнить().Выгрузить();
	
	ТаблицаОбъектов.Индексы.Добавить("Путь");
	
	СтруктураОтбораПоПути = Новый Структура("Путь");
	
	Для Каждого Особенность Из ТаблицаОсобенностей Цикл
		
		#Если Клиент Тогда
		ОбработкаПрерыванияПользователя();
		#КонецЕсли
		
		Ошибка = Особенность.Ошибка;
		
		// Проверяем, что ошибка особенности есть в выбранных требованиях, если нет, то оставляем особенность.
		Если НЕ МассивСодержитЗаписьОшибки(ОбнаруживаемыеОшибки, Ошибка) Тогда
			Продолжить;
		КонецЕсли;
		
		// Если данные о платформенной проверке не собраны, то оставляем особенность по платформенной проверке.
		Если МассивСодержитЗаписьОшибки(ОшибкиПлатформеннойПроверки, Ошибка) Тогда
			Продолжить;
		КонецЕсли;
		
		Уточнение = Особенность.Уточнение;
		
		ОсобенностьАктуальна = Ложь;
		
		// Ищем все объекты в таблице по одному пути, т.к. путь может совпадать, например, для формы и команды.
		СтруктураОтбораПоПути.Вставить("Путь", Особенность.Объект);
		МассивОбъектов = ТаблицаОбъектов.НайтиСтроки(СтруктураОтбораПоПути);
		Для Каждого ЭлементОбъекта Из МассивОбъектов Цикл
			
			Отбор = Новый Структура;
			Отбор.Вставить("Ошибка", Ошибка);
			Отбор.Вставить("Объект", ЭлементОбъекта.Ссылка);
			Отбор.Вставить("Уточнение", Уточнение);
			
			ОшибкиСОбщимиОсобенностями = НайденныеОшибки.НайтиСтроки(Отбор);
			Если ОшибкиСОбщимиОсобенностями.Количество() > 0 Тогда
				ОсобенностьАктуальна = Истина;
				Прервать;
			КонецЕсли;
			
			// Уточнение в найденных ошибках может быть сокращено, повторяем поиск.
			Отбор.Вставить("Уточнение", СокрЛП(Уточнение));
			ОшибкиСОбщимиОсобенностями = НайденныеОшибки.НайтиСтроки(Отбор);
			Если ОшибкиСОбщимиОсобенностями.Количество() > 0 Тогда
				ОсобенностьАктуальна = Истина;
				Прервать;
			КонецЕсли;
			
		КонецЦикла;
		
		// Если особенность не актуальна, то добавим ее в массив для удаления особенностей.
		Если НЕ ОсобенностьАктуальна Тогда
			МассивНеактуальныхОсобенностей.Добавить(Особенность);
		КонецЕсли;
		
	КонецЦикла;
	
	// Если нет неактуальных особенностей, то выходим.
	Если МассивНеактуальныхОсобенностей.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;
	
	Для Каждого Особенность Из МассивНеактуальныхОсобенностей Цикл
		ТаблицаОсобенностей.Удалить(Особенность);
	КонецЦикла;
	
	НаборЗаписейОсобенностей = РегистрыСведений.Особенности.СоздатьНаборЗаписей();
	НаборЗаписейОсобенностей.Отбор.Конфигурация.Установить(Конфигурация);
	НаборЗаписейОсобенностей.Загрузить(ТаблицаОсобенностей);
	
	НаборЗаписейОсобенностей.Записать();
	
КонецПроцедуры

Обработка Автоматизированная проверка конфигураций Jenkins

См. также

Автотесты для типовых конфигураций ERP Управление предприятием 2 и Комплексная автоматизация 2 (для vanessa automation)

Тестирование QA DevOps и автоматизация разработки Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.15.111.

2220 руб.

04.07.2022    6979    26    1    

24

Системы контроля версий для 1С-разработчиков.

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Платформа 1С v8.3 Платные (руб)

Основы командной разработки на 1С. Использование систем контроля версий при разработке на платформе 1С:Предприятие 8

4900 руб.

29.06.2022    9448    78    4    

112

Управление сборкой. Расширение для конфигурации СППР

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

Подсистема «Управление сборкой GLI» предназначена для динамического формирования сборочных линий Gitlab и отслеживания процесса доработок систем на базе1С:Предприятия Позволяет упростить выпуск новых релизов системы, подготовить описание доработок системы. Интегрируется с GitLab API по событиям Push, Merge-request, Pipeline. Уведомляет пользователей о результатах сборки/тестирования сборочных конвейеров через СВ, либо при её недоступности или отсутствию по E-Mail. Поможет при отправке исправлений ошибок в общую базу тестирования, сформирует запросы на слияние в ветку версии только по протестированному и подтверждённому функционалу. Подсистема рассчитана исключительно на клиент - серверную архитектуру тестовых ИБ. Поддерживаемая версии СППР 2.0.4.15, платформа не ниже 8.3.17.1549, 2.0.7.3 / не ниже 8.3.21.1664, начиная с релиза 1.0.4.30 требуется платформа не ниже 8.3.23 рекомендуемый релиз 8.3.23.1997

7000 руб.

26.08.2022    10834    7    5    

30

Автоматическое подтверждение легальности обновления базы или как обновить 100 типовых баз 1С за 5 часов

DevOps и автоматизация разработки Обновление 1С Платформа 1С v8.3 Конфигурации 1cv8 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

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

2 стартмани

08.05.2019    24458    56    VPanin56    26    

28

Нагрузочное тестирование для определения производительности системы

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

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

10 стартмани

08.04.2024    1267    3    user1527257    1    

4

Выполнение тестов и обработка их результатов в 1С: Тестировщик

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье мы рассмотрим имитацию действий пользователя 1С и протоколирование тестов в инструменте 1С: Тестировщик.

14.03.2024    1439    Koder_Line    1    

11

1С, СППР и Архитектура как код

DevOps и автоматизация разработки Бесплатно (free)

Можно ли идеи подхода «Архитектура как код» положить на 1С или иную платформу, чтобы не изобретать ещё какой-то язык и сразу получить множество готовых библиотек функций и инструмент достижения главной цели подхода AaC.

01.02.2024    2795    roman72    9    

8

Создание и модификация тестов в 1С:Тестировщик

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

23.01.2024    733    Koder_Line    1    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Stepa86 1521 06.02.17 15:19 Сейчас в теме
1) Путь собственно к базе АПК указывается в строке подключения?
2) Почему все задается параметрами? Нельзя передавать только ИД конфигурации, которая сохранена и настроена в АПК?
3) Можешь что нибудь посоветовать для тех, кто в Дженкинсе разбирается примерно так же, как в китайском языке?
2. aleksey_vk 7 06.02.17 15:47 Сейчас в теме
1 и 2. Обработка позволяет получить отчет ничего не настраивая в конфигурации "Автоматизированная проверка конфигураций". Создали базу. Запустили 1с с нужными параметрами и получили отчет.
3. Цель публикации как раз в получении отчета в формате html, что бы его можно было прикрепить к результату сборки на jenkins.
Оставьте свое сообщение