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

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

См. также

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

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

2500 руб.

20.06.2023    22394    7    4    

311

SALE! 50%

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

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

4900 2450 руб.

29.06.2022    11955    100    4    

132

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

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

2160 руб.

05.08.2024    1292    15    1    

8

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    12571    10    10    

35

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

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

2400 руб.

04.07.2022    8382    38    1    

29

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

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

1800 руб.

20.01.2022    7791    19    0    

13

Облачные сервисы, хостинг Linux Тестирование QA Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

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

31.10.2024    1323    capitan    0    

0

Журнал регистрации Тестирование QA Программист Бесплатно (free)

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

21.10.2024    2817    leemuar    8    

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