Имя: Пароль:
1C
1С v8
Вызов типовой процедуры модуля документа если в конфигурации она отсутствует
0 Надмозг
 
30.06.23
17:08
Такая ситуация.
Есть процедура ПриКопировании модуля документа. Она была доработана с помощью расширения с аннотацией &После("ПриКопировании")
В какой-то момент процедура пропала из конфигурации, но, что интересно, проверка применения расширений проходила, и пропала она года три назад при этом.
Недавно обновили платформу до 8.3.22.1704 и конфу, в расширениях поменяли режимы совместимости. В результате проверка применения расширений не проходит, но при этом при запуске расширение работает.

Возникает несколько вопросов:
1. Главное, что не могу понять, эта процедура уже три года не работала, и просто проверка применения не ругалась, или она все-таки работала, несмотря на отсутствие в основной конфигурации? Это важно, т.к., если она не работала, то можно просто закомментировать и не ломать голову.
2. Это новая платформа так отработала или с чем может быть связано? Может, на старой платформе эти процедуры &После вызывались в любом случае, а теперь нет? Или просто проверка применения стала лучше работать?
3. Как вообще вызвать эту типовую процедуру в расширении, если она отсутствует в модуле объекта?
1 Надмозг
 
30.06.23
17:11
Ну и добавлю
4. Почему это при запуске в пользовательском режиме расширение продолжает работать, хотя "проверка применения всех расширений" в конфигураторе не проходит? По-моему, всегда была логика, что если проверку не проходит, то и в режиме пользователя не запускается.
2 Garykom
 
гуру
30.06.23
17:46
Бывает
3 AlvlSpb
 
30.06.23
17:50
"3. Как вообще вызвать эту типовую процедуру в расширении, если она отсутствует в модуле объекта?"©
Отсутствует ПриКопировании? Т.е. документ не может быть скопирован в пользовательском режиме? Что за документ и в какой конфигурации?
Я бы не был так категоричен. Посмотри внимательно
А ошибку-то покажешь?
4 Надмозг
 
30.06.23
17:57
(2) спасибо
5 lubitelxml
 
30.06.23
17:58
(3) например Документ.Анкета в УТ 11.5
6 lubitelxml
 
30.06.23
17:59
(0) Отладчиком смотрел - заходит вообще в расшерение &После ПриКопировании?
7 Надмозг
 
30.06.23
17:59
(3) в модуле объекта отсутствует процедура. Почему она обязательно должна быть? Ее можно как создать, так и удалить легко
8 lubitelxml
 
30.06.23
18:00
(7) на сколько я помню, могу конечно ошибаться, для событий модуля формы можно в расширение добавить процедуру, которой в основной конфигурации нет. Про модуль объекта - не скажу, не сталкивался. Попробуй (6) и отпиши результат
9 Надмозг
 
30.06.23
18:08
(6) Да, надо проверить, согласен. Это уже в понедельник.
Просто я описал самую странную ситуацию, которую как-то можно формализовать. Было около 10 процедур, которые внезапно стали не проходить проверку, оказалось они удалены. Не все они платформенные (типа ПриКопировании), некоторые просто были в конфе, но теперь нет (причем давно), поэтому отладчиком их точно не отловить.

Еще странный момент, что часть я удалил, на бОльшую часть не ругается теперь. А ПриКопировании я закомментировал, но при этом проверка применения продолжила ругаться и ссылаться на этот модуль, но сама процедуру не видит, при двойном клике просто модуль открывает. В других местах подобные процедуры закомментировал, и все ок теперь.

Еще хуже с другим. Есть два расширения, которые проходят проверку применения, но при запуске отваливаются. Возможно, как-то повлияло изменение режима совместимости, который пришлось поменять из-за требования конфы. Вот что там за проблема, вообще не ясно.
10 Надмозг
 
30.06.23
18:10
Повторюсь все эти проблемы возникли после обновления платформы до 8.3.22.1704, до этого много лет процедур не было в конфе и ничего. Других странностей тоже не появлялось
11 lubitelxml
 
30.06.23
18:12
(9) я тут недавно обновлял УТ, причем всего лишь на один релиз, все доработки с "ИзменениеИКонтроль" вылетели (не проходит проверка - при нажатии на исправить - говорит не установлена компонента чего-то там), хотя код в них не менялся, пришлось отказать и использовать "Вместо", и теперь придется при каждом обновлении смотреть - не поменялось ли что-то (про ПродолжитьВызов в курсе, но у меня менялся код именно внутри процедур). Платформа 22 тоже (1750 вроде). Подытожу - расширения работают, но бывают глюки, и вообще "восьмерка еще сырая" (С)
12 lubitelxml
 
30.06.23
18:13
+(11) "отказать" = "отказаться"
13 lubitelxml
 
30.06.23
18:17
+(11) причем до обновления платформы (вот тут про версии не скажу, не я обновляю платформу) - с "ИзменениеИКонтроль" проблем не было. С какой версии платформы это началось - не могу сказать, но видел подобные темы в том числе на этом форуме
14 Надмозг
 
03.07.23
11:11
(13) у меня такого не было, и не встречал тем
15 Надмозг
 
03.07.23
11:29
Короче, с некоторыми моментами разобрался. Суть такова. Предполагаю, что после обновления платформы, проверка применения стала как-то по другим правилам работать, я бы сказал, в некоторых моментах более корректно.

По поводу ответов на вопросы в заглавном посте (0)
1. Именно процедура ПриКопировании работает при запуске на необновленной конфе, но на новой платформе, хотя проверка применения ругается. Проверил в отладчике. Но, что интересно, в расширении еще есть процедуры общего модуля, которые давно пропали из основной конфы, и, ясное дело, они не должны запускаться, ибо неоткуда.
2. Похоже, применение расширений стало работать по-другому. Раньше &После("ПриКопировании") работала даже при отсутствии в основной конфе. Но проблема была в том, что если процедура исчезает из общего модуля, то процедуры расширения &После никак не реагируют при проверке применения.
3. Вопрос остается открытым.
4. Вот тут не понятный кося, при проверке применения не поругалось на режим совместимости, при запуске текст ошибки говорит, что проблема именно в режиме. Если его исправить, становится все ок
16 Надмозг
 
03.07.23
11:29
(8) проверил ПриКопировании работает до обновления конфы и изменения режима совместимости, хотя ее нет в основной конфе. После обновления и изменения режима совместимости - расширение уже не применяется.
17 Надмозг
 
03.07.23
11:31
В общем, пока ясно, что платформа работает с расширениями как-то со странностями.

Остается вопрос, как доработать процедуру модуля объекта ПриКопировании, если она отсутствует в основной конфе?
18 AlvlSpb
 
03.07.23
13:29
(17) "Остается вопрос, как доработать процедуру модуля объекта ПриКопировании, если она отсутствует в основной конфе?"©
Да так же как и обычно в расширении. Заимствуешь документ, открываешь его модуль объекта, жмешь на лупу с надписью proc и выбираешь ПриКопировании
https://postimg.cc/xXt9DPwc
19 Надмозг
 
04.07.23
13:43
(18) Так проверка применения и стала ругаться на процедуру, которая создана таким методом. Может, теперь надо вызывать &Вместо? Была &После