|
Мой метод тестирования расширений. Взлетит? | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
15.08.22
✎
10:13
|
В общем, в каждый общий модуль расширением добавляем функцию Тест()
Вызываем ее. Смотрим потом, появились ли в журнале записи о несоответсвии параметров процедур расширения. Я так понимаю, когда собирается модуль, проверяются ран-тайм все процедуры на соответствие параметров. Еще бы сделать так без необходимости добавления Тест(). Также можно и во все модули доработанные добавлять. |
|||
1
СеменовСемен
15.08.22
✎
10:13
|
Может все таки юнит тестирование?
|
|||
2
Гений 1С
гуру
15.08.22
✎
10:15
|
(1) дорого, для геев. я сторонник маскулинных дешевых и сердитых методов.
кстати, можно пробовать вызывать несуществующую процедуру из модуля, она по идее тоже должна рантайм модуль скомпилировать для проверки, есть там такая процедура или нет |
|||
3
СеменовСемен
15.08.22
✎
10:16
|
(2) ну а как ты будешь запускать эту процедуру? А по всем модулям?
Так глядишь и свой запускатель тестов напишешь |
|||
4
Chai Nic
15.08.22
✎
10:17
|
А поподробнее можно? Зачем сие действо? Что в результате мы хотим протестировать, и какой результат мы ждем в случае успеха и наоборот?
|
|||
5
СеменовСемен
15.08.22
✎
10:18
|
(4) Смоук тест на проверку количества параметров в расширяемых методах
|
|||
6
Гений 1С
гуру
15.08.22
✎
10:20
|
(3) все модули можно получить из метаданных, вроде как. не?
(4) Идея пришла после очередной ошибки: https://fixogram.ru/moyu-lyubov-k-1s-ne-peredat-slovami/ ты не в курсе, что супер-пупер проверка применимости расширений не умеет в количество методов процедур, не проверяет, а выдает такие ошибки только рантайм |
|||
7
СеменовСемен
15.08.22
✎
10:21
|
(6) а как ты вообще обновляешь без тестов хотя бы открытия форм?
|
|||
8
Гений 1С
гуру
15.08.22
✎
10:23
|
(7) у меня клиент сам обновляется. там розница. Иногда потом пишет, если чего работать перестает. Но он сперва тестовую обновляет. гоняет ее немного. если че, сам пишет мне
|
|||
9
Chai Nic
15.08.22
✎
10:23
|
(5) Так проверка происходит между процедурой конфигурации и процедурой расширения. То есть, чтобы Тест() использовать, придется снимать замочек с конфигурации, и вписывать его туда. Чтобы потом выполнять проверку в расширениях на количество параметров. Или я не понял что-то?
|
|||
10
Гений 1С
гуру
15.08.22
✎
10:24
|
(7) я кстати, когда обновлял УТ (там мощное обновление) пробовал обработку, которая открывает все формы, но че-то она не работает удачно. Не помню уже, что не так
|
|||
11
СеменовСемен
15.08.22
✎
10:24
|
(8) зачем тогда Тебе чтото проверять?
|
|||
12
Гений 1С
гуру
15.08.22
✎
10:24
|
(9) ты не понял, Тест надо в расширение добавлять. Возможно, даже и не надо, если вызов несуществующей процедуры тоже прводит к компиляции модуля
|
|||
13
Гений 1С
гуру
15.08.22
✎
10:25
|
(11) потому что у меня не только этот клиент, есть те, где я сам тестирую
|
|||
14
Гений 1С
гуру
15.08.22
✎
10:25
|
бывает обновишь, основной функционал протестишь, сдашь, а потом где-нибудь это говнище вылезет
|
|||
15
СеменовСемен
15.08.22
✎
10:25
|
(13) зачем ты приаел тогда в пример этого кдиента?
|
|||
16
Chai Nic
15.08.22
✎
10:26
|
(12) Так на основании чего будут "записи о несоответсвии параметров процедур расширения"? Чему параметры будут несоответствовать?
|
|||
17
Гений 1С
гуру
15.08.22
✎
10:45
|
(15) потому что именно на этом клиенте у меня возникла эта идея.
|
|||
18
PLUT
15.08.22
✎
10:46
|
куры сдохли...
- очень жаль! у нас ещё столько идей есть! |
|||
19
Гений 1С
гуру
15.08.22
✎
10:46
|
(16) ну например у тебя основная процедура:
Процедура Супер(А, Б) Экспорт КонецПроцедуры Ты написал расширение: &После Процедура Супер(А, Б) Экспорт ... КонецПроцедуры А тут 1С вуаля и добавила параметр: Процедура Супер(А, Б, В) Экспорт КонецПроцедуры Проверка применимости пройдет, но рантайм выдаст ошибку. Йо? |
|||
20
MyNick
15.08.22
✎
10:46
|
(0)
"В общем, в каждый общий модуль расширением добавляем функцию Тест()" испанский стыд. "Еще бы сделать так без необходимости добавления Тест()" Для этого надо вылезти из своего "домика" Признать, что ты совсем не гений, а изобретатель велосипедов с квадратными колесами. С околонулевым знанием технологий. Погугли наконец, как тестируют разработчики, которые совсем себя гениями и не считают. |
|||
21
Гений 1С
гуру
15.08.22
✎
10:47
|
(20) о, моя любимая гуру-манипуляция.
|
|||
22
Гений 1С
гуру
15.08.22
✎
10:48
|
(20) к сожалению, 1с не позаботилась элементарным контролем синтаксиса расширений, выпустив недоделанную проверку применимости. Поэтому и только поэтому приходится дарить мой гений. Ты по моему путаешь тестирование и затычку для недоделанного синтаксического контроля.
|
|||
23
MyNick
15.08.22
✎
10:50
|
(22) 1С не доделала - давайте добавим во все функции вызов "Тест()" - доделали ))))) аахаха.
|
|||
24
vde69
15.08.22
✎
10:53
|
1. открываешь конфигуратор
2. открываешь глобальный поиск 3. забиваешь туда "АвтоТест" 4. смотришь результаты и много думаешь |
|||
25
Chai Nic
15.08.22
✎
10:56
|
(19) Это понятно. Непонятно, что даст именно левая процедура Тест() в этом плане.
|
|||
26
Гений 1С
гуру
15.08.22
✎
11:01
|
(25) перечитай сабж и скажи, что именно тебе не понятно.
|
|||
27
Гений 1С
гуру
15.08.22
✎
11:01
|
(24) это другое
|
|||
28
Chai Nic
15.08.22
✎
11:02
|
(26)
" в каждый общий модуль расширением добавляем функцию Тест() Вызываем ее. Смотрим потом, появились ли в журнале записи о несоответсвии параметров" Что с чем будет несоответствовать, если в конфигурации этой процедуры Тест() нет? |
|||
29
vde69
15.08.22
✎
11:13
|
(26) ну подумай немного как используется "АвтоТест" ?
собственно тестирование всех твоих поделок логично перевести на эту технологию (то есть открытие формы с уже загруженным расширением) |
|||
30
vde69
15.08.22
✎
11:14
|
(29) +
которую вызываем после каждого обновления конфигурации |
|||
31
valerivp
15.08.22
✎
11:17
|
(0) думаю процедуру добавлять не надо. Просто ее вызвать без добавления, в попытке
|
|||
32
Garykom
гуру
15.08.22
✎
11:51
|
(0) Хрень.
А вот чтобы 1С допилила в платформе для расширений выполнение специальной процедуры/функции внутри неприменившегося (или сбойного при вызове) расширения было бы неплохо. |
|||
33
Garykom
гуру
15.08.22
✎
11:53
|
(32)+ Сейчас конфа без расширения продолжит работать.
Но в некоторых случаях надо это запретить. |
|||
34
2S
15.08.22
✎
11:58
|
(0) Стараться отказаться от директивы &ИзменениеИКоонтроль.
|
|||
35
2S
15.08.22
✎
11:59
|
*от использования*
|
|||
36
Garykom
гуру
15.08.22
✎
12:03
|
(34) Он даже не начинал ее использовать :)
|
|||
37
Smallrat
15.08.22
✎
12:07
|
(34) а есть альтернатива?
|
|||
38
lodger
15.08.22
✎
12:18
|
(32) так добавили же, только надо подождать когда в прод выкатят версию платформы.
|
|||
39
2S
15.08.22
✎
12:31
|
(37) если не на замке и нет таких условий, то проще сопровождать изменения в основной базе. ИМХО.
|
|||
40
Гений 1С
гуру
15.08.22
✎
12:37
|
(38) так пока эта платформа у всех килиентов обновится..
|
|||
41
Smallrat
15.08.22
✎
12:42
|
(39) так то да, я сам против использования расширений везде и всюду, расширениями можно довести конфигурацию до неподдерживаемого состояния.
|
|||
42
Гений 1С
гуру
15.08.22
✎
12:50
|
(39) (41) вы просто ретрограды, сэры. Расширения - это стильно, модно, молодежно, не для старых пердунов.
|
|||
43
Smallrat
15.08.22
✎
13:00
|
(42) стиль, модно, молодежно, блеать..
https://i.ibb.co/K74MvfK/2022-08-15-125845.png это еще полсписка |
|||
44
2S
15.08.22
✎
13:03
|
(42) ну и ипись при каждом обновлении
|
|||
45
Конструктор1С
15.08.22
✎
13:05
|
(2) так ты и не умеешь в юнит-тестирование
|
|||
46
Гений 1С
гуру
15.08.22
✎
13:05
|
(44) мне за этот "секс" платят 2500 в час.
|
|||
47
Гений 1С
гуру
15.08.22
✎
13:06
|
(45) я много чего не умею и много чего умею, КЭП
|
|||
48
Конструктор1С
15.08.22
✎
13:09
|
(12) ты свой хениальные идеи хотя бы проверяй, прежде чем в эфир отправоять
|
|||
49
Гений 1С
гуру
15.08.22
✎
14:22
|
(48) зачем? это идея-вопрос. там же так и написано "Взлетит?"
|
|||
50
СеменовСемен
15.08.22
✎
14:24
|
(49) и что до сих пор не проверил идею?
|
|||
51
2S
15.08.22
✎
14:28
|
вопрос
|
|||
52
lodger
15.08.22
✎
14:46
|
(49) ну мы подождём, тут.
|
|||
53
Garykom
гуру
15.08.22
✎
14:48
|
(43) То что вместо нескольких патчей они хреначат их десятками и сотнями согласен изврат
|
|||
54
Garykom
гуру
15.08.22
✎
14:48
|
(53)+ Но они же разом удаляются перед обновлением
Так что пофиг |
|||
55
Smallrat
15.08.22
✎
14:58
|
(54) я эту базу не обслуживаю, но вроде она регулярно обновляется, а список кмк все растет и растет.
|
|||
56
Гений 1С
гуру
15.08.22
✎
15:27
|
(53) ну можно было бы кумуллятивный патч, не?
просто там каждый патч пишет отдельный отдел, влом им объединять. |
|||
57
СеменовСемен
15.08.22
✎
15:30
|
(56) куммулятивный патч - это новый релиз
|
|||
58
Гений 1С
гуру
15.08.22
✎
15:41
|
(57) не скажи, можно было бы и кумуль завести
|
|||
59
lodger
15.08.22
✎
15:54
|
(58) получится мега-расширение, которое забирает в себя половину конфы.
поддерживать это хоз-во затратно даже чисто по административным функциям. поэтому для каждой царапки - свой патч = пластырь. пофиксили = потушили расширение. а чтобы вычленить и освободить ненужные уже объекты из кумулятивного расширения = умахаешься. |
|||
60
PLUT
15.08.22
✎
16:08
|
(58) 1С недокрутила
|
|||
61
Гений 1С
гуру
15.08.22
✎
16:09
|
(59) а зачем? Новый релиз пришел - удаляем кумуль
|
|||
62
СеменовСемен
15.08.22
✎
16:14
|
(61) это нужно выделять человека, чтобы кумуль делал, потом тестировать его.
А на это денег нет |
|||
63
СеменовСемен
15.08.22
✎
16:14
|
И все это для жизни кумуля ,в 2-3 недели
|
|||
64
Гений 1С
гуру
15.08.22
✎
17:40
|
(62) у 1с денег нет? шо?
|
|||
65
Гений 1С
гуру
15.08.22
✎
21:42
|
В общем, проверил, реально можно несуществующий метод модуля вызывать, все работае (как часы):
https://geniy1s.ru/metod-dopolnitelnoj-proverki-primenimosti-rasshirenij/ |
|||
66
Chai Nic
16.08.22
✎
07:31
|
То есть, в сухом остатке:
Чтобы инициировать проверку соответствия количества параметров в расширяемых методах модулей, надо попытаться вызвать любой (существующий или несуществующий) метод из соответствующего расширяемого модуля, при этом происходит компиляция расширения с проверкой соответствия количества параметров вообще всех методов. И незачем создавать лишние процедуры. |
|||
67
Конструктор1С
16.08.22
✎
09:18
|
(58) разные ошибки могут фикситься разными релизами. Пока одни исправят, появятся новые. И превратится это расширение в вечное, обновляемое раз в неделю
|
|||
68
Kassern
16.08.22
✎
09:29
|
(65) осталось допилить обработку, чтобы она читала ЖР и выводила в каких именно процедурах есть косяк
|
|||
69
Dmitrii
гуру
16.08.22
✎
10:15
|
(43) Временные матчи - это один из тех немногих случаев, когда расширения - это именно то, что нужно. Вот прям идеальный вариант.
(53) >> То что вместо нескольких патчей они хреначат их десятками и сотнями согласен изврат. Наоборот. Нашли ошибку - сразу выпустили исправление. Быстро, оперативно, качественно. А не ждём, когда каждый исправит ошибки и протестирует, потом кто-то соберёт это всё воедино. Для этого есть подготовка очередного релиза. Вот там все ошибки и будут исправлены скопом. К тому же у пользователя появляется возможность не ставить все исправления, а ограничиться только теми, которые касаются используемого им функционала. Если у меня, например, нет алкашки и ЕГАИС, нафига мне ставить те пять (условно) исправлений, которые касаются этой подсистемы. (56) >> ну можно было бы кумуллятивный патч, не? Нет. Это очень сильно затягивает процесс разработки. Из-за ошибки в одном из исправлений откладываются сроки выпуска всего патча. >> просто там каждый патч пишет отдельный отдел, влом им объединять. см.(57) куммулятивный патч - это новый релиз. |
|||
70
Гений 1С
гуру
16.08.22
✎
13:03
|
(68) в ЖР этого нет, хотя там какая-то структура хранится, в пользовательском режиме не показывается, ее можно извлечь программно?
|
|||
71
Kassern
16.08.22
✎
13:05
|
(70) ЖР полностью можно отбирать и читать програмно
|
|||
72
Kassern
16.08.22
✎
13:06
|
В крайнем случае можно попробовать настроить ТЖ на регистрацию подобных ошибок. Запускать обработку, а потом читать текстовый файлик ТЖ
|
|||
73
PLUT
16.08.22
✎
13:13
|
(72) у Г1С обычно нет доступа к серверу, он юзверей из базы обычно выгоняет реструктуризацией БД
|
|||
74
Kassern
16.08.22
✎
13:18
|
(70) "хотя там какая-то структура хранится" - гляньте в отладке, что в этой структуре лежит, может как раз то, что надо.
|
|||
75
Гений 1С
гуру
16.08.22
✎
13:20
|
(71) (73) ЖР можно читать и без сервера.
(74) Вопрос в ЖР лежит именно структура или просто надпись "Структура", понимаешь. Если в ЖР лежит сериализованная структура, то хорошо. Если нет, надо как-то читать окно "Информация для технической поддержки". |
|||
76
Kassern
16.08.22
✎
13:22
|
(75) все в ваших руках, прочитайте програмно запись, где в данных структура и гляньте какого она типа.
|
|||
77
СеменовСемен
16.08.22
✎
13:23
|
(75) тип структура
|
|||
78
PLUT
16.08.22
✎
13:24
|
(75) Рекомендуется настроить технологический журнал платформы «1С:Предприятие 8» — это позволит проводить анализ проблем при работе системы и аварийных завершений. Журнал надо настроить:
● на всех рабочих серверах, указанных в консоли кластера «1С:Предприятие 8»; ● и на серверах, на которых выполняется модуль расширения веб-сервера «1С:Предприятия 8». |
|||
79
СеменовСемен
16.08.22
✎
13:25
|
(78) тж тут совершенно излишне
|
|||
80
PLUT
16.08.22
✎
13:26
|
(79) речь про доступ Г1С на сервер и (73)
ну если не нужен ТЖ, да и хрен с ним. Аминь |
|||
81
Гений 1С
гуру
16.08.22
✎
13:30
|
(78) это из пушки по воробьям. В принципе, если вы обновляете много конф, то да. Но для одной можно и ручками в окне для техспецов глянуть.
|
|||
82
Гений 1С
гуру
16.08.22
✎
13:30
|
(77) тогда печалька, в ЖР не увидите.
|
|||
83
СеменовСемен
16.08.22
✎
13:31
|
(82) там структура с полями при выгрузке ЖР. все поля видны
|
|||
84
Kassern
16.08.22
✎
13:31
|
(82) наоборот хорошо, что стуктура, а не строка. Из нее можно по ключам попробовать инфу выудить о ошибке.
|
|||
85
Гений 1С
гуру
16.08.22
✎
13:33
|
(84) в ЖР не структура, а информация о том, что в данные была передана структура, скорее всего.
|
|||
86
Kassern
16.08.22
✎
13:35
|
(85) откройте уже конфигуратор и сделайте простенький запрос к этой записи ЖР. Гляньте в отладке состав этой структуры
|
|||
87
Kassern
16.08.22
✎
13:36
|
смысл тут гадать
|
|||
88
Гений 1С
гуру
16.08.22
✎
14:02
|
(86) можно выгрузить ЖР в файл, как вариант
|
|||
89
Kassern
16.08.22
✎
14:04
|
(88) зачем, когда можно все сделать в рамках одной обработки? Вы ее запускаете, она пробегает по модулям и создает записи с ошибками. После ее пробежки в этой же обработке читаете записи ЖР, анализируете и выплевываете результат, мол все норм, или вот эти процедуры ковырни.
|
|||
90
Kassern
16.08.22
✎
14:05
|
Вы ж себя ориентируете как тру программиста, который все для народа, а заставляете даже себя ручками ошибки читать.
|
|||
91
Гений 1С
гуру
16.08.22
✎
14:06
|
(89) затем, что в ЖР нет описания ошибки применения. Прежде чем писать код, надо посмотреть что в ЖР хранится.
Там в структуре хранится почему-то тест. <v8e:Event> <v8e:Level>Error</v8e:Level> <v8e:Date>2022-08-15T21:12:16</v8e:Date> <v8e:ApplicationName>BackgroundJob</v8e:ApplicationName> <v8e:ApplicationPresentation>Фоновое задание</v8e:ApplicationPresentation> <v8e:Event>_$InfoBase$_.DBConfigExtensionUpdateError</v8e:Event> <v8e:EventPresentation>Информационная база. Ошибка изменения расширения конфигурации базы данных</v8e:EventPresentation> <v8e:User>00000000-0000-0000-0000-000000000000</v8e:User> <v8e:UserName/> <v8e:Computer/> <v8e:Metadata/> <v8e:MetadataPresentation/> <v8e:Comment/> <v8e:Data> <v8e:Name xsi:type="xs:string">тест</v8e:Name> <v8e:Версия xsi:type="xs:string"/> </v8e:Data> <v8e:DataPresentation/> <v8e:TransactionStatus>NotApplicable</v8e:TransactionStatus> <v8e:TransactionID/> <v8e:Connection>7</v8e:Connection> <v8e:Session>12760</v8e:Session> <v8e:ServerName/> <v8e:Port>0</v8e:Port> <v8e:SyncPort>0</v8e:SyncPort> </v8e:Event> Спасибо господам из 1С за высокое качество диагностики, все как обычно, привычно. |
|||
92
Гений 1С
гуру
16.08.22
✎
14:06
|
(90) так неоткуда читать. Если скажете откуда, читанем
|
|||
93
Kassern
16.08.22
✎
14:08
|
(91) <v8e:Data>
<v8e:Name xsi:type="xs:string">тест</v8e:Name> <v8e:Версия xsi:type="xs:string"/> </v8e:Data> Прикольно. Тогда ТЖ попробовать настроить |
|||
94
Kassern
16.08.22
✎
14:08
|
Его же можно через обработку официальную включить и настроить
|
|||
95
PLUT
16.08.22
✎
14:09
|
(93) это жЫ из пушки по воробьям
1С недокрутила © Г1С всё как обычно, привычно |
|||
96
Гений 1С
гуру
16.08.22
✎
14:12
|
(93) нет уж, ТЖ это из пушки по воробьям. Разработчику проще ошики посмотреть в "о программе", чем ставить ТЖ.
|
|||
97
Гений 1С
гуру
16.08.22
✎
14:20
|
кстати, Конструктор 1С, ты внес в копилку программистов 1С что-нибудь полезное типа этой методики? ггг
Поэтому я Гений. |
|||
98
Kassern
16.08.22
✎
14:21
|
(96) быстро вы сдались...
|
|||
99
Гений 1С
гуру
16.08.22
✎
16:44
|
(98) мне можно. я сперва победил, после этого и сдаться не грешно. Я не перфекционист
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |