Создает описание обработки расшифровки компоновки данных.
Синтаксис
Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(<Данные>, <Идентификаторы>, <ПрименяемыеНастройки>)Полное описание, параметры и ограничения
ОписаниеОбработкиРасшифровкиКомпоновкиДанных.По умолчанию
ОписаниеОбработкиРасшифровкиКомпоновкиДанных (DataCompositionDetailsProcessDescription)
По умолчанию
Доступен, начиная с версии 8.5.1.
Синтаксис:
Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(<Данные>, <Идентификаторы>, <ПрименяемыеНастройки>)
Параметры:
<Данные> (необязательный)
Тип: Строка.
Адрес хранилища, из которого нужно получать данные расшифровки.
<Идентификаторы> (необязательный)
Тип: Массив.
Массив идентификаторов расшифровки компоновки данных. Все элементы массива, которые не являются идентификаторами расшифровки компоновки данных, будут отфильтрованы. Если в результате не останется ни одного элемента, то будет сгенерировано исключение.
<ПрименяемыеНастройки> (необязательный)
Тип: НастройкиКомпоновкиДанных.
Настройки, применяемые для расшифровки.
Описание:
Создает описание обработки расшифровки компоновки данных.
Использование в версии:
Доступен, начиная с версии 8.5.1.
Методическая информация
Практические примеры
Создать описание двух расшифровок с настоящими идентификаторами
Идентификаторы получаются от собственных элементов ДанныеРасшифровки, не сочиняются из строк или УникальныйИдентификатор.
Где и как запускать
Полный серверный общий модуль собственной учебной базы; не клиентский модуль формы.
Подготовка
Собственная учебная база 8.5.1.1343. Создайте общий модуль УчебныеКоллекцииСКД с флагом Сервер. Вставьте полный текст одного урока с процедурой ВыполнитьПример() Экспорт.
Из серверной команды своей обработки вызовите УчебныеКоллекцииСКД.ВыполнитьПример(). Таблицы значений и служебные объекты макета остаются на сервере.
Книга / 3 / 750 и Ручка / 1 / 50 — вымышленные собственные данные. Ни справочники, ни документы, ни регистры базы, ни внешние сервисы не читаются.
Различайте схему, настройки, скомпилированный макет и результат. Урок составления отдельной коллекции не называется готовым рабочим отчётом.
В уроке описания расшифровки временное хранилище заполняется только новым собственным объектом, в одном вызове. В конце удаляется ровно этот созданный адрес, включая обработку ошибки.
Не заменяйте собственный новый макет текущим рабочим отчётом: Очистить, Удалить и Сдвинуть в этих уроках относятся к собственной памяти.
Процедура ВыполнитьПример() Экспорт
Поля = Новый ЗначенияПолейРасшифровкиКомпоновкиДанных;
Название = Поля.Добавить();
Название.Поле = "Наименование";
Название.Значение = "Книга";
Название.Иерархия = Ложь;
Сумма = Поля.Добавить();
Сумма.Поле = "Сумма";
Сумма.Значение = 750;
Сумма.Иерархия = Ложь;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
Настройки = Новый НастройкиКомпоновкиДанных;
ДанныеРасшифровки.Настройки = Настройки;
Первый = ДанныеРасшифровки.Элементы.Добавить(Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля"), , Поля);
ПоляРучки = Новый ЗначенияПолейРасшифровкиКомпоновкиДанных;
Ручка = ПоляРучки.Добавить();
Ручка.Поле = "Наименование";
Ручка.Значение = "Ручка";
Ручка.Иерархия = Ложь;
Второй = ДанныеРасшифровки.Элементы.Добавить(Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля"), , ПоляРучки);
Идентификаторы = Новый Массив;
Идентификаторы.Добавить(Первый.Идентификатор);
Идентификаторы.Добавить(Второй.Идентификатор);
СобственныйАдрес = Неопределено;
ОшибкаОперации = "";
ОшибкаУдаления = "";
Попытка
СобственныйАдрес = ПоместитьВоВременноеХранилище(ДанныеРасшифровки);
Описание = Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(СобственныйАдрес, Идентификаторы, Настройки);
Сообщить(Описание.Данные = СобственныйАдрес);
Сообщить(Описание.Идентификаторы.Количество() = 2);
Сообщить(Описание.Идентификаторы[0] = Первый.Идентификатор);
Сообщить(Описание.Идентификаторы[1] = Второй.Идентификатор);
Сообщить(Описание.Идентификатор = Первый.Идентификатор);
Сообщить(ТипЗнч(Описание.ПрименяемыеНастройки) = Тип("НастройкиКомпоновкиДанных"));
Описание.Идентификатор = Второй.Идентификатор;
Сообщить(Описание.Идентификаторы.Количество() = 1);
Сообщить(Описание.Идентификаторы[0] = Второй.Идентификатор);
ВосстановленныеИдентификаторы = Новый Массив;
ВосстановленныеИдентификаторы.Добавить(Первый.Идентификатор);
ВосстановленныеИдентификаторы.Добавить(Второй.Идентификатор);
Описание.Идентификаторы = ВосстановленныеИдентификаторы;
Описание.Данные = СобственныйАдрес;
Описание.ПрименяемыеНастройки = Настройки;
Сообщить(Описание.Идентификаторы.Количество() = 2);
СтароеОписание = Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(СобственныйАдрес, Первый.Идентификатор, Настройки);
Сообщить(СтароеОписание.Идентификаторы.Количество() = 1);
Сообщить(СтароеОписание.Идентификатор = Первый.Идентификатор);
Сообщить(ДанныеРасшифровки.Элементы.Количество() = 2);
Сообщить(Первый.ПолучитьПоля().Найти("Сумма").Значение = 750);
Исключение
ОшибкаОперации = ОписаниеОшибки();
КонецПопытки;
Если ТипЗнч(СобственныйАдрес) = Тип("Строка") Тогда
Попытка
УдалитьИзВременногоХранилища(СобственныйАдрес);
Исключение
ОшибкаУдаления = ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
Если НЕ ПустаяСтрока(ОшибкаОперации) ИЛИ НЕ ПустаяСтрока(ОшибкаУдаления) Тогда
ВызватьИсключение "Ошибка собственного описания расшифровки: " + ОшибкаОперации + " Ошибка удаления собственного адреса: " + ОшибкаУдаления;
КонецЕсли;
Сообщить("Собственный временный адрес удалён; описание больше не следует использовать для открытия расшифровки");
КонецПроцедурыРазбор по шагам
Создаём наборы полей Книга и Ручка и добавляем два элемента через фабрику Элементы.Добавить.
Берём их свойства Идентификатор только для чтения. Массивный конструктор 8.5.1 получает два настоящих идентификатора.
Данные описания — адрес временного хранилища, а не сам объект ДанныеРасшифровки и не путь к файлу.
Устаревшее одиночное свойство Идентификатор читает первый элемент; его запись заменяет массив одним элементом. Для восстановления создаём новый массив, не предполагая независимость прежней ссылки.
Для сравнения создаём совместимый вариант конструктора с одним идентификатором; не выдаём его за массивный режим.
В том же серверном вызове удаляем ровно созданный адрес. Ошибки операции и удаления сохраняются отдельно.
Как проверить результат
Тринадцать булевых проверок Истина. Массивное описание содержит 2 ID, совместимое — 1.
Поля первого элемента действительно содержат сумму 750; ID не является выдуманной ссылкой на документ.
В конце сообщение об удалении собственного адреса; после него описанием нельзя открывать расшифровку.
Ожидаемый результат
Разобраны новый массивный и старый совместимый контракт без чужих адресов и фиктивных ID.
На что обратить внимание
Массив из строк/GUID не эквивалентен массиву идентификаторов расшифровки; неподходящие элементы фильтруются конструктором.
Не удаляйте адрес, полученный от рабочего отчёта: этот код удаляет только собственный новый адрес.
Описание — параметры будущей обработки, не доказательство открытия отчёта.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.