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

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

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