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

06.02.17

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
RunnerAcc.epf
.epf 19,29Kb
7
7 Скачать (1 SM) Купить за 1 850 руб.

Обработка работает в конфигурации "Автоматизированная проверка конфигураций " версия  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

См. также

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

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.166.17.

2160 руб.

20.01.2022    8807    30    0    

16

DevOps и автоматизация разработки Программист Руководитель проекта Платные (руб)

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

2500 руб.

20.06.2023    25350    21    4    

321

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

Использования систем контроля версий — стандарт современной разработки. На курсе научимся использованию Хранилища 1С и GIT при разработке на 1С:Предприятие 8. Разберем подходы и приемы коллективной разработки, научимся самостоятельно настраивать системы и ориентироваться в них.

4900 руб.

29.06.2022    13253    108    4    

140

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

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

2400 руб.

04.07.2022    9302    40    1    

31

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

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.30.108.

3000 руб.

05.08.2024    2211    17    1    

11

Нейросети Рефакторинг и качество кода Тестирование QA Программист Платформа 1С v8.3 Бесплатно (free)

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

11.03.2025    4534    mrXoxot    52    

49

Рефакторинг и качество кода Тестирование QA Программист Платформа 1С v8.3 Бесплатно (free)

В последней статье по докладу Александра Кириллова, с которым он выступил на конференции INFOSTART TECH EVENT 2024, обсудим особенности тестирования после завершения рефакторинга платформеннозависимого кода

11.03.2025    493    it-expertise    0    

3

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

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

10.03.2025    1491    ovetgana    22    

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