|
Офигеть - Серверная процедура вызвала клиентскую (в модуле формы) | ☑ | ||
---|---|---|---|---|
0
alexei366
29.11.13
✎
15:56
|
Написал код на форме: есть таблица и форматированный документ.
Идея такова на: при активации строки таблицы устанавливается новый текст форматированного дока. Сделал событие при активации, считываю в нем нужные данные клиента, отправляю все это через Серверную процедуру на сервер, а там устанавливаю текст через УстановитьHTML(). Проверяю код: и тут бац "Переполнение стека", я такое ваще 1 раз увидел. Перезапустил и начал смотреть через отладчик. Оказывается метод на сервере УстановитьHTML() вызывает клиентскую процедуру ПриАктивацииСтроки - вот он б_л_я цикл. Я ток одного не пойму какого ..... серверная процедура вызывает клиентскую на форме, эт чо багафича чтоли. |
|||
1
GROOVY
29.11.13
✎
15:57
|
Так просто событие настало после того как серверная процедура была вызвана.
|
|||
2
George Wheels
29.11.13
✎
16:06
|
(0) F9 в ПриАктивацииСтроки и посмотри стек вызовов. УстановитьHTML() там быть не должно.
|
|||
3
toypaul
гуру
29.11.13
✎
16:20
|
может просто даныне формы обновились после "отправляю все это через Серверную процедуру на сервер"
|
|||
4
Bober
29.11.13
✎
16:23
|
(0) после установить html срабатывают события обновлений у всех ЭУ формы.
|
|||
5
alexei366
29.11.13
✎
16:23
|
(1) ага
|
|||
6
alexei366
29.11.13
✎
16:25
|
(4) ну и какого фига, процедура ведь серверная. Даже если и так он бы хоть серверную процедуру до конца выполнил, у меня там после установки html ещё код есть так до него не доходить а сразу после установки клиент ПриАктивации строки вызывается
|
|||
7
alexei366
29.11.13
✎
16:29
|
&НаКлиенте
Процедура ТаблицаПриАктивизацииСтроки(Элемент) ТекСтрока = Элементы.Таблица.ТекущаяСтрока; Если ТекСтрока = Неопределено Тогда Возврат; КонецЕсли; УстановитьДанные(ТекСтрока); КонецПроцедуры &НаСервере Процедура УстановитьДанные(НомерСтр) СтрокаД = Объект.Таблица.НайтиПоИдентификатору(НомерСтр); ТекстФормДок.УстановитьHTML(СтрокаД.Текст,Новый Структура); // после установки вызывается "ТаблицаПриАктивизацииСтроки(Элемент)" // тут ещё код но его выполнение не наступет КонецПроцедуры |
|||
8
alexei366
29.11.13
✎
16:30
|
(7) 8.3.4.317 - такси, ну если чо
|
|||
9
sikuda
29.11.13
✎
16:58
|
Да 8.3.4.347.
Зацикливание происходит на функции НайтиПоИдентификатору |
|||
10
sikuda
29.11.13
✎
17:03
|
То есть не зацикливание, а каждый вызов НайтиПоИдентификатору приводит к Активизиции строки...
|
|||
11
SilentMan
29.11.13
✎
17:13
|
(7) Зачем СП читать? Ведь по-русски же написано (обработчик ПриАктивизацииСтроки):
Примечание: В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере. |
|||
12
alexei366
30.11.13
✎
11:49
|
(10) Не найти а УстановитьHTML()
|
|||
13
alexei366
30.11.13
✎
11:51
|
(11) )))))))))))))) Клево, написали но не объяснили почему.
Ну и фиг с ними, пришлось на клиенте держать инд тек строки и смотреть если инд тек строки не изменился то не вызывать сервер))) |
|||
14
alexei366
30.11.13
✎
12:05
|
(11) Я б с удовольствием не использовал бы серверный метод, но по другому данные загнать в форматированный документ походу не как
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |