Имя: Пароль:
1C
 
Аннотация «&После» только один раз?
0 Beduin
 
15.04.26
07:51
Почему такое ограничение в платформе для всех аннотаций такого типа «&Перед» и т.п.. Технически же возможно выполнить код последовательно в каждом расширении.
1 Ненавижу 1С
 
гуру
15.04.26
08:20
(0) а кто тебе сказал что один раз?
2 Beduin
 
15.04.26
09:22
(1) Да все верно. Тогда изменю вопрос. Конфигурация. У нее два расширения. Оба дополняют форму документа "Заказ клиента". В обоих расширениях процедура "ПриСозданииНаСервере". Если включаю ее использование в расширении2, то вызывается 2 последовательных раза в расширении2 и ни разу в расширении1.
Если отключаю расширение2 или убираю вызов процедуры, то вызов возвращается в расширении1.
Какая-то проблема именно в расширении2. Так как при добавлении нового расширения3, перехват вызова не происходит и процедура "ПриСозданииНаСервере" последовательно исполняется в расширении1 и расширении3, при отключенном расширении2.
Кэш чистил.
3 Ненавижу 1С
 
гуру
15.04.26
09:40
(2) можно переопределить вызов события "ПриСозданииНаСервере" и тогда действительно, кто последний переопределил, тот и молодец

а можно переопределять вызов метода события "ПриСозданииНаСервере" и тогда вызовы будут идти как указано

Не думаю, что смешивать эти подходы - хорошая практика
4 Beduin
 
15.04.26
09:42
(3) Нет. При переопределении вызова события тоже нет проблем. На тестовой базе последовательно вызываются.
5 Garykom
 
гуру
15.04.26
09:44
Эмм ты про аннотацию для любой процедуры/функции
&НаСервере
&После("ИмяМетода")
Процедура префикс_ИмяМетода()

Или про перекрытие самого обработчика для формы где по сути вместо аннотации для процедуры/функции название с добавкой "После" и без аннотации лишней
&НаСервере
Процедура префикс_ИмяМетодаПосле()
6 Beduin
 
15.04.26
09:47
Так. Проблему нашел. Дело было в одинаковом имени процедуры обоих расширениях, так как у них равный префикс и процедуры назвались идентично.
Но платформа ничего не написала про это, а просто перенаправила вызов из расширения1 в расширение2.
7 bolder
 
15.04.26
10:08
(6) Равный префикс в разных расширениях -ССЗБ, имхо.
8 Beduin
 
15.04.26
10:16
(7) ССЗБ-согласен. Но сама платформа инициировала ошибочную ситуацию по сути, и никакого предупреждения нет. Хотя она явно понимала, что вызов из расширения 1 дергает расширение2.
Префикс одинаковый только на заголовки влияет. Если его оставить, но давать переопределяющим процедурам другие имена, то проблемы нет.
9 Garykom
 
гуру
15.04.26
10:19
(6) Тоже с таким сталкивался
Там еще основная роль с одинаковым префиксом и упс
10 Garykom
 
гуру
15.04.26
10:20
(7) Расширения могут быть сторонние и как подменять префикс на лету?
11 ZloyBrawler
 
15.04.26
10:50
(10) ИМХО не надо такое вообще допускать. Треботать от разрабов уникальные преХискы
12 Garykom
 
гуру
15.04.26
11:15
(11) Так разрабы могут быть из разных контор с одним названием/префиксом
Или из одной конторы но разные команды и фигак вот вам два (или более) расширений с одним префиксом
13 maxab72
 
15.04.26
11:41
Один вопрос. А как 1С разберется, какое &После из какого расширения надо выполнять первым, а какое потом? Тут ведь еще та лотерея...
14 ZloyBrawler
 
15.04.26
12:15
(13)
Порядок выполнения не гарантирован и поэтому нужно кодить так чтобы порядок выполнения ничего не ломал.
Да и ваше расширение 1 не должно зависеть от расширения 2
15 Garykom
 
гуру
15.04.26
12:18
(13) В порядке для расширений?
Он ведь есть, три назначения и сам порядок отображения
16 ZloyBrawler
 
15.04.26
13:07
(15) вы видели где-то кнопки вверх вниз в списках расширений? Предлагаете юзерам инструкции писать в каком порядке в список расширения нужно добавлять? Ну как прям разные моды к играм))) этот с этим не совместим, а этот применять после этого.... Часто скайрим не запускался или вылетал?
17 maxab72
 
15.04.26
13:56
(14) "поэтому нужно кодить так чтобы порядок выполнения ничего не ломал" это от логики расширения зависит. Есть у меня расширение, оно в ДО позволяет для вида документа ограничить список возможных шаблонов процессов (цепляется к функции как После и убирает лишние, чтоб не предлагались пользователю). Дал ее знакомому прогу с фирмы партнера, тот поставил у себя и... оно не работает. Оказалось, что у него стояло расширение для этой же самой функции и тоже как После, которой требовался для анализа список всех возможных процессов. И мое расширение почему-то срабатывало раньше, а второе восстанавливало все шаблоны процессов.
18 Garykom
 
гуру
15.04.26
13:59
Поэтому в идеале расширение в конфе должно быть только одно каждого назначения
Или хотя бы не пересекаться по метаданным
19 maxab72
 
15.04.26
14:38
(18) то есть за скачать расширение - анафема? Каждое должно создаваться под конкретного заказчика?
Независимо от того, куда вы едете — это в гору и против ветра!