Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 💫 💫 читайте на сайте

1C Дерево Значений Итоги по Группировкам • Виртуальные таблицы

Запросы предназначены для извлечения и обработки информации из базы данных для предоставления пользователю в требуемом виде.

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Есть готовый отчет, формируемый построиетелем, надо то всего лишь на определенном уровне добавить один показатель и вывести по нему итоги, переписывать весь отчет очень не хочется. Каталог готовых решений для 1С Обращайтесь в форму связи

1c8 Мини FAQ по построителю отчета

Построитель отчета — это объект, позволяющий на основе заданного текста запроса и настроек получить результат и вывести его в табличный документ или диаграмму.

Построитель отчета — это объект, позволяющий на основе заданного текста запроса и настроек получить результат и вывести его в табличный документ или диаграмму.

Перед выводом макет построителя отчета можно оформить с помощью макета оформления.

Вывод результата выполнения запроса построителя отчета осуществляется одной командой.

2. Где можно использовать построитель отчета?

С помощью построителя отчета можно проектировать основную массу отчетов (пример: “Остатки товаров”, “Продажи за период”…). При этом время на их разработку и программный код существенно сократятся, а качество оформления и функциональность — повысятся.

Кроме того, построитель отчета можно использовать в тех случаях, когда не нужен вывод результата, но требуется настройка пользователем элементов запроса, к примеру, группировок или фильтра (пример: выгрузка номенклатуры в xml-файл или обработка проведения документов по заданному фильтру).

Поскольку построитель отчета недоступен на сервере 1С:Предприятия и не используется в модуле внешнего соединения, то в этих случаях необходимо использовать построитель запроса, который аналогичен построителю отчета, но не имеет визуальных свойств и методов (“Макет”, “ВыводитьЗаголовокОтчета”, “Вывести()”, “ОформитьМакет()”.

По сравнению с версией 7.7 в версии 8.0 произошла небольшая смена понятий, поэтому стоит немного остановиться на этом.

Главное отличие заключается в том, что доступное поле не имеет свойства “ПутьКДанным” (пример: “Номенклатура.Код”, “Количество”), так как это просто своеобразное описание поля, по которому будет произведена попытка найти соответствие среди полей выборки запроса в момент добавления его в список группировок, фильтра, сортировки или выбранных полей.

4. Типовой вариант использования построителя отчета

В общем случае последовательность действий при работе с построителем отчета следующая:

5. Описание некоторых свойств построителя отчета

Какую часть дохода тратите на еду?
До 50%Больше 50%

6. Обработка Расшифровки с помощью построителя отчета

Свойство “ЗаполнениеРасшифровки” содержит один из трех вариантов заполнения расшифровки при выводе:

1-ый вариант: не заполнять (не использовать расшифровку).

2-ой вариант: значения группировок (при расшифровке ячейки будет открываться значение группировки, выведенное в ней).

3-ий вариант: расшифровка (расшифровка будет заполняться структурой, содержащей значения всех группировок). В этом случае требуется обрабатывать событие табличного документа “Обработка расшифровки”, где нужно анализировать переданную структуру и выполнять те или иные действия.

Важным моментом является то, что в третьем варианте нельзя осуществлять вывод в генерируемый табличный документ, так как тогда невозможно обработать расшифровку, обработка события которой происходит в модуле той формы, на которой расположено поле табличного документа.

Как вывести итоги не по всем группировкам? #336427

Метод УстановитьНастройки позволяет загрузить настройки построителя отчета с возможностью указания, какие именно пример только фильтр, фильтр и сортировку.

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Кроме этого, есть несколько свойств, позволяющих назначить группировке макеты, которые будут использоваться при выводе в табличный документ. 1c8 Мини FAQ по построителю отчета | Обращайтесь в форму связи

Запросы

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

Таблицы и поля

Группировка строк запроса.

При формировании запроса очень часто бывает необходимо «свернуть» данные запроса, то есть к примеру у нас в результате выборки получились такие записи

Здесь в процессе группировки в качестве группируемых полей будет выступать сотрудник, в качестве суммируемых сумма. В итоге мы должны получить следующие записи:

Условие и параметры в запросе

Передать параметр в запрос, можно следующим образом:

Псевдонимы

Объединения

Соединения

Перед построением запроса, необходимо четко определить какие данные и из каких таблиц должны попадать в результат запроса. Огромное значение имеет то, как запрос будет связывать между собой данные из нескольких таблиц. Существуют следующие виды соединений:

Внутреннее соединение или inner join(галочка «ВСЕ» не стоит не слева, не справа), необходимо использовать тогда когда из двух таблиц нужно получить только те данные которые совпадают по условию связи в обоих таблицах.

Горящие товары с бесплатной доставкой
 «AliExpress Россия» работает отдельно от глобального «AliExpress» принадлежащего Alibaba. Он не зависит от мировых банковских систем и не попал под санкционный список со стороны США и Великобритании. Из Китая соответственно тоже можно заказывать ничего не опасаясь.

Левое соединение или left inner join (галочка «ВСЕ» стоит слева) – в результат запроса попадают все записи которые находятся в левой таблице, и те записи из правой таблицы которые отвечают условию связи.

Полное соединение или full outer join (галочка «ВСЕ» стоит и слева и справа) в запрос попадут все записи из обоих таблиц, которые 1С попытается сопоставить с помощью условия связи.

Вложенные запросы

Сортировка

Тип данных NULL

NULL тип данных который можно получить только в одном месте: в запросе, этот тип данных получается, когда при соединении таблиц левым, правым или полным соединением, нет данных удовлетворяющих условию соединения. Любая проверка значения с этим типом всегда возвращает Ложь. Любая операция с этим полем возвращает NULL. Для обработки этого типа существуют следующие операторы:

ЕСТЬNULL(ПроверяемоеЗначение, ЗначениеКотороеНадоВернутьЕслиВПроверяемомЗначенииNULL) выражение вернет либо первое значение, либо второе если первое NULL, удобно использовать в полях выходной таблицы

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

1c: база: запросы wiki-1c
Метод “Вывести()” выводит результат в табличный документ или диаграмму. Если не указать объект, в который требуется выполнить вывод, то будет создан новый табличный документ.

Общая схема выполнения запросов

Левое соединение или left inner join галочка ВСЕ стоит слева в результат запроса попадают все записи которые находятся в левой таблице, и те записи из правой таблицы которые отвечают условию связи.

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
КОЛИЧЕСТВО РАЗЛИЧНЫЕ возвращает количество различных значений в группируемом столбце, может использоваться для любых типов значений. 1С запрос итоги по группировкам – Обращайтесь в форму связи

Пример работы с деревом значений в 1С. Часть первая — добавление строк.

Работа с деревом значений немного отличается от работы с таблицей значений, в частности это видно на операции добавления строк. Смотрим на примере.

Универсальная коллекция значений, которая очень похожа на таблицу значений — это дерево значений. Отличие от таблицы значений заключается в том, что строки могут быть подчинены друг другу, то есть может быть образована некая иерархия.

Рассмотрим работу с деревом значений на примере решения следующей задачи:

Выведем в строки даты (год, месяц, число) за 2013, 2014 годы в три уровня. На первом уровне будет год, на втором месяц и на третьем день.

Поместим алгоритм формирования строк дерева в процедуру обработки открытия формы.

Первое что необходимо сделать, это объявить переменную, содержащую строковое представление месяца.

Потом создадим массив, элементы которого хранят год; месяцы и дни, по которым необходимо вывести.

МассивГод = Новый Массив ; МассивГод . Добавить ( ) ; МассивГод . Добавить ( ) ;

Первый цикл будет обходить годы, содержащиеся в массиве и добавлять их в наше дерево на первый уровень строк.

Для каждого СтрокаГод Из МассивГод Цикл Дата = Дата ( «» + СтрокаГод + ) ; СтрокаДереваГод = Дерево . Строки . Добавить ( ) ; СтрокаДереваГод . Дата = Год ( Дата ) ; … КонецЦикла ;

Второй цикл обходит месяцы и заносит их на второй уровень строк, родителями которых являются строки, введенные нами выше (содержащие год).

Для Кол = По Цикл СтрокаДереваМесяц = СтрокаДереваГод . Строки . Добавить ( ) ; СтрокаДереваМесяц . Дата = ПолучитьПредставлениеМесяца ( Месяц ( Дата ) ) ; КоличествоДнейВМесяце = День ( КонецМесяца ( Дата ) ) ; … Дата = ДобавитьМесяц ( Дата , ) ; КонецЦикла ;

В этом цикле мы используем функцию « ПолучитьПредставлениеМесяца ( Месяц ) », которая возвращает строковое представление месяца по переданному номеру.

Функция ПолучитьПредставлениеМесяца ( НомерМесяца ) ПредставлениеМесяца = СоответствиеМесяцы . Получить ( НомерМесяца ) ; Возврат ? ( ПредставлениеМесяца = Неопределено , НомерМесяца , ПредставлениеМесяца ) ; КонецФункции // ПолучитьПредставлениеМесяца()

Для перехода к следующему месяцу используем встроенную функцию « ДобавитьМесяц ( Дата , ) ».

И, наконец, третий цикл обеспечивает заполнение дней месяца, строки которого является их родителями.

Для КолДней = По КоличествоДнейВМесяце Цикл СтрокаДереваДень = СтрокаДереваМесяц . Строки . Добавить ( ) ; СтрокаДереваДень . Дата = Строка ( КолДней ) ; КонецЦикла;

Чтобы узнать сколько дней в каждом конкретном месяце мы будем использовать встроенную функцию КонецМесяца ( ) , передавая ей, обрабатываемую в текущий момент, дату.

В модуль формы вставим блок, обеспечивающий заполнение универсальной коллекции значений «Соответствие», хранящей строковое представление месяца.

Готово. Теперь при открытии формы происходит формирование строк дерева в три уровня.

Пример работы с деревом значений в 1С. Часть первая — добавление строк.

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts

Добавить комментарий

*