Имя: Пароль:
 
1C
1С v8
Обновление данных на упр.форме после заполнения тч
0 lxs
 
31.07.18
17:01
Привет всем, короткий вопрос.

После заполнения табличной части документа внешней обработкой заполнения ТЧ, данные на форме не появляются сразу, требуется вызов команды Обновить на форме документа.

Обработка использует вызов клиентского метода и открывает свою форму перед заполнением для указания ряда параметров. После заполнения надо обновить элементы.

Вопрос: если делали - как?
1 Cyberhawk
 
31.07.18
17:03
ОбновитьОтображениеДанных
2 lxs
 
31.07.18
17:10
(1) И к чему присобачить это обновление?

Есть лишь ссылка на объект.
3 Cyberhawk
 
31.07.18
17:16
(2) Так ты объект в БД записываешь что ли?
4 Cyberhawk
 
31.07.18
17:17
Форма объекта доступна как владелец формы твоей обработки
5 lxs
 
31.07.18
17:19
(3) Да, сразу записываю
6 Cyberhawk
 
31.07.18
17:19
Ну тогда и "Прочитать" пойдет
7 palsergeich
 
31.07.18
17:20
ПолучитьОбъект()
ЗначениеВРеквизитФормы()
8 lxs
 
31.07.18
17:21
(6) Спасибо, Человечище.
9 lxs
 
01.08.18
00:02
Ещё проблемка. Не могу передать значение реквизита формы или реквизита обработки в серверную процедуру. На форме обработки заполняю значение реквизита, но при выполнении процедуры заполнения значение не заполнено. Где косячу?
10 Cyberhawk
 
01.08.18
00:14
Покажи код по изменению реквизита и заголовок серверного метода
11 lxs
 
01.08.18
09:12
(10) Кода изменения реквизита нет, он меняется интерактивно.

При запуске обработки вызывается процедура на клиенте:

&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
    
    Если ИдентификаторКоманды = "ЗаполнитьТЧ" Тогда
        
        ОткрытьФорму("ВнешняяОбработка.ОбработкаЗаполненияТЧ.Форма.Форма",,,,,,Новый ОписаниеОповещения("ВыполнитьКомандуЗавершение", ЭтотОбъект, Новый Структура("ОбъектыНазначения", ОбъектыНазначения)), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
        
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьКомандуЗавершение(Результат, ДополнительныеПараметры) Экспорт
    
    ЗаполнитьТЧНаСервере(ДополнительныеПараметры.ОбъектыНазначения);
    
    ВладелецФормы.Прочитать();
    
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьТЧНаСервере(ОбъектыНазначения)
    
    //Тут мне надо получить значение из Объект.Реквизит, выведенный на форму
        //но оно не передаётся, даже через параметры процедуры
        Для каждого ДокументСсылка Из ОбъектыНазначения Цикл
        
        ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
12 lxs
 
01.08.18
09:14
..либо туплю
13 aleks_default
 
01.08.18
09:26
//Тут мне надо получить значение из Объект.Реквизит, выведенный на форму

        //но оно не передаётся, даже через параметры процедуры

не понял зачем его передавать, прямое обращение Объект.Реквизит почему нельзя использовать?
14 aleks_default
 
01.08.18
09:30
Может ты имеешь ввиду что Объект.Реквизит - это значение должно заполняться после закрытия формы обработки заполнения? Ну так у тебя же в процедуре ВыполнитьКомандуЗавершение никак не обрабатывается результат выбора формы.
15 lxs
 
01.08.18
09:31
(13) В том и дело, что Объект.Реквизит - там пусто, хотя на форме обработки я выбрал ссылку
16 lxs
 
01.08.18
09:32
(14) Объект.Реквизит выведен на форму. Я выбираю ссылку и нажимаю кнопку Заполнить на форме, которая просто закрывает форму. Далее обработчик завершения вызывает процедуру заполнения на сервере, но Объект.Реквизит пуст.
17 aleks_default
 
01.08.18
09:42
<ОписаниеОповещенияОЗакрытии> (необязательный)

Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана при закрытии формы со следующими параметрами:
<РезультатЗакрытия> - значение, переданное при вызове метода Закрыть открываемой формы,

Это означает что в процедуре, вызваемой по завершении выбора, ты должен обработать результат выбора
18 lxs
 
01.08.18
10:08
(17) Это всё понятно.. Передавать нечего. Значение на форме есть (визуально). Когда я выполняю команду на форме, в процедуре которой есть только Закрыть(), я даже в Сообщить(Объект.Реквизит) уже не вижу значение.. Тут до обработчика завершения дело даже не доходит.
19 lxs
 
01.08.18
10:12
(17) Всё, мужик, ты меня навёл на мысль, спасибо. Получилось. В Закрыть() параметром передал значение Объект.Реквизит.
20 aleks_default
 
01.08.18
10:19
У тебя форма не форма выбора поэтому она ничего не возвращает
21 lxs
 
01.08.18
11:13
(20) Ну, как бы это было и так понятно, я ж сказал, что это форма обработки заполнения ТЧ, которую я просто открываю для задания параметров заполнения.