Имя: Пароль:
1C
 
почему падает платформа
0 vde69
 
26.10.21
15:53
форма, на ней есть динамический список

и есть программно создаваемая таблица (не связанная со списком), код ниже.
если снять коммент то форма валится с дампом.
Валится после окончания процедуры Подключаемый_ЭлементНавигацииПриАктивизацииСтроки, то есть передача контекста с сервера и обратно проходит нормально.
ЖР - пустой

&НаКлиенте
Процедура Подключаемый_ЭлементНавигацииПриАктивизацииСтроки(Элемент)
    а=1;
    //Подключаемый_ЭлементНавигацииПриАктивизацииСтрокиНаСервере_1();
КонецПроцедуры  

&НаСервере
Процедура Подключаемый_ЭлементНавигацииПриАктивизацииСтрокиНаСервере_1()
    а=1;
КонецПроцедуры
1 Волшебник
 
модератор
26.10.21
15:57
почисти кэш
2 Ненавижу 1С
 
гуру
26.10.21
15:58
Что такое а?
3 arsik
 
гуру
26.10.21
16:01
(0) Это норма. Даже объяснения 1с по этому поводу были.
4 arsik
 
гуру
26.10.21
16:03
+(3) У тебя там ьесконечная лабуда
5 vde69
 
26.10.21
16:07
(1) не помогает
(2) просто локальная переменная, для удобства устанавливания точки остановки.
(3) можно подробнее?
6 arsik
 
гуру
26.10.21
16:11
(5)
ПриАктивизацииСтроки (OnActivateRow)
Синтаксис:
ПриАктивизацииСтроки()
Описание:
Вызывается при активизации строки таблицы.
Примечание:
В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере, а также изменять свойства, которые могут привести к серверному вызову.
7 arsik
 
гуру
26.10.21
16:14
+(6) При возврате контекста на клиент у тебя снова вызывается ПриАктивизацииСтроки()
8 vde69
 
26.10.21
16:14
(6) у меня есть несколько других форм (абсолютно аналогичных) где все работает
9 arsik
 
гуру
26.10.21
16:17
(8) Гугли.
10 Ненавижу 1С
 
гуру
26.10.21
17:25
(8) сделай однократную подписку на событие как это сделано в типовых
11 hhhh
 
26.10.21
20:32
(8) это русская рулетка: называется вызов серверных процедур там где не нужно. Иногда вот выстреливает. А иногда нормально. Вы любитель острых ощущений.
12 palsergeich
 
26.10.21
20:39
(8) Используете серверные вызовы там где они явно запрещены.
Не просто так.
Выстрелить может сразу, а может и не выстрелить, но в любом случае это ошибка
13 vde69
 
26.10.21
20:44
(10) туда параметры не просто передать....

(12) если они там явно запрещены почему не генерится исключение типа "процедура не найдена" ???
14 Asmody
 
26.10.21
20:50
после контекстного серверного вызова таблица фактически рендерится заново (на самом деле нет, но можно считать что да).
в общем, не надо ходить в ПриАктивацииСтроки на сервер. Максимум - без контекста. Нужно что-то такое считать от строки - считай при получении данных и кешируй
15 Ненавижу 1С
 
гуру
26.10.21
20:56
(13) используй реквизиты формы или переменные
с другой стороны в ПриАктивизацииСтроки передается только элемент, остальные параметры ты получаешь из-вне, вот также и получай
16 pechkin
 
26.10.21
21:24
А падает из-за бесконечной рекурсии
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс