ПодготовитьДанные (БСП)

Автор: 1С
ОбщийМодуль.АсинхронноеПолучениеДанных
БСП

Подготовить данные. Обработчик задания очереди заданий.

// Обработчик задания очереди заданий.
//
// Параметры:
//  ИдентификаторДанных - Строка - идентификатор данных, которые нужно получить.
//  ИдентификаторПараметров - УникальныйИдентификатор - идентификатор файла параметров получения данных.
//
Процедура ПодготовитьДанные(ИдентификаторДанных, ИдентификаторПараметров) Экспорт
	
    Словарь = АсинхронноеПолучениеДанныхСловарь;
    ОчередьСловарь = ОчередьЗаданийВнешнийИнтерфейсСловарь;
    Параметры = ФайлыОбластейДанных.ДвоичныеДанныеФайла(ИдентификаторПараметров);
    КлючЗадания = КлючЗаданияПодготовкиДанных(ИдентификаторДанных, ИдентификаторПараметров);
    ИдентификаторЗадания = ОчередьЗаданийВнешнийИнтерфейс.ИдентификаторЗадания(КлючЗадания);
    Попытка
        ВозвращаемыеДанные = ДоступныеВозвращаемыеДанные();
        ПараметрыВозвращаемыхДанных = ВозвращаемыеДанные.Получить(ИдентификаторДанных);
        Если ПараметрыВозвращаемыхДанных = Неопределено Тогда
            Свойства = РегистрыСведений.СвойстваЗаданий.НовыйСвойстваЗадания();
            Свойства.КодСостояния = ОчередьСловарь.КодСостоянияНеНайдено();
            РегистрыСведений.СвойстваЗаданий.Установить(ИдентификаторЗадания, Свойства);
            Возврат;
        КонецЕсли;
        МенеджерДанных = ПараметрыВозвращаемыхДанных.МодульМенеджер;
        Свойства = РегистрыСведений.СвойстваЗаданий.НовыйСвойстваЗадания();
        Свойства.КодСостояния = ОчередьСловарь.КодСостоянияВыполнено();
        Данные = МенеджерДанных.ВозвращаемыеДанные(ИдентификаторДанных, Параметры, 
            Свойства.КодСостояния, Свойства.Ошибка, Свойства.СообщениеОбОшибке);
        Если ЗначениеЗаполнено(Данные) Тогда
            ИдентификаторРезультата = ФайлыОбластейДанных.ЗагрузитьФайл(ИдентификаторДанных, Данные,,, Истина);
            Результат = Новый Структура;
            Результат.Вставить(Словарь.ПолеХранилище(), ФайлыОбластейДанных.ИдентификаторХранилища());
            Результат.Вставить(Словарь.ПолеИдентификатор(), Строка(ИдентификаторРезультата));
            Свойства.Результат = РаботаВМоделиСервисаБТС.СтрокаИзСтруктурыJSON(Результат);
        КонецЕсли; 
        РегистрыСведений.СвойстваЗаданий.Установить(ИдентификаторЗадания, Свойства);
        Если Свойства.КодСостояния <> ОчередьЗаданийВнешнийИнтерфейсСловарь.КодСостоянияОжидание() Тогда
            ФайлыОбластейДанных.УстановитьПризнакВременного(ИдентификаторПараметров);
        КонецЕсли;
    Исключение
        ОчередьЗаданийВнешнийИнтерфейс.УстановитьВнутреннююОшибку(
            ИдентификаторЗадания, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
        ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
    КонецПопытки
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ПодготовитьДанныеДляВыгрузкиИзИнформационнойБазы (БСП)

ПодготовитьИПрикрепитьОбластьДанных (БСП)

ПодготовитьОбластьИзВыгрузки (БСП)

ПодготовитьОбластьДанныхКИспользованиюИзЭталонной (БСП)

ПодготовитьОбластьДанныхКИспользованию (БСП)

ПодготовитьДанныеДляСозданияФайловогоНачальногоОбраза (БСП)

ПодготовитьДанныеДляСозданияСерверногоНачальногоОбраза (БСП)

ПодготовитьНаборыЗначенийДоступаКЗаписи (БСП)

TurboConf - расширение Конфигуратора 1С