Имя: Пароль:
1C
 
Как обновить форму?
0 Klesk666
 
06.10.15
14:31
Значения вроде меняются а форма нет

&НаКлиенте
Процедура ВыполнитьКоманду( ИмяКоманды, ОбъектыНазначения) Экспорт
    ТекОбъект=    ОбъектыНазначения[0];
    ПараметрыФормы = Новый Структура("Ключ",ТекОбъект );
    ТекФорма = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокумента", ПараметрыФормы,,,АктивноеОкно());
    ДанныеФормы = ТекФорма.Объект;
    ЗаполнитьНаСервере(ДанныеФормы);
    КопироватьДанныеФормы(ДанныеФормы, ТекФорма.Объект);
    ТекФорма.Открыть();
    
КонецПроцедуры

Процедура ЗаполнитьНаСервере(ДанныеФормы);
    Товары=ДанныеФормы.Товары;
    Для Каждого Товар Из Товары Цикл         
        Товар.НомерГТД=Справочники.НомераГТД.ПустаяСсылка();                
    КонецЦикла
    
КонецПроцедуры
1 Nuobu
 
06.10.15
14:34
(0) Не меняешь значения. Меняешь значения у Объекта, коим не является Объект настоящий.
Поменяй, сохрани, тогда увидишь результат.
2 Cyberhawk
 
06.10.15
14:39
ЭтотОбъект.Прочитать()
3 RomaH
 
naïve
06.10.15
14:40
(0) хочешь сказать, что в ТекФорма.Объект.Товары
во всех страках НомерГТД пустой, а на форме отображаются данные?
4 Klesk666
 
06.10.15
16:30
(3) да
(1) не хочу менять объект
(2) ТекОбъект.Прочитать() ?
5 Cyberhawk
 
06.10.15
18:04
(4) Нет, чтобы обновить форму, нужно вызвать ее метод "Прочитать". ТекФорма.Прочитать() у тебя
6 User_Agronom
 
06.10.15
18:07
О, Великий и Могучий дух платформы 1С, нижайше прошу Вас обновить мою мелкую и непотребную форму!
7 Klesk666
 
09.10.15
08:33
все вроде получилось, но

количество заполняется  и отображаются сразу , а номера гтд становятся в значение <ГТД не используются> , а при записи документа становятся загруженными значениями и показываются, прочитать() пробывал - возвращает к первоначальному состоянию, подскажите что нужно доделать?


&НаКлиенте
Процедура ВыполнитьКоманду( ИмяКоманды, ОбъектыНазначения) Экспорт
    
    ПараметрыФормыВыбора=ОткрытьФормуМодально(ПолучитьПолноеИмяФормы("ФормаВыбора"));
    Если ТипЗнч(ПараметрыФормыВыбора) <> Тип("Структура") Тогда
        Возврат;
    КонецЕсли;
    Объект.ИмяФайла=ПараметрыФормыВыбора.ИмяФайла;
    Объект.НомерСтолбцаГТД=ПараметрыФормыВыбора.НомерСтолбцаГТД;
    Объект.НомерСтолбцаСтранаПроисхождения=ПараметрыФормыВыбора.НомерСтолбцаСтранаПроисхождения;
    
    ТекОбъект=    ОбъектыНазначения[0];
    ПараметрыФормы = Новый Структура("Ключ",ТекОбъект );
    ТекФорма = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокумента", ПараметрыФормы,,,АктивноеОкно());        
    ДанныеФормы = ТекФорма.Объект;
    ТекФайл=Новый ДвоичныеДанные(Объект.ИмяФайла);
    Адрес= ПоместитьВоВременноеХранилище(ТекФайл,УникальныйИдентификатор);
    ЗаполнитьНаСервере(ДанныеФормы,Адрес);
    УдалитьИзВременногоХранилища(Адрес);     
    
    КопироватьДанныеФормы(ДанныеФормы, ТекФорма.Объект);
    ТекФорма.ЗаполнитьЦеныНоменклатурыЗаказов();
    
    ТекФорма.Модифицированность=Истина;
        
        
КонецПроцедуры


Процедура ЗаполнитьНаСервере(ДанныеФормы,Адрес);
    ТЗ= ....

    ОбъектЗначение = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.ПоступлениеТоваровУслуг"));
    
    Для Каждого Товар Из ОбъектЗначение.Товары Цикл     
        Если Сч>ТЗ.Количество() Тогда
            //Сообщить("В файле больше строк чем в документе, заполнены не все данные");
            Товар.НомерГТД=Справочники.НомераГТД.ПустаяСсылка();
            Продолжить;
        КонецЕсли;        
        
        Товар.НомерГТД=НайтиСоздатьГТД(ТЗ[Сч].НомерГТД,ТЗ[Сч].СтранаПроисхождения);
        Товар.КоличествоУпаковок=999;        
    
        Сч=Сч+1;
    КонецЦикла;
     ЗначениеВДанныеФормы(ОбъектЗначение, ДанныеФормы);
КонецПроцедуры
8 Klesk666
 
09.10.15
08:56
похоже применяется условное оформление, как его обновить?