Имя: Пароль:
1C
1С v8
Заполнить ТЧ документа из общего модуля 1с8.2 УФ
0 evgenius-inc
 
17.12.14
17:43
Всем привет. Столкнулся с такой проблемой.
Создаю процедуру общего модуля для заполнения Таб части документа.

Процедура СохранитьДеревоТарифов(Заказ)
ТабличнаяЧастьТарифов = Заказ.ТЧ;
Для Каждого СтрокаТарифа Из СтрокаПараметраВыработки.Строки Цикл
            НоваяСтрока = ТабличнаяЧастьТарифов.Добавить();
            НоваяСтрока.ТипТарифа = СтрокаТарифа.Тариф;
            НоваяСтрока.Цена = СтрокаТарифа.Цена;
            НоваяСтрока.ЦенаПревышения = СтрокаТарифа.ЦенаПревышения;
            НоваяСтрока.Договорной = СтрокаТарифа.Договорной;
            НоваяСтрока.ИспользованиеТарифа = СтрокаТарифа.ИспользованиеТарифа;
            НоваяСтрока.Сумма = СтрокаТарифа.Стоимость;
        КонецЦикла;
КонецПроцедуры

В модуле формы В Процедуре ПередЗаписьюНаСервере прописываю

Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

ОбъектСервер = РеквизитФормыВЗначение("Объект");
Тарифы.СохранитьДеревоТарифов(ОбъектСервер)
ЗначениеВРеквизитФормы(ОбъектСервер,"Объект");


КонецПроцедуры

Но в табличной части документа ничего не сохраняется. Как быть?
1 antoneus
 
17.12.14
17:44
а зачем так? передавай на сервер ссылку, на сервере получай объект.
2 evgenius-inc
 
17.12.14
17:48
Это конечно кусок процедуры

Данную процедуру необходимо использовать из разных обработок и оч часто
3 evgenius-inc
 
17.12.14
17:56
up
4 asady
 
17.12.14
17:58
(0) СтрокаПараметраВыработки что это?
5 evgenius-inc
 
17.12.14
18:14
А ну да, пока эксперементировал код не тот вставил. Вот верный

Процедура СохранитьДеревоТарифов(Заказ, ТаблицаТарифов)
ТабличнаяЧастьТарифов = Заказ.ТЧ;
Для Каждого СтрокаПараметраВыработки Из ТаблицаТарифов.Строки Цикл
Для Каждого СтрокаТарифа Из СтрокаПараметраВыработки.Строки Цикл
            НоваяСтрока = ТабличнаяЧастьТарифов.Добавить();
            НоваяСтрока.ТипТарифа = СтрокаТарифа.Тариф;
            НоваяСтрока.Цена = СтрокаТарифа.Цена;
            НоваяСтрока.ЦенаПревышения = СтрокаТарифа.ЦенаПревышения;
            НоваяСтрока.Договорной = СтрокаТарифа.Договорной;
            НоваяСтрока.ИспользованиеТарифа = СтрокаТарифа.ИспользованиеТарифа;
            НоваяСтрока.Сумма = СтрокаТарифа.Стоимость;
        КонецЦикла;
Конеццикла
КонецПроцедуры


В модуле формы ПередЗаписьюНаСервере()

Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

ОбъектСервер = РеквизитФормыВЗначение("Объект");
ОбъектТЧ = РеквизитФормыВЗначение("ДеревоПараметров");
Тарифы.СохранитьДеревоТарифов(ОбъектСервер, ОбъектТЧ);
ЗначениеВРеквизитФормы(ОбъектСервер,"Объект");
ЗначениеВРеквизитФормы(ОбъектТЧ,"ДеревоПараметров");

КонецПроцедуры
6 evgenius-inc
 
17.12.14
18:31
uppp
7 evgenius-inc
 
17.12.14
18:39
upppp
8 evgenius-inc
 
17.12.14
18:47
popUP
9 Ювелир
 
17.12.14
18:56
Попробуй в отладке посмотреть. В какой момент потеря данных.
10 Ювелир
 
17.12.14
18:59
Похоже что косяк здесь:

Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

ОбъектСервер = РеквизитФормыВЗначение("Объект");
ОбъектТЧ = РеквизитФормыВЗначение("ДеревоПараметров");
Тарифы.СохранитьДеревоТарифов(ОбъектСервер, ОбъектТЧ);
ЗначениеВРеквизитФормы(ОбъектСервер,"Объект");
ЗначениеВРеквизитФормы(ОбъектТЧ,"ДеревоПараметров");

КонецПроцедуры

(1) поддержу.
11 evgenius-inc
 
17.12.14
19:11
при выполнении процедуры СохранитьДеревоТарифов все данные на месте. Ощущаю что нужно функцию прописывать с возвращением ТЧ, но в этой процедуре оч много связанных данных по заполнению нескольких ТЧ подобных документов
12 evgenius-inc
 
17.12.14
22:19
up
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс