Имя: Пароль:
1C
1С v8
8.2 Как обновить открытую форму документа после заполнения внешней обработкой?
,
0 Leksus
 
31.10.11
16:50
Написал обработку заполнения документа. Встроил через Дополнительные отчеты и обработки... Документ заполняется и записывается. Открытая форма документа (из которой и запускалась обработка) не обновляется. Приходится закрывать и открывать документ заново.
Как победить?
1 mikecool
 
31.10.11
16:51
Оповестить - ОбработкаОповещения
2 Leksus
 
31.10.11
16:57
(1) Уточню - делал для УТ 11. Снимать ее с поддержки не хотелось бы.
Вроде бы деле все по документации БСП - наверное как-то должно это работать?
3 Leksus
 
31.10.11
17:01
для списков есть "Оповестить об изменении", а вот для формы документа...
пробовал такой код:
   Окна = ПолучитьОкна();
   Для каждого Окно из Окна Цикл
       Если НЕ Окно.Основное
           И Найти(Окно.Заголовок, Объект.СсылкаНаДокумент) Тогда
           Форма = Окно.ПолучитьСодержимое();
           Если Не Форма=Неопределено Тогда
               Форма.ОбновитьотображениеДанных();
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;

Выполняется без ошибок, но форма не обновляется :(
4 Leksus
 
31.10.11
17:55
В итоге получилось сделать только через такой изврат:
   // Обновляем форму документа
   Окна = ПолучитьОкна();
   Для каждого Окно из Окна Цикл
       Если НЕ Окно.Основное
           И Найти(Окно.Заголовок, Объект.СсылкаНаДокумент) Тогда
           ФормаДокумента = Окно.ПолучитьСодержимое();
           Если Не ФормаДокумента = Неопределено Тогда
               ФормаДокумента.Закрыть();
           КонецЕсли;
           ФормаДокумента = ОткрытьФорму("Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокумента",Новый Структура("Ключ", Объект.СсылкаНаДокумент),,,Окно);
       КонецЕсли;
   КонецЦикла;
5 s03
 
31.10.11
18:03
А если передать открытую форму как параметр в обработку, и затем просто Обновить() ?
6 s03
 
31.10.11
18:03
Хотя нет, не взлетит
(((
7 s03
 
31.10.11
18:07
А заполняешь обработкой что (ДокументОбъект или нет)?

Если при заполнении работаешь с реквизитами (элементами формы) и затем используешь ЗаписатьВФорме() то всё и так должно работать, а вот если работаешь не с формой, а с документом, то надо заставлить форму не просто обновиться, а перечитать данные.
8 Жан Пердежон
 
31.10.11
18:13
(0) обработка заполнения ТЧ не катит?
9 Necessitudo
 
31.10.11
18:16
ЗначениеВРеквизитФормы
10 Leksus
 
31.10.11
19:42
(7) да, документ объект. Именно, как заставить форму перечитать данные? И как это вообще реализуется в рамках подсистемы дополнительных отчетов и обработок БСП?
(8) поясни плиз