Имя: Пароль:
1C
1С v8
8.3. Работа с реквизитом типа ХранилищеЗначений в управляемой форме
0 SeiOkami
 
29.06.13
22:46
Здравия всем!

Дело такое. Версия 1С 8.3.3.658. Конфигурация своя. Хочу сделать банальное, а именно: в реквизит документа (ХранилищеЗначения) помещать форматированный документ на форме. В общем, то что описано в статье http://infostart.ru/public/74958/
Однако, не могу обратиться в форме к реквизиту объекта. Ни на клиенте ни на сервере. А в списке реквизитов формы такая надпись: http://s3.hostingkartinok.com/uploads/images/2013/06/2281724d86d471ce61b7aad4a81bfeec.jpg

Что я не так делаю?
1 SeiOkami
 
29.06.13
22:47
Надпись: "недоступен в данных формы"
2 Cyberhawk
 
29.06.13
23:13
Реквизита-то должно быть два: формы с типом "ФД" и объекта с типом "ХЗ"
3 SeiOkami
 
29.06.13
23:15
(2), да, но ведь, чтобы сохранять значения ФД в документе, то мне нужно его поместить в ХЗ. А вот к ХЗ я как раз обратиться и не могу. ХЗ почему)
4 Cyberhawk
 
29.06.13
23:22
Модуль формы (у объекта есть ТЧ, в которой один из реквизитов - ХЗ):

&НаКлиенте
Процедура ВложенияПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
   Отказ = Истина;
   ДобавитьВложение();
КонецПроцедуры

&НаКлиенте
Процедура ДобавитьВложение()    
   Перем ВыбранноеИмя;
   Перем АдресВременногоХранилища;    
   НовыйОбъект = Объект.Ссылка.Пустая();
   Если ПоместитьФайл(АдресВременногоХранилища, "", ВыбранноеИмя, Истина) Тогда        
       Файл = Новый Файл(ВыбранноеИмя);
       НовоеВложение                    = Объект.Вложения.Добавить();
       НовоеВложение.Имя              = Файл.Имя;
       НовоеВложение.ИмяФайлаИсточника = ВыбранноеИмя;
       НовоеВложение.Пиктограмма        = ПиктограммаФайла(Файл);        
       ПоместитьФайлОбъекта(АдресВременногоХранилища,НовоеВложение.НомерСтроки-1);
       
   КонецЕсли;    
КонецПроцедуры

&НаСервере
Процедура ПоместитьФайлОбъекта(АдресВременногоХранилища,Индекс)
   ТекЗадача = РеквизитФормыВЗначение("Объект");
   ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
   ТекЗадача.Вложения[Индекс].Хранилище   = Новый ХранилищеЗначения(ДвоичныеДанные);
   
   ТекЗадача.Записать();
   УдалитьИзВременногоХранилища(АдресВременногоХранилища);
   ЗначениеВРеквизитФормы(ТекЗадача, "Объект");
КонецПроцедуры
5 Cyberhawk
 
29.06.13
23:23
Ну т.е. все манипуляции с реквизитом объекта типа ХЗ выполнять на сервере
6 SeiOkami
 
29.06.13
23:24
(5), я же уже все описал в (0)...
Не могу обратиться к реквизиту с типом ХЗ на форме. Ни на клиенте, ни на сервере
7 Cyberhawk
 
29.06.13
23:28
Сравни свой код с (4) и проделай работу над ошибками. Не справишься - запости сюда свой код, в котором ты не можешь обратиться к реквизиту с типом ХЗ