Имя: Пароль:
1C
1С v8
Заполнить документ из Внешней Обработки Управляемая форма
0 puls
 
31.10.11
15:44
Помогите пожалуйста, кто сталкивался с этим.
Есть обработка в ней реквизит с выбором документа и ТЗ, затем табличная часть документа заполняется данными из ТЗ, но при записи пишет ошибку
Собственно код
&НаКлиенте
Процедура ЗагрузитьВДокумент(Команда)
       
   ЗаполнитьДокумент();
   
КонецПроцедуры

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

ДокументСоглашение = реквизит формы тип ДокументСсылка
ТЗПользователей = ревизит формы тип ТаблицаЗначений

Пишет ошибку Нельзя изменять поле, содержащее объект данных формы
1 Поручик
 
31.10.11
15:53
Посмотри, может пример обработки поможет
http://forum.aeroion.ru/topic558.html
2 MUXACb
 
31.10.11
15:57
А сам-то объект открыт?
3 MadHead
 
31.10.11
16:03
Нельзя же вроде как заполнять таб часть формы на сервере. В Типовых видел как создают массив структур (в структура имитирует строку документа) и этот массив передается в форму документа. А на клиенте уже заполняется.
4 puls
 
31.10.11
16:06
(3) это не табличная часть формы, это табличная часть документа, т.е. мне форму не нужно даже открывать мне нужно просто в определенный документ добавить строчки из ТЗ
5 puls
 
01.11.11
11:18
&НаКлиенте
Процедура ЗагрузитьВДокумент(Команда)
       
   ЗаполнитьДокумент();
   
КонецПроцедуры

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

   Для Каждого СтрокаТЗ из ТаблицаЗагрузки Цикл    
       
               НоваяСтрока = ТаблицаДокумента.Добавить();
               НоваяСтрока.ФизическоеЛицо        = СтрокаТЗ.Имя;
               
   КонецЦикла;
   ДокументОбъект.Записать();
   Объект.ДокументСоглашение = ДокументОбъект.Ссылка; // добавил
   
КонецПроцедуры
Добавил реквизит в обработку и строчку в код, заработало
Конечно не идеал, но может кому то пригодится с экономить время и разобраться с управляемыми формами
А так всем спасибо кто откликнулся