Запросы предназначены для извлечения и обработки информации из базы данных для предоставления пользователю в требуемом виде.
![1С:Эксперт по технологическим вопросам 1С:Эксперт по технологическим вопросам](https://finance-cen.ru/wp-content/uploads/2022/01/32452278841-75x75.jpg)
1c8 Мини FAQ по построителю отчета
Построитель отчета — это объект, позволяющий на основе заданного текста запроса и настроек получить результат и вывести его в табличный документ или диаграмму.
Построитель отчета — это объект, позволяющий на основе заданного текста запроса и настроек получить результат и вывести его в табличный документ или диаграмму.
Перед выводом макет построителя отчета можно оформить с помощью макета оформления.
Вывод результата выполнения запроса построителя отчета осуществляется одной командой.
2. Где можно использовать построитель отчета?
С помощью построителя отчета можно проектировать основную массу отчетов (пример: “Остатки товаров”, “Продажи за период”…). При этом время на их разработку и программный код существенно сократятся, а качество оформления и функциональность — повысятся.
Кроме того, построитель отчета можно использовать в тех случаях, когда не нужен вывод результата, но требуется настройка пользователем элементов запроса, к примеру, группировок или фильтра (пример: выгрузка номенклатуры в xml-файл или обработка проведения документов по заданному фильтру).
Поскольку построитель отчета недоступен на сервере 1С:Предприятия и не используется в модуле внешнего соединения, то в этих случаях необходимо использовать построитель запроса, который аналогичен построителю отчета, но не имеет визуальных свойств и методов (“Макет”, “ВыводитьЗаголовокОтчета”, “Вывести()”, “ОформитьМакет()”.
По сравнению с версией 7.7 в версии 8.0 произошла небольшая смена понятий, поэтому стоит немного остановиться на этом.
Главное отличие заключается в том, что доступное поле не имеет свойства “ПутьКДанным” (пример: “Номенклатура.Код”, “Количество”), так как это просто своеобразное описание поля, по которому будет произведена попытка найти соответствие среди полей выборки запроса в момент добавления его в список группировок, фильтра, сортировки или выбранных полей.
Промокоды на Займер на скидки
4. Типовой вариант использования построителя отчета
В общем случае последовательность действий при работе с построителем отчета следующая:
5. Описание некоторых свойств построителя отчета
6. Обработка Расшифровки с помощью построителя отчета
Свойство “ЗаполнениеРасшифровки” содержит один из трех вариантов заполнения расшифровки при выводе:
1-ый вариант: не заполнять (не использовать расшифровку).
2-ой вариант: значения группировок (при расшифровке ячейки будет открываться значение группировки, выведенное в ней).
3-ий вариант: расшифровка (расшифровка будет заполняться структурой, содержащей значения всех группировок). В этом случае требуется обрабатывать событие табличного документа “Обработка расшифровки”, где нужно анализировать переданную структуру и выполнять те или иные действия.
Важным моментом является то, что в третьем варианте нельзя осуществлять вывод в генерируемый табличный документ, так как тогда невозможно обработать расшифровку, обработка события которой происходит в модуле той формы, на которой расположено поле табличного документа.
Как вывести итоги не по всем группировкам? #336427
Метод УстановитьНастройки позволяет загрузить настройки построителя отчета с возможностью указания, какие именно пример только фильтр, фильтр и сортировку.
![1С:Эксперт по технологическим вопросам 1С:Эксперт по технологическим вопросам](https://finance-cen.ru/wp-content/uploads/2022/01/32452278841-75x75.jpg)
Запросы
Перед тем как возьметесь за конструктор, попробуйте представить поля выходной таблицы, источники этой таблицы, приблизительно как должна получать эти данные система.
Таблицы и поля
Группировка строк запроса.
При формировании запроса очень часто бывает необходимо «свернуть» данные запроса, то есть к примеру у нас в результате выборки получились такие записи
Здесь в процессе группировки в качестве группируемых полей будет выступать сотрудник, в качестве суммируемых сумма. В итоге мы должны получить следующие записи:
Условие и параметры в запросе
Передать параметр в запрос, можно следующим образом:
Псевдонимы
Объединения
Соединения
Перед построением запроса, необходимо четко определить какие данные и из каких таблиц должны попадать в результат запроса. Огромное значение имеет то, как запрос будет связывать между собой данные из нескольких таблиц. Существуют следующие виды соединений:
Внутреннее соединение или inner join(галочка «ВСЕ» не стоит не слева, не справа), необходимо использовать тогда когда из двух таблиц нужно получить только те данные которые совпадают по условию связи в обоих таблицах.
Левое соединение или left inner join (галочка «ВСЕ» стоит слева) – в результат запроса попадают все записи которые находятся в левой таблице, и те записи из правой таблицы которые отвечают условию связи.
Полное соединение или full outer join (галочка «ВСЕ» стоит и слева и справа) в запрос попадут все записи из обоих таблиц, которые 1С попытается сопоставить с помощью условия связи.
Вложенные запросы
Сортировка
Тип данных NULL
NULL тип данных который можно получить только в одном месте: в запросе, этот тип данных получается, когда при соединении таблиц левым, правым или полным соединением, нет данных удовлетворяющих условию соединения. Любая проверка значения с этим типом всегда возвращает Ложь. Любая операция с этим полем возвращает NULL. Для обработки этого типа существуют следующие операторы:
ЕСТЬNULL(ПроверяемоеЗначение, ЗначениеКотороеНадоВернутьЕслиВПроверяемомЗначенииNULL) выражение вернет либо первое значение, либо второе если первое NULL, удобно использовать в полях выходной таблицы
Использование функций
Общая схема выполнения запросов
Левое соединение или left inner join галочка ВСЕ стоит слева в результат запроса попадают все записи которые находятся в левой таблице, и те записи из правой таблицы которые отвечают условию связи.
![1С:Эксперт по технологическим вопросам 1С:Эксперт по технологическим вопросам](https://finance-cen.ru/wp-content/uploads/2022/01/32452278841-75x75.jpg)
Пример работы с деревом значений в 1С. Часть первая — добавление строк.
Работа с деревом значений немного отличается от работы с таблицей значений, в частности это видно на операции добавления строк. Смотрим на примере.
Универсальная коллекция значений, которая очень похожа на таблицу значений — это дерево значений. Отличие от таблицы значений заключается в том, что строки могут быть подчинены друг другу, то есть может быть образована некая иерархия.
Рассмотрим работу с деревом значений на примере решения следующей задачи:
Выведем в строки даты (год, месяц, число) за 2013, 2014 годы в три уровня. На первом уровне будет год, на втором месяц и на третьем день.
Поместим алгоритм формирования строк дерева в процедуру обработки открытия формы.
Первое что необходимо сделать, это объявить переменную, содержащую строковое представление месяца.
Потом создадим массив, элементы которого хранят год; месяцы и дни, по которым необходимо вывести.
МассивГод = Новый Массив ; МассивГод . Добавить ( ) ; МассивГод . Добавить ( ) ;
Первый цикл будет обходить годы, содержащиеся в массиве и добавлять их в наше дерево на первый уровень строк.
Для каждого СтрокаГод Из МассивГод Цикл Дата = Дата ( «» + СтрокаГод + ) ; СтрокаДереваГод = Дерево . Строки . Добавить ( ) ; СтрокаДереваГод . Дата = Год ( Дата ) ; … КонецЦикла ;
Второй цикл обходит месяцы и заносит их на второй уровень строк, родителями которых являются строки, введенные нами выше (содержащие год).
Для Кол = По Цикл СтрокаДереваМесяц = СтрокаДереваГод . Строки . Добавить ( ) ; СтрокаДереваМесяц . Дата = ПолучитьПредставлениеМесяца ( Месяц ( Дата ) ) ; КоличествоДнейВМесяце = День ( КонецМесяца ( Дата ) ) ; … Дата = ДобавитьМесяц ( Дата , ) ; КонецЦикла ;
В этом цикле мы используем функцию « ПолучитьПредставлениеМесяца ( Месяц ) », которая возвращает строковое представление месяца по переданному номеру.
Функция ПолучитьПредставлениеМесяца ( НомерМесяца ) ПредставлениеМесяца = СоответствиеМесяцы . Получить ( НомерМесяца ) ; Возврат ? ( ПредставлениеМесяца = Неопределено , НомерМесяца , ПредставлениеМесяца ) ; КонецФункции // ПолучитьПредставлениеМесяца()
Для перехода к следующему месяцу используем встроенную функцию « ДобавитьМесяц ( Дата , ) ».
И, наконец, третий цикл обеспечивает заполнение дней месяца, строки которого является их родителями.
Для КолДней = По КоличествоДнейВМесяце Цикл СтрокаДереваДень = СтрокаДереваМесяц . Строки . Добавить ( ) ; СтрокаДереваДень . Дата = Строка ( КолДней ) ; КонецЦикла;
Чтобы узнать сколько дней в каждом конкретном месяце мы будем использовать встроенную функцию КонецМесяца ( ) , передавая ей, обрабатываемую в текущий момент, дату.
В модуль формы вставим блок, обеспечивающий заполнение универсальной коллекции значений «Соответствие», хранящей строковое представление месяца.
Готово. Теперь при открытии формы происходит формирование строк дерева в три уровня.
Пример работы с деревом значений в 1С. Часть первая — добавление строк.
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы