Имя: Пароль:
1C
1С v8
Странное поведение управляемой формы
0 Fedor-1971
 
14.11.13
13:20
На УФ вынесены 2 табличных части для ТЧ2 установлен отбор строк по уникальному идентификатору из ТЧ1.
  При удалении строки из ТЧ1 не устанавливается флаг модифицированности для формы. Событие ПослеУдаления() - не срабатывает. Событие ПередУдалением() - работает.
  При удалении строки из ТЧ2 всё работает штатно, флаг модифицированности устанавливается оба события отрабатывают.
  Может кто знает это особенность работы при отборе строк или где-то в настройках формы ошибка?
1 Euguln
 
14.11.13
13:28
(0) в первой ТЧ нет привязки обработчика ПослеУдаления.
2 RomaH
 
naïve
14.11.13
13:29
отказ меняешь?
3 Fedor-1971
 
14.11.13
13:36
(1) есть
(2) нет, в том и проблема, можно убрать оба обработчика, но при удалении строки не выставляется флаг модификации формы, как-будто не нажимали кнопки удаления. Выставить в обработчике не проблема, хотелось бы понять почему так происходит.
4 butterbean
 
14.11.13
13:42
в ПередУдалением случайно не СтандартнаяОбработка = Ложь??
5 butterbean
 
14.11.13
13:44
(4) точнее Отказ = Истина;
6 kochurovg
 
14.11.13
13:49
Если ТЧ1 не принадлежит Основному объекту УФ, то для Реквизита  ТЧ1 должен быть установлен флаг "Сохраняемое значение" - может здесь собака зарыта
7 Dethmont
 
14.11.13
13:52
Ты код то показать можешь???
8 Dethmont
 
14.11.13
13:54
Что делаешь в процедуре ПередУдалением() в ТЧ1 покажи
9 Fedor-1971
 
14.11.13
13:59
&НаКлиенте
Процедура ЗаказанныеУслугиПередУдалением(Элемент, Отказ)
а=2;
КонецПроцедуры

&НаКлиенте
Процедура ЗаказанныеУслугиПослеУдаления(Элемент)
а=1;
КонецПроцедуры
10 Fedor-1971
 
14.11.13
14:03
просто проверяю срабатывает событие или нет, нужно получить событие именно после удаления строки
11 Fedor-1971
 
14.11.13
14:05
Привязка строк:
&НаКлиенте
Процедура ЗаказанныеУслугиПриАктивизацииСтроки(Элемент)
стр=Элемент.ТекущиеДанные;
Если Не стр = неопределено тогда
   ИД=стр.УникИД;
   Элементы.РеальныеУслугиСтавкаПланПриведенная.Заголовок="Ставка, "+Строка(стр.Валюта);
  Иначе
   ИД=новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000");
   Элементы.РеальныеУслугиСтавкаПланПриведенная.Заголовок="Ставка, ";
КонецЕсли;
ВычислитьОбщиеДанные(Объект.ЗаказанныеУслуги.Индекс(стр));
Элементы.РеальныеУслуги.ОтборСтрок = Новый ФиксированнаяСтруктура("УникИД", ИД);
КонецПроцедуры
12 Dethmont
 
14.11.13
14:07
По ходу новая фича =))
13 Fedor-1971
 
14.11.13
14:13
(12) По ходу так и есть, тупо убрал ТЧ1, добавил заново на форму - норма, как только установил ОтборСтрок - получаем сюрприз
14 Fedor-1971
 
14.11.13
14:13
Всем спасибо, буду искать лекарство
15 RomaH
 
naïve
14.11.13
14:14
изменяешь первую ТЧ, а отбор на второй?
16 Fedor-1971
 
14.11.13
14:18
(15) да. ТЧ1 - Основная услуга, ТЧ2 - расшифровка, соответственно надо отобрать расшифровки только данной услуги.
События для изменения строки ТЧ1 отрабатывают, для удаления строки отрабатывает только ПередУдалением
17 RomaH
 
naïve
14.11.13
14:20
попробуй отбор строк ставить через обработчик ожидания
18 Fedor-1971
 
14.11.13
14:45
Экспериментально выяснил следующее:
если в событии ПриАктивацииСтроки убрать строки:
Элементы.РеальныеУслугиСтавкаПланПриведенная.Заголовок=
события отрабатывают как положено.
Т.е. на УФ глючно работает модификация формы из события ПриАктивацииСтроки даже без обращения к серверу, а так хотелось сделать динамически изменяющуюся форму.

Спасибо за участие в обсуждении.
19 RomaH
 
naïve
15.11.13
07:03
(18) используй обработчик ожидания - заголовок поменяешь не сразу, а через 0,1 секунду
Независимо от того, куда вы едете — это в гору и против ветра!