Имя: Пароль:
1C
1С v8
Работа с формой создаваемого документа.
0 IgoryanYa
 
17.10.18
18:43
Здравствуйте. Столкнулся с проблемой. Пишу обработку для 1с укф. характера. Имею документ. У документа есть реквизиты документа. Так же есть форма этого документа и на форме есть дополнительные реквизиты, которые не состоят в Объект.{реквизиты документа}. Например есть такой реквизит Дерево Значений с типом ДеревоЗначений. Так вот во внешней обработки создаю документ:

&НаСервере
ЗаписатьВДокументНаСервере();
ДокументБюджет = Документы.МойДокумент.СоздатьДокумент();
ДокументБюджет.Дата = Объект.Дата;
ДокументБюджет.Сценарий = Объект.Сценарий;
ДокументБюджет.Бюджет = Объект.Бюджет;
ДокументБюджет.ВалютаДокумента = Объект.ВалютаДокумента;
ДокументБюджет.КурсДокумента = Объект.КурсДокумента;
ДокументБюджет.ДатаНач = Объект.ДатаНач;
ДокументБюджет.ДатаКон = Объект.ДатаКон;
ДокументБюджет.Организация = Объект.Организация;
ДокументБюджет.ЦФО = Объект.ЦФО;
ДокументБюджет.Ответственный = Объект.Ответственный;
ДокументБюджет.Состояние = Объект.Состояние;
ДокументБюджет.Записать(РежимЗаписиДокумента.Запись);
Возврат(ДокументБюджет.Ссылка);


В итоге все отлично записывается и все реквизиты документа видны и к ним можно обратиться, надо заполнить еще реквизит ДеревоЗначений. Так как он находиться на форме значит надо получать форму созданного документа, получаю по ссылке. На сервере форма не доступа, поэтому получаю на клиенте.

НаКлиенте
Ссылка = ЗаписатьВДокументНаСервере();
Структура = Новый Структура("Ключ", Ссылка);
ФормаДокументаБюджет = ПолучитьФорму("Документ.МойДокумент.Форма.ФормаДокумента",Структура,,Истина);


В переменной ФормаДокументаБюджет имею форму созданного документа. А далее пробую ФормаДокументаБюджет.ДеревоЗначений = ЭтаФорма.ДеревоБюджет

В результате имею ошибку. Перепробовал все что знал. Помогите советом или подскажите как заполнять элементы формы документа. Может как то перебором? Кто знает? ОтветЦитироватьУведомлять
1 palsergeich
 
17.10.18
20:17
Дерево = данныеФормывзначение....
ЗначениеВДанныеФормы(дерево)
2 palsergeich
 
17.10.18
20:18
Если не получится то обходите одно дерево рекурсивно и заполняйте второе дерево на его основании
3 palsergeich
 
17.10.18
20:20
Только учтите что в реквизитах формы нет такого типа как дерево значений, а есть его отображение - данныеФормы.....
4 ДНН
 
17.10.18
20:23
(0) Зачем заполнять дерево значений, если оно не сохраняется в базе данных? Скорее всего оно само заполнится при создании формы, просто открывайте форму
5 palsergeich
 
17.10.18
20:24
6 palsergeich
 
17.10.18
20:26
Вероятнее всего форма в этот момент уже открыта или инициирована и заполнения дерева не будет
7 palsergeich
 
17.10.18
20:28
Хотя судя по коду да, открывыется форма после создания документа
8 palsergeich
 
17.10.18
20:29
Возможно там копируется после создания дерева дерево породившего документа, ибо по коду заполнения - заполнена только шапка документа
9 IgoryanYa
 
18.10.18
08:16
(4), Смысл такой. Обработка для 1с укф. Там при планирование бюджета выбирается сценарий, период, бюджет, регион и всякое остальное. Так как регионов много, и в каждом регионе много магазинов, пользователю нужно создать количество документов равное кол-во регионов *кол-во магазин и число получается огромное, а статьи одинаковые, только планируемые цифры разные. Так как число  документов большое, пишу обработку в которой выбирает сценарий, бюджет и сразу область(в области много регионов). И в обработке получает страницы, кол - во которых равно кол-ву магазинов в регионе и каждая страница имеет название магазина. И на каждый странице свое дерево бюджета(дерево значений). Вносит цифры и при нажмите на кнопку создаётся столько документов, сколько страниц и данные из дерево значений которое находится на этой странице вносятся в создаваемый документ. Получилось все, но вот как этот перенос сделать, не знаю.
10 IgoryanYa
 
18.10.18
08:18
(4), Да, дерево значений отображается, но оно пустое.