Имя: Пароль:
1C
1С v8
Создание документы без записи, не переносится ТЧ(УФ)
,
0 ZEUSRVP
 
01.09.20
13:29
Добрый день .. не могу перенести из Документа ТЧ в форму Другого документа
Пишу так

&НаКлиенте
Процедура УстановкаЦен(Команда)
Форма=ПолучитьФорму("Документ.УстановкаЦенНоменклатуры.ФормаОбъекта");
ДанныеФормы=Форма.Объект;
ЗаполнитьДокНаСервере(ДанныеФормы);
КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
Форма.Открыть();
КонецПроцедуры
//----------------------------------------------------------------------------

&НаСервере
Процедура ЗаполнитьДокНаСервере(ДанныеФормы)
    Док =ДанныеФормыВЗначение(ДанныеФормы,Тип("ДокументОбъект.УстановкаЦенНоменклатуры"));
    
    Док.Дата = ТекущаяДата();
    Док.Согласован = Истина;
    

    ТабЧастьВидЦены = Док.ВидыЦен.Добавить();
    ТабЧастьВидЦены.ВидЦены = Объект.Магазин.ПравилоЦенообразования.ВидЦен;
    Док.Ответственный = ПараметрыСеанса.ТекущийПользователь;
    Для Каждого Товар из Объект.Товары Цикл
        Строка = Док.Товары.Добавить();
        Строка.Номенклатура = Товар.Номенклатура;
        Строка.ВидЦены = Объект.Магазин.ПравилоЦенообразования.ВидЦен;
    КонецЦикла;

ЗначениеВДанныеФормы(Док,ДанныеФормы);
КонецПроцедуры

Форма открывается .. ставится дата, отв, но вот
ТабЧастьВидЦены.ВидЦены
Док.Товары Не переносятся .. хотя в отладчике я их вижу в цикле.
1 ДенисЧ
 
01.09.20
13:35
А ТЧ ВидыЦен Александр Григорьевич будет заполнять?
2 ZEUSRVP
 
01.09.20
13:36
Я бы мог использовать Основание... Но тогда по основанию у меня попадают Вид цены разных магазинов.. мне надо только текущего
3 ZEUSRVP
 
01.09.20
13:40
(1) Вот же
    ТабЧастьВидЦены = Док.ВидыЦен.Добавить();
    ТабЧастьВидЦены.ВидЦены = Объект.Магазин.ПравилоЦенообразования.ВидЦен;
4 Галахад
 
гуру
01.09.20
13:44
Ну, по-моему в форме нет "Товары", а есть "ДеревоЦен"...
5 ZEUSRVP
 
01.09.20
13:45
(4) Есть

Такой код работает но с записью документа

//&НаСервере
//Функция УстановкаЦенНаСервере()
//    Док = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
//    Док.Дата = ТекущаяДата();
//    Док.Согласован = Истина;
//    ТабЧастьВидЦены = Док.ВидыЦен.Добавить();
//    ТабЧастьВидЦены.ВидЦены=Объект.Магазин.ПравилоЦенообразования.ВидЦен;
//    Док.Ответственный = ПараметрыСеанса.ТекущийПользователь;
//    Для Каждого Товар из Объект.Товары Цикл
//        Строка = Док.Товары.Добавить();
//        Строка.Номенклатура = Товар.Номенклатура;
//        Строка.ВидЦены = Объект.Магазин.ПравилоЦенообразования.ВидЦен;
//    КонецЦикла;
//    //Док.Записать();
//    Возврат Док.Ссылка;

//КонецФункции

//&НаКлиенте
//Процедура УстановкаЦен(Команда)
//    СсылкаНаДокумент = УстановкаЦенНаСервере();
//    ПоказатьЗначение(,СсылкаНаДокумент);
//КонецПроцедуры
6 Галахад
 
гуру
01.09.20
13:50
(5) В смысле, записать, а потом открыть?
7 ZEUSRVP
 
01.09.20
13:54
(6) Ну Документ создать программно и по ссылке открыть тогда все заполняется все супер ..
Но мне надо форму открыть пользователя без сохранения документа.
8 ZEUSRVP
 
01.09.20
13:56
(7) для пользователя.. Открыть форму и передать туда из формы одного дока в другой... по логике первый код должен работать .. но мне кажется что то с табличными частями не так..
Пробовал тч сперва в тз потом обратно .. тоже не работало
9 Галахад
 
гуру
01.09.20
13:58
(7) Там не все так просто. Посмотри процедуру "ЗаполнитьДокумент".
10 Галахад
 
гуру
01.09.20
14:00
(2) Наверное, проще использовать "Основание" из (2), а потом почистить лишнее.
11 ZEUSRVP
 
01.09.20
14:01
(9) ОбработкаЗаполнеия ... блин так не хотелось ))))
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн