Конвейер проверки качества кода

Публикация № 1117485

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

Sonar SonarQube BSL АПК ACC качество Jenkins Pipeline Конвейер ГитКонвертор EDT Oscript

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

Про управление качеством кода - Управление техническим долгом - Концепция Continuous Inspection и Управление качеством кода.

Использование сонара - Управляй качеством кода 1С с помощью SonarQube

Что умеет

Как работает

Установка и настройка инфраструктуры

    Установить ГитКонвертор

    Установить SonarQube и плагины

    Установить 1С:EDT

    Установить Дженкинс

    Установить и настроить SonarScanner для дженкинса

    Создать каталог инструментов

    Установить oscript и библиотеки

    Установить и настроить АПК

    Создать репозиторий для дженкинсфайла

    Настроить оповещения

Добавление проекта к проверке

    Настроить ГитКонвертор

    Настроить АПК

    Создание первого конвейера

    Указать параметры запуска конвейера

    Создание второго конвейера

    Расчет покрытия тестами

 

Что умеет

 

  • Собирает ошибки с 3х анализаторов: АПК, EDT и BSL-LS и отправляет в Сонар.
  • Используется единый дженкинсфайл для всех проектов. Если нужно улучшить конвейер - делается это в одном месте.
  • Работает по выгрузке ГитКонвертора. А ГитКонвертор выгружает проект в формате EDT.
  • Вырезает из списка ошибок все объекты на замке. Если конфигурация на поддержке и поменять только один модуль - будут показаны ошибки только по этому модулю.
  • Переопределяет параметры ошибок. Можно понизить/повысить важность ошибок. И даже полностью пропустить.
  • Параметры переопределения могут быть как едиными - лежать в репозитории рядом с дженкинсфайлом. Так и частными для каждого проекта.
  • Можно вывести покрытие кода.

Как работает

 

Разработчик помещает свои изменения доработки в хранилище. Через некоторое время получает уведомление о завершении проверок. Заходит в SonarQube и видит список замечаний по своему коду.

В это время внутри:

  • ГитКонвертор получает все новые изменения и коммитит их в репозиторий.
  • Вручную, по расписанию или по событию стартует конвейер. Первым шагом он получает и актуализирует дженкинсфайл.
  • Инициализирует все нужные переменные, заполняет пустые параметры значениями по умолчанию и готовит каталоги. Выполняет оповещение о старте конвейера.
  • Получает репозиторий с кодом в подкаталог “repo”.
  • Выполняется выгрузка ошибок из АПК, EDT и BSL-LS в джсон-файлы.
  • Джсон-файлы обрабатываются оскриптом - вырезаются файлы на поддержке, переопределяются данные ошибок.
  • Если указана папка с файлами замеров, то они конвертируются в файл покрытия.
  • По исходникам получается текущая версия конфигурации. Переопределяется джава. Собираются параметры для работы СонарСканера и запускается.
  • После отработки сканера конвейер ставится на паузу и ждет ответа от сервера сонара. По ответу можно сломать сборку, если порог не пройден или просто сообщить статус проверки оповещением.

Установка и настройка инфраструктуры

Установить ГитКонвертор

 

https://github.com/1C-Company/GitConverter

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

ГитКонвертор можно установить на тот же сервер, где будут располагаться и другие инструменты. Плюсы от совместного размещения - экономия на количестве серверов, все в одном месте, переиспользование инструментов. Из минусов - возможные конфликты за ресурсы, уменьшение надежности.

Установить SonarQube и плагины

 

Про установку хорошо написано в статье Управляй качеством кода 1С с помощью SonarQube

Сканер ставить не надо. Будет использоваться плагин дженкинса.

Комьюнити плагин для сонара доступен теперь и в маркете сонара.

Установить 1С:EDT

 

https://edt.1c.ru/

Если ГитКонвертор установлен на этом же сервере, то едт уже был установлен ранее. Второй раз можно не ставить.

Установить Дженкинс

 

Про установку хорошо написано в статье Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD. Именно из-за этой статьи я решил сделать единый дженкинсфайл для проверки качества кода. И в ней же узнал как это сделать.

Слейв ноду нужно обязательно настроить. АПК отказывается корректно работать, если дженкинс запущен как сервис.

Установить и настроить SonarScanner для дженкинса

 

SonarScanner for Jenkins” - https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/

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

В конфигурации системы:

В конфигурации глобальных инструментов:

Имя сервера “Sonar” и имя сканера “SonarQube Scanner” используются в дженкинсфайле, поэтому их лучше не менять. Или поменять и в дженкинсфайле.

Создать каталог инструментов

 

На сервере создать папку “C:/Sonar/”. Не обязательно именно этот путь, но далее буду оперировать именно им.

Скачать последний релиз обработки с https://github.com/otymko/acc-export/releases. Положить по адресу "C:/Sonar/bin/acc-export.epf".

Скачать последний релиз BSL-LS c https://github.com/1c-syntax/bsl-language-server/releases.

Положить по адресу "C:/Sonar/bin/bsl-language-server.jar".

Скачать 11 JDK https://jdk.java.net/archive/. Положить по адресу “C:/Sonar/jdk”. Полный путь к java выглядит вот так "C:/Sonar/jdk/bin/java.exe". Прописывать в переменные среды не надо, а то будет конфликт с 8ой джавой для едт.

Установить oscript и библиотеки

 

http://oscript.io/

choco install onescript-cli

Скачать и распаковать архив из приложенных файлов и запустить install.bat. Будут установлены приложения vanessa-runner, perf-measurements-to-cover, stebi и библиотека v8metadata-reader.

Все приложения доступны на гитхабе.

https://github.com/Stepa86/stebi

https://github.com/Stepa86/v8metadata-reader

https://github.com/Stepa86/perf-measurements-to-cover

Установить и настроить АПК

 

https://releases.1c.ru/project/ACC

Установить нужно в каталог “C:/Sonar/ACC” и создать пользователя “Admin” без пароля.

Создать репозиторий для дженкинсфайла

 

Форкнуть или скопировать репозиторий https://github.com/Stepa86/jenkins-pipeline-1C-to-sonar. Донастроить под себя при необходимости. Адрес репозитория с дженкинсфайлом понадобится позднее.

Настроить оповещения

 

В моем дженкинсфайле используется плагин “RocketChat Notifier” для отправки оповещений в рокет.чат. Если вы не используете в работе рокет.чат, то нужно самостоятельно найти и скачать подходящий вам плагин и заменить в дженкинсфайле строки “rocketSend” на вызов своего плагина.

Добавление проекта к проверке

Настроить ГитКонвертор

 

Настроить и запустить конвертацию хранилища по инструкции от ГитКонвертора.

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

После снятия флага начнет выгружаться информация о поддержке и cf-файлы конфигураций, cf-файлы нужно добавить в “.gitignore”.

Значения в зеленых полях потребуются в дальнейшем.

Обязательно каталог выгрузки в репозиторий должен быть на латинице. Если там кириллица - Дженкинс очень непредсказуемо себя ведет.

Настроить АПК

 

Запуск проверки АПК ищет конфигурацию по наименованию и использует ее.

Создать новую конфигурацию.

В наименование указать “Каталог выгрузки в репозитории” из ГитКонвертора.

В “Путь к источнику проверки” указать “Адрес хранилища”. Заполнить пользователя и его пароль для доступа к хранилища.

Важно, чтобы пользователи хранилища для ГитКонвертора и АПК были разными. Их никто не должен больше использовать. Иначе это приведет к конфликтам получения изменений из хранилища.

Дальше нужно настроить список проверяемых требований (выбрать все, например) и исключений, проверить подключение к базе после записи и закрыть АПК.

Стоит запустить полную проверку вручную из АПК, чтобы убедится в работоспособности.

Создание первого конвейера

 

Перейти в веб-интерфейс Дженкинса. По умолчанию это http://localhost:8080

Слева сверху “Создать Item”.

Имя Item'а - произвольное. Лишь бы было понятно что это. Лучше латиницей и без пробелов.

Тыкнуть на Pipline и нажать Ок внизу.

Откроется конфигурация джоба.

Перейти к разделу Pipline.

 

В Definition выбрать Pipline script from SCM.

В SCM - Git.

Repository URL - адрес репозитория с дженкинсфайлом. В моем случае это https://github.com/Stepa86/jenkins-pipeline-1C-to-sonar.git

В Credentials добавить/выбрать параметры доступа к этому репозиторию.

Стоит сразу создать Credentials для доступа к репозиторию с исходниками конфигурации и скопировать его ID. Он понадобится чуть позднее.

В Script Path - путь к дженкинсфайлу в репозитории. В моем случае это “Sonar/Jenkinsfile”.

Сохранить. И в окне джоба слева нажать на “Собрать сейчас”.

Если все настроено верно, то отработает первый шаг - получение дженкинсфайла, а потом сразу все упадет.

Указать параметры запуска конвейера

 

Обновить страницу джоба. Слева сверху кнопка “Собрать сейчас” превратится в “Собрать с параметрами”. Нажать на нее. Откроется окно ввода параметров.

 

PROJECT_NAME - ключ проекта. Именно под этим именем будет создан проект в сонаре. Именно по нему выполняется поиск конфигурации в АПК. Сюда вписываем наименование конфигурации АПК. Она же - Каталог выгрузки в репозитории”.

git_repo_url - адрес репозитория git из ГитКонвертора.

git_repo_branch - имя ветки в репозитории.

sonar_catalog - каталог инструментов C:/Sonar/

PROPERTIES_CATALOG - каталог в проекте с переопределенными настройками.

ACC_check - Запуск проверки АПК перед выгрузкой ошибок.

ACC_recreateProject - Пересоздание конфигурации в АПК. Сбрасывает кэш проверки. АПК работает дольше, но все данные переполучаются заново. Актуально, когда ошибка исправлена, а АПК этого исправления “не увидела” из-за кэша.

STEBI_SETTINGS - путь к джсон файлу с переопределением ошибок. Может быть как общим из репозитория с дженкинсфайлом, так и частным для проекта.

jenkinsAgent - имя ноды на которой нужно запускать проверку. Критично к регистру.

EDT_VERSION - версия едт, которую нужно использовать.

perf_catalog - каталог с файлами замера производительности .pff. По ним создается файл с данными покрытия.

git_credentials_Id - ID Credentials для доступа к репозиторию.

rocket_channel - имя канала для отправки оповещений.

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

Если упало на каком-то шаге. По логам определить и устранить проблему и еще раз нажать на “Собрать с параметрами”.

Если проверка АПК отработала и в конфигурации больше ничего не менялось, то для отладки и ускорения процесса можно перезапускать конвейер со снятой галкой ACC_check.

Из джобы можно перейти в проект сонара и посмотреть, что ошибки загружены.

Создание второго конвейера

 

Аналогично созданию конвейера нужно нажать на Создать Item, ввести имя, тыкнуть в Pipeline и внизу ввести имя существующего для копирования из него настроек.

В открывшемся окне джобы нужно поменять параметры на требуемые и запустить.

Расчет покрытия тестами

 

Адекватного способа рассчитать покрытие тестами в 1С на данный момент нет. Я костылю так:

Разворачиваю тестовую базу загрузкой из хранилища.

Захожу в конфигуратор. Из него запускаю менеджер тестирования под отладкой.

В менеджере тестирования подключаю тест-клиента под отладкой.

В конфигураторе включаю замеры.

Запускаю выполнение тестов.

Когда все тесты завершились, сохраняю все замеры в спец. папку, предварительно ее очистив. Эту спец. папку указываю в параметрах конвейера.

 

UPD

Все приложения из архива доступны на гитхабе.

https://github.com/Stepa86/stebi

https://github.com/Stepa86/v8metadata-reader

https://github.com/Stepa86/perf-measurements-to-cover

 

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

Наименование Файл Версия Размер
Скрипты для работы конвейера:
.zip 35,44Kb
03.09.19
19
.zip 35,44Kb 19 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. vlad.frost 187 04.09.19 08:18 Сейчас в теме
Лайк поставил, скрипты скачал!
2. BlizD 741 04.09.19 09:04 Сейчас в теме
3. Pr-Mex 124 04.09.19 16:30 Сейчас в теме
4. Yashazz 3118 04.09.19 18:58 Сейчас в теме
Это вообще кто-нибудь использует? Ну вот по-честному, реально, хоть один живой пример известен?
Hans; Yakud3a; +2 2 Ответить
5. Stepa86 1347 04.09.19 19:00 Сейчас в теме
(4) Мы в нашей компании используем именно этот инструментарий именно в этом виде.
6. Yashazz 3118 04.09.19 19:04 Сейчас в теме
(5) Ну это-то понятно. Сами для себя изобрели и сами мучаетесь. У вас что, миллиардный оборот, конфиги пилите уровня УХ, и сотни кодеров, что понадобились настолько адские ухищрения, как "конвейер", простихосспади, контроля кода? Его и у 1С-то нет)
Yakud3a; Hans; triviumfan; +3 4 Ответить
7. Stepa86 1347 04.09.19 19:07 Сейчас в теме
(6) И с чего вы взяли, что мы мучаемся? И с чего вы взяли, что это настолько адские ухищрения? С чего вы взяли, что этого нет у самого 1С? Нравится писать говнокод, ну продолжайте писать, чо тут то токсичность выплескивать?
DmitrySinichnikov; Andreeei; Reaper_1C; SerebanSK; TreeDogNight; drmaxart; A_Max; VasDmi666; kuzyara; Wilka; support; sorb; pavlov_dv; headMade; zeegin; o.nikolaev; +16 1 Ответить
9. Yashazz 3118 04.09.19 19:47 Сейчас в теме
(7) Да просто ни в одной компании я не видел даже просто аудита и контроля кода. Не то что автоматизации этого процесса. Ну то есть на практике не видел, на бумаге-то много чего было. Не окупается, и не работает толком, выглядит красиво и вкусно, а практического выхлопа ноль. А я много чего видел. В основном - жутковатого.

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

Вы на личности-то не переходите. Что есть говнокод - вопрос интересный, и не след полагать говнокодом всё, что не прошло некую верификацию. Насчёт 1С всё элементарно - я это знаю из первых рук, по крайней мере по состоянию на 2016 год. Да гляньте их поделки, сами поймёте)))

А что, качество запросов ваша система тоже проверяет? По заветам Рупасова?)
Andreeei; Hans; Hatson; so-quest; Светлый ум; Yakud3a; Soloist; support; +8 Ответить
10. zeegin 45 04.09.19 20:10 Сейчас в теме
(9) Вам очень не повезло с работодателями.
Это используют. Не всегда в таком виде, иногда какие-то компоненты заменяют на другие.

После того, как втягиваешься - не понимаешь как это можно не использовать :)
Попробуйте потратить пару недель своего времени и разобраться. Сложно только по началу и от незнания процессов и инструментов.
YPermitin; ValentinGushchin; A_Max; rystam_atai; Stepa86; pavlov_dv; +6 Ответить
11. Yashazz 3118 04.09.19 20:50 Сейчас в теме
(10) Процессы-то я знаю и теорию знаю. И время тратил, и разбирался. А вот раздолбайство и бардак таковы, что это просто нельзя использовать. Человеческий фактор и энтропия коллективных взаимодействий, искажения связей в больших системах итд - всё это сводит на нет любую красивую теорию. Это как эйджилы всякие использовать - натягивание совы на глобус.
Что касается "иногда какие-то компоненты" - через год попыток использования таких систем в 95% случаев всё сползает в прежний бардак, только "бухгалтерии прибавляется", как в том анекдоте. А дальше отдельно ритуальные телодвижения и отдельно грустная реальность.
so-quest; Andreeei; +2 Ответить
32. kuzyara 982 06.09.19 06:03 Сейчас в теме
(11) наш пайплайн
Прикрепленные файлы:
44. Hatson 401 21.02.20 12:16 Сейчас в теме
(10)
Вам очень не повезло с работодателями
и
Попробуйте потратить пару недель своего времени и разобраться.
- 5 баллов!

1) На счет работодателей. Возможно есть такие работодатели, которые хотя бы просто готовы применять такие инструменты, даже если на данный момент не применяют. Но их ничтожно мало и такой работодатель скорее всего будет на столько неудобно расположен от моего дома, что я к нему ни за что не поеду - такова "се ля ви")). Рынок труда таков, что обычная компания месяцами будет искать "правильных" и "неговнокодеров", а задачи нужно решать уже сегодня, а лучше вчера.

2) Попробуйте потратить пару недель.... Для этого требуется сила воли, самодисциплина и мощная внутренняя мотивация; часто для этого нужно на 2 недели изменить свой образ жизни - на это вообще способны единицы из тысячи! Это практически то же самое, что сказать какому-нибудь чуваку: "попробуй бросить курить, пить пиво и займись спортом" - да ему и так хорошо! Если Вы так можете, то я пожимаю вам руку, коллега!

3) Видел один раз смешную ситуацию в одной компании: люди делали код-ревью и проверяли (автоматизированно) его на соответствие промышленным стандартам 1С. Всё бы ничего, но код был с огромным количеством технологических ошибок и огромным технологическим долгом. Ни о какой производительности, масштабируемости и гибкости такого кода речи не шло - не все знали, что у вирт. таблиц есть параметры, а уж про упр. блокировки и разницу между [ Запрос.Выполнить.Выгрузить() и Результат.Выбрать() ]и говорить не стоит - зато переменные правильно назывались!

Выводы делайте сами.
12. olegtymko 527 05.09.19 04:27 Сейчас в теме
(9) Мы используем code-review и SonarQube очень в этом помогает.
CSiER; Stepa86; +2 Ответить
13. JohnyDeath 295 05.09.19 07:32 Сейчас в теме
(9)
Да просто ни в одной компании я не видел даже просто аудита и контроля кода. Не то что автоматизации этого процесса.


Возможно потому и не используют, что руками очень сложно-долго-дорого?
zeegin; olegtymko; Stepa86; +3 Ответить
16. VmvLer 05.09.19 13:07 Сейчас в теме
согласен с (9)

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

даже если разобраться и использовать, все равно, я считаю, что выхлоп мал и есть более простые пути.
17. Stepa86 1347 05.09.19 13:13 Сейчас в теме
(16) В https://infostart.ru/public/1096770/ я как раз писал кому это не надо, кому можно, а кому обязательно.

И очень интересно услышать про более простые пути в повышении качества кода, чем использование статических анализаторов. Про двойное чтение кода и просто писать без ошибок можно не рассказывать.
19. olegtymko 527 05.09.19 13:22 Сейчас в теме
(16) А какие вы более простые пути используете?
21. VmvLer 05.09.19 13:25 Сейчас в теме
22. Stepa86 1347 05.09.19 13:35 Сейчас в теме
(21) Эффект Да́ннинга — Крю́гера — метакогнитивное искажение, которое заключается в том, что люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации[1]. Это приводит к возникновению у них завышенных представлений о собственных способностях, в то время как действительно высококвалифицированные люди, наоборот, склонны занижать оценку своих способностей и страдать недостаточной уверенностью в своих силах, считая других более компетентными. Таким образом, менее компетентные люди в целом имеют более высокое мнение о собственных способностях, чем это свойственно людям компетентным (которые к тому же склонны предполагать, что окружающие оценивают их способности так же низко, как и они сами).
DmitrySinichnikov; morin; ValentinGushchin; Wilka; zeegin; +5 Ответить
24. VmvLer 05.09.19 15:28 Сейчас в теме
(22) надеюсь вы это взяли из конспекта своих лекций.
в приличных вузах это излагают по предмету "инженерной психологии".

ну а по факту что?

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

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

смысл мною сказанного станет понятен спустя 10...20 лет, если
в то время хоть что-то будет иметь толику смысла.
23. olegtymko 527 05.09.19 13:39 Сейчас в теме
(21) Вот и поговорили. Код наверное сразу без ошибок и тех. долга пишется и в проде проблем не бывает)
VasDmi666; JohnyDeath; +2 Ответить
33. Soloist 492 06.09.19 10:14 Сейчас в теме
(19) Есть, например Booking практически не тестирует. Очень интересный подход изложен в статье https://bronevichok.ru/blog/2015/04/26/engineering-at-booking.com.html
34. Stepa86 1347 06.09.19 10:23 Сейчас в теме
(33) Не увидел в статье, что они не пользуются статистическими анализаторами кода. Да, тестами не занимаются отдельно - это головная боль каждого конкретного разработчика, и они сами как могут тестируют. Но про использование/не использование стат.анализа ни слова.
35. Soloist 492 06.09.19 11:28 Сейчас в теме
(34) Да, не совсем корректный мой ответ. Просто из-за описанной сложности внедрения такого механизма сразу опускаются руки и ищутся альтернативные, или оправдывающие варианты. Для тестирования в некоторых случаях это можно придумать. А вот с остальным хочется такой конвейер, но сил не хватает на подъем всего этого. Ведь так много надо знать.

Механизм крутой. И я желаю сообществу oscript дальнейшего развития всего этого, чтобы снизить планку сложности вхождения в этот мир автоматизации.
31. JohnyDeath 295 05.09.19 16:28 Сейчас в теме
(16)
и есть более простые пути.

Какие?
15. kuzyara 982 05.09.19 12:59 Сейчас в теме
(4) Используем, используем.
26. stepan96 05.09.19 15:59 Сейчас в теме
(4) Мы сейчас разворачиваем у себя. И в продуктив выводим. И статический анализ и автотесты
Labotamy; +1 Ответить
8. o.nikolaev 195 04.09.19 19:15 Сейчас в теме
Да это просто праздник какой-то! (Карабас Барабас) Именины сердца!
14. JohnyDeath 295 05.09.19 07:33 Сейчас в теме
18. Stepa86 1347 05.09.19 13:17 Сейчас в теме
Удивляют меня те, кто выбрал профессию по автоматизации кому-то чего-то, но при этом против автоматизации своей деятельности
A_Max; Wilka; Сергей Осипенко; zeegin; BlizD; VasDmi666; spy87; olegtymko; JohnyDeath; +9 Ответить
20. VmvLer 05.09.19 13:24 Сейчас в теме
(18) На смену удивлению приходит понимание бесполезности(иногда вредности) многих вещей когда опыт автоматизации велик.

будем философствовать с разрушителем легенд или вернемся к пиару вашей нетленки "без шуму и пыли"?
25. stepan96 05.09.19 15:57 Сейчас в теме
Антон, а вот это можно поподробнее: "В менеджере тестирования подключаю тест-клиента под отладкой." Тоже больной вопрос по расчету покрытия
27. Stepa86 1347 05.09.19 16:01 Сейчас в теме
(25) У меня вот так в джсоне для VA

"КлиентыТестирования": [
	{
        "Имя": "Этот клиент",
        "ПутьКИнфобазе": "/FC:/Bases/test",
        "ДопПараметры": "/DEBUG -http -attach /DEBUGGERURL\"http://localhost:1560\"",
        "ТипКлиента": "Тонкий",
        "ИмяКомпьютера": "localhost",
        "ПортЗапускаТестКлиента": "1538",
        "АктивизироватьСтроку": "Истина"
    }
	]
Показать


но первое время можно и вручную в тест-клиенте разрешить отладку и подключить из конфигуратора
28. stepan96 05.09.19 16:06 Сейчас в теме
(27) Антон, давай вот вообще для полного дебила (ну то есть для меня)
1. Я запускаю конфигуратор, в нем в настроках ставлю запуск предприятия в режиме тест менеджера и запускаю
2. Соответственно предприятие в режиме тест менеджера, а дальше?

Я если отдельно запускаю тест-клиент, я в предметах отладки не вижу этот сеанс и не могу подключиться
29. Stepa86 1347 05.09.19 16:12 Сейчас в теме
(28) 3. На вкладке "Клиенты тестирования" нажимаешь на подключить клиента тестирования.
4. В открывшемся клиенте сервис - параметры - Отладка в текущем сеансе - Разрешена и вид отладки
5. В конфигураторе Отладка - подключение. Если клиент не подключился, то сверху будут сеансы, если подключился, то в нижней таблице будут и сеанс от менеджера и сеанс от клиента

Если запускать с указанием в доп параметрах "/DEBUG -http -attach /DEBUGGERURL\"http://localhost:1560\"", то эти шаги должны выполнится сами, но иногда отладка не подцепляется
Светлый ум; +1 Ответить
30. stepan96 05.09.19 16:15 Сейчас в теме
36. Ndochp 101 27.11.19 16:57 Сейчас в теме
Зачистка подзамочных ошибок делается скриптами (сканим все, потом выкидываем лишнее), или ключами запуска?

У меня не дженкинс и пока не нужен EDT, стоит качать?
37. Stepa86 1347 27.11.19 17:35 Сейчас в теме
(36) Замечания по объектам с замками вычищаются скриптом из джсонов вот тут https://github.com/Stepa86/jenkins-pipeline-1C-to-sonar/blob/master/Sonar/Jenkinsfile#L180

Внутри архива - скрипт по конвертации ошибок из EDT в джсон, понятный для плагина сонара, скрипт по вырезанию замечаний с замками и скрипт по получению покрытия. Если не понятно что это и зачем - лучше не качать
38. Olenevod 24 28.01.20 17:48 Сейчас в теме
Всем привет. Может поможет кто..
Почему при выполнении "Собрать сейчас" не появляется потом "собрать с параметрами"?

Jenkins ver. 2.204.1
39. Stepa86 1347 29.01.20 14:13 Сейчас в теме
(38) Кнопка "Собрать сейчас" появляется после импорта дженкинсфайла из гита и перенастройки задания в соответствии с параметрами в файле.

Кнопка не появляется либо изза того, что импорта еще не было - нужно в первый раз запустить и дождаться ошибки, либо изза того, что импорт не прошел. Например, когда нет прав на репозиторий или указаны не правильные кредишнл для подключения, или неправильно указан репо, или когда нет интернета. Это все в логах можно посмотреть.
Olenevod; +1 Ответить
40. Olenevod 24 29.01.20 14:41 Сейчас в теме
41. amoarok 26 13.02.20 11:10 Сейчас в теме
Инструмент интересный. Но есть вопрос. Как в сонаре при расчёте процента покрытия не учитывать код "под замком"?
42. Stepa86 1347 13.02.20 11:19 Сейчас в теме
(41) При конвертации замеров в покрытие уже учитываются модули на замке и строки таких модулей не добавляются "к покрытию".
43. amoarok 26 13.02.20 12:20 Сейчас в теме
(42) и правда, всё работает. Это у меня в сонаре было включено заполнение строк "к покрытию" через 1C (BSL) Community Plugin. Выключил - цифры стали похожи на ожидаемые. Спасибо!
Оставьте свое сообщение

См. также

Как управлять качеством кода 1С, используя платформу SonarQube

Статья Программист Нет файла Бесплатно (free) Рефакторинг и качество кода Инструментарий разработчика

При быстром росте функциональности проводить визуальный Code-Review для обнаружения некачественного кода проблематично. О том, как автоматизировать проверку качества кода 1С с помощью платформы SonarQube на конференции Infostart Event 2019 Inception рассказал ведущий разработчик компании «Командор» Олег Тымко.

30.12.2019    5394    olegtymko    9       

Готовые переносы данных из различных конфигураций 1C Промо

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

Управление качеством кода

Статья Программист Руководитель проекта Нет файла v8 Бесплатно (free) Математика и алгоритмы Рефакторинг и качество кода

О SonarQube, АПК, EDT. Какие преимущества дает их использование. Для каких команд подходит.

22.07.2019    12707    Stepa86    33       

Управляй качеством кода 1С с помощью SonarQube

Статья Программист Нет файла Россия Бесплатно (free) Практика программирования

Управляй техническом долгом проектов 1С с помощью SonarQube. В статье рассматривается пример применения SonarQube при разработке.

07.07.2019    28478    olegtymko    214       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Вам нравятся запросы в 1С?

Инструменты и обработки Программист Конфигурация (md, cf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования Разработка

Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата... Пора с этим заканчивать!

1 стартмани

03.07.2019    14489    4    m-rv    86       

Модель объекта

Инструменты и обработки Программист Конфигурация (md, cf) v8 Абонемент ($m) Инструментарий разработчика

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    7103    1    vadim1980    4       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD

Инструменты и обработки Системный администратор Программист Архив с данными v8 Windows Абонемент ($m) Инструментарий разработчика Jenkins

Вы все еще тестируете свои конфигурации 1С вручную? Да вы просто тратите жизнь впустую! В данном туториале попробуем скрестить ADD и jenkins для автоматического запуска тестов.

1 стартмани

03.06.2019    16575    5    ripreal1    87       

Безопасная работа с транзакциями во встроенном языке

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования

Разбираемся с опасностями использования транзакций во встроенном языке 1С. Познаем ошибку "В данной транзакции уже происходили ошибки". Учимся защищаться от них.

1 стартмани

25.03.2019    23428    9    tormozit    44       

Онлайн-курс «Автоматизация процессов управления МТО: методика сбора и формализации требований» с 1 апреля по 13 мая 2020 года. Промо

Цель курса - повысить полноту и качество сбора и формализации требований к автоматизации процессов управления материально-техническим обеспечением. Курс основан на процессном подходе, позволяет в полном объеме выявить и учесть все факторы, влияющие на специфику процессов управления МТО. Участники курса получают теоретические знания в области организации процессов управления МТО и готовый инструментарий для сбора и формализации требований по автоматизации этих процессов (шаблоны, опросники, модели).

40000 рублей

Редактор объектов информационной базы 8.3

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.41 от 23.03.2020

2 стартмани

23.01.2019    17475    214    ROL32    32       

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Инструменты и обработки Программист Архив с данными v8 v8::Mobile БУ УУ Android Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Абонемент ($m) Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    31929    246    informa1555    200       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

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

5500 рублей

Навигатор по конфигурации базы 1С 8.3

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Небольшой набор сервисных функций для повседневной работы. Для программистов и пользователей. Платформа 8.3, управляемые формы. Версия 1.1.0.55 от 23.03.2020

3 стартмани

28.10.2018    24205    246    ROL32    67       

Работа с публикациями "Инфостарт"

Инструменты и обработки Программист Архив с данными v8 УУ Абонемент ($m) Практика программирования О сообществе WEB

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    13668    12    RocKeR_13    16       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструменты и обработки Программист Бизнес-аналитик Приложение (apk) v8 Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    20899    25    informa1555    26       

Работа с данными выбора

Инструменты и обработки Программист Архив с данными v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

17.07.2018    31785    17    kalyaka    16       

DevOps для 1С. Онлайн-курс проходит с 16 апреля по 11 июня 2020 года. Промо

Данный онлайн-курс предусматривает изучение процессов DevOps, их применение при разработке на платформе 1С. В результате прохождения онлайн-курса вы сможете: настроить ПО необходимое для проведения проверок и тестирования, создавать сценарии тестирования и объединять их в комплексные процессы, создавать скрипты для автоматизации процессов DevOps.

12000 рублей

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар")

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    23633    86    m-rv    57       

БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования БСП (Библиотека стандартных подсистем)

Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.

1 стартмани

10.05.2018    35566    31    dsdred    36       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Как выполнить отчет на СКД через COM и получить данные отчета?

Статья Программист Архив с данными v8 УПП1 Россия Windows Абонемент ($m) Практика программирования

Для чего это нужно. Например, нужно в одной базе получить какой-либо показатель из другой базы. Этот показатель вычисляется в каком-либо сложном отчете, который написан на СКД. Можно, конечно, "скопипастить" текст запроса из другой базы, немного подправить его и выполнять в том же COM подключении. Но с этим теряется гибкость: если отчет изменился, то нужно помнить о том, что где-то есть его "немного модифицированная" копия. В статье будет рассмотрен пример получения данных из базы ЗУП.

2 стартмани

08.05.2018    21643    11    wowik    3       

Работа со схемой запроса

Статья Программист Конфигурация (md, cf) v8 v8::Запросы Абонемент ($m) Инструментарий разработчика Практика программирования

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

1 стартмани

24.04.2018    35748    81    kalyaka    34       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Заполняем по шаблону (по умолчанию)

Инструменты и обработки Программист Архив с данными v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

08.02.2018    21169    20    mvxyz    17       

Базовый курс для начинающих 1С-программистов. Онлайн-интенсив со 2 июня по 2 июля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500-9500 рублей

Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования

Если вам интересно проверить контрагенте в ФНС, вам поможет данная публикация. Весь алгоритм работы строится на основе данных, полученных с сервиса http://npchk.nalog.ru совершенно бесплатно.

1 стартмани

01.02.2018    29682    64    rpgshnik    48       

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула

Отчеты и формы Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Печатные формы документов Практика программирования Универсальные функции

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

1 стартмани

29.12.2017    29998    25    agent00mouse    0       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП

Инструменты и обработки Программист Расширение (cfe) v8 БП3.0 Абонемент ($m) Практика программирования Универсальные печатные формы

Печатные формы на внешних обработках скоро канут в лету. На смену им приходят ПФ, реализованные в виде расширений конфигурации. Не нашел на сайте примеров таких расширений. Привожу пример подобного расширения для БП 3.0.

1 стартмани

06.12.2017    21949    52    kwazi    6       

Программное формирование форматированной строки в стиле html+inline CSS

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом Инструментарий разработчика

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    24550    29    bonv    9       

Онлайн-интенсив "1C:Предприятие для программистов: Бухгалтерские задачи" с 22 июня по 8 июля 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для решения задач бухгалтерского учета. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Бухгалтерия” и прочих прикладных решений, в которых реализованы соответствующие механизмы для автоматизации бухгалтерских задач.

4900 рублей

Управление техническим долгом - Концепция Continuous Inspection

Статья no Нет файла Бесплатно (free) Инструментарий разработчика

Сегодня я вам хочу рассказать про тему «Управление техническим долгом» – что это такое, как с этим бороться и почему с этим надо бороться.

30.06.2017    17188    nixel    16       

Расширения конфигураций 1С: учимся перехватывать методы

Инструменты и обработки Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

30.05.2017    103371    14    signum2009    45