6Глава Концепция управляемого приложения
Скачать 6.74 Mb.
|
Глава 14. Запросы к регистрам расчета 14.1. Таблицы – источники запросов Запросы к данным регистра расчета позволяют извлечь информацию о произведенных расчетах. В запросах можно обращаться к следующим таблицам-источникам (см. синтаксис-помощник):, рис.14.1. Рис.14.1. Таблицы-источники данных для запроса к результатам расчета зарплаты Основная таблица записей регистра расчета. В ней хранится информация о записях регистра . Поля основной таблицы приведены в таблице 14.1. Таблица 14.1 Имя поля Назначение поля <Имя измерения> Набор полей содержит значения измерений регистра. Имена полей соответствуют именам измерений, как они заданы в конфигураторе. <Имя ресурса> Набор полей содержит значения реквизитов регистра. Имена полей соответствуют именам реквизитов, как они заданы в конфигураторе. <Имя реквизита> Набор полей содержит значения ресурсов регистра. Имена полей соответствуют именам ресурсов, как они заданы в конфигураторе Активность Признак активности (участие записи в конкуренции за период действия, влияние на получение базы). БазовыйПерио Дата начала базового периода учетной записи. 312 дНачало Примечание: Только для регистров расчета с базовым периодом. БазовыйПерио дКонец Дата окончания базового периода учетной записи. Примечание: Только для регистров расчета с базовым периодом. ВидРасчета Ссылка на вид расчета учетной записи. НомерСтроки Номер строки - в пределах регистратора. Примечание: Нумерация начинается с 1. ПериодДейств ия Дата периода действия учетной записи. Она жестко связана с датой начала периода действия. Значение периода действия - это начало периода, в котором находится дата начала периода действия. Размер периода при этом определяется периодичностью регистра расчета. Например, если регистр имеет периодичность месяц и при этом дата начала периода действия равна 03.03.2003, то дата периода действия равна 01.03.2003. Если регистр имеет периодичность квартал и при этом дата начала периода действия равна 03.03.2003, то дата периода действия равна 01.01.2003 и т.д. Примечание: Только для регистров расчета с периодом действия. ПериодДейств ияНачало Дата начала периода действия. Примечание: Только для регистров расчета с периодом действия. ПериодДейств ияКонец Дата окончания периода действия. Примечание: Только для регистров расчета с периодом действия. ПериодРегистр ации Период регистрации учетной записи. Регистратор Регистратор учетной записи. Сторно Признак сторно-записи. Пример. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОсновныеНачисления.Результат |ИЗ РегистрРасчета. ОсновныеНачисления КАК ОсновныеНачисления |ГДЕ | ОсновныеНачисления.ПериодРегистрации = &Период | И | ОсновныеНачисления.ФизЛицо = &ФизЛицо | И | ОсновныеНачисления.ВидРасчета = &ВидРасчета"; Запрос.УстановитьПараметр("Период", НачалоМесяца(ВыбПериод)); Запрос.УстановитьПараметр("ВидРасчета", ВидРасчета); Запрос.УстановитьПараметр("ФизЛицо", ФизЛицо); 313 Таблица фактического периода действия регистра расчета. Определена только для регистров с поддержкой периода действия Поля таблицы: o <Имя измерения> o <Имя ресурса> o <Имя реквизита> o Активность o БазовыйПериодНачало o БазовыйПериодКонец o ВидРасчета o НомерСтроки o ПериодДействия o ПериодДействияНачало o ПериодДействияКонец o ПериодРегистрации o Регистратор o Сторно Параметры: Условие - конструкция языка запросов. Конструкция на языке запросов, которая будет использована как условие, налагаемое на таблицу регистра расчета при получении таблицы фактического периода действия. Пример: "ВЫБРАТЬ | ФактПериодДействия.ПериодРегистрации, | ФактПериодДействия.Регистратор.Ссылка, | ФактПериодДействия.ВидРасчета, | ФактПериодДействия.БазовыйПериодНачало, | ФактПериодДействия.БазовыйПериодКонец, | ФактПериодДействия.Сотрудник.Ссылка, | ФактПериодДействия.Результат, | ФактПериодДействия.ПериодДействия, | ФактПериодДействия.ПериодДействияНачало, | ФактПериодДействия.ПериодДействияКонец |ИЗ |РегистрРасчета. ОсновныеНачисления. ФактическийПериодДействия КАК ФактПериодДействия"; Таблица перерасчета Предназначена для получения записей перерасчета Поля таблицы: o <Имя измерения> o ВидРасчета o ОбъектПерерасчет o Пример: "ВЫБРАТЬ | НачисленияПерерасчет.ОбъектПерерасчета, | НачисленияПерерасчет.ВидРасчета, | НачисленияПерерасчет.Сотрудник, 314 |ИЗ |РегистрРасчета. ОсновныеНачисления. Перерасчет КАК НачисленияПерерасчет"; Таблица данных графика регистра расчета Виртуальная таблица "РегистрРасчета.<ИмяРегистра>.ДанныеГрафика" определена для тех регистров расчета, которые поддерживают период действия. При конфигурировании с таким регистром расчета необходимо связать непериодический регистр сведений который и будет поставлять информацию о графике. Для более удобного получения данных графика в системе определена виртуальная таблица, которая помимо прочих полей содержит виртуальные поля: 1. <Имя ресурса графика>БазовыйПериод; 2. <Имя ресурса графика>ПериодДействия; 3. <Имя ресурса графика>ПериодРегистрации; 4. <Имя ресурса графика>ФактическийПериодДействия. У нас в примере таким ресурсом является поле Значение. То есть для каждого числового ресурса регистра сведений, назначенного регистру расчета в качестве графика, можно получить для строк регистра расчета его сумму с учетом базового периода строки регистра расчета, периода действия, периода регистрации и фактического периода действия. При построении виртуальной таблицы данных графика происходит соединение таблиц регистра расчета, регистра сведений, а в случае получения поля "<Имя ресурса графика>ФактическийПериодДействия" - еще и таблицы фактического периода действия регистра расчета. Так как данные для всех четырех перечисленных полей получаются путем соединения с таблицей регистра сведений по разным условиям, это значит, что в общем случае будет выполнено четыре соединения с таблицей регистра сведений. При получении виртуальных таблиц система старается действовать оптимально, в частности, выполняется только то количество соединений, которое необходимо для получения полей виртуальной таблицы перечисленных в разделе "ВЫБРАТЬ". Параметры: Условие - конструкция языка запросов. Конструкция на языке запросов, которая будет использована как условие, налагаемое на таблицу регистра расчета при получении таблицы данных графика Пример: (“ВЫБРАТЬ | НачисленияДанныеГрафика.Сотрудник КАК Сотрудник, | НачисленияДанныеГрафика.ЗначениеПериодДействия КАК |ЧислоДнейПоПлану, |НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК |Факт, | НачисленияДанныеГрафика.Регистратор как Регистратор, 315 | НачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки |ИЗ |РегистрРасчета.Начисления.ДанныеГрафика( | Регистратор = &Регистратор И | ВидРасчета = &ВидРасчета И | Сотрудник В (&СписокСотрудников)) | КАК НачисленияДанныеГрафика"); Таблица получения базовых данных регистра расчета. Какие именно регистры расчета могут выступать в качестве базовых для данного регистра расчета, определяется его планом видов расчета. Если для плана видов расчета задана зависимость по базе от других (базовых) планов видов расчета, то в качестве базового регистра может быть задан любой регистр расчета, которому назначен такой базовый план видов расчета. Записи таблицы определены для каждой записи регистра расчета, у которой вид расчета имеет базовые виды расчета, определены БазовыйПериодНачало и БазовыйПериодКонец, есть записи базовых регистров расчета соответствующего периода. Для каждой записи регистра может быть определена одна или более записей таблицы получения базы в зависимости от того, задан ли параметр виртуальной таблицы Разрезы. Если параметр задан, то базовые данные будут получены в соответствующих разрезах. Поля таблицы: o <Имя измерения> o <Имя разреза базового регистра>Разрез. В качестве разреза могут быть заданы измерения базового регистра и реквизиты базового регистра. Поле появляется у виртуальной таблицы только при установке параметра виртуальной таблицы Разрезы для полей, заданных этим параметром. o <Имя реквизита> o <Имя ресурса базового регистра>База. Сумма соответствующего ресурса базового регистра расчета, заданного в имени таблицы получения базовых данных. o <Имя ресурса> o <Активность> o БазовыйПериодНачало o БазовыйПериодКонец o ВидРасчета o НомерСтроки o ПериодДействия o ПериодДействияНачало o ПериодДействияКонец o ПериодРегистрации o Регистратор o Сторно Параметры таблицы приведены в таблице 14.2. 316 Таблица 14.2 Имя параметра Тип и назначение параметра. Измерения основного регистра Тип параметра: Массив, СписокЗначений. Массив строк или список значений, представляющих собой имена измерений основного регистра расчета, по которому строится таблица базовых данных. Значения перечисленных в данном параметре измерений будут сопоставляться со значениями в соответствующих измерениях базового регистра расчета, заданных параметром <Измерения базового регистра>. Измерения базового регистра Тип параметра: Массив, СписокЗначений. Массив строк или список значений, представляющих собой имена измерений базового регистра расчета, по которому производится суммирование базовых данных. Значения перечисленных в данном параметре измерений будут сопоставляться со значениями соответствующих измерений основного регистра расчета, заданных параметром <Измерения основного регистра>. Разрезы Тип параметра: Массив, СписокЗначений. Массив строк или список значений, представляющих собой имена полей базового регистра расчета, по которому производится суммирование базовых данных. По перечисленных в данном параметре полям будет выполняться дополнительная группировка суммируемых базовых данных. Например, если в качестве разреза задать реквизит базового регистра, то по каждой строке основного регистра будет сформирована не одна строка таблицы базовых данных, а несколько - в разрезе значений, найденных в заданном реквизите базового регистра. Условие Конструкция языка запросов. Конструкция на языке запросов, которая будет использована как условие, налагаемое на таблицу регистра расчета при получении таблицы базовых данных. Пример: (“ |ВЫБРАТЬ |НачисленияБазаНачисления.РезультатБаза КАК База, |НачисленияБазаНачисления.НомерСтроки КАК НомерСтроки |ИЗ |РегистрРасчета.Начисления.БазаНачисления( |&ИзмеренияОсновного,&ИзмеренияБазового,,Регистратор = | &Регистратор И |ВидРасчета = &ВидРасчета И Сотрудник В (&СписокСотрудников))КАК |НачисленияБазаНачисления"; Измер = Новый Массив( 1); Измер[0] = "Сотрудник"; Запрос.УстановитьПараметр("ИзмеренияОсновного", Измер); 317 Запрос.УстановитьПараметр("ИзмеренияБазового", Измер); Запрос.УстановитьПараметр("Регистратор", НаборЗаписейРегистра.Отбор.Регистратор.Значение); Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета); Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников); 14.2. Пример формирования отчета Задача . Получить суммы расчетных баз для всех видов расчета, зависящих от расчетной базы. Использовать СКД. Поскольку виды расчета, зависящие от расчетной базы, есть как в регистре «ОсновныеНачисления», так и в регистре «Удержания», наш запрос формируем в виде объединения запросов к двум источникам. Формируем новый объект-отчет и запускаем СКД. Создаем новый набор данных типа запрос, запускаем конструктор запроса, выбираем первую таблицу-источник (ОсновныеНачисления.БазаОсновныеНачисления), в таблице выбираем необходимые для отчета поля, рис.14.2.: 318 Рис.14.2. Разработка запроса к виртуальной таблице в СКД На закладке Объединения/ псевдонимы добавляем новый объединяемый запрос (рис.14.3.), Рис.14.3. Вызов второго запроса при объединении запросов 319 Выбираем источник- УдержанияБазаОсновныеНачисления. В ней выбираем те же поля и в той же последовательности, что и первом запросе. Получаем объединение двух запросов (рис.14.4.) Рис.14.4. Результат объединения двух запросов У обоих запросов источник - виртуальная таблица. Поэтому необходимо указать параметры этих таблиц. Структура параметров – см. таблица 2. Запускаем «Параметры виртуальной таблицы» для обеих таблиц-источников. Завершаем работу конструктора запросов. Получили следующий текст запроса: ВЫБРАТЬ ОсновныеНачисленияБазаОсновныеНачисления.ПериодРегистраци и, ОсновныеНачисленияБазаОсновныеНачисления.Сотрудник, ОсновныеНачисленияБазаОсновныеНачисления.Результат, ОсновныеНачисленияБазаОсновныеНачисления.РезультатБаза, 320 ОсновныеНачисленияБазаОсновныеНачисления.ВидРасчета ИЗ РегистрРасчета.ОсновныеНачисления.БазаОсновныеНачисления(&Измер енияОсновного, &ИзмеренияБазового, , ПериодРегистрации МЕЖДУ &НачПериода И &КонПериода) КАК ОсновныеНачисленияБазаОсновныеНачисления ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ УдержанияБазаОсновныеНачисления.ПериодРегистрации, УдержанияБазаОсновныеНачисления.Сотрудник, УдержанияБазаОсновныеНачисления.Результат, УдержанияБазаОсновныеНачисления.РезультатБаза, УдержанияБазаОсновныеНачисления.ВидРасчета ИЗ РегистрРасчета.Удержания.БазаОсновныеНачисления(&ИзмеренияОсновн ого, &ИзмеренияБазового, , ПериодРегистрации МЕЖДУ &НачПериода И &КонПериода) КАК УдержанияБазаОсновныеНачисления На закладке Ресурсы выбираем поля, по которым должны быть сформированы общие итоги (рис.14.5.) Рис.14.5. Настройка ресурсов СКД На закладке «Параметры» видим 4 параметра наших виртуальных таблиц.(рис.14.6.) Рис.14.6. Настройка параметров СКД Первые два параметра должны быть означены в СКД и не должны попасть в пользовательские настройки. Поэтому колонка «Включать в доступные поля» для них неактивна. Тип у этих параметров – массив или список значений. Поэтому активизируем колонку «Доступен список значений» и дополнительно вводим в них по 321 одному значению типа «Строка», а именно, наименование измерения регистра «Сотрудник». Остальные параметры включаем в доступные поля. На закладке Настройки сначала формируем группировки СКД (рис.14.7.) Рис.14.8. Настройка группировок СКД Затем на закладке «Параметры» включаем доступные параметры в пользовательские настройки (рис.14.9.) Рис.14.10. Пользовательские настройки в СКД На закладке «Выбранные поля» окончательно формируем структуру колонок отчета (рис.14.11.) Рис.14.11. Окончательное формирование колонок отчета Формируем текст заголовка отчета, рис.14.12. 322 Выходим из СКД. Отчет готов. Результат: 14.3. Варианты заданий Для размещения новых объектов задания мчпользовать новую подсистему «Лабораторная работа 11». Основная часть задания состоит из двух этапов. Первый этап. Разработать два отчета, в которых источниками данных являются виртуальные таблицы. Все отчеты формируются за выбранный период. Варианты заданий – см. таблица 14.3. Таблица 14.3. Номер варианта Название виртуальной таблицы Таблица получения базовых данных регистра расчета Таблица данных графика регистра расчета 1 Для всех сотрудников и всех видов расчета Для выбранного сотрудника и выбранного расчета 323 2 Для всех сотрудников и выбранного вида расчета Для всех сотрудников и всех видов расчета 3 Для выбранного сотрудника и всех видов расчета Для выбранного сотрудника и всех видов расчета 4 Для выбранного сотрудника и выбранного расчета Для выбранного сотрудника и выбранного расчета 5 Для всех сотрудников и всех видов расчета Для выбранного сотрудника и выбранного расчета 6 Для всех сотрудников и выбранного вида расчета Для всех сотрудников и всех видов расчета 7 Для выбранного сотрудника и всех видов расчета Для выбранного сотрудника и всех видов расчета 8 Для выбранного сотрудника и выбранного расчета Для выбранного сотрудника и выбранного расчета 9 Для всех сотрудников и всех видов расчета Для выбранного сотрудника и всех видов расчета 10 Для всех сотрудников и выбранного вида расчета Для выбранного сотрудника и выбранного расчета 11 Для выбранного сотрудника и всех видов расчета Для всех сотрудников и всех видов расчета 12 Для выбранного сотрудника и выбранного расчета Для выбранного сотрудника и всех видов расчета 13 Для всех сотрудников и всех видов расчета Для выбранного сотрудника и выбранного расчета 14 Для всех сотрудников и выбранного вида расчета Для всех сотрудников и всех видов расчета 15 Для выбранного сотрудника и всех видов расчета Для выбранного сотрудника и всех видов расчета 16 Для выбранного сотрудника и выбранного расчета Для выбранного сотрудника и выбранного расчета 324 17 Для всех сотрудников и всех видов расчета Для выбранного сотрудника и выбранного расчета 18 Для всех сотрудников и выбранного вида расчета Для всех сотрудников и всех видов расчета 19 Для выбранного сотрудника и всех видов расчета Для выбранного сотрудника и всех видов расчета 20 Для выбранного сотрудника и выбранного расчета Для выбранного сотрудника и выбранного расчета 21 Для выбранного сотрудника и всех видов расчета Для выбранного сотрудника и выбранного расчета 22 Для всех сотрудников и всех видов расчета Для всех сотрудников и всех видов расчета 23 Для всех сотрудников и всех видов расчета Для выбранного сотрудника и всех видов расчета 24 Для всех сотрудников и выбранного вида расчета Для выбранного сотрудника и выбранного расчета 25 Для выбранного сотрудника и всех видов расчета Для всех сотрудников и всех видов расчета |