Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Проверка синтаксического контроля во внешних обработках

Проверка синтаксического контроля во внешних обработках
Я
   Franchiser
 
14.02.20 - 18:16
Есть 100500 внешних обработок. Нужно проверить в них автоматически синтаксический контроль. Как лучше это сделать?
 
 
   PR
 
1 - 14.02.20 - 18:16
(0) Ты о чем вообще?
   pechkin
 
2 - 14.02.20 - 18:17
только загрузить все в конфу и ее проверить
   Franchiser
 
3 - 14.02.20 - 18:19
Проверить файлы epf, erf.
В связи с выходом нового релиза БП обнаружилось что многие процедуры/функции общих модулей и сами общие модули перестали существовать, а они могут использоваться во внешних отчетах/обработках.
Файлы выгрузил, в конфу загрузить можно только по 1-й штуке.
   pechkin
 
4 - 14.02.20 - 18:20
можно тупо открыть все по очереди
   Franchiser
 
5 - 14.02.20 - 18:21
(4) обработок больше 1000
   drcrasher
 
6 - 14.02.20 - 18:23
пробежать по файлам обработок, каждую создать и создать имеющиеся формы. если при создании упадёт, значит не скомпилировалось. если про создании формы упадёт - аналогично.
завернуть в попытку и писать лог
   Franchiser
 
7 - 14.02.20 - 18:24
(6) это формы не проверит
   drcrasher
 
8 - 14.02.20 - 18:28
(7) с чего бы? если ты принудительно создаёшь форму
   fisher
 
9 - 14.02.20 - 18:38
tormozit кажись в своих ИР какие-то компоненты для этого юзает.
   fisher
 
10 - 14.02.20 - 18:40
(3) Стандартный синтаксический контроль вроде ж не проверяет доступность функций общих модулей.
   RomanYS
 
11 - 14.02.20 - 18:46
(6) при создании упадёт, если общий модуль не существует. Если ОМ есть, то только при вызове несуществующего метода
   RomanYS
 
12 - 14.02.20 - 18:46
(10) +1
   ДенисЧ
 
13 - 14.02.20 - 18:54
   Franchiser
 
14 - 14.02.20 - 19:39
Написал уже обработку по проверке, осталось формы дописать.
   probably
 
15 - 14.02.20 - 20:05
(13) у тебя ругается на модуль ОбщегоНазначения, а не на процедуру в нем, или я путаю?
   Franchiser
 
16 - 14.02.20 - 20:15
(15) на процедуру ругается... Все ок.
Как получить список всех форм внешней обработки/отчёта?
   Franchiser
 
17 - 14.02.20 - 20:20
(10) может не проверять если написать объявление через метод общиймодуль()
   ДенисЧ
 
18 - 14.02.20 - 20:40
(16) ОбъектМетаданных: Обработка (MetadataObject: DataProcessor)
Формы (Forms)
Использование:
Только чтение.
Описание:
Тип: КоллекцияОбъектовМетаданных.
Коллекция объектов метаданных, описывающих формы данного объекта метаданных.
Доступность:
Сервер, толстый клиент, внешнее соединение.
   RomanYS
 
19 - 14.02.20 - 21:24
(16) Что на процедуру ругается?
Ctrl-F7 - не ругается.
Ругается только проверка конфигурации с флагом "Расширенная проверка". Но как ее применить к ВнОбр?
   Franchiser
 
20 - 14.02.20 - 21:34
(19) сделал как предлагали, создаю объект внешней обработки, затем вызываю создание обработки, в исключении пишется информация о несуществующих ОМ и процедурах ОМ.
   Franchiser
 
21 - 14.02.20 - 21:36
(19) хотя не проверил проверяется ли при компиляции процедуры из ОМ
   RomanYS
 
22 - 14.02.20 - 21:37
(20) несуществующих ОМ - Да
процедурах ОМ - только если они вызываются при создании
   Franchiser
 
23 - 14.02.20 - 21:45
(19) да ты прав. Компиляция не проверяет процедуры из ОМ.
А синтаксис контроль проверяет только при расширенной проверке.
   Franchiser
 
24 - 14.02.20 - 21:58
Может есть возможность загрузить пакетной внешние обработки в конфигуратор для проверки используя возможности выгрузки/закрузки конфигурации в файлы?
   RomanYS
 
25 - 14.02.20 - 21:58
(23) Вот и всё)
Варианта 3:
1. собрать их как-то в конфигурацию и запустить проверку
2. распарсить модули и проверить наличие методов
3. тестировать функционал (есть риск, что какие-то методы вызываются по условию и тест пройдет, а в реале вылетит)

Наиболее реальным п. 2 выглядит, если найти что-то полуготовое
   ildary
 
26 - 14.02.20 - 22:08
(0) На инфостарте Сапер Водичка выкладывал то, что возможно Вам нужно - обработку для проверки внешних обработок.
   Franchiser
 
27 - 14.02.20 - 22:19
Распарсить мне кажется долго, как понять модуль это общий или нет?
   RomanYS
 
28 - 14.02.20 - 22:26
(27) так они же все известны
   Franchiser
 
29 - 14.02.20 - 22:28
(26) нашел его "Групповая проверка доработок" на ИС, но там не проверяются внешние обработки.
   Franchiser
 
30 - 14.02.20 - 22:29
(28) понял, только это нужно ещё и получить список существующих процедур/функций.
 
 Рекламное место пустует
   Franchiser
 
31 - 14.02.20 - 22:30
(9) в ИР есть какой нибудь функционал на эту тему? Где tormozit...
   RomanYS
 
32 - 14.02.20 - 22:34
(30)
Функция [ИмяФункции]() Экспорт
Можно еще количество параметров посчитать (по запятым) и количество необязательных (по "=")

Но всё равно гарантий нет - недавно в БП добавили параметр в функцию. По количеству параметров вызов нормальный(часть необязательна), а по факту не работает. Сейчас тему найду
   Franchiser
 
33 - 14.02.20 - 22:34
(28) я имел ввиду существующие ОМ известны, а старые ОМ  не известны, а их нужно отличать от переменных.
   Franchiser
 
34 - 14.02.20 - 22:36
(32) да, пока не проверяю изменит количества параметров и возвращаемый результат... Хотя и тут много изменений
   RomanYS
 
35 - 14.02.20 - 22:42
   Franchiser
 
36 - 14.02.20 - 22:46
(35) была ещё разработка
"Расширенный синтаксический контроль"
   RomanYS
 
37 - 14.02.20 - 22:50
(25) Вариант 1 тоже вроде реален: выгрузить в файлы и собрать их в конфигурацию или расширение. Но гемора тоже много
   JeHer
 
38 - 15.02.20 - 03:15
1000 внешних обработок и отчётов... Нах вам типовая конфа?
   Franchiser
 
39 - 15.02.20 - 11:47
(38) бухгалтерскую отчетность как сдавать?
   Franchiser
 
40 - 15.02.20 - 12:20
Попробовал обработку из расширения ИР "Тестирование метаданных ИР" для тестирования внешних обработок.
Выдает все не  правильно:
1. ошибки расположены не напротив тестируемых обработок
2. выдает ошибки на используемые общие модули, хотя общие модули есть и процедуры в них тоже.
   Tatitutu
 
41 - 15.02.20 - 12:24
Сделай тестовую базу
Напиши обработку
Найтифайлы 
Загнать  их в справочник внешние обработки
Записать
Потом по очереди запускать
Найдёшь те которые не запускаются
   Franchiser
 
42 - 15.02.20 - 12:27
(41)  я уже это все сделал.
Но если отсутствует процедура/функция в общих модулях и она используется во внешней обработке, то это при открытии обработки ошибки не будет.
   ДенисЧ
 
43 - 15.02.20 - 12:30
(42) Я ж какртинку показал выше...
   Franchiser
 
44 - 15.02.20 - 12:34
(43) значит у тебя стоит настройка "расширенный синтаксический контроль".
Если открыть обработку в режиме предприятия ошибки не будет.
   ДенисЧ
 
45 - 15.02.20 - 12:42
   Franchiser
 
46 - 15.02.20 - 13:20
(45) попробуй не в толстом клиенте
   RomanYS
 
47 - 15.02.20 - 13:24
(43) В картинке ругается на общий модуль
   RomanYS
 
48 - 15.02.20 - 13:29
(45) Если флажок "расширенная проверка" поставить(у тебя снят), то будет ругаться.
Остается решить вопрос с автоматизацией запуска синтаксического контроля для тысячи обработок.
   Franchiser
 
49 - 15.02.20 - 13:32
(48) он говорит , что у него даже при снятом ругается. Но у него обычное приложение.
   RomanYS
 
50 - 15.02.20 - 13:41
(49) Говорит одно, показывает другое
   Franchiser
 
51 - 15.02.20 - 13:53
(50) кстати на рисунке ругается на переменную ОбщегоНазначения, а не на траляля
   RomanYS
 
52 - 15.02.20 - 13:58
(51) :)))) Это не новость, см. (15), (47)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.