Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Обновление данных на упр.форме после заполнения тч

Обновление данных на упр.форме после заполнения тч
Я
   lxs
 
31.07.18 - 17:01
Привет всем, короткий вопрос.

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

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

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

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

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

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

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

&НаСервере
Процедура ЗаполнитьТЧНаСервере(ОбъектыНазначения)
    
    //Тут мне надо получить значение из Объект.Реквизит, выведенный на форму

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

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


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


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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует