gifts2017

Расширенный синтаксический контроль

Опубликовал Максим Полянский (yandextesting) в раздел Программирование - Практика программирования

Расширенный синтаксический контроль: поиск ошибочных вызовов функций и процедур общих модулей.

ВНИМАНИЕ!!! АВТОР ОБРАБОТКИ НЕ Я! БУДУ РАД, ЕСЛИ АВТОР ОТКЛИКНЕТСЯ (НАЙДЕТСЯ); И ЕЩЕ БОЛЬШЕ БУДУ РАД, ЕСЛИ ПРЕДСАВИТ НАМ БОЛЕЕ СВЕЖУЮ ВЕРСИЮ ДАННОЙ ОБРАБОТКИ:) ЕСЛИ БУДЕТ НЕОБХОДИМО УДАЛЮ ЕЕ ПО ПЕРВОМУ ТРЕБОВАНИЮ: НЕ ХОЧУ НАРУШАТЬ АВТОРСКИЕ ПРАВА.

НО ПОДЕЛИТЬСЯ ЭТОЙ ОБРАБОТКОЙ Я ХОТЕЛ БЫ.

Обработка ищет ошибочные вызовы функций и процедур общих модулей.

Что обработка находит?

Распознаются следующие типы ошибок:

1. Функция (процедура) отсутствует в общем модуле.

2. Функция (процедура) есть в общем модуле, но она не экспортная.

3. Функция (процедура) есть в общем модуле, но она может быть не доступна в контексте вызова. Например, функция располагается в общем модуле у которого установлен только флаг "Клиент", а вызывается она из модуля объекта документа. Возможен случай что вызов будет осуществляться в контексте "Сервер" или "Внешнее соединение". Для этого типа ошибки в колонках "К","С","В" выводимого табличного документа указывается символом "Х" контекст, в котором не доступен будет вызов функции.

Дополнительно, делаюстя следующие проверки:

1. В общих модулях находятся дубли имен функций и процедур.

2. Во всех модулях конфигурации анализируются инструкции препроцессору (#Если, #Иначе, ...). В качестве предупреждения выводится те инструкции, которые являются избыточными (будут всегда выполнены) и которые никогда не будут выполнены.

Как воспользоваться обработкой?

1. В режиме конфигуратора сделать проверку конфигурации, установить все флажки входящие в группу "Синтаксический контроль".

2. Выгрузить тексты всех модулей в каталог. Это можно сделать одним из двух способов:

а) В меню "Конфигурация - Выгрузить файлы конфигурации", выбрать все объекты, оставить флажок "Модули" и нажать "Выполнить".

б) В каталоге с базой данных создать каталог Module и выполнить в коммандной строке:

"C:\Program Files\1cv81\bin\1cv8.exe" CONFIG /F"./" /Out test.log /DumpConfigFiles Module -Module

3. В режиме Предприятие открыть обработку, выбрать каталог в который выгрузили модули и нажать "Выполнить".

P.S. Для тех, кто воспользовался данной обработкой, думаю еще интересна будет и эта:

"Поиск не существующих объектов метаданных в текстах модулей конфигурации".

И эту тоже используйте (я за чистоту русского языка, автору однозначный плюс): "Орфографическая проверка конфигурации".

Не забываем про типовую 1С:Автоматизированная проверка конфигураций.

P.P.S.

Наиболее функциональная разработка для анализа и тестирвания кода конфигурации: Конфигурация «Анализ конфигурации» - рекомендую ознакомиться.

Если знаете еще какие-нибудь обработки для проверки программного кода, напишите про них в комментариях.

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

Наименование Файл Версия Размер
РасширенныйСинтаксическийКонтроль.rar 225
.1249472397 33,85Kb
25.09.09
225
.1249472397 33,85Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Смоленков Артем (АртемВС) 15.03.10 13:15
Спасибо за обработку !!! Пригодилась при обновлении - отловил перемещенные функции общих модулей.
2. Алексей Захаров (almas) 22.07.10 13:29
3. Сергей Старых (tormozit) 12.09.11 02:36
Многие из этих возможностей реализованы в одноименной фиче платформы 8.2.14
4. Alex Stasyuk (GreenFox) 27.12.11 15:52
tormozit пишет:

Многие из этих возможностей реализованы в одноименной фиче платформы 8.2.14


Хе-хе-хе. Видать разработчики инфостарт почитывают ))).
5. Игорь Павлычев (ivpctotru) 23.01.12 18:24
6. евгений крутицин (dkal) 25.01.12 16:17
Спасибо,наконец то,а то заморока была.Спасибо огромное!