Вход | Регистрация
 
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 или кнопку "Обновить" в браузере.