Что-то вроде FAQ

Пример использования внешнего набора данных

Отзывов (10)FavoriteLoadingВ закладки

Для использования в схеме компоновки данных внешнего набора данных сначала необходимо создать набор данных объект, и указать имя объекта, содержащего данные:

Далее необходимо программно выполнить формирование отчета, заполнив внешний набор данных:

ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("тз",тз);

СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
                                                          Настройки);

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,
                                           ВнешниеНаборыДанных);

ТабДок = Новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанных
                                                 ВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабДок);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

В данном примере тз – переменная с типом таблица значений.

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

Далее

Параметр – список значений с пустым значением

Отзывов (2)FavoriteLoadingВ закладки

Нашёл такие грабли – когда делаешь параметр списком значений, СКД зачем-то сама в этот список вставляет строку с пустым значением.
Я этот параметр передаю в запрос, и если тип параметра является иерархическим справочником, это пустое значение похоже отбирает любого родителя в иерархии, и как следствие, все значения справочника. Кстати, такой же косяк можно увидеть в отборах, если сделать вид сравнения “в группе из списка” и в список добавить строку с пустым значением.
А так как юзер тупо заполняет этот список подбором, то ему по фигу, что там какие-то пустые значения. Объяснять, что пустых значения в списке надо удалять – бесполезно. Виноват-то программист!
Нашёл, как это лечить, может кому-то пригодится.

Нашёл такие грабли – когда делаешь параметр списком значений, СКД зачем-то сама в этот список вставляет строку с пустым значением. Я этот параметр передаю в запрос, и если тип параметра является иерархическим справочником, это пустое значение похоже отбирает любого родителя в иерархии, и как следствие, все значения справочника. Кстати, такой же косяк можно увидеть в отборах, если сделать вид сравнения “в группе из списка” и в список добавить строку с пустым значением. А так как юзер тупо заполняет этот список подбором, то ему по фигу, что там какие-то пустые значения. Объяснять, что пустых значения в списке надо удалять – бесполезно. Виноват-то программист! Нашёл, как это лечить, может кому-то пригодится....

Далее

Как программно установить схему их XML

Ваш отзывFavoriteLoadingВ закладки

Для того, чтобы программно установить схему их XML файла, необходимо выполнить следующее:

Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Фильтр = "Файлы XML (*.xml) |*.xml";
Если НЕ Диалог.Выбрать() Тогда
   Возврат;
КонецЕсли;

ЧтениеXML = Новый ЧтениеXML;

Попытка
   ЧтениеXML.ОткрытьФайл(Диалог.ПолноеИмяФайла);
Исключение
   Сообщить("Невозможно открыть xml-файл");
   Возврат;
КонецПопытки;

СхемаКомпоновкиДанных = СериализаторXDTO.ПрочитатьXML(ЧтениеXML,
                                      ,Тип("СхемаКомпоновкиДанных"));

ЧтениеXML.Закрыть();

Теперь в переменной СхемаКомпоновкиДанных содержится схема, с которой можно делать что угодно. Например сформировать отчет по примеру отсюда.

Для того, чтобы программно установить схему их XML файла, необходимо выполнить следующее: Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Фильтр = "Файлы XML (*.xml) |*.xml"; Если НЕ Диалог.Выбрать() Тогда Возврат; КонецЕсли; ЧтениеXML = Новый ЧтениеXML; Попытка ЧтениеXML.ОткрытьФайл(Диалог.ПолноеИмяФайла); Исключение Сообщить("Невозможно открыть xml-файл"); Возврат; КонецПопытки; СхемаКомпоновкиДанных = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, ,Тип("СхемаКомпоновкиДанных")); ЧтениеXML.Закрыть(); Теперь в переменной СхемаКомпоновкиДанных содержится схема, с которой можно делать что угодно. Например сформировать отчет по примеру отсюда. Перейти к...

Далее

Программный вывод отчета

Отзывов (9)FavoriteLoadingВ закладки

Несмотря на то, изучающие СКД встречаются с этим на первый или второй день, это должно быть в разделе FAQ. Простой пример программного вывода отчета на компоновке, использующий настройки по умолчанию.

//Получаем схему из макета
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
                                        Настройки, ДанныеРасшифровки);

//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,
                                                   ДанныеРасшифровки);

//Очищаем поле табличного документа
Результат = ЭлементыФормы.Результат;
Результат.Очистить();

//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанных
                                                  ВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

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

Далее

Как программно сохранить схему в XML

Ваш отзывFavoriteLoadingВ закладки

Как программно сохранить схему в XML, аналогично тому как это делается по кнопке “Сохранить схему в файл”?

ЗаписьXML = Новый ЗаписьXML;

Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Фильтр = "Файлы XML (*.xml) |*.xml";
Если НЕ Диалог.Выбрать() Тогда
    Возврат;
КонецЕсли;

Путь = Диалог.ПолноеИмяФайла;
ЗаписьXML.ОткрытьФайл(Путь);

СериализаторXDTO.ЗаписатьXML(ЗаписьXML,
ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"), 
"dataComposition",
"http://v8.1c.ru/8.1/data-composition-system/composition-template");
Как программно сохранить схему в XML, аналогично тому как это делается по кнопке “Сохранить схему в файл”? ЗаписьXML = Новый ЗаписьXML; Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); Диалог.Фильтр = "Файлы XML (*.xml) |*.xml"; Если НЕ Диалог.Выбрать() Тогда Возврат; КонецЕсли; Путь = Диалог.ПолноеИмяФайла; ЗаписьXML.ОткрытьФайл(Путь); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"), "dataComposition", "http://v8.1c.ru/8.1/data-composition-system/composition-template"); Перейти к...

Далее

Как в СКД накрыть колонки шапкой

Отзывов (16)FavoriteLoadingВ закладки

Данный вопрос возникает у пользователей СКД достаточно часто. Сразу отмечу, что данную задачу можно решить несколькими способами, но все они не совсем очевидные. Предлагаю, на мой взгляд, самый простой и эффективный способ решения этой задачи.

Данный вопрос возникает у пользователей СКД достаточно часто. Сразу отмечу, что данную задачу можно решить несколькими способами, но все они не совсем очевидные. Предлагаю, на мой взгляд, самый простой и эффективный способ решения этой задачи. Имеем простой отчет на компоновке вида: Теперь сделаем шапку “Оборот” над колонками “Количество оборот” и “Стоимость оборот”, а колонки назовем “Количество” и “Стоимость”. Для это зайдем на вкладку “Наборы данных” конструктора СКД и немного пошаманим. Находим поля “КоличествоОборот и “СтоимостьОборот” и меняем у них путь. Полю “КоличествоОборот” меняем путь на “Оборот.КоличествоОборот”, аналогично меняем у стоимости. Также изменяем заголовки: Теперь перейдем на вкладку “Настройки” и в выбранных полях выберем группу “Оборот”: Сформируем отчет: Вроде получилось. Единственное, наверное многим захочется расположить шапку по центру. Конечно можно нарисовать свой макет оформления, но считаю в данном случае это не стоит того. Поэтому предлагаю просто использовать пробелы в названии группы. В нашем случае название группы будет таким: ”              Оборот”, а вид отчета таким:...

Далее
Страница 5 из 6« Первая...23456

Авторизация

Логин:
Пароль:
Регистрация

Архивы

Закладки

  • Your favorites will be here.