Имя: Пароль:
1C
 
УФ 8.2, внешняя обработка заполнения ТЧ. Как обновить форму ???
0 s202
 
05.05.19
09:50
УФ 8.2, внешняя обработка заполнения ТЧ. Сама обработка написана в соответствии с требованиями и подключена к базе.

Заполняю документ реализации остатками на складе (задача такая - затолкать в реализацию все товары имеющиеся на складе).
В обычных формах никаких проблем быть не могло: Получил остатки, добрался до табличной части документа, заполнил ее.

Но это же УФ.
Получил остатки, добрался до табличной части документа, заполнил ее.
А на форме документа - ничего не добавляется.
Пробовал:
ВладелецФормы.ОбновитьОтображениеДанных();
ВладелецФормы.Элементы.Товары.Обновить();
ВладелецФормы.Прочитать();

Никакого результата. В табличной части объекта 3000 строк, на форме документа - ноль строк.
Что я делаю не так?
1 Мимохожий Однако
 
05.05.19
09:55
(0) Не стесняйся. Показывай код заполнения.
2 impulse9
 
05.05.19
09:56
Не стесняйся жмакать на кнопку Я в правом верхнем углу
3 s202
 
05.05.19
10:03
&НаКлиенте
Процедура ВыполнитьКоманду(Команда, ОбъектыНазначенияМассив) Экспорт

    ДокОб=ВладелецФормы.Объект;        
    
    Если Вопрос("Заполнить остатками ТМЗ ?", РежимДиалогаВопрос.ДаНетОтмена)=КодВозвратаДиалога.Да Тогда
        
        ДокОб.Товары.Очистить();
        
        ПолучитьОстатки(ДокОб);

        //ВладелецФормы.Элементы.Товары.Обновить();
        //ВладелецФормы.ОбновитьОтображениеДанных();
        //ВладелецФормы.Прочитать();
        ВладелецФормы.Модифицированность=Истина;

    КонецЕсли;
    
КонецПроцедуры

Процедура ПолучитьОстатки(ДокОб)
    
    Запрос=Новый Запрос(
    "ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура,
    |    ТоварыНаСкладахОстатки.ВНаличииОстаток,
    |    ТоварыНаСкладахОстатки.ВРезервеОстаток
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата1, Склад = &Склад) КАК ТоварыНаСкладахОстатки");
    Запрос.УстановитьПараметр("Дата1", КонецДня(ДокОб.Дата));
    Запрос.УстановитьПараметр("Склад", ДокОб.Склад);
    Выборка=Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        СтрокаДок=ДокОб.Товары.Добавить();
        СтрокаДок.Номенклатура=Выборка.Номенклатура;
        СтрокаДок.Количество=Выборка.ВНаличииОстаток;
    КонецЦикла;

КонецПроцедуры
4 s202
 
05.05.19
10:04
(2) Кнопка "Я" уже не помогает.
5 s202
 
05.05.19
10:27
Эта гадость работает, только если записать документ.
А если записывать нежелательно ? Кнопка "Я" показывает, что никак. Это действительно так?
6 rozer76
 
05.05.19
10:30
вызови прочитать() в форме реалки
7 rozer76
 
05.05.19
10:37
+ (6) оповестить форму а там в обработке оповещения есть вроде в ут11 прочитать() вроде
8 s202
 
05.05.19
10:40
(6),(7) Весь смысл внешней обработки заполнения - НЕ трогать конфигурацию.
9 rozer76
 
05.05.19
10:44
(8) расширения есть
10 rozer76
 
05.05.19
10:44
если чо
11 s202
 
05.05.19
10:48
УФ 8.2 - нет там расширений.
12 rozer76
 
05.05.19
10:53
ну тогда сорри, другого способа нет
13 hhhh
 
05.05.19
11:13
(11) вообще-то у меня точно такая же обработка есть как у вас, всё работает, без всяких прочитать и обновить. Что-то вы не договариваете.
14 palsergeich
 
05.05.19
11:20
Вместо ДокОб=ВладелецФормы.Объект;
Используй 2 метода:
В началле ДанныеФормыВЗначение
и в конец
ЗначениеВДАнныеФормы
15 hhhh
 
05.05.19
11:32
(11) а понял, делайте заполнение &НаКлиенте
16 palsergeich
 
05.05.19
12:16
(15) Кстати вариант.
Данные на сервере получаете, на клиенте пихаете и все ок будет
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший