Имя: Пароль:
1C
 
Сохранение значений в реквизите формы
,
0 JinAir
 
26.04.17
11:24
Здравствуйте, работаю в ЗУП 3.1. необходимо сделать обзор для нескольких подразделений. Добавляю реквизит формы "Список значений". записываю в него значения, провожу документ, открываю и реквизит уже пустой. пытался сделать через "Автоматическое сохранение данных формы в настройках", но в таком случае сохраняются выбранные подразделения в последнем документе, открываешь любой документ и список значений везде одинаковый. помогите, подскажите как реализовать
1 END
 
26.04.17
11:25
Нужен реквизит объекта, а не формы.
2 JinAir
 
26.04.17
11:57
Пытаюсь сохранить  значение в реквизит документа Хранилище подразделений:

&НаСервере
Функция ПолучитьЗначениеХЗ()
    
    Возврат ХранилищеПодразделений.Получить();
    
КонецФункции

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    
    ХранилищеПодразделений = Новый ХранилищеЗначения(СписокЗначенийПодразделений);
    
КонецПроцедуры



в итоге:


{Документ.ТабельУчетаРабочегоВремени.Форма.ФормаДокумента.Форма(546,32)}: Переменная не определена (ХранилищеПодразделений)
    СписокЗначенийПодразделений = <<?>>ХранилищеПодразделений.Получить(); (Проверка: Тонкий клиент)
3 Рэйв
 
26.04.17
12:02
(2)Лучше уж в строку СЗ сохраняй через ЗначениеВСтрокуВнутр() чтобйыс хранилищем не париться.
4 DrShad
 
26.04.17
12:11
(3) тогда уж не в строку, а в ТЧ
5 Рэйв
 
26.04.17
12:14
(4)Есть сомнения, что ТС осилит это действие:-)
6 DrShad
 
26.04.17
12:16
(5) а со строкой справится? )))
7 Рэйв
 
26.04.17
12:17
(6)Ну, я ему уже метод подсказал:-)
8 DrShad
 
26.04.17
12:22
(7) прикольно выйдет если подразделение удалят или эта строка по обмену уйдет куда-нить )))

лучше таки ТЧ
9 Рэйв
 
26.04.17
12:34
(8)Ну да, ссылочная целостность- наше все:-)
10 JinAir
 
27.04.17
09:25
Реализовал с помощью созданной табличной части "Подразделения"

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    Если НЕ Объект.Ссылка.Пустая() Тогда
        
        Для Каждого СтрокаТЧ Из Объект.Подразделения Цикл
            
            СписокЗначенийПодразделений.Добавить(СтрокаТЧ.Подразделение);
            
        КонецЦикла;
        
    КонецЕсли;
    
КонецПроцедуры