Файл: Хрусталева Е. Ю. Язык запросов 1С-Предприятия 8 (2013).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.03.2019
Просмотров: 51808
Скачиваний: 8725
периоде он сделал платеж на 10 рублей. Переплатил нам 7 рублей. Теперь мы ему
должны 7 рублей.
В результате мы имеем одинаковый свернутый начальный (5=8-3) и конечный (5=7-2)
кредитовый остаток на счете Контрагенты. Но развернутые остатки, подсчитанные
отдельно по дебету и отдельно по кредиту, на начало периода равны 3 (Дт) и 8 (Кт), а на
конец периода равны 2 (Дт) и 7 (Кт).
Можно было и не использовать в запросе поле Счет, мы могли бы включить в детальную
выборку поле Субконто1 и подвести общие итоги. Но в данном случае итоги
разворачиваются по всем полям детальной выборки (в нашем примере по полям Счет и
Субконто1) и рассчитываются по всем числовым полям.
Также развернутые остатки можно получить из виртуальной таблицы остатков.
Получение движений с субконто
Виртуальная таблица движений с субконто включает в себя все поля основной таблицы
регистра бухгалтерии и таблицы значений субконто и получается их соединением, поэтому
одна из отличительных особенностей этой таблицы состоит в том, что в нее попадают
неактивные записи.
Таблица движений с субконто позволяет получить информацию о записях регистра
бухгалтерии вместе со значениями субконто. Эта таблица может быть использована при
разработке таких отчетов, как «Карточка счета/субконто», «Отчет по проводкам», а также
служит основой для формы списка регистра бухгалтерии.
Виртуальная таблица движений с субконто содержит следующий состав полей:
<Имя измерения> – поле, содержащее значения балансового измерения регистра.
Количество таких полей равно количеству балансовых измерений, определенных для
регистра как объекта конфигурации;
<Имя измерения>Дт – поле, содержащее значения дебетового небалансового
измерения регистра с именем, заданным в конфигурации;
<Имя измерения>Кт – поле, содержащее значения кредитового небалансового
измерения регистра с именем, заданным в конфигурации;
<Имя общего реквизита> – поле, содержащее значения общего реквизита с именем,
заданным в конфигурации. Такие поля создаются для общих реквизитов, являющихся
разделителями (режим разделения данных – Разделять) с режимом использования
разделяемых данных НезависимоИСовместно, в которых участвует данный регистр;
<Имя реквизита> – поле, содержащее значения реквизита регистра с именем,
заданным в конфигурации;
<Имя ресурса> – поле, содержащее значения балансового ресурса регистра по
именам ресурсов, как они заданы в конфигураторе;
<Имя ресурса>Дт – поле, содержащее значения дебетового небалансового ресурса
регистра по именам ресурсов, как они заданы в конфигураторе;
<Имя ресурса>ОборотКт – поле, содержащее значения кредитового небалансового
ресурса регистра по именам ресурсов, как они заданы в конфигураторе;
Активность – имеет тип Булево. Содержит признак активности записи и влияния на
получение итогов регистра;
ВидСубконтоДт<Номер субконто> – имеет тип ПланВидовХарактеристикСсылка.
<имя>. Количество таких полей зависит от максимального количества субконто на
счете плана счетов. Номер вида субконто начинается с 1. Набор и порядок видов
субконто соответствуют набору и порядку видов субконто у счета дебета;
ВидСубконтоКт<Номер субконто> – имеет тип ПланВидовХарактеристикСсылка.
<имя>. Количество таких полей зависит от максимального количества субконто на
счете плана счетов. Номер вида субконто начинается с 1. Набор и порядок видов
субконто соответствуют набору и порядку видов субконто у счета кредита;
Момент времени – виртуальное поле, не хранится в информационной базе.
Содержит объект МоментВремени (который включает в себя дату и ссылку на
документ-регистратор).
Период – имеет тип Дата. Содержит дату записи. Совместно с полями
Регистратор и НомерСтроки определяет положение данной записи на временной
оси;
Регистратор – имеет тип ДокументСсылка.<имя>. Содержит ссылку на документ,
которому подчинена данная запись;
НомерСтроки – имеет тип Число. Содержит уникальный номер данной записи в
наборе записей регистра, подчиненных документу, указанному в поле Регистратор;
СубконтоДт<Номер субконто> – имеет тип Характеристика.<имя>, тип этого
поля определяется типом субконто. Содержит значение субконто дебета. Количество
таких полей зависит от максимального количества субконто на счете плана счетов.
Номер вида субконто начинается с 1. Набор и порядок видов субконто соответствуют
набору и порядку видов субконто у счета дебета;
СубконтоКт<Номер субконто> – имеет тип Характеристика.<имя>, тип этого поля
определяется типом субконто. Содержит значение субконто кредита. Количество
таких полей зависит от максимального количества субконто на счете плана счетов.
Номер вида субконто начинается с 1. Набор и порядок видов субконто соответствуют
набору и порядку видов субконто у счета кредита;
СчетДт – имеет тип ПланСчетовСсылка.<Имя>. Содержит ссылку на дебетуемый
счет;
СчетКт – имеет тип ПланСчетовСсылка.<Имя>. Содержит ссылку на кредитуемый
счет.
При построении этой виртуальной таблицы могут использоваться параметры, с помощью
которых настраивается или уточняется состав получаемых данных. Параметры следует
задавать строго в порядке их описания:
НачалоПериода, КонецПериода – имеет тип Дата, МоментВремени или Граница.
Период времени, за который будут отобраны проводки;
Условие – содержит конструкцию языка запросов. Конструкция позволяет установить
условие на любое поле виртуальной таблицы. Однако в условии нельзя использовать
сравнение на неравно с полями Субконто, СубконтоДт, СубконтоКт;
Порядок – содержит конструкцию языка запросов. Конструкция позволяет задать
упорядочивание проводок;
Первые – имеет тип Число. С его помощью задается ограничение максимального
количества записей.
Рассмотрим пример использования таблицы движений с субконто для получения перечня
всех проводок регистра бухгалтерии по счетам, подчиненным определенному счету. Это
можно сделать с помощью следующего запроса (листинг 3.76).
Листинг 3.76. Получение всех проводок по счетам, подчиненным счету «Касса»
В результате выполнения данного запроса мы получим все проводки регистра
бухгалтерии по счетам, подчиненным счету Касса (рис. 3.79).
Рис. 3.79. Получение всех проводок по счетам, подчиненным счету «Касса»
Следует иметь в виду, что список полей таблицы, которые можно использовать для
группировки данных, и полей, на которые можно ставить условие в параметре
виртуальной таблицы, не совпадает. Перечень полей, на которые можно устанавливать
условия, существенно шире. Если для включения в отчет нам доступны только физически
существующие поля, полученные виртуальной таблицей из реальных таблиц первичных
движений, то для выполнения отборов доступны также и виртуальные поля, такие как
Счет (без указания стороны проводки), Субконто, ВидСубконто, КорСчет,
<Ресурс>Кор.
Сложные периодические расчеты
Для решения задач сложных периодических расчетов (например, расчет заработной
платы, расчет стоимости долгосрочной аренды и др.) в системе «1С:Предприятие»
используются такие объекты конфигурации, как планы видов расчета и регистры расчета.
В этом разделе мы рассмотрим примеры использования этих объектов для решения
различных прикладных задач с помощью языка запросов.
Все примеры, используемые в данном разделе, можно посмотреть в демонстрационной
конфигурации «Сложные периодические расчеты», которая находится на прилагаемом
компакт-диске.
Планы видов расчета
Вид расчета является одним из основных понятий механизма периодических расчетов.
Например, для целей расчета зарплаты различными видами расчета могут быть оклад,
надбавка за вредность, оплата сверхурочных. Для хранения видов расчета и описания их
взаимосвязи используется объект конфигурации План видов расчета.
Данные каждого плана видов расчета хранятся в отдельной таблице базы данных,
доступной посредством запросов. Эта таблица имеет следующий состав полей:
<Имя общего реквизита> – поле, содержащее значения общего реквизита с именем,
заданным в конфигурации. Такие поля создаются для общих реквизитов, не
являющихся разделителями, или для разделителей с режимом использования
разделяемых данных НезависимоИСовместно, в которых участвует данный план
видов расчета;
<Имя реквизита> – поле, содержащее значения реквизита вида расчета с именем,
заданным в конфигурации. Количество таких полей равно количеству реквизитов,
определенных для плана видов расчета как объекта конфигурации;
<Имя табличной части> – поле, содержащее табличные части вида расчета. Имена
полей соответствуют именам табличных частей плана видов расчета, как они заданы
в конфигураторе. Имеет тип РезультатЗапроса. Результат запроса к табличной
части состоит из колонки НомерСтроки и колонок с именами, соответствующими
именам реквизитов табличной части;
БазовыеВидыРасчета – предопределенная табличная часть плана видов расчета.
Содержит вложенную таблицу базовых видов расчета. Имеет тип
РезультатЗапроса. Результат запроса к табличной части состоит из колонок
НомерСтроки, ВидРасчета и Предопределенный. Существует только для планов
видов расчета, у которых задано свойство Зависимость от базы;
ВедущиеВидыРасчета – предопределенная табличная часть плана видов расчета.
Содержит вложенную таблицу ведущих видов расчета. Имеет тип
РезультатЗапроса. Результат запроса к табличной части состоит из колонок
НомерСтроки, ВидРасчета и Предопределенный;
ВытесняющиеВидыРасчета – предопределенная табличная часть плана видов
расчета. Содержит вложенную таблицу вытесняющих видов расчета. Имеет тип
РезультатЗапроса. Результат запроса к табличной части состоит из колонок
НомерСтроки, ВидРасчета и Предопределенный. Существует только для планов
видов расчета, у которых задано свойство Использует период действия;
Код – имеет тип Строка или Число. Содержит код вида расчета;
Наименование – имеет тип Строка. Содержит наименование вида расчета;
ПериодДействияБазовый – имеет тип Булево. Содержит признак того, что для
учетных записей с этим видом расчета период действия является базовым периодом.
Существует только для планов видов расчета, у которых заданы свойства
Зависимость от базы и Использует период действия;
ПометкаНаУдаление – имеет тип Булево. Содержит признак пометки на удаление
вида расчета;
Предопределенный – имеет тип Булево. Содержит признак того, что данный вид
расчета определен в метаданных и над ним нельзя производить некоторые операции;
Представление – виртуальное поле, не хранится в информационной базе. Содержит
представление вида расчета;
Ссылка – содержит ссылку на вид расчета;
Рассмотрим некоторые примеры получения данных из планов видов расчетов.
Для хранения списка видов расчетов в нашей демонстрационной конфигурации
используются планы видов расчетов Основные начисления и Дополнительные
начисления (рис. 3.80).