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

Как получить корректную сумму ресурса у задвоенных записей. Использование новых агрегатных функций. Доступно, по-моему с 14 релиза 8.2.

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

Предположим клиент хочет видеть в отчете табличную часть документа и отдельной колонкой сумму всего документа. Тут проблемы нету: соединяем две таблицы и вперед. Проблема возникает когда надо получить итоги в отчете. Стандартная функция СУММА – будет возвращать сумму всех записей по колонке, соответственно сумма документа будет умножена на количество строк в табличной части. Для того чтобы избежать этого можно воспользоваться новыми агрегатными функциями, их было добавлено достаточно много, но нам понадобится функции ТаблицаЗначений, Массив и Сумма. Итак:
ТаблицаЗначений – формирует таблицу значений (сюрприз, сюрприз :) из колонок которые содержатся в итоговой таблицы после того как отработал процессор компоновки.
МАССИВ – формирует массив записей от группировок или берет 1-ую колонку таблицы значений

Предположим клиент хочет видеть в отчете табличную часть документа и отдельной колонкой сумму всего документа. Тут проблемы нету: соединяем две таблицы и вперед. Проблема возникает когда надо получить итоги в отчете. Стандартная функция СУММА – будет возвращать сумму всех записей по колонке, соответственно сумма документа будет умножена на количество строк в табличной части. Для того чтобы избежать этого можно воспользоваться новыми агрегатными функциями, их было добавлено достаточно много, но нам понадобится функции ТаблицаЗначений, Массив и Сумма. Итак: ТаблицаЗначений – формирует таблицу значений (сюрприз, сюрприз из колонок которые содержатся в итоговой таблицы после того как отработал процессор компоновки. МАССИВ – формирует массив записей от группировок или берет 1-ую колонку таблицы значений...

Далее

Использование функций из модулей менеджера

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

Не понятно с какого момента, но теперь в СКД можно обращаться не только к функциям общих модулей, но и к экспортным функциям модулей менеджера. Т.е. пишем в модуле менеджера любого объекта экспортную функцию, а затем в СКД обращаемся к ней стандартно, например Справочники.Картинки.Тест().

Плюс работают и стандартные функции, вроде Справочники.Картинки.НайтиПоКоду().

Плюс работают методы глобального контекста, например РольДоступна.

Возможно все и так об этом знают, но на всякий случай решил написать. Лично я с вызовом экспортных функций модулей менеджеров как-то не сталкивался, и удивился что это работает. а последние 2 фишки уже давно использую.

 

Не понятно с какого момента, но теперь в СКД можно обращаться не только к функциям общих модулей, но и к экспортным функциям модулей менеджера. Т.е. пишем в модуле менеджера любого объекта экспортную функцию, а затем в СКД обращаемся к ней стандартно, например Справочники.Картинки.Тест(). Плюс работают и стандартные функции, вроде Справочники.Картинки.НайтиПоКоду(). Плюс работают методы глобального контекста, например РольДоступна. Возможно все и так об этом знают, но на всякий случай решил написать. Лично я с вызовом экспортных функций модулей менеджеров как-то не сталкивался, и удивился что это работает. а последние 2 фишки уже давно использую.   Перейти к...

Далее

Использование характеристик в СКД

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

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

В конструкторе запросов, когда он вызывается из формы настройки источника данных, для схемы компоновки данных. Есть закладка “характеристики”, использование которой не вполне ясно описано в документации. В этой статье я постараюсь объяснить, как и для чего используются характеристики в СКД. В типовых конфигурациях активно используется механизм свойств и значений свойств доступный практически для любых объектов. Примитивно, на справочниках, этот механизм реализовывался еще в конфигурациях 7.7. Сейчас этот механизм реализован с использованием плана видов характеристик и регистра сведений, но идея осталась прежней. Когда я впервые столкнулся с необходимостью использования этого механизма, в схеме СКД, я очень долго мучился, организовывал вложенные запросы, присоединял к основной выборке и ломал голову над тем, как учесть возможность появления новых видов свойств, которых нет на момент разработки отчета. Весь механизм свойств, будучи простым и логичным с точки зрения пользователя, не поддавался никакой нормальной обработке, пока я не разобрался с закладкой “Характеристики”. Таблица на закладке очень капризная, либо вы введете всю строку корректно, либо откажетесь от ввода строки совсем, оставить “на потом” не до конца заполненную строку система не даст. Итак, перейдем к конкретике. Первая колонка: Тип – здесь выбираем тип объекта, к которому привяжутся характеристики, например “СправочникСсылка.Номенклатура” Это означает, что теперь для всех объектов указанного типа можно будет получить значения свойств. Далее в следующей колонке Источник видов мы должны задать параметры источника видов свойств. Возможны варианты таблица м запрос, зачем нужен вариант запрос расскажу позже, сейчас выберем пункт таблица. В колонке Виды характеристик мы должны выбрать таблицу информационной базы, в которой хранятся нужные виды характеристик, в нашем примере это будет “ПланВидовХарактеристик.СвойстваОбъектов”. Далее, значения доступные нам для выбора в колонках Поле ключа, Поле имени и Поле типа значения, непосредственно зависят от полей выбранной нами таблицы. В Поле ключа мы выбираем Ссылка, в Поле имени – Представление (именно его пользователь увидит в качестве имени реквизита), а в Поле типа соответственно ТипЗначения. Теперь перейдем к источнику значений. Источником значений у нас будет регистр сведений “ЗначенияСвойствОбъектов”, поэтому мы выбираем в колонке Источник значений – таблица, а в колонке Значения характеристик – “РегистрСведений.ЗначенияСвойствОбъектов”. В колонках Объект, Свойство, Значение, выбираем соответствующие поля регистра Объект, Свойство, Значение. Казалось бы, на этом все. Заходим в настройки схемы, добавляем группировку по товарам, и добавляем подчиненную ей группировку, допустим по Брендам, есть у нас такое свойство. Разворачиваем список реквизитов группировки Номенклатура и … не видим там никаких свойств: Дело в том, что мы находимся в конфигураторе, откуда нет доступа к данным. Как же сделать нужную настройку? Удобнее всего для этого использовать консоль компоновки данных, ту что на диске ИТС, или ту что входит в подсистему “Инструменты разработчика”. Но можно и просто открыть настройку отчета в режиме предприятия. Итак, откроем ту же настройку, но в режиме предприятия: Как видите, у нас добавились новые “Реквизиты”, при этом...

Далее

Новые функции СКД 8.2.14

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

В свете ближайшего выхода 8.2.14, попытаюсь описать некоторые новые функции системы компоновки данных.

В свете ближайшего выхода 8.2.14, попытаюсь описать некоторые новые функции системы компоновки данных. Открываем схему компоновки данных, желательно во внешнем отчете, чтобы было проще редактировать. Добавляем набор данных типа запрос и пишем, либо вручную, либо с помощью конструктора запросов простейший запрос: 1. Настраиваем запрос в СКД. 2. Настраиваем вычисляемые поля в СКД 3. Выполняем настройку компоновки данных на закладке настройки 4. Запускаем 1С Предприятие 8.2.14. Открываем отчет. Формируем, получаем. Описание самих новых функций: 1. ТекущаяДата() Возвращает системную дату. При компоновке макета компоновки во всех выражениях, которые присутствуют в компоновке, функция ТекущаяДата()заменяется значением текущей даты. 2. ВЫЧИСЛИТЬВЫРАЖЕНИЕ() Синтаксис: ВычислитьВыражение(<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>) Описание: Функция предназначена для вычисления выражения в контексте некоторой группировки. Функция учитывает отбор группировок, но не учитывает иерархические отборы. Функция не может применяться к группировке в групповом отборе этой группировки. Например, в отборе группировки Номенклатура нельзя использовать выражение ВычислитьВыражение(«Сумма(СуммаОборот)”, , «ОбщийИтог») > 1000. Но такое выражение можно использовать в иерархическом отборе. Если конечная запись предшествует начальной, то считается, что записи для расчета детальных данных и расчета агрегатных функций отсутствуют. При расчете интервальных выражений для общего итога (параметр Группировка имеет значение ОбщийИтог) считается, что записи для расчета детальных данных и расчета агрегатных функций отсутствуют. Компоновщик макета при генерации выражения функции ВычислитьВыражение, в случае если выражение упорядочивания содержит поля, которые не могут быть использованы в группировке, заменяет функцию ВычислитьВыражение на NULL.   Параметры <Выражение>     Тип: Строка. Выражение, которое надо вычислить. <Группировка>   Тип: Строка. Содержит имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем.   Например: Сумма(Продажи.СуммаОборот)/Вычислить(“Сумма(Продажи.СуммаОборот)”, “ОбщийИтог”) В данном примере в результате получится отношение суммы по полю Продажи.СуммаОборот записи группировки к сумме того же поля во всей компоновке; <ОбластьВычисления>   Тип: Строка. Параметр может принимать следующие значения:   ОбщийИтог — выражение будет вычисляться для всех записей группировки. Иерархия — выражение будет вычисляться для родительской иерархической записи, если таковая имеется, и для всей группировки, если родительской иерархической записи не имеется. Группировка — выражение будет вычисляться для текущей групповой записи группировки. ГруппировкаНеРесурса — при вычисление функции для групповой записи по ресурсам, выражение будет вычислено для первой групповой записи исходной группировки. При вычислении функции ВычислитьВыражение() со значением ГруппировкаНеРесурса для групповых записей, не являющихся группировками по ресурсам, функция вычисляется так же, как бы она вычислялась в том случае, если значение параметра было равно значению Группировка. Компоновщик макета компоновки данных при генерации макета компоновки данных при выводе в макет поля-ресурса, по которому выполняется группировка, помещает в макет выражение, вычисляемое при помощи функции ВычислитьВыражение(), с указанием параметраГруппировкаНеРесурса. Для остальных ресурсов в группировке по ресурсу помещаются обычные выражения ресурсов. <Начало>   Тип: Строка. Указывает, с какой записи нужно начинать фрагмент, в котором...

Далее

Вывод своего макета в компоновку

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

Доброго времени.
Хочу поделится своим опытом в данной теме. И спросить совет у специалистов.
Что бы вывести свой макет до или после скд проблемы нет, делается это на ура следующим кодом.

Результат = ЭлементыФормы.Результат;
Результат.Очистить();

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

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

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

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

//Получение доп макета для шапки и подвала
Макет = ОтчетОбъект.ПолучитьМакет(“Подписи”);

//Вывод своего макета
Область = Макет.ПолучитьОбласть(“Надписи”);
ЭлементыФормы.Результат.Вывести(Область);

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

Далее

Итоги в таблице

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

Может  кто-нибудь подсказать, я в отчете вывожу список реализаций.

И мне нужно сделать так, чтоб их можно было сворачивать, типа как “Итоги”.

 

Может  кто-нибудь подсказать, я в отчете вывожу список реализаций. И мне нужно сделать так, чтоб их можно было сворачивать, типа как “Итоги”.   Перейти к...

Далее
Страница 1 из 612345...Последняя »

Авторизация

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

Архивы

Закладки

  • Your favorites will be here.