Имя: Пароль:
1C
 
Управляемые формы и хранилище значений?
0 Demetres
 
08.07.15
08:05
Доброе утро! Открываю форму элемента справочника (элемент не записан) через параметры передаю в форму реквизиты для заполнения, один из которых двоичные данные. Эти двоичные данные нужно поместить в реквизит этого элемента справочника. Но беда, через основной реквизит формы "ОБЪЕКТ" доступа к реквизиту с типом хранилище значений нет, как быть что делать? Если кто знает как подобные ситуации решаются подскажите пожалуйста.
3 saaken
 
08.07.15
08:15
процедуру работы с хранилищем вынеси из модуля формы, например в модуль объекта
4 Demetres
 
08.07.15
08:18
(3) В модуле объекта что-то делается когда элемент уже записан, а если пользователь передумал нажимать на кнопку "Записать и закрыть", то куда этот элемент потом девать.
5 saaken
 
08.07.15
08:19
(4) такие мысли надо скрывать от общественности, не выноси свою глупость наружу
6 Jonny_Khomich
 
08.07.15
08:23
А зачем тебе эти данные в справочнике?
Записывай в РС после записи элемента.
7 Drac0
 
08.07.15
08:23
(4) а еще в модуле есть процедура ОбработкаЗаполнения
8 Demetres
 
08.07.15
08:44
(5) Спасибо.
(6) Так сделано до меня, задача глобальных изменений не стоит, да и справочник стоит на поддержке с возможностью изменений.
(7) Да вы правы, но в модуль объекта не хочется ничего добавлять, так как все можно решить в форме. И обновлять будет легче.

Данный справочник стоит на поддержке и изменений должно быть по минимуму, из-за этого не хочется добавлять новое событие в модуль объекта и вообще какой-то код туда.
9 Demetres
 
08.07.15
08:44
Вот так это можно сделать только через форму, может пригодится кому, всем большое спасибо за тонкий юмор и сарказм

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

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    
    Если ЗначениеЗаполнено(АдресВременногоХранилищаСертификата) Тогда
        
        ТекущийОбъект.ФайлСертификата
            = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(АдресВременногоХранилищаСертификата));
        
    КонецЕсли;    
    
КонецПроцедуры
Основная теорема систематики: Новые системы плодят новые проблемы.