KoderLine
Обслуживание и внедрение
Наш Facebook Наш Instagram Наш YouTube
+7 (495) 374 55 29
Система компоновки данных 1С 8.3. Расширение ...

Система компоновки данных 1С 8.3. Расширение языка запросов для СКД 1С 8.3

2
1540
28.01.2019 Алена Крюкова

Содержание:

1.       1С: Автозаполнение состава настроек отчета

2.       Использование расширения языка запросов для СКД 1С 8.3 для управления составом настроек

3.       Имена параметров

4.       Имена параметров и псевдонимы полей. Поле Номенклатура и Субконто 1

5.       Исключение соединений с таблицами в 1С СКД 

 

1.    1С: Автозаполнение состава настроек отчета


Чаще всего в качестве источника данных для отчета используется запрос к базе данных 1С. При разработке нового отчета с источником данных запрос по умолчанию устанавливается флаг Автозаполнение. Установка этого флага означает, что Система компоновки данных 1С 8.3 автоматически сформирует состав настроек отчета.




В список полей доступных для пользователя попадут все поля, указанные после ключевого слова ВЫБРАТЬ итогового запроса. Кроме того, система заботливо добавит, например, поля виртуальных таблиц регистров бухгалтерии. Как видно на рисунке, кроме полей, указанных в запросе, в списке появились также Субконто1, Счет. 


2.    Использование расширения языка запросов для СКД 1С 8.3 для управления составом настроек


Если мы снимем флаг 1С Автозаполнение, то для запроса на рисунке список полей окажется пустым.




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




В тексте запроса появится список полей выборки, заключенный в фигурные скобки. Состав полей настроек будет заполнен:




Обратите внимание, что для всех полей недоступна возможность отбора. Чтобы дать возможность пользователю задавать отбор, в отчете нужно заполнить список полей на вкладке «Условия»:




Чтобы наименования полей отбора совпадали с наименованиями полей выборки, необходимо указать соответствующие псевдонимы. В результате в запросе появится конструкция в фигурных скобках с ключевым словом ГДЕ:

 

 



3.    Имена параметров


Рассмотрим особенность работы конструктора системы компоновки данных с параметрами виртуальных таблиц при включении флага «Автозаполнение». Обратите внимание, что в приведенном выше запросе мы не задали имя параметра даты выборки остатков:




Но если мы откроем закладку «Параметры» конструктора схемы компоновки, то увидим среди параметров Период. Если же мы зададим имя параметра отличное от типового «Период», например, «Дата», то на вкладке параметры обнаружим два параметра: Период и Дата. Вопрос: с каким параметром выполнится запрос к системе? Ответ: с параметром Период.

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




Очевидно, что для таблицы ЦеныНаНачалоГода необходимо переопределить имя типового параметра. Зададим имя параметра период - НачалоГода для виртуальной таблицы ЦеныНаНачалоГода. На вкладке Параметры конструктора схемы компоновки добавим выражение для вычисления даты начала текущего года. Если сформировать отчет, то обнаружится, что поле ЦенаНаНачалоГода содержит некорректные данные: цену товаров на дату отчета. Т.к. система игнорирует значение параметра НачалоГода и выполняет запрос используя значение параметра Период.

В данной ситуации нам поможет расширение языка запросов системы компоновки данных. Откроем параметры таблицы ЦеныНаНачалоГода на вкладке компоновка данных конструктора запросов и зададим имя параметра «НачалоГода»:




Теперь наш запрос отработает корректно: данные по таблицам УправленческийОстатки и ЦеныНаДатуОтчета будут выбраны на дату, указанную пользователем в настройках, а данные по таблице ЦеныНаНачалоГода будут получены на начало года. 


4.    Псевдонимы полей. Поле Номенклатура и Субконто 1


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




В результате при добавлении отбора по полю Товар, он будет применен к выборке данных всех виртуальных таблиц.

Обратите внимание на символы .* после имени поля. Если после поля указаны эти символы, то отбор также можно будет задавать по реквизитам справочника Номенклатура. 


5.    Исключение из запроса соединений с таблицами в 1С СКД


Рассмотрим возможности использования расширения языка запросов исключения соединений с таблицами в 1С СКД. Приведем следующий пример: пользователь исключает из отчета данные поля ЦенаНаДатуОтчета и ЦенаНаНачалоГода. Очевидно, что в таком случае нет необходимости включать в запрос таблицы регистра сведений ЦеныНоменклатуры. Воспользуемся обработкой Консоль системы компоновки данных, чтобы посмотреть итоговый запрос к базе данных. Мы увидим, что хотя среди полей выборки нет полей таблицы ЦеныНоменклатуры, однако соединение с этими таблицами присутствуют.




На закладке Компоновка данных/Таблицы конструктора запросов системы компоновки данных снимем флаг Обязательная у таблиц ЦеныНаДатуОтчета и ЦеныНаНачалоГода, а также укажем различные значения в полях Номер группы.


 


В тексте запроса соединения с этими таблицами теперь будут заключены в фигурные скобки. Каждое соединение отдельно. Если номер группы будет совпадать, то оба соединения будут объединены в одну группу (одни фигурные скобки).

Теперь текст запроса сформированный системой компоновки примет следующий вид:




А итоговый запрос в системе компоновки будет содержать соединения только с теми таблицами, поля которой присутствуют в выборке.




Специалист компании ООО «Кодерлайн»

Алена Крюкова.

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

0
Павел Васянин
Спасибо за отличное описание этой возможности отчётов на СКД !
Расширение языка запросов позволяет быстро решать подобные сложности в разработке !
Мне это пригодится в работе !
Имя Цитировать 0
0
Администратор
Здравствуйте!
Спасибо за комментарий!
Имя Цитировать 0
Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Теги
#1С: CRM #1С: ERP #1С: ERP Управление строительной организацией #1С: ERP. Управление буровой компанией #1С: WMS Управление складом #1С: Аренда и управление недвижимостью #1С: БУХ #1С: Договорчики #1С: Документооборот #1С: ЗУП #1С: Интеграция #1С: КА #1С: Колледж #1С: Конвертация данных #1С: Платформа #1С: Розница #1С: Сценарное тестирование #1С: ТОИР #1С: УАТ #1С: УКФ #1С: Университет #1С: УНФ #1С: УПП #1С: Управление строительной организацией #1С: УТ #1С: УХ #ADO #APACHE #API #com-объекты #Excel #GoogleDrive #HTTP #ITIL #Koderline: Управление медиа-холдингом #Koderline: Управление проектами строительства скважин #LINUX #MS SQL Server #WEB #WEB-сервисы 1С #Word #XML #Администрирование 1С #Безопасность сервера #Бесшовная интеграция #БИТ.Финанc #Битрикс24 #Блокировки в 1С #БСП #БУ #Бурение скважин #Бюджетирование #Внедрение #Внедрение ERP #Закрытие месяца #Запросы 1С #Интеграция 1С #Как сделать в 1С #Конвертация данных #Корпоративное сопровождение #Лизинг #Лицензии 1С #Моделирование #МСФО #Налоги #Обмен между базами #Обновления #Оптимизация #Отпуск #Отчетность #Отчеты в 1С #Оценка задач #Перенос данных #Планирование #Полезные обработки #Правила обмена #Проводки 1С #Программирование в 1С #Программные права #Продажи #Производство #Расширение конфигурации #РСБУ #СКД #Сравнение конфигураций #Тестирование 1С #Техническое задание #Торговое оборудование #Транспортная логистика #Управление проектами #Финансовый учет #Ценообразование #Экзамен 1С #Яндекс.Касса Email или телефон
Услуги программиста 1С
Получите специалиста  
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.