Имя: Пароль:
1C
1С v8
Сохранение реквизитов документа
0 04347
 
16.03.18
09:08
Бухгалтерия 3.0.58
Документ ПеремещениеТоваров. В последнем документе заполнен реквизит Комментарий. Нужно сохранить этот реквизит так, чтобы при создании нового документа, там был тот же самый Комментарий. Вот процедуры (через расширение), но не прошли

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

ЗначениеНастроек = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта, КлючНастроек, ОписаниеНастроек, ИмяПользователя);

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


&После("ПриОткрытии")
Процедура ПриОткрытииРасширение(Отказ)
     ВосстановитьНастройки();
КонецПроцедуры    


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

Настройки = Новый Соответствие;

Настройки.Вставить("Комментарий", Объект.Комментарий);

ХранилищеОбщихНастроек.Сохранить(КлючОбъекта, КлючНастроек, Настройки, ОписаниеНастроек, ИмяПользователя);
КонецПроцедуры  


&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
      СохранитьНастройки();
КонецПроцедуры
1 Рэйв
 
16.03.18
09:42
(0)Не мучайся, сделай проще:

///---в модуле объекта

Процедура ПриЗаписи(Отказ)
    Если ЗначениеЗаполнено(Комментарий) Тогда
        ЗначениеВФайл(КаталогВременныхФайлов()+ИмяПользователя()+"_Comment.last",Комментарий);
    КонецЕсли;    
КонецПроцедуры


//---в модуле формы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Если Объект.Ссылка.Пустая() Тогда
        ИмяФ=КаталогВременныхФайлов()+ИмяПользователя()+"_Comment.last";
        ф=Новый Файл(ИмяФ);
        Если Ф.Существует() Тогда
            Объект.Комментарий=ЗначениеИзФайла(ИмяФ);
        КонецЕсли;    
КонецПроцедуры
2 Рэйв
 
16.03.18
09:42
*КонецЕсли забыл:-)
3 Малыш Джон
 
16.03.18
09:47
(0)Комментарий один на всех или у каждого пользователя свой?
4 04347
 
16.03.18
09:53
(3) один на всех
5 Малыш Джон
 
16.03.18
10:00
(4) попробуй убери Ключ настроек и Описание настроек, все равно они никакой функциональности не несут
6 Малыш Джон
 
16.03.18
10:02
+(5) тем более, Описание настроек - это не строка, а Описание настроек. Не знаю влияет ли это на работу с хранилищем, но зачем добавлять параметр заведомо не того типа.
7 04347
 
16.03.18
10:37
(1) спасибо за помощь, но почему-то тоже не сработало
8 cw014
 
16.03.18
10:38
> В последнем документе заполнен реквизит Комментарий. Нужно сохранить этот реквизит так, чтобы при создании нового документа, там был тот же самый Комментарий.

> один на всех

А по простому запилить константу не получится? Или по сложному пути идти надо?
9 04347
 
16.03.18
10:53
комментарий может время от времени меняться
10 04347
 
16.03.18
10:57
сделала по-минимуму

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Объект.Комментарий="ооооо";
    
КонецПроцедуры


не сработало
11 Рэйв
 
16.03.18
11:09
(10)Как то у тебя совсем все запущено:-)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн