|   |   | 
| 
 | Мой метод тестирования расширений. Взлетит? | ☑ | ||
|---|---|---|---|---|
| 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) мне можно. я сперва победил, после этого и сдаться не грешно. Я не перфекционист     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |