Имя: Пароль:
1C
1C 7.7
v7: Получаю данные старого элемента при сохранении!!!
,
0 Melcor
 
21.03.12
16:58
В форма списка справочника добавил процедуру

Процедура ПриЗаписи()
   СписокПараметров=СоздатьОбъект("СписокЗначений");
   СписокПараметров.ДобавитьЗначение(Контекст);  
   СписокПараметров.ДобавитьЗначение("ТБ");  
   Открытьформу("Отчет",СписокПараметров,КаталогИБ()+"ExtForms\Export_CBD_LBD_SPRAV_2.ert");
КонецПроцедуры

во внешней обработке получаю переданные данные:

   Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
       
       СписокЭлементовДляВыгрузки.УдалитьВСЕ();              
       Докум = Форма.Параметр.ПолучитьЗначение(1);
       ФлагВыгрузкиЛБД = Форма.Параметр.ПолучитьЗначение(2);
       Если ФлагВыгрузкиЛБД = "ТБ" тогда
           Флаг_ТБ=1;
       КонецЕсли;              
       СписокЭлементовДляВыгрузки.ДобавитьЗначение(Докум.ТекущийЭлемент());
       СписокИдентификаторовДляВыгрузки.ДобавитьЗначение(ВернутьИдентификаторДляВида(Докум.Вид()));//Метаданные.Документ(Номер).Идентификатор
       Флаг1=0;Флаг2=0;Флаг3=1;
       ВыгрузитьВсе_();
       Форма.Закрыть();
   КонецЕсли;
   
но дело в том, что когда я меняю значение любого реквизита справочника, во внешнюю обработку передаются данные которые были до изменения! Не могу понять в чем дело(
1 vde69
 
21.03.12
17:00
если это динамический список, то после записи нужно оповестить форму
2 vde69
 
21.03.12
17:00
(1)+ если форму не оповестить - берется клиентский кеш
3 NcSteel
 
21.03.12
17:01
(1) ты код посмотри . Мне кажется он из клюшников.
4 le_
 
21.03.12
17:01
v. 7
5 Ненавижу 1С
 
гуру
21.03.12
17:02
подозреваю что это вообще 7.7
6 Melcor
 
21.03.12
17:02
а как, как оповестить форму??
Просто до этого все было нормально, а потом, БАЦ, и так стало(
7 Melcor
 
21.03.12
17:02
ну да, в теме же указано, 7.7
8 vde69
 
21.03.12
17:03
(3) сморозил :)
9 Ёпрст
 
21.03.12
17:05
(0) бери данные с Контекста формы, а не с записанного ТекущегоЭлемента()
10 Ёпрст
 
21.03.12
17:06
Либо записывай в ПриЗаписи
11 Melcor
 
21.03.12
17:07
спасибо, с контекста верно
12 Torquader
 
21.03.12
19:45
Так оно так и должно быть-если брать с спозиционированного объекта,то в момент исполнения ПриЗаписи у нас элемент ещё не записан и значение старое,а в самом контексте - новое.
Кстати,хороший способ отслеживания изменений-сравнить в при записи текущие данные с сохранёнными с спозиционированном элементе.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.