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

Пример работы с временным хранилищем [временное хранилище]

Автор MuI_I_Ika, 01 июл 2015, 13:49

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

MuI_I_Ika

Начиная с версии 8.2 в 1С:Предприятии появился новый объект: временное хранилище. Этот объект позволяет решать многие проблемы при передаче данных между различными формами. Как известно, начиная с версии 8.2 1С поддерживает работу через тонкий и веб клиент (браузер), что накладывает на разработчиков программных решений ряд ограничений. А объект временное хранилище помогает эти ограничения снимать.


&НаКлиенте
Процедура ОтобратьКонтрагентов(Команда)

АдресВХ = "";
ОтобратьКонтрагентовСервер(АдресВХ);
СтруктураВыбора = Новый Структура;
СтруктураВыбора.Вставить("Контрагенты",АдресВХ);
ОповеститьОВыборе(СтруктураВыбора);
//ЭтаФорма.Закрыть();

КонецПроцедуры


&НаСервере
Процедура ОтобратьКонтрагентовСервер(АдресВХ)

ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ТаблицаЗначений = Новый ТаблицаЗначений;
СхемаКомпоновкиДанных = ОбработкаОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
СтруктураПараметров = Новый Структура();
//ПолучитьДанныеНаОснованииСКД(СхемаКомпоновкиДанных, ТаблицаЗначений, КонрагентыСписок.КомпоновщикНастроек.Настройки, СтруктураПараметров);
ПолучитьДанныеНаОснованииСКД(СхемаКомпоновкиДанных, ТаблицаЗначений, Неопределено, СтруктураПараметров);

АдресВХ = ПоместитьВоВременноеХранилище(ТаблицаЗначений,Новый УникальныйИдентификатор());

КонецПроцедуры

//Обработка в другой форме
&НаКлиенте
Процедура КонтрагентыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
КонтрагентыОбработкаВыбораНаСервере(ВыбранноеЗначение);
СтандартнаяОбработка = Ложь;
КонецПроцедуры

&НаСервере
Процедура КонтрагентыОбработкаВыбораНаСервере(ВыбранноеЗначение)

Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда

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

КонецЕсли;

КонецПроцедуры


Теги:
Рейтинг@Mail.ru

Поиск