Имя: Пароль:
1C
1С v8
Подписки на события и клиенты
0 Misterkat
 
04.12.16
11:30
Вообщем, есть конфигурация УТ 3.1(для Украины). В типовой есть подписка на событие "ПередЗаписью" для всех "ДокументОбъект". Так вот, что она делает - совсем не важно, поскольку она не вызывается, а вот тут уже наступает вопрос - какого она собственно не вызывается?! У модуля, в котором расположен обработчик стоят флаги сервер и внешнее соединение. Пока все првильно... Но при вызове функции внутри формы обработки(&НаКлинете) - платформа пытается найти обработчик для подписки и конечно же его не находит, поскольку у модуля в котором он находится НЕ стоит флажок "клиент(управляемое приложение)". Выход очевиден - поставить его, да вот дилемма - модуль то типовой, и ладно еще просто снять с поставки, так надо же еще и кода поменять добавить килотонну(разделить на  #Если НаКлиенте и т.д.). Вопрос в чем - может есть способ более пряморукий?

ЗЫ: На вопрос "Почему клиентская функция ищет там какие-то подписки?!" мне ответить сложно, возможно это из-за создания документа в вызываемой функции(в том же модуле формы, которая уже имеет директиву компиляции &НаСервере), почему подписки не проверяются там - ??!!
1 Лефмихалыч
 
04.12.16
11:50
а ты как узнал, что "внутри формы обработки(&НаКлинете) - платформа пытается найти обработчик для подписки"? Она тебе во сне, что ли, явилась и сама всё рассказал?
2 Лефмихалыч
 
04.12.16
11:51
&НаКлинете этого происходить не может просто потому, что &НаКлинете не существует ни каких ДокументОбъектов и, как следствие, ни кто не знает ни чего про их события и подписки на них
3 Лефмихалыч
 
04.12.16
11:52
либо она вызывается, но ни чего не делает, либо обработчик этот грамотно завернут в директивы компиляции и благодаря этому не существует, либо ты сам себя обыграл и ошибаешься.
4 Misterkat
 
04.12.16
13:39
Как тогда может вылетать ошибка о том, что не найден обработчик подписки на событие ПередЗаписью, внутри клиентской процедуры? Выполнение доходит до вызова серверной процедуры(в которой создается документ) и до ее вызова(по нажатию F11 в отладчике) вылетает вышеописанная ошибка.
5 Лефмихалыч
 
04.12.16
14:02
подписа ПередЗаписью вызываются после событий формы и до обработчика в модуле объекта
6 Лефмихалыч
 
04.12.16
14:03
не, вру - после обработчика в модуле, а не до.
7 Misterkat
 
04.12.16
22:04
Я вам про пряники, вы мне про кокосы. Говрю же, есть кнопошка, у нее есть событие обработчик события, конечно же он на клиенте, интерфейс как ни как :), в этом обработчике всего одна строчка "СоздатьЭН()" - СоздатьЭН - метод описанный 3мя строчками выше, он серверный и в нем создается документ. Так вот, как только выполнение доходит до "СоздатьЭН()", имею ввиду в функцию мы еще не шагнули - вылетает ошибка "При подписке ... на событие ПередЗаписью произошла ошибка. Обработчик события не найден." Разумеется с подпиской все ок, просто из-за того, что проверяется наличие обработчика там, где он не доступен... :(
8 Garykom
 
гуру
04.12.16
22:08
(7) права?
9 Mauser
 
04.12.16
22:13
(8) Черепашка
10 Mauser
 
04.12.16
22:17
А начнёшь копать, выяснится что и отладка на сервере отключена, и вообще это не тот объект...
11 Mauser
 
04.12.16
22:19
Зато уверенность что "НЕ стоит флажок "клиент(управляемое приложение)". Выход очевиден - поставить его" у автора 100%

Сделай копию. Поставь эту свою любимую галочку. Повтори эксперимент.
12 Cyberhawk
 
04.12.16
22:29
Покажи демонстрацию ошибки
13 Лефмихалыч
 
04.12.16
22:32
(7) ты нашел очень не подходящие уши, чтобы рассказывать в них сказки
14 kev789
 
04.12.16
22:33
(11) Наверное файловый режим, толстый клиент...
15 Mauser
 
04.12.16
22:38
(14) FYI: https://www.google.ru/search?q=ут+3.1+для+украины+картинки
16 Лефмихалыч
 
04.12.16
22:39
(14) да даже если так, все равно это все неправда и провокация. Подписка ни в одном режиме не может в контексте формы вызываться. Тем более - управляемой, перемать, форме, в которой ни каких объектов нет вне зависимости от толщины клиента
17 kev789
 
04.12.16
22:40
(14) + Или, точнее, толстый клиент УФ. Если да то запустить в тонком клиенте и проверить
18 kev789
 
04.12.16
22:41
(16) Подписка в толстом клиенте вызовется на клиенте, в тонком на сервере. Если у модуля не стоит толстый клиент, будет ошибка. Сталкивались, вроде так если не ошибся...
19 Лефмихалыч
 
04.12.16
22:42
(18) в толстом обычном - на клиенте. Но в толстом обычном нет ни каких &НаКлиенте &НаСервере
20 kev789
 
04.12.16
22:43
(19) В толстом УФ тоже на клиенте.
21 Mauser
 
04.12.16
22:46
(20) Ок. Удачи вам, киевляне.
23 Misterkat
 
04.12.16
22:51
24 Misterkat
 
04.12.16
23:10
(8) Полные
(11) Как Вы думаете, я не пробовал? Получил пелену ошибок еще не доходя до вышеуказанных действий, сказал же, нужно разделять условиями очень много кода
25 Misterkat
 
04.12.16
23:12
[ОФФТОП](16) Конечно, я специально потратил день на то, что бы отвлечь Вас на 10 секунд на набор злобного комментария. -_-[/ОФФТОП]
26 Cyberhawk
 
05.12.16
00:01
(23) Так надо включить режим УП + ОП в свойствах конфигуратора и убедиться, что флажок компиляции "Клиент (ОП)" стоит у ОМ
27 Misterkat
 
05.12.16
00:58
Это какая-то фича, или что? Просто не могу понять, как флаг, предназначенный для ОП может поменять логику работы УП? Не хочется врубать комп, лег уже ;)
ЗЫ: Спасибо, что без злобных посланий, а то пришел на форум утром за советом,  а в итоге вместо ответа получил несколько предложений сходить куда подальше
28 Mauser
 
05.12.16
07:24
(24) "Пелена посланий" означает то, что конфигурация всеми силами пытается до тебя довести, что этот функционал не работает в толстом клиенте. Зачем ты пытаешься ее изнасиловать (см предмет отладки на первом скриншоте), науке неизвестно.
Так что выбирай - плакать и удивляться или замачивать рукава и перепиливать типовой функционал всей конфигурации, потому что одним модулем там дело не кончится.
29 Mauser
 
05.12.16
07:25
Закатывать. Но так тоже ничего.
30 Misterkat
 
05.12.16
20:14
После сохранения конфы, слияния с типовой проблема ликвидировалас. Вероятно баг платформы. Тема закрыта.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший