Статический анализатор кода проектов 1C (EPF, ERF, CF, CFE)

18.03.25

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

Новый инструмент для анализа кода проектов 1С (EPF, ERF, CF, CFE) на чистом 1С.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Статический анализатор кода проектов 1С:
.rar 580,81Kb ver:1.3.6.0
28
28 Скачать (10 SM) Купить за 4 550 руб.

 

Что это?

Это инструмент анализа, который выполняет схожие функции с уже известными анализаторами, например, BSL Language Server и т.д.

 

Зачем?!

Я понимаю, что уже существует множество инструментов на разных языках, но интересно, что этот инструмент разработан на чистом 1С, в отличие от многих других инструментов. Это означает, что его использование будет проще и более понятным для программистов, даже для тех, кто не так хорошо понимает анализаторы.

 

Цель:

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

 

Есть информация об инструменте?

Он проводит анализ внешней обработки, отчета, конфигурации и расширения конфигурации.

Варианты использования:

  • Скачанное расширение ставится на отдельной (возможно пустой) базе данных. В проекте указывается путь к информационной базе, пользователь и пароль, путь к файлу *.cf, *.cfe, *.epf или *.erf и путь к выгрузке XML-файлов.

Многопоточный анализ доступен только в клиент-серверном варианте.

Плагины к каждому проекту цепляются отдельно.

Инструмент создан на основе radar и распространяется под лицензией MIT. 

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

В инструмент анализатор включены 3 парсера:

  • Парсер языка представления.
    Представление - это строка, которая формируется с использованием методов ЗначениеВСтрокуВнутр() или ЗначениеВФайл() или из содержимого некоторых текстовых файлов 1С, заключенных в фигурные скобки.
    Доступен вывод: "Токены", "Синтаксическое дерево", "JSON с синтаксическим деревом", "Плагины", "Замены", "Бэкенд", "Тестер".
  • Парсер встроенного языка.
    Доступен вывод: "Токены", "Синтаксическое дерево", "JSON с синтаксическим деревом", "Плагины", "Замены", "Бэкенд", "Тестер".
  • Парсер языка запросов.
    Парсер даёт несколько преимуществ по сравнению со "СхемойЗапроса", таких как отсутствие необходимости в наличии необходимых метаданных в конфигурации.
    Доступен вывод: "Токены", "Синтаксическое дерево", "JSON с синтаксическим деревом", "Плагины", "Замены", "Бэкенд", "Тестер".

Выводы:

  1. Токены - выполняет лексический анализ текста и возвращает таблицу токенов.
  2. Синтаксическое дерево - разбирает исходный текст с результатом в виде абстрактного синтаксического дерева. 
  3. JSON с синтаксическим деревом - разбирает исходный текст с результатом в виде JSON с абстрактным синтаксическим деревом.
  4. Плагины - регистрируют ошибки и/или замены и/или генерируют текст.
  5. Замены - заменяет участки текста в исходнике.
  6. Бэкенд - генерирует исходный текст по АСД или переводит исходный текст на другие языки.
  7. Тестер - демонстрирует прогон проверок исходного текста.

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

 

Как пользоваться инструментом?

  1. Подготовить заранее анализируемую внешнюю обработку, отчет, конфигурацию и расширение конфигурации, указав в диалоге файл *.epf, *.erf, *.cf или *.cfe.
  2. Выгрузить заранее анализируемую внешнюю обработку, отчет, конфигурацию или расширение конфигурации в файлы XML, указав в диалоге папку.
  3. Открыть конфигуратор на пустой базе.
  4. Загрузить скачанное расширение конфигурации из публикации и обновить конфигурацию базы данных.
  5. Запустить режим предприятия.
  6. На начальной странице нажать на команду "Проекты".
  7. Нажать на кнопку "Создать".
  8. В открывшейся форме проекта указать следующие поля:
    - Наименование проекта - название продукта.
    - Путь файла - путь к файлу из пункта 1.
    - Путь выгрузки - путь к папке из пункта 2.
    - Формат выгрузки - формат из пункта 2.
    - Строка соединения - путь к БД.
    - Пользователь - пользователь БД.
    - Пароль - пароль пользователя БД.
  9. Нажать на кнопки "Записать" и "Выполнить анализ". К проекту можно цеплять только плагины из папки "Парсер встроенного языка - Плагины - Генераторы ошибок".
  10. После выполнения анализа формируется документ "Анализы проектов".
  11. В разделе "Анализатор кода проектов" - "Отчеты" - "Тренд" можно посмотреть сколько ошибок было выявлено в процессе анализа внешней обработки, отчета, конфигурации или расширения конфигурации.
  12. В разделе "Анализатор кода проектов" - "Сервис" - "Навигатор" можно посмотреть список выявленных ошибок в файлах 1С.
  13. В разделе "Анализатор кода проектов" - "Сервис" - "Парсер языка представления" можно пользоваться отдельным парсером языка представления. К парсеру можно цеплять бэкенд из папки "Парсер языка представления".
  14. В разделе "Анализатор кода проектов" - "Сервис" - "Парсер встроенного языка" можно пользоваться отдельным парсером встроенного языка. К парсеру можно цеплять плагины и бэкенды из папки "Парсер встроенного языка".
  15. В разделе "Анализатор кода проектов" - "Сервис" - "Парсер языка запросов" можно пользоваться отдельным парсером языка запросов. К парсеру можно цеплять плагины и бэкенды из папки "Парсер языка запросов".
  16. В разделе "Анализатор кода проектов" - "Сервис" - "Конструктор глобального окружения" можно пользоваться отдельным конструктором глобального окружения для генерации кода.

 

Что про скорость?

Скорость зависит от количества ядер процессоров сервера.

Отладка на сервере должна быть отключена, так как существенно увеличивает время анализа. Чтобы отключить отладку на сервере, нужно убрать в строке запуска службы агента сервера 1С параметр "-debug" и выполнить перезапуск службы.

Первый анализ выполняется довольно долго. Последующие быстро, так как проверяются только измененные модули.

Оперативной памяти в зависимости от варианта использования и анализируемой внешней обработки, отчета, конфигурации или расширения конфигурации требуется примерно от 0,2 до 2 гигабайт.

Замеры времени:

  1. Машина i7-10700k, SSD, включена отладка на сервере.
    Продукт Размер файла CF Размер XML-файлов Максимум потоков Размер партии Первый анализ Последующий анализ
    ERP_2.5.14.59 1,12 ГБ 7,15 ГБ 4 50 001:54:56:611 000:03:37:754
    ERP_2.5.14.59 1,12 ГБ 7,15 ГБ 8 50 001:20:08:493 000:03:39:641
    ERP_2.5.14.59 1,12 ГБ 7,15 ГБ 8 100 001:14:07:049 000:05:33:250
    ERP_2.5.14.59 1,12 ГБ 7,15 ГБ 16 50 001:19:46:362 000:04:19:019
  2. Машина: i5 8400, SSD samsung 970 evo, выключена отладка на сервере.
    Продукт Максимум потоков Первый анализ Последующий анализ
    УХ_3.0 6 10 минут меньше минуты

 

В чём плюсы и минусы реализации инструмента на 1С?

Плюсы:

  1. Есть родной язык в платформе "1С:Предприятие";
  2. Есть выгрузка/загрузка файлов EPF, ERF, CF, CFE в/из XML;
  3. Есть метаданные файлов EPF, ERF, CF, CFE;
  4. Есть многопоточность;
  5. Есть вызов внешних обработок.

Минусы:

  1. Низкая производительность интерпретатора.

 

Есть сравнение инструментов?

Инструмент

Написан на

На основе

Анализ текста

Анализ XML-файлов

Много-поточ-ность

Проверки

Анализ конфигураций     +   Виды ошибок
Анализ цикломатической сложности кода   + +   1
КопиПастаМер v.2 (универсальный)     +   1
Обработка «Поиск не существующих объектов метаданных в текстах модулей конфигурации»     +   1
Обработка поиска дублей кода. Исходного кода модулей 1С     +   1
Орфографическая проверка конфигурации 1.0.1     +   2
Подсистема "Инструменты разработчика"   + +   1
Проверка запросов на лишнюю выборку и разыменование полей составного типа   + +   2
Проверка программного кода посредством BSL LS   +     BSL-LS
Расширение "Быстрая проверка кода" для 1С:АПК   +     1C:АПК
Расширенный синтаксический контроль     +   1
Синтаксическая проверка запроса 1С из расширения конфигурации с позиционированием на проблемной строке   +     1
Статический анализатор кода проектов 1C (этот) Radar + + + См. список проверок
Статический анализ кода 1с     +   5
Git Code Review - инструмент для рецензирования кода   +     BSL-LS
OneDebugger - инструмент для отладки кода без использования режима конфигуратора   +     5

Radar

 

+

+

+

плагины, парсер

1С:АПК

 

 

+

 

570

1С:Предприятие С++   + +   Проверки
Статический анализатор кода для встроенного языка 1С С++   +     32
1SCodeAnalyze C#     +   5
Статический анализатор кода 1С на Си C   +     1
1С:EDT Java   + +

 

Проверки
Расширение 1С:Стандарты разработки V8 для 1C:EDT Java         Проверки
bsl-language-server Java     +

 

Диагностики
SonarQube 1C (BSL) Community Plugin Java bsl-language-server   + +

1C:АПК, 1C:EDT, BSL-LS
(ПравилаОписания правил)

phoenixbsl Java bsl-language-server +     BSL-LS
Поддержка языка 1С:Предприятие 8 (BSL) в VSC VSC   +     BSL-LS

Снегопат

Java

 

+

 

  BSL-LS
CodeInspector С#   +     Предупреждения, BSL-LS

TurboConf

.NET

 

+

 

 

CI, BSL-LS

ИР адаптер для Turboconf OneScript   +     1

SmartConfigurator

Autohotkey 

 

+

 

 

7

TestIB8x wsh (vbs, js)   + +   1

 

Какие есть проверки на 1С?

Источник Описание Анализ текста Анализ XML-файлов
Регистрация ошибок Регистрация замен JSON Регистрация ошибок
Парсер языка представления

Парсер регистрирует ошибки:
Не удалось выполнить замену
Ожидалось
Ожидался операнд

+      
Парсер встроенного языка Парсер Парсер регистрирует ошибки:
Имя метода указано неправильно
Имя события указано неправильно
Не обнаружено объявление метода
Не обнаружено объявление переменной
Не удалось выполнить замену
Неизвестная директива
Неизвестная инструкция препроцессора
Неизвестный символ
Неизвестный символ препроцессора
Объявление аннотации может применяться только к методам
Ожидалась директива
Ожидалась инструкция препроцессора
Ожидалась переменная
Ожидалось
Ожидалось выражение
Ожидалось не более двух параметров
Ожидался конструктор
Ожидался операнд
Оператор Возврат разрешён использовать только в методах
Оператор Ждать разрешён использовать только в асинхронных методах
Ошибка в литерале даты
Повторное объявление метода
Повторное объявление параметра
Повторное объявление переменной
Инструкция препроцессора Удаление/Вставка разрешена использовать только в методах
Ожидалась процедура/функция
+     +
Асинхронный метод должен содержать Ждать Плагин обнаруживает наличие оператора Ждать из асинхронной функции или процедуры. +     +
Безумные многострочные литералы Плагин обнаруживает безумные многострочные литералы. +     +
Бесполезный перебор коллекции Плагин обнаруживает бесполезный перебор коллекции в теле цикла. +     +
Вложенный тернарный оператор Плагин обнаруживает использование вложенных тернарных операторов. +     +
Вставка коллекции в саму себя Плагин обнаруживает возникновение циклических ссылок. +     +
Выражение содержит много тернарных операторов Плагин обнаруживает много тернарных операторов. +     +
Дублирование блоков кода Плагин обнаруживает одинаковые или похожие блоки кода. +     +
Дублирование подвыражений кода Плагин обнаруживает дублирование подвыражений кода. +     +
Дублирование тел методов Плагин обнаруживает дублирование тел методов. +     +
Дублируется условие Плагин обнаруживает дублирование условия. +     +
Дублирование блоков в ветвлениях и обработках исключений кода Плагин обнаруживает дублирование блоков в ветвлениях и обработках
исключений кода.
+     +
Закомментированный код Плагин обнаруживает закомментированный фрагмент кода. +     +
Замена неканоничных ключевых слов Плагин заменяет неканоничные ключевые слова.   +    
Замена устаревших шаблонов функцией платформы Плагин заменяет устаревший шаблон функцией платформы. + +   +
Запрос в цикле Плагин обнаруживает запросы в циклах. +     +
Запуск внешних приложений Плагин обнаруживает небезопасный запуск сторонних приложений. +     +
Использование аннотаций и функции продолжить вызов Плагин обнаруживает использование аннотаций и функции ПродолжитьВызов. +     +
Использование если иначе если с константным выражением Плагин обнаруживает использование конструкции Если ИначеЕсли с константным выражением. +     +
Использование конструкторов структур Плагин обнаруживает использование конструкторов структур, регистрирует ошибку и замену в виде вставки ключей. + +   +
Использование меток и переходов на метки Плагин обнаруживает использование меток или переходов на метки. +     +
Использование НСтр Плагин обнаруживает использование НСтр. +     +
Использование СтрШаблон Плагин обнаруживает некорректное использование СтрШаблон. +     +
Каноническое написание ключевых слов Плагин обнаруживает неканоничное написание ключевого слова. +     +
Когнитивная сложность Плагин обнаруживает когнитивную сложность. +     +
Код вне области Плагин обнаруживает расположение кода вне области. +     +
Комментарий должен начинаться с пробела Плагин обнаруживает пропущенный пробел в начале комментария. +     +
Конструкция если иначе если должна содержать иначе Плагин обнаруживает наличие Иначе из условных операторов ИначеЕсли. +     +
Метод запрещен Плагин обнаруживает использование методов ПолучитьФорму, ДанныеФормыВЗначение и Сообщить. +     +
Метод содержит много возвратов Плагин обнаруживает много возвратов метода. +     +
Метод содержит много объявлений локальных переменных Плагин обнаруживает много объявлений локальных переменных метода. +     +
Метод содержит много ожиданий Плагин обнаруживает много ожиданий +     +
Много директив компиляции Плагин обнаруживает много директив компиляции. +     +
Много операторов в одной строке Плагин обнаруживает много операторов в одной строке. +     +
Недостижимый код Плагин обнаруживает недостижимый код. +     +
Неизвестный символ препроцессора Плагин обнаруживает неизвестный символ препроцессора. +     +
Неиспользуемая переменная Плагин обнаруживает использование переменных и параметров. +     +
Нерекомендуемый атрибут аннотации Плагин обнаруживает нерекомендуемый атрибут аннотации. +     +
Ограничение на длину строки Плагин обнаруживает длину строки более 120 символов. +     +
Ограничение на количество параметров метода Плагин обнаруживает превышение количества параметров метода. +     +
Опасное обращение по индексу Плагин обнаруживает опасное обращение по индексу. +     +
Оператор вызвать исключение без аргументов вне исключения попытки Плагин обнаруживает оператор ВызватьИсключение без аргументов вне исключения попытки. +     +
Оператор перейти запрещен Плагин обнаруживает использование оператора Перейти. +     +
Операторы прервать продолжить вне цикла Плагин обнаруживает операторы Продолжить и Прервать вне цикла. +     +
Ошибочный замыкающий комментарий Плагин обнаруживает и актуализирует замыкающие комментарии в окончаниях методов и областей. + +   +
Переименование переменных Плагин выполняет переименование переменных. При возникновении конфликтов регистрирует ошибку. + + + +
Повторяющиеся разделы модуля Плагин обнаруживает повторяющиеся разделы модуля. +     +
Подряд идущие пустые строки Плагин обнаруживает пустые строки. +     +
Порядок параметров метода Плагин обнаруживает расположение необязательных параметров метода перед обязательными. +     +
Пропущенные точки с запятой Плагин обнаруживает пропущенные точки с запятой. +     +
Пропущен последний параметр Плагин обнаруживает отсутствие последнего параметра. +     +
Пропущено описание методов Плагин обнаруживает пропущенные описания экспортных методов. +     +
Пропущено описание переменных модуля Плагин обнаруживает пропущенные описания переменных модуля. +     +
Пустой блок кода Плагин обнаруживает пустые блоки кода. +     +
Пустой оператор Плагин обнаруживает пустой оператор, состоящий только из точки с запятой ";". +     +
Расстановка пропущенных точек с запятой Плагин расставляет пропущенные точки с запятой.   +    
Свойство ЭтаФорма запрещено Плагин обнаруживает использование устаревшего свойства ЭтаФорма. +     +
Функция должна содержать возврат Плагин обнаруживает наличие возврата из функции. +     +
Хранение сетевых адресов в коде Плагин обнаруживает небезопасное хранение сетевых адресов в коде. +     +
Цикломатическая сложность Плагин обнаруживает цикломатическую сложность. +     +
Чрезмерный уровень вложенности конструкций Плагин обнаруживает много вложенных конструкций. +     +
Парсер языка запросов Парсер Парсер регистрирует ошибки:
Не обнаружено объявление функции
Не удалось выполнить замену
Невозможно использовать ИНДЕКСИРОВАТЬ ПО без ПОМЕСТИТЬ
Неизвестный символ
Ожидалось
Ожидалось логическое выражение В, МЕЖДУ или ПОДОБНО
Ожидался вид периода СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, ДЕКАДА, МЕСЯЦ, КВАРТАЛ, ПОЛУГОДИЕ или ГОД
Ожидался операнд
Ожидался параметр
Невозможно использовать ПОМЕСТИТЬ И ДОБАВИТЬ в одном запросе
Повторное предложение
Повторная секция
Ожидалось имя таблицы
+      
Запрос одной строкой Плагин обнаруживает запрос одной строкой. +      
Использование выбор когда с константным выражением Плагин обнаруживает использование конструкции ВЫБОР КОГДА с константным выражением. +      
Использование подобно Плагин обнаруживает использование Подобно в запросах. +      
Многострочный литерал Плагин обнаруживает многострочный литерал в запросах. +      
Пропущено слово как перед псевдонимом поля Плагин обнаруживает пропущенное ключевое слово КАК перед псевдонимом поля. +      
Сравнение с null Плагин обнаруживает непосредственное сравнение с NULL. +      

 

Кроме проверок, что ещё имеется?

Источник Описание JSON 
Парсер языка представления Генератор исходного представления по АСД Бэкенд генерирует исходное представление по АСД.  
Парсер встроенного языка Визажист Плагин анализирует АСД исходного кода парсера и возвращает код в формате html.  
Генератор документации для парсера встроенного языка Бэкенд анализирует АСД исходного кода парсера встроенного языка и возвращает техническую документацию по парсеру встроенного языка в формате html.  
Генератор исходного кода по АСД Бэкенд генерирует исходный код по АСД.  
Обфускатор исходного кода по АСД Бэкенд обфусцирует исходный код по АСД. +
Оптимизатор исходного кода по АСД Бэкенд оптимизирует исходный код по АСД. +
Перевод исходного кода на язык 1с исполнитель Бэкенд преобразует исходный код на язык 1С:Исполнитель, переводя лишь те части, которые это возможно.  
Перевод исходного кода на язык python Бэкенд преобразует исходный код на язык Python, переводя лишь те части, которые это возможно.  
Перевод исходного кода на язык power shell Бэкенд преобразует исходный код на язык PowerShell, переводя лишь те части, которые это возможно.  
Перевод исходного кода на язык перфолента нет Бэкенд преобразует исходный код на язык Перфолента.Net, переводя лишь те части, которые это возможно.  
Перевод исходного кода на язык cи плюс плюс Бэкенд преобразует исходный код на язык С++, переводя лишь те части, которые это возможно.  
Рекурсивный подсчет серверных вызовов в модулях форм Плагин рекурсивно подсчитывает серверные вызовы в модулях форм и выводит их в виде текста.  
Рефакторинг исходного кода по АСД Бэкенд рефакторит исходный код по АСД. +
Парсер языка запросов Генератор исходных запросов пакета по АСД Бэкенд генерирует исходные запросы пакета по АСД. +
Рефакторинг исходных запросов пакета по АСД Бэкенд рефакторит исходные запросы пакета по АСД. +

 

Какие ближайшие планы?

  • Улучшение и доработка инструмента.
  • Исправление ошибок.

 

Какие планы на будущее?

  • Выполнение автоматизированных переименований и переводов.
  • Генерация документации по исходному коду.
  • Модификация исходного кода путем замен/вставки/удаления фрагментов кода.
  • Обфускация исходного кода.
  • Перевод исходного кода в другие языки программирования.
  • Поиск ошибок в исходном коде.
  • Подготовка исходного кода к публикации (генерация html).
  • Проверка исходного кода на соответствие требованиям безопасности и стандартам.
  • Проверка оформления исходного кода.
  • Продвинутый автоматизированный поиск по исходному коду.
  • Сбор статистики по исходному коду.
  • Форматирование исходного кода.

 

Документация?

Вступление

Книга

 

Литература?

Вскрытие статического анализа кода проектов 1С

Cтатический анализ исходного кода

 

Что нового добавили в инструмент?

 
 История версий:
 
 Версия 1.3.6.0
  • Добавлено новое окружение формы "КомпоновщикНастроекКомпоновкиДанных" в список проверок.
  • Добавлено новое глобальное окружение "ОбщиеОбъекты" в список проверок.
  • Изменения в наборе внешних файлов:
    - Переименован бэкенд "ПереводИсходногоКодаВЧистыйКод" в "ОптимизаторИсходногоКодаПоАСД". Требуется указать файл JSON.
    - Переименован плагин "НеОпределенаМеткаПереходНаМетку" в "ИспользованиеМетокИПереходовНаМетки".
    - Теперь бэкенд "ПереводИсходногоКодаНаЯзыкПерфолентаНет" генерирует атрибут поля "ВидноВсем" и функцию "ПолучитьДелегат".
    - Теперь операторы внутри инструкций препроцессоров "Если" будут сгенерированы с синтаксическим отступом.
  • Исправлена ошибка при разборе исходного кода:
    Процедура ТестА()
        #Если Не ВебКлиент Тогда
            Перем А;
        #КонецЕсли
    КонецПроцедуры

     

Дата выпуска: 18.03.2025

 
 Версия 1.3.5.0
  • Добавлены новые символы препроцессора "МобильныйКлиент" и "МобильныйАвтономныйСервер" в список проверок.
  • Добавлено новое глобальное окружение "СистемныеНаборыЗначений" в список проверок.
  • Добавлена возможность прикреплять несколько плагинов к парсерам языка запросов и языка представления за один раз.
  • Переименован парсер внутреннего представления в язык представления.
  • Добавлены файлы в набор внешних файлов:
    - "РефакторингИсходныхЗапросовПакетаПоАСД" (Парсер языка запросов - Бэкенды).
  • Изменения в наборе внешних файлов:
    - Переименован бэкенд "ГенераторИсходногоВнутреннегоПредставленияПоАСД" в "ГенераторИсходногоПредставленияПоАСД".
    - Перенос параметров из JSON файла "ГенераторИсходногоКодаПоАСД" в "РефакторингИсходногоКодаПоАСД".
    - Теперь бэкенд "ГенераторИсходныхЗапросовПакетаПоАСД" переносит логические выражения и нумерует запросы пакета. Требуется указать JSON файл.
  • Исправлены ошибки при синтаксическом разборе запросов (п-е МЕЖДУ).
  • Исправлен некорректный генератор кода глобального окружения.

Дата выпуска: 07.03.2025

 
 Версия 1.3.4.0
  • Теперь парсер проверяет запрос на наличие недопустимых параметров в соединениях.
  • Добавлены файлы в набор внешних файлов:
    - "РефакторингИсходногоКодаПоАСД" (Парсер встроенного языка - Бэкенды).
    - "ИспользованиеВыборКогдаСКонстантнымВыражением" (Парсер языка запросов - Плагины).
  • Изменения в наборе внешних файлов:
    - Переименован плагин "НекорректноеИспользованиеПодобно" в "ИспользованиеПодобно".
    - Переименован плагин "МногострочныйЛитералВЗапросе" в "МногострочныйЛитерал".
    - Теперь бэкенд "ГенераторИсходногоКодаПоАСД" может объединить локальные переменные и многострочные литералы. Требуется указать файл JSON.
    - Теперь бэкенд "ОбфускаторИсходногоКодаПоАСД" может заменить конструкции. Требуется указать файл JSON.
  • Исправлены ошибки при синтаксическом разборе запросов (п-е ДЛЯ ИЗМЕНЕНИЯ, ф-я КОЛИЧЕСТВО).

Дата выпуска: 26.02.2025

 
 Версия 1.3.3.0
  • Добавлены все необходимые подписки для поддержки плагинов в парсер языка запросов.
  • Добавлено окружение форм, охватывающее более 10 новых форм, в список проверок.
  • Теперь парсер разбирает групповой оператор вхождения.
  • Добавлены файлы в набор внешних файлов:
    - "ЗапросОднойСтрокой" (Парсер языка запросов - Плагины).
    - "НекорректноеИспользованиеПодобно" (Парсер языка запросов - Плагины).
    - "ПропущеноСловоКакПередПсевдонимомПоля" (Парсер языка запросов - Плагины).
    - "СравнениеСNull" (Парсер языка запросов - Плагины).

Дата выпуска: 17.02.2025

 
 Версия 1.3.2.0
  • Теперь парсер анализирует запрос на предмет повторных секций и предложений.
  • Теперь при синтаксическом разборе временно игнорируются токены "Построитель".
  • Добавлены новые модули и их окружение в список проверок:
    - Константа (модуль менеджера константы).
    - РегистрРасчета - Перерасчет (модуль набора записей перерасчета).
    - ВнешнийИсточникДанных (все модули кубов, таблиц и таблиц измерений).
  • Добавлены файлы в набор внешних файлов:
    - "ПереводИсходногоКодаНаЯзыкПерфолентаНет" (Парсер встроенного языка - Бэкенды).
    - "ОбращениеКПроцедуреКакКФункции" (Парсер встроенного языка - Плагины).
  • Изменения в наборе внешних файлов:
    - Переименован плагин "МногоАннотацийДирективКомпиляции" в "МногоДирективКомпиляции".
    - Переименован плагин "НекорректноеИспользованиеФункцииПродолжитьВызов" на "ИспользованиеАннотацийИФункцииПродолжитьВызов".
  • Произведен небольшой откат изменений, связанных с некорректным окружением модулей, до версии 1.2.3.0.

Дата выпуска: 08.02.2025

 
 Версия 1.3.1.0
  • Теперь парсер проверяет ситуации, в которых нельзя использовать оба предложения "Поместить" и "Добавить" в одном запросе.
  • Добавлены файлы в набор внешних файлов:
    - "ОбфускаторИсходногоКодаПоАСД" (Парсер встроенного языка - Бэкенды).
  • Изменения в наборе внешних файлов:
    - Теперь любое вычисляемое выражение преобразуется в литералы в бэкенде "ПереводИсходногоКодаВЧистыйКод".
  • Исправлен некорректный анализ и форматирование ключевого слова "Уникально" в запросах с предложением "Индексировать по".

Дата выпуска: 24.01.2025

 
 Версия 1.3.0.0
  • Пополнен список встроенных функций языка запросов в конструкторе глобального окружения.
  • Скорректировано выделение токенов "Комментарий" в парсере языка запросов.
  • Скорректировано выделение токенов "Литерал" в парсере внутреннего представления.
  • Теперь вывод "Автотест" перенесен в "Тестер".
  • Добавлены файлы в набор внешних файлов:
    - "ГенераторИсходныхЗапросовПакетаПоАСД" (Парсер языка запросов - Бэкенды).
    - "АсинхронныйМетодДолженСодержатьЖдать" (Парсер встроенного языка - Плагины).
  • Изменения в наборе внешних файлов:
    - Упразднен плагин "ПустойЗапрос" (Парсер языка запросов - Плагины).
  • Исправлено дублирование токенов при восстановлении хранилища токенов.

Дата выпуска: 13.01.2025

 
 Версия 1.2.6.0
  • Добавлены файлы в набор внешних файлов:
    - "ИспользованиеСтрШаблон" (Парсер встроенного языка - Плагины).
    - "МногострочныйЛитералВЗапросе" (Парсер языка запросов - Плагины).
    - "ПустойЗапрос" (Парсер языка запросов - Плагины).
  • Изменения в наборе внешних файлов:
    - Теперь обнаруживает сразу несколько подряд комментариев, начинающихся без пробела, в плагине "КомментарийДолженНачинатьсяСПробела".
    - Теперь обнаруживает сразу несколько подряд строк, в которых количество символов превышает 120, в плагине "ОграничениеНаДлинуСтроки".
    - Скорректировано выделение пустых строк в начале и конце текста в плагине "ПодрядИдущиеПустыеСтроки".
  • Исправлена ошибка при разборе кода:
    &    Вместо("ТестА")
    &    НаКлиенте
    Процедура Тест() КонецПроцедуры

     

  • Исправлена ошибка при разборе запросов:
    Выбрать 1;;;Выбрать 4

     

Дата выпуска: 11.06.2024

 
 Версия 1.2.5.0
  •  Теперь при определении токенов и узлов учитываются позиции знаков:
    - точки с запятой (операторы, переменные, запросы);
    - прямые слэши (комментарии);
    - амперсанды (методы, переменные).
  • Добавлены файлы в набор внешних файлов:
    - "ОграничениеНаДлинуСтроки" (Парсер встроенного языка - Плагины).
    - "ПропущеноОписаниеМетодов" (Парсер встроенного языка - Плагины).
    - "ПропущеноОписаниеПеременныхМодуля" (Парсер встроенного языка - Плагины).
  • Изменения в наборе внешних файлов:
    - Добавлена проверка наличия обязательных языков в плагин "ИспользованиеНСтр".
    - Теперь удаляет лишние выражения при преобразовании условных и тернарных операторов в чистый код в бэкенде ПереводИсходногоКодаВЧистыйКод.

Дата выпуска: 31.05.2024

 
 Версия 1.2.4.0
  • Добавлены выводы "Плагины", "Замены", "Бэкенд" и "Автотест" в парсер языка запросов.
  • Добавлены все функции языка запросов в конструктор глобального окружения.

Дата выпуска: 07.05.2024

 
 Версия 1.2.3.0
  • Добавлены выводы "АСД (дерево)" и "АСД (JSON)" в парсер языка запросов.
  • Добавлены подписки для поддержки аннотаций и директив компиляции в парсер встроенного языка.
  • Немного изменён парсер внутреннего представления.
  • Изменения в наборе внешних файлов:
    - Немного изменены файлы "ЗаменаНеканоничныхКлючевыхСлов" и "КаноническоеНаписаниеКлючевыхСлов".

Дата выпуска: 15.04.2024

 
 Версия 1.2.2.0
  • Добавлены выводы "Плагины", "Замены", "Бэкенд" и "Автотест" в парсер внутреннего представления.
  • Добавлены подписки в парсер внутреннего представления.
  • Добавлены файлы в набор внешних файлов:
    - "ГенераторИсходногоВнутреннегоПредставленияПоАСД" (Парсер внутреннего представления - Бэкенды).
    - "ЧрезмерныйУровеньВложенностиКонструкций" (Парсер встроенного языка - Плагины).
  • Изменения в наборе внешних файлов:
    - Добавлена проверка каноничности символов препроцессора в файл "КаноническоеНаписаниеКлючевыхСлов".
    - Добавлена замена неканоничных символов препроцессора в файл "ЗаменаНеканоничныхКлючевыхСлов".
    - Немного изменён файл "МногоОператоровВОднойСтроке".
    - Переименован файл "ГенераторДокументацииДляПарсера" в "ГенераторДокументацииДляПарсераВстроенногоЯзыка".

Дата выпуска: 27.03.2024

 
 Версия 1.2.1.0
  • Добавлены выводы "АСД (дерево)" и "АСД (JSON)" в парсер внутреннего представления.
  • Добавлены подписки для поддержки Ждать в парсер встроенного языка.
  • Добавлены файлы в набор внешних файлов:
    - "МетодСодержитМногоОжиданий" (Плагины).
    - "НеизвестныйСимволПрепроцессора" (Плагины).
  • Изменения в наборе внешних файлов:
    - Переименован плагин "ДублированиеБлоковВВеткахВетвленияКода" в "ДублированиеБлоковВВетвленияхИОбработкахИсключенийКода".

Дата выпуска: 19.03.2024

 
 Версия 1.1.6.0
  • Добавлен вывод "Тестер" в парсер внутреннего представления.
  • Добавлены файлы в набор внешних файлов:
    - "ПереводИсходногоКодаНаЯзыкPython" (Бэкенды).
    - "ОпасноеОбращениеПоИндексу" (Плагины).
    - "НекорректноеИспользованиеФункцииПродолжитьВызов" (Плагины).
  • Изменения в наборе внешних файлов:
    - Добавлена проверка дублирования блоков в ветке условного оператора в плагин "ДублированиеБлоковВВеткахВетвленияКода".
    - Добавлена поддержка "Ждать" в бэкендах "ГенераторИсходногоКодаПоАСД", "ПереводИсходногоКодаВЧистыйКод", "ПереводИсходногоКодаНаЯзык1СИсполнитель", "ПереводИсходногоКодаНаЯзыкCиПлюсПлюс" и "ПереводИсходногоКодаНаЯзыкPowerShell".

Дата выпуска: 10.03.2024

 
 Версия 1.1.5.0
  • Добавлен вывод "Тестер" в парсер языка запросов.
  • Добавлены файлы в набор внешних файлов:
    - "ПереводИсходногоКодаВЧистыйКод" (Бэкенды);
    - "ДублированиеТелМетодов" (Плагины);
    - "ХранениеСетевыхАдресовВКоде" (Плагины).
  • Теперь парсер регистрирует ошибки, связанные с использованием объявления аннотации в переменных модуля.
  • Изменения в наборе внешних файлов:
    - Переименован бэкенд "ГенераторКода1СПредприятиеПоАСД" в "ГенераторИсходногоКодаПоАСД".
    - Переименован бэкенд "ГенераторКода1СИсполнительПоАСД" в "ПереводИсходногоКодаНаЯзык1СИсполнитель".
    - Переименован бэкенд "ГенераторКодаPowerShellПоАСД" в "ПереводИсходногоКодаНаЯзыкPowerShell".
    - Переименован бэкенд "ГенераторКодаCиПлюсПлюсПоАСД" в "ПереводИсходногоКодаНаЯзыкCиПлюсПлюс".
    - Переименован плагин "ДублируютсяВыраженияТернарногоОператора" в "ДублированиеБлоковВВеткахВетвленияКода".
    - Доработано выделение позиций от трёх и более многострочных литералов в плагине "БезумныеМногострочныеЛитералы".
    - Добавлен экспортный метод в бэкенд "ПереводИсходногоКодаНаЯзык1СИсполнитель".
    - Добавлено объявление любого типа возвращаемого значения в бэкенд "ПереводИсходногоКодаНаЯзык1СИсполнитель".
    - Доработано объявление типов параметров в бэкенде "ПереводИсходногоКодаНаЯзык1СИсполнитель".
    - Преобразовано выражение "Новый" в нижний регистр в бэкенде "ПереводИсходногоКодаНаЯзык1СИсполнитель".
    - Добавлена проверка дублирования блоков в ветке оператора исключения в плагин "ДублированиеБлоковВВеткахВетвленияКода".

Дата выпуска: 28.02.2024

 
 Версия 1.1.4.0
  1. Добавлен вывод "Тестер" в парсер встроенного языка.
  2. Добавлены файлы в набор внешних файлов:
    - "ГенераторКодаCиПлюсПлюсПоАСД" (Бэкенды).
    - "ДублированиеПодвыраженийКода" (Плагины).
    - "ЗапускВнешнихПриложений" (Плагины).
  3. Теперь парсер регистрирует ошибки, связанные с использованием оператора "Возврат" в модуле без методов.
  4. Исправлена ошибка при разборе исходного кода:
    Перем Тест;
    Возврат Тест;

Дата выпуска: 20.02.2024

 
 Версия 1.1.3.0
  1. Добавлен парсер внутреннего представления в анализатор. Теперь доступен вывод "Токены".
  2. Добавлены файлы в набор внешних файлов:
    - "ГенераторКодаShellPowerПоАСД" (Бэкенды).
    - "НедостижимыйКод" (Плагины).
    - "НеОпределенаМеткаПереходНаМетку" (Плагины).

Дата выпуска: 13.02.2024

 
 Версия 1.1.2.0
  1. Добавлена возможность генерировать код с помощью конструктора глобального окружения. Работает как в файловом, так и в серверном режиме.
  2. Добавлены файлы в набор внешних файлов:
    - "ГенераторКода1CИсполнительПоАСД" (Бэкенды).
    - "ЗаменаУстаревшихШаблоновФункциейПлатформы" (Плагины).
    - "ПовторяющиесяРазделыМодуля" (Плагины).
  3. Изменения в наборе внешних файлов:
    - Переименован бэкенд "ГенераторКодаПоАСД" в "ГенераторКода1CПредприятиеПоАСД".

Дата выпуска: 01.02.2024

 
 Версия 1.1.1.0
  1. Добавлен вывод "Автотест" в парсер встроенного языка.
  2. Теперь при определении токена "Начало текста" учитывается первая позиция в первой строке исходника.
  3. Добавлены файлы в набор внешних файлов:
    - "ГенераторКодаПоАСД" (Бэкенды).
    - "ДублируютсяВыраженияТернарногоОператора" (Плагины).
  4. Изменения в наборе внешних файлов:
    - Переименован плагин "ОператорВызватьИсключениеВнеИсключенияПопытки" в "ОператорВызватьИсключениеБезАргументовВнеИсключенияПопытки".
  5. Исправлена ошибка при разборе исходного кода:
    ВызватьИсключение("Ошибка на клиенте с категорией", КатегорияОшибки.ОшибкаКонфигурации, "error.client.config", "error.client.config additional info");

Дата выпуска: 11.01.2024

 
 Версия 1.0.7.0
  1. Добавлена возможность указать путь параметров плагинов (JSON) в проекте.
  2. Добавлены файлы в набор внешних файлов:
    - "МетодСодержитМногоВозвратов" (Плагины).
    - "МногоАннотацийДирективКомпиляции" (Плагины).
    - "ОператорВызватьИсключениеВнеИсключенияПопытки" (Плагины).
    - "ОператорыПрерватьПродолжитьВнеЦикла" (Плагины).
  3. Изменения в наборе внешних файлов:
    - Переименован плагин "ДублируетсяОператорПрисваивания" в "ДублированиеБлоковКода".

Дата выпуска: 25.12.2023.

 
 Версия 1.0.6.0
  1. Добавлена поддержка атрибута аннотации в парсер встроенного языка.
  2. Теперь парсер регистрирует ошибки, связанные с использованием оператора "Ждать" в контексте, отличном от асинхронных методов.
  3. Добавлен файл в набор внешних файлов:
    - "НерекомендуемыйАтрибутАннотации" (Плагины).
  4. Исправлена ошибка при разборе исходного кода:
    СписокФайлов = Ждать НайтиФайлыАсинх(Ждать КаталогВременныхФайловАсинх(), МаскаВсеФайлы(), Ложь);

Дата выпуска: 15.12.2023.

 
 Версия 1.0.5.0
  1. Добавлена возможность указать путь параметров бэкенда (JSON) в парсере встроенного языка.
  2. Добавлены файлы в набор внешних файлов:
    - "МногоОператоровВОднойСтроке" (Плагины).
    - "ЦикломатическаяСложность" (Плагины).
  3. Изменения в наборе внешних файлов:
    - Переименован плагин "ДублируетсяТочкаСЗапятой" в "ПустойОператор".
    - Переименован плагин "ВыражениеСодержитНесколькоТернарныхОператоров" в "ВыражениеСодержитМногоТернарныхОператоров".
    - Переименован плагин "ОбъявлениеМетодаСодержитНесколькоСписковЛокальныхПеременных" в "МетодСодержитМногоОбъявленийЛокальныхПеременных".

Дата выпуска: 08.12.2023.

 
 Версия 1.0.4.0
  1. Добавлен вывод "АСД(JSON)" в парсер встроенного языка.
  2. Добавлены файлы в набор внешних файлов:
    - "ОграничениеНаКоличествоПараметровМетода" (Плагины).
    - "ПорядокПараметровМетода" (Плагины).

Дата выпуска: 01.12.2023. 

 
 Версия 1.0.3.0
  1. Добавлена возможность анализировать внешнее расширение конфигурации *.cfe в проекте.
  2. Добавлены файлы в набор внешних файлов:
    - "БезумныеМногострочныеЛитералы" (Плагины).
    - "ИспользованиеЕслиИначеЕслиСКонстантнымВыражением" (Плагины).

Дата выпуска: 23.11.2023.

 
 Версия 1.0.2.0
  1. Добавлена возможность анализировать внешнюю обработку *.epf и внешний отчет *.erf в проекте.
  2. Добавлена возможность прикреплять несколько плагинов к парсеру встроенного языка за один раз.
  3. Добавлен файл в набор внешних файлов:
    - "КонструкцияЕслиИначеЕслиДолжнаСодержатьИначе" (Плагины).

Дата выпуска: 16.11.2023.

 
 Версия 1.0.1.0
  1. Добавлена поддержка Асинх / Ждать в парсер встроенного языка.
  2. Добавлена возможность анализировать внешнюю конфигурацию *.cf в проекте.
  3. Добавлена возможность выгрузить конфигурацию из базы в файл(ы) через командную строку.
  4. Добавлена возможность проверять все модули, а не только измененные для последующего анализа.
  5. Добавлена возможность прикреплять несколько плагинов к проекту за один раз.
  6. Добавлен парсер языка запросов платформы 1С:Предприятие 8 в анализатор. Теперь доступен вывод "Токены".
  7. Добавлены файлы в набор внешних файлов:
    - "ДублируетсяОператорПрисваивания" (Плагины).
    - "ДублируетсяТочкаСЗапятой" (Плагины).
    - "ЗакомментированныйКод" (Плагины).
    - "КодВнеОбласти" (Плагины).
    - "КомментарийДолженНачинатьсяСПробела" (Плагины).
    - "ПодрядИдущиеПустыеСтроки" (Плагины).
    - "ПустойБлокКода" (Плагины).
    - "ОбъявлениеМетодаСодержитНесколькоСписковЛокальныхПеременных" (Плагины).
  8. Упразднены некоторые функции.
  9. Исправлена ошибка чтения XML-файлов.

Дата выпуска: 03.11.2023. 

 
 Версия 1.0.0.0
  1. Добавлен анализатор и набор внешних файлов в инструмент. 

Дата выпуска: 01.01.2023.

 

 

Не стесняйтесь сообщать о найденных опечатках!

Учтены замечания:

  • 03.11.23 Поправлено количество проверок в turboconf.
  • 06.11.23 Добавлен список проверок.
  • 23.11.23 Повсеместно переименовано слово "бакенд" в "бэкенд".
  • 15.01.24 Добавлена проверка ИР и ИР адаптер для turboconf.

 

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.14.59

анализатор парсер токен АСД плагин замена бэкенд тестер

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    180378    1001    403    

954

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    21735    145    82    

144

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

22200 руб.

06.10.2023    19452    51    19    

84

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

15000 руб.

10.11.2023    13196    55    33    

74

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

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

9360 руб.

17.05.2024    29613    101    48    

147

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18821    7    32    

43

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1957    2    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1843 03.11.23 10:19 Сейчас в теме
смотрится так, как будто основательно подошли к вопросу - 1.
включите в анализатор переход в процедуры общих модулей - по фразе ОбщийМодуль1.ВыполнитьПроцедуру1() - чтобы открывалась страница модуля на этой процедуре - 2.
включите в анализатор использование внешних обработок - их часто используют, а в конфе прописывают вызов внешних обработок - 3.
попробуйте разобрать анализатором модули КонтурДиадок, в которых модули спрятаны в макеты и хранятся в двоичном виде - 4.
9. ZhokhovM 765 03.11.23 14:28 Сейчас в теме
(1)
включите в анализатор использование внешних обработок - их часто используют, а в конфе прописывают вызов внешних обработок - 3.

Плагины и бакенды и есть внешние обработки, они цепляются к парсеру и проекту, в конфе прописаны вызов внешних обработок.
2. bprogs 97 03.11.23 11:13 Сейчас в теме
сделайте если можно в видеоформате обновление пожалуйста, по картинкам не всегда ясно))))
10. ZhokhovM 765 03.11.23 14:30 Сейчас в теме
(2)а картинки - это скриншоты самого инструмента, а не обновление)
3. fishca 1260 03.11.23 11:21 Сейчас в теме
Хотелось бы побольше иллюстраций работы с данным инструментом.
График ошибок все таки должен идти вниз, или я не прав?

>К парсеру можно цеплять плагины, бакенды и т.д.
может все таки бэкенды?
12. ZhokhovM 765 03.11.23 14:39 Сейчас в теме
(3)как график идет вверх, так и продолжает расти. если были исправлены ошибки, то вниз.

как был бакенд в оригинале, так и остался бакендом.
13. fishca 1260 03.11.23 14:41 Сейчас в теме
(12)
(12) >как был бакенд в оригинале, так и остался бакендом.
ты про какой оригинал ведёшь речь?
16. ZhokhovM 765 03.11.23 14:59 Сейчас в теме
(13)ну оригинальный репозиторий radar. использовал его как основу. бакенд был описан во всей документации парсера и файлах.
4. tormozit 7269 03.11.23 12:05 Сейчас в теме
выключена отладка на сервере

Можно и не выключать, если немного неудобств добавить в код https://infostart.ru/1c/articles/1732527/
18. so-quest 140 04.11.23 09:11 Сейчас в теме
(4) Ну не надо такого советовать. У @ZhokhovM на руках парсер и где-то была обработка по форматированию кода. Соберет весь код в одну строку и будет все выполняться за наносекунду
33. ZhokhovM 765 11.01.24 22:32 Сейчас в теме
(18)В версию 1.1.1.0 включил внешнюю обработку по форматированию кода.
5. Serg O. 304 03.11.23 12:13 Сейчас в теме
Интересная статья, Большой + автору за развитие такой важной и нужной темы.

таблица разных анализаторов ...
очень интересно, многих не знал, посмотрю позже.

Вопрос по таблице - Что означает столбец "Анализ Кода" и "Анализ конфигурации" ?

Для данного анализатора указано и то и другое...
Но в "как пользоваться" п.1 и п.2 сразу указана выгрузка в файл(ы)...

а где же тогда "Анализ кода" ?
Я так понял ,что это должно делаться "on-line" без всяких выгрузок конфигурации в файлы.
(или копи-пастом в какую-то обработку хотя бы)

Вот для PhoenixBSL - это и есть on-line "Анализ кода" - не выходя из конфигуратора
в "одно" нажатие Ctrl+Shift+i
про другие анализаторы тоже не уверен, что правильно этот столбец заполнен.
или поясните (переименуйте столбец), что Вы имели ввиду под "Анализ кода".

по времени... 2ч. на первый анализ... не очень понятно это много или мало...
нужно сравнить хотя бы со стандартным 1С-ым АПК (последних версий)

3-5 мин. на второй запуск... что это означает ?
конфигурацию в файл CF и в XML снова выгружать надо и снова анализируются... только изменения?
может у меня только 1 строка добавилась ... пустая, тогда это долго, новая подсистема... Ок, быстро

что делается при втором запуске ? поясните поподробнее в статье или в комментариях
7. ZhokhovM 765 03.11.23 13:21 Сейчас в теме
(5)
Что означает столбец "Анализ Кода" и "Анализ конфигурации" ?

Анализ кода - анализирует исходный код.
Анализ конфигурации - анализирует конфигурацию (файл конфигурации cf + служебные файлы / файлы модулей xml).

(5)
а где же тогда "Анализ кода" ?

Копи-пастом в обработку "Сервис" - "Парсер встроенного языка".

(5)
3-5 мин. на второй запуск... что это означает ?

При первичном анализе кэшируются файлы модулей, при последующем анализе проверяются кэши модулей. Если это новый кэш, то была повторно выгружена конфигурация в файлы в XML, если старый - пропускает модули.
6. dhurricane 03.11.23 12:54 Сейчас в теме
Честно говоря, не понял, как составлялась таблица сравнения возможностей. Во-первых, Турбоконф, под капотом запускает bsl ls, у него не может быть меньше проверок, чем у самого ls. Аналогично обстоят дела, как я понимаю, и с плагином для sonar. Во-вторых, почему вдруг у 1С:АПК нет анализа кода? Все там есть. И проверки там свои можно писать, при том на языке 1С. Т.е. "использование будет проще и более понятным для программистов" (с).

Можете таки сформулировать более ясно, зачем появился этот продукт? Раскройте, пожалуйста, более подробно, как именно достигаются озвученные в статье цели.
11. nixel 1441 03.11.23 14:37 Сейчас в теме
(6)
Во-первых, Турбоконф, под капотом запускает bsl ls, у него не может быть меньше проверок, чем у самого ls.


Насколько я знаю, турбоконф работает с bsl ls в режиме анализа временного файла, а не файла в контексте конфигураций, поэтому не все проверки бсл лс там будут работать. Но не 11, конечно же.
dhurricane; +1 Ответить
14. ZhokhovM 765 03.11.23 14:47 Сейчас в теме
(11)Количество проверок в turboconf посчитал 11, но возможно больше.
15. nixel 1441 03.11.23 14:52 Сейчас в теме
(14) это проверки самого turboconf. а BSL LS подключается отдельной галкой. раздел "Пользовательские проверки в CodeInspector и поддержка Bsl-Language-Server"
24. ZhokhovM 765 07.11.23 10:37 Сейчас в теме
(6)
Можете таки сформулировать более ясно, зачем появился этот продукт?

Это результат творчества.
Perfolenta; e.kogan; +2 Ответить
8. acces969 367 03.11.23 13:21 Сейчас в теме
А где список проверяемых ошибок?
17. ZhokhovM 765 03.11.23 15:12 Сейчас в теме
(8)в конфе и во внешних обработках.
19. VVi3ard 53 05.11.23 19:55 Сейчас в теме
Есть репа на гитхабе?
Разбирает только код или ещё и запросы?
Работает прям в контексте всей конфигурации или как многие видит только один модуль?
21. ZhokhovM 765 07.11.23 09:27 Сейчас в теме
(19)
Есть репа на гитхабе?

Репы нет.

(19)
Разбирает только код или ещё и запросы?

У запросов только токены.

(19)
Работает прям в контексте всей конфигурации или как многие видит только один модуль?

Ну сколько файлов xml выгружено, столько проверок будет.
23. SerVer1C 880 07.11.23 09:59 Сейчас в теме
(21)
Ну сколько файлов xml выгружено, столько проверок будет.

Скорее всего вопрос был про межмодульный анализ. Т.е. будет ли работать проверка, например, выхода за границу в глобальном массиве при использовании его в обычном общем модуле.
25. ZhokhovM 765 07.11.23 10:42 Сейчас в теме
(23)Надо смотреть radar. Задумывалось что будет, но на чем остановился не помнит уже.
26. SerVer1C 880 07.11.23 11:02 Сейчас в теме
(25) Так вы взяли radar с ГитХаб и просто выложили его здесь?
20. SerVer1C 880 06.11.23 21:34 Сейчас в теме
Тема интересная, хоть и на 1С - надеюсь, у Сонара хлеб не отберёт )
Хотелось бы в статье больше видеть инфы о самом инструменте и список его проверок.
Я не большой спец в статических анализаторах, но подобные проверки [ДублируетсяТочкаСЗапятой, ЗакомментированныйКод, КодВнеОбласти, КомментарийДолженНачинатьсяСПробела, ПодрядИдущиеПустыеСтроки, ПустойБлокКода] очень слабо относятся к статическому анализу. Посмотрите, например, что может PVS‑Studio (не реклама!).
30. ZhokhovM 765 07.11.23 13:51 Сейчас в теме
(20)
Хотелось бы в статье больше видеть инфы о самом инструменте и список его проверок.

Достаточно посмотреть исходники внешних обработок на вызовы типа:
Ошибка("Дублируется оператор присваивания", ...);
22. Painted 49 07.11.23 09:49 Сейчас в теме
поставил 50-ый лайк для красоты, число 49 неэстетичное, глаз натирает ))
27. ZhokhovM 765 07.11.23 11:24 Сейчас в теме
(26) Инструмент создан на основе radar с исправлениями и новыми наборами плагинов.
28. SerVer1C 880 07.11.23 11:27 Сейчас в теме
(27) Эх. Зря поставил "+". Получается, это плагиат.
Вы даже не можете прокомментировать функционал данного решения.
JohnyDeath; +1 Ответить
29. ZhokhovM 765 07.11.23 11:37 Сейчас в теме
(28)А я чего тогда пишу в таблице "Создан на основе"?
31. ZhokhovM 765 07.11.23 15:03 Сейчас в теме
(28)С плагиатом не согласен, разрешения у автора спрашивал, автор не против.
32. SerVer1C 880 07.11.23 15:08 Сейчас в теме
(31) Я вас не обвиняю. Как я понял, в отличие от оригинала там присутствует, максимум, причёска кода. Т.е. это не ваше авторское решение.
34. tormozit 7269 12.01.24 16:45 Сейчас в теме
В ИР и ИР адаптере для Турбоконфа кстати тоже появилась проверка модуля, но она ищет только потенциальные явные ошибки выполнения кода. Выполняет поиск неизвестных слов (свойств/методов) после точки на полную глубину в инструкциях встроенного языка и вложенных текстов запросов. https://fastcode.im/Templates/8889
ZhokhovM; +1 Ответить
Оставьте свое сообщение