Расширение "Быстрая проверка кода" для конфигурации 1С:Автоматизированная проверка конфигураций









Расширение для конфигурации «1С:Автоматизированная проверка конфигураций», позволяющее проверять произвольный код.

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

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

Принцип работы простой: текстовое поле, в которое вставляется код, список выбираемых проверок (в АПК это реализовано в требованиях) в виде дерева, простые настройки — тип модуля (модуль формы, общий модуль и так далее) для общих модулей признаки клиент, сервер. Вставляем код, выбираем требования, тип модуля и получаем результат.

Для визуализации добавил раскраску кода (с ИТС) в результат проверки, поэтому он формируется в html-документе. 

Ошибки привязываются к номерам строк, можно сразу перейти к описанию стандарта на ИТС или к нарушенному требованию/правилу.

Работает в как в обычном приложении, так и в управляемом (тонкий и web-клиент). Базу с расширение можно опубликовать, веб-интерфейс выглядит так себе (у конфигурации режим совместимости интерфейса "Версия 8.2"), но если изменить его на "Такси", то будет выглядеть более лучше. Как минус веб-клиента это криво работающая раскраска кода.

Не так уныло как в обычном приложении.

 

Версия 1.2.4.35. Обновление 23.10.2024

  1. Расширение доработано для работы на АПК версии 1.2.4.35.
  2. Добавлена простая навигация по ошибкам. Идею подсказал уважаемый pavlov_dv в комментариях.
  3. Из результата проверки ссылки на стандатры и правила перенесены в навигацию.

25 Comments

  1. capitan

    Не знаю дорасту ли до автоматизированной проверки, но плюс однозначно )

    Reply
  2. Scorpion4eg

    То что надо! Огромное спасибо

    Reply
  3. N!ghtmare

    Отличная идея! А если ещё сделаете веб сервис/ http .будет идеально)

    Reply
  4. Lo1jke

    (3) Если сделают веб-сервис, то скорее всего он «ляжет»:)

    Reply
  5. ogoneksergei

    Норм. Нужно еще сделать навигацию по ошибкам. Если проверять модуль на несколько тысяч строк, то долго искать где же ошибка.

    Reply
  6. shalimski

    На версии 1.2.2.56 много проверок не срабатывает.

    Reply
  7. a.chulkov@nrg-group.ru

    Не работает смена реквизита «Тип модуля».

    Ошибки нет, но чтобы не выбрать, будет выбрано «Модуль обычного приложения».

    Reply
  8. a.chulkov@nrg-group.ru

    Как перемещаться по ошибкам модуля?

    Reply
  9. Bazil

    (8) Навигации по ошибкам нет.

    Reply
  10. Bazil

    (7) В управляемом приложении?

    Reply
  11. pavlov_dv

    Автору огромная благодарность!

    Скачал, используем у себя. У нас АПК используется как web-сервис для проверок, так что из предложенной функциональности выдрал только кусок оформления результата в html.

    Но все равно очень удобно и, главное, наглядно!

    Заодно запилил туда навигацию по ошибкам — очень полезная штуковина.

    Reply
  12. Lyolik

    (11) Это замечательно. Может поделитесь?

    Reply
  13. pavlov_dv

    (12) Нет проблем!

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

    Опишу вкратце:

    1) в функцию ДобавитьОшибку() на тег <TABLE…> с описанием ошибки добавляем атрибут id с порядковым номером.

    В итоговом html-документе получается что-то типа этого:

    <TABLE id=»»Anchor1″» width=»»100%»»…..

    <TABLE id=»»Anchor2″» width=»»100%»»…..



    <TABLE id=»»AnchorN»» width=»»100%»»…..

    где «Anchor» — произвольный идентификатор; N — количество ошибок.

    2) на форму добавляем команды навигации, использующие метод getElementById():

    ИДТега = «Anchor» + НомерОшибкиПП;
    Элементы.РезультатТекст.Документ.getElementById(ИДТега).scrollIntoView();

    Так как количество ошибок N нам известно, остается добавить инкремент/декремент НомерОшибкиПП для навигации вверх-вниз.

    У метода scrollIntoView() есть параметры, использую такой набор: «{ «behavior»: «smooth», «block»: «start», «inline»: «start» }»

    Более подробно здесь: Описание метода scrollIntoView

    Reply
  14. sm.artem

    Задумка хорошая, сам хотел такое реализовать когда-то.

    Но, я так подозреваю, что большая часть проверок не работает, или что-то делаю не так.

    При проверке возникают ошибки такого плана:

    Возникли ошибки при проверке правилом <Проверка состава стандартных областей обработчиков событий>.

    Описание ошибки: {БыстраяПроверкаКода Обработка.ЯдроПроверкиКода.МодульОбъекта(9918)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(5,33)}: Процедура или функция с указанным именем не определена (СформироватьМассивРусскихИАнглийскихЗначений)

    Версия АПК: 1.2.2.78

    Я так подозреваю, что надо или использовать обработку «Ядро» из типовой, либо данные функции переопределить в обработке «ЯдроПроверкиКода» в расширении.

    Reply
  15. Bazil

    (14) Надо актуализировать расширение для работы с новым релизом АПК.

    Reply
  16. sm.artem

    (15) Доработал под себя немного Ваш код в модуле обработке. Сравнил и объединил с типовым кодом, пришлось добавить пору костылей на скорую руку. Проверил — работает на версии 1.2.

    Журнал регистрации пока выдает только ошибку на проверку по правилу «Обеспечение обратной совместимости библиотек». Но так как в случае отдельной проверки кода — это правило не актуально, от слова «совсем», то его просто можно отключить.

    Reply
  17. Viktor_Ermakov

    У меня АПК 1.2.2.78

    добавил код модуля формы на проверку, нажал «Выполнить проверку кода»

    открылась вкладка «Результат проверки»

    на которой просто весь мой код раскрасился

    Но никаких комментарий, ошибок нет.

    На этой версии вообще не работают проверки что ли?

    Reply
  18. Viktor_Ermakov

    автор забил на свое детище походу)

    Reply
  19. shalimski

    (15) Когда актуализируешь?

    Reply
  20. Светлый ум

    пациент жив?

    Reply
  21. Xershi

    У меня возникают проблемы, когда я УТ запускаю в ОФ. Обычная проверка не ловит ошибки передачи параметров с клиента на сервер. Это связано с тем, что разаработчики не ставят галку клиент обычное приложение.

    Данную ошибку решение найдет?

    Reply
  22. SmileDDD

    Автор можно выложить актуализированную версию расширения до АПК 1.2.4.25?

    Reply
  23. Bazil

    Актуализировал расширение для работы с АПК 1.2.4.35. И добавил навигацию по ошибкам как предложено в (13) .

    Reply
  24. Bazil

    (20) Пациент скорее жив!

    Reply
  25. Bazil

    (21) Нет, проверка выполняется только в контексте проверяемого модуля.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *