Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 янв 2026, 12:21

не сохраняются данные в хранилище

Автор sali, 16 янв 2026, 12:07

0 Пользователей и 2 гостей просматривают эту тему.

sali

при создании на сервере
АдресНастройкиМаршрута = ПоместитьВоВременноеХранилище(ЭтотОбъект.ПолучатьМаршрутыАгентов, УникальныйИдентификатор);

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

перед записью (на клиенте)
Если Не ЭтоБП Тогда   
АдресНастройкиМаршрута = ПоместитьВоВременноеХранилище(ЭтотОбъект.ПолучатьМаршрутыАгентов, УникальныйИдентификатор);   
КонецЕсли;


при открытии
ДанныеИзХранилища = ПолучитьДанныеСХранилища();     
Если ДанныеИзХранилища <> Неопределено Тогда
        ЭтотОбъект.МаршрутыАгентов.ЗагрузитьЗначения(ДанныеИзХранилища.МассивМаршрутов);
ЭтотОбъект.ПолучатьМаршрутыАгентов = ДанныеИзХранилища.ФлажокМаршруты;
КонецЕсли; 

&НаСервере
Функция  ПолучитьДанныеСХранилища()   
   
Если ЭтоАдресВременногоХранилища(АдресНастройкиМаршрута) Тогда
ФлажокМаршруты = ПолучитьИзВременногоХранилища(АдресНастройкиМаршрута);
МассивЗначенийДляМаршрутов = Новый Структура;
МассивМаршрутов = Новый Массив;

Если ФлажокМаршруты = Истина И ЭтоАдресВременногоХранилища(АдресНастроекМаршрутов) Тогда 
ПолучитьВыбранныеМаршруты = ПолучитьИзВременногоХранилища(АдресНастроекМаршрутов);
Для каждого Строка Из ПолучитьВыбранныеМаршруты Цикл
МассивМаршрутов.Добавить(Справочники["маршрутыагентов"].ПолучитьСсылку(Новый УникальныйИдентификатор(строка.значение.ГУИДМаршрута)));
КонецЦикла;
КонецЕсли; 

МассивЗначенийДляМаршрутов.Вставить("МассивМаршрутов", МассивМаршрутов);
МассивЗначенийДляМаршрутов.Вставить("ФлажокМаршруты", ФлажокМаршруты);
Возврат МассивЗначенийДляМаршрутов;

КонецЕсли;

КонецФункции


sali

кажется понял, в процедуре при создании на сервере он и перезаписывается. я то делал по тому примеру что ранее писал, нужно было в одном реквизите программном также запоминать выбор и при создании определить адрес хранилища
Если НЕ ЭтоБП Тогда
ЭтотОбъект.МаршрутыАгентов.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.МаршрутыАгентов");   

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

sali

нет, все равно не могу разрешить проблему , не сохраняется

antoneus

Цитата: sali от 17 янв 2026, 14:56при создании на сервере
АдресНастройкиМаршрута = ПоместитьВоВременноеХранилище(ЭтотОбъект.ПолучатьМаршрутыАгентов, УникальныйИдентификатор);

Что делает этот код? Зачем он нужен?

sali

antoneus, по идеи чтобы сказать программе что это хранилище , что в нем должен быть адрес хранилища где хранится некое значение. ну так было прописано во многих базах с которыми работал и сделал подобие

antoneus

Зачем ей говорить, что это хранилище? Ты туда кладешь текущее значение флажка (пустое), а при открытии его же получаешь.

Блд, ну просто же все как три рубля: при создании на сервере получаешь значения из реквизита объекта с типом хранилище значения. Заполняешь этими значениями реквизиты формы.
Перед записью на сервере кладешь значения из реквизитов формы в реквизит объекта с типом хранилище значения. Всё. Не нужно никакого временного хранилища. Похер что там прописано во многих базах, на заборе тоже прописано.

sali

Цитата: antoneus от Вчера в 12:28при создании на сервере п
А можно при чтении на сервере сделать? дело в том что я создал реквизит с типом хранилище значений, но такого объекта не находит , а в процедуре при чтении есть

и программный мой реквизит (булево) не виден, его будто нет

sali

создаю реквизит объекта - адреснастройки, тип хранилище значений
создаю реквизит формы - адреснастройкимаршрута, тип строка
при создании на сервере хочу обратиться к адреснастройки чтобы записать в адреснастройкимаршрута, но программа адреснастройки не находит

antoneus

В данных формы реквизит с типом ХранилищеЗначения недоступен, надо при создании на сервере

СохраненныеДанные = РеквизитФормыВЗначение("Объект").АдресНастройки.Получить()

sali

я тупой, но вы скажите
при создании на сервере
АдресНастройкиМаршрута = РеквизитФормыВЗначение("Объект").АдресНастройки.Получить(); // получаем "e1cib/tempstorage/7a15c997-cc06-4e8b-bef8-f34a3914079b?seanceId=OTk0ZWEyN2EtZjVlN ..." ТИП СТРОКА
ЭтотОбъект.ПолучатьМаршрутыАгентов = ПолучитьИзВременногоХранилища(АдресНастройкиМаршрута); // неопределено

перед записью на сервере
Если ЭтоАдресВременногоХранилища(АдресНастройкиМаршрута) Тогда
АдресНастройкиМаршрута = ПоместитьВоВременноеХранилище(ЭтотОбъект.ПолучатьМаршрутыАгентов, УникальныйИдентификатор); // получили адрес "e1cib/tempstorage/767d6e82-64c1-4c81-abd4-a9535e0e3238?seanceId=MTg1YTYyZjgtNjE5MC00M ..." тип строка
ТекущийОбъект.АдресНастройки = Новый ХранилищеЗначения(АдресНастройкиМаршрута); // в отладке при ТекущийОбъект.АдресНастройки.получить() - получаем адрес
КонецЕсли;


повторюсь, что реквизит объекта - адреснастройки, тип хранилище значений и реквизит формы - адреснастройкимаршрута, тип строка
выходит что адреснастройки - неопределенно и не записалось. что я блин делаю не так????

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск