Виртуальная таблица регистра накопления остаткииобороты
Урок 6. Виртуальные таблицы и их использование в конструкторе запросов
Задача 1: Получить остатки номенклатуры на указанном складе на конец месяца.
Задача 2: Получить актуальную цену на конец месяца по указанной номенклатуре и типу цен.
Новые механизмы: заполнение параметров виртуальных таблиц.
Теоретическая часть урока №6
У некоторых объектов метаданных помимо основной таблицы в базе данных присутствуют виртуальные таблицы. Они облегчают доступ к некоторой информации содержащейся в основной таблице. Использовать данные виртуальных таблиц можно при помощи запросов, либо при помощи специальных методов встроенного языка 1с 8.
Рассмотрим основные виды виртуальных таблиц 1с для различных объектов метаданных:
- СрезПоследних. Метаданные: периодические регистры сведений. Данная таблица позволяет получить последние актуальные данные на указанную дату, такие данные называются срезом последних. Возможно получить срез как в целом по регистру, так и по одному, либо нескольким измерениям;
- СрезПервых. Метаданные: периодические регистры сведений. Данная таблицы позволяет получить первые актуальные данные появившееся в регистре в указанную дату, либо после нее, такие данные называются срезом первых. Возможно получить срез как в целом по регистру, так и по одному, либо нескольким измерениям;
- Остатки. Метаданные: регистры бухгалтерии, регистры накопления с видом регистра остатки. Данная таблица позволяет получить остатки по ресурсам регистра на указанную дату. Возможно получать остатки как в целом по регистру, так и в разрезе определенных измерений, для регистров бухгалтерии в измерения также включаются счет и субконто относящиеся к данному счету;
- Обороты. Метаданные: регистры бухгалтерии, регистры накопления. Данная таблица позволяет получить обороты по ресурсам регистра за указанный период. Возможно получать обороты как в целом по регистру, так и в разрезе определенных измерений, для регистров бухгалтерии в измерения также включаются счет, субконто, кор. счет, кор. субконто;
- ОстаткиИОбороты. Метаданные: регистры бухгалтерии, регистры накопления с видом регистра остатки. Данная таблица позволяет получать остатки по ресурсам на начало и конец указанного периода и обороты по ресурсам за указанный период. Возможно получать остатки и обороты как в целом по регистру, так и в разрезе определенных измерений, для регистров бухгалтерии в измерения также включаются счет и субконто относящиеся к данному счету;
- ОборотыДтКт. Метаданные: регистры бухгалтерии. Данная таблица позволяет получить обороты по ресурсам регистра за указанный период. Возможно получать обороты как в целом по регистру, так и в разрезе определенных измерений, в измерения также включаются дебетовая и кредитовая части проводки: счет дебета, счет кредита, субконто дебета, субконто кредита и т.д.;
- ДвиженияССубконто. Метаданные: регистры бухгалтерии. Данная таблица позволяет получить записи регистра бухгалтерии вместе со значениями субконто.
Конструктор запросов позволяет работать с виртуальными таблицами регистров. Если у регистра есть виртуальные таблицы, то они будут находится в разделе База данных на вкладке Таблицы и поля после основной таблицы регистра.
Для того чтобы получить нужные данные из виртуальной таблицы регистра, необходимо заполнить ее параметры. Разберем заполнение параметров для основных виртуальных таблиц. Для того чтобы открыть окно параметров виртуальной таблицы, ее необходимо перенести из раздела База данных, в раздел Таблицы, выделить и нажать в кнопку Параметры виртуальной таблицы.
СрезПоследних и СрезПервых
- Период. В данном поле необходимо задать параметр, в который будет передана дата, на которую будет осуществляться срез первых, либо срез последних;
- Условие. Данное поле присутствует практически у всех виртуальных таблиц, в нем задается условие на поля виртуальной таблицы. Данное условие необходимо прописать вручную, либо воспользоваться редактором произвольных выражений, который можно запустить нажав кнопку с тремя точками.
ПРИМЕЧЕНИЕ! Если вам необходимо задать условия на поля виртуальной таблицы, делать это необходимо именно в параметрах таблицы, а не на вкладке Условия. Все дело в том, что запрос сначала выбирает данные, учитывая указанные параметры, а уже потом накладывает на него отбор из вкладки Условия. Поэтому условия наложенные в параметрах таблицы отработают быстрее, чем те которые указаны на вкладке Условия. Однако это правило не следует использовать для установки условий на ресурсы регистров, так как в данном случае они не будут отрабатывать также, как условия наложенные на измерения и реквизиты (т.е. если вам необходим отбор по ресурсам регистра, делать это нужно на вкладке Условия).
Остатки в регистре накопления
- Период. В данном поле необходимо задать параметр, в который будет передана дата или граница, на которую будет осуществляться получение остатков. У таблицы Остатки существует небольшая особенность, если вам необходимо получить остаток на определенную дату, то передать в параметр необходимо эту дату плюс одну секунду, либо границу с типом границы Включая;Пример 1
Остатки в регистре бухгалтерии
- УсловиеСчета. В данном поле задается условие на поле Счет виртуальной таблицы. В отличии поля Условия, для создания условий доступно только измерение Счет;
- Субконто. В данном поле задается параметр, содержащий массив видов субконто, которые должны анализироваться в данной виртуальной таблице. Например, если вы хотите получить остатки по 41 счету бухгалтерского учета, но вам не нужен разрез по складам, то в данный параметр можно передать массив состоящий из одного элемента: Номенклатура из плана видов характеристик ВидыСубконтоХозрасчетные.
При помощи данного параметра можно увеличить скорость выполнения запроса, исключив ненужную аналитику. Субконто в виртуальной таблице будут доступны в том порядке, в котором они стоят в массиве. Если в параметр передано меньше видов субконто, чем существует на счете, то не указанные в параметре субконто использовать нельзя. Данный параметр не является обязательным, если он не задан, то в виртуальной таблице используются все доступные субконто.
Обороты в регистре накопления
- НачалоПериода. Параметр в котором хранится дата начала периода, за который будут браться обороты;
- КонецПериода. Параметр в котором хранится дата окончания периода, за который будут браться обороты;
- Периодичность. Определяет группировку по периоду в виртуальной таблице. Если, например, указана периодичность Месяц, то данные в таблице будут сгруппированы по всем измерениям и месяцу, в полях таблицы появится поле Период, в котором будет хранится первый день месяца, в котором было сделано движение регистра. Если оставить поле Периодичность пустым, то периода в полях виртуальной таблицы не будет. Помимо периодичности связанной с временными промежутками есть еще несколько ее типов:
- Запись. Данные будут выбираться по отдельным записям регистра, точно также как в полной таблице. В полях появляются Период и Регистратор (документ который сделал данное движение);
- Регистратор. Данные будут сгруппированы по документу сделавшему движения в регистре. Данная группировка удобна как раз тогда, когда вам необходимо иметь разрез по документам. В полях появляются Период и Регистратор;
- Период. Данные группируются по измерениям регистра за весь период оборота;
- Авто. Данные группируются до секунды, в полях появляются Регистратор, ПериодСекунда, …. ПериодГод.
Обороты в регистре бухгалтерии
- УсловиеКорСчета. В данном поле задается условие на поле корреспондирующий счет проводки. В отличии поля Условия, для создания условий доступно только измерение КорСчет;
- КорСубконто. В данном поле задается параметр, содержащий массив видов субконто корреспондирующего счета, работает аналогично параметру Субконто, см. раздел «Остатки в регистре бухгалтерии».
Остатки и обороты в регистре накопления
- МетодДополнения. Метод дополнения периодов, данный параметр определяет за какие периоды будут получены движения регистра. Если указано значение Движения, то будут получены периоды, в которых были движения (обороты не равны нулю), если ДвиженияИГраницыПериода, то за периоды, по которым были движения, плюс начальный и конечный периоды, если на их начало был остаток. Данный параметр имеет смысл только, если Периодичность не равна Период. ДвиженияИГраницыПериода является значением по умолчанию, поэтому если нужен данный метод дополнения, поле можно оставить пустым.
Остатки и обороты в регистре бухгалтерии
Все параметры используемые в данной таблице были описаны в предыдущих пунктах.
Обороты Дебет Кредит
- УсловиеСчетаДт. В данном поле задается условие на поле СчетДт виртуальной таблицы, это счет левой части бухгалтерской проводки;
- УсловиеСчетаКт. В данном поле задается условие на поле СчетКт виртуальной таблицы, это счет правой части бухгалтерской проводки;
- СубконтоДт. В данном поле задается параметр, содержащий массив видов субконто, которые должны анализироваться для левой (дебетовой) части проводки;
- СубконтоКт. В данном поле задается параметр, содержащий массив видов субконто, которые должны анализироваться для правой (кредитовой) части проводки;
Движения с субконто
- Упорядочивание. В данном параметре можно задать поля сортировки записей виртуальной таблицы. Упорядочивать записи можно только в том случае, если заполнен параметр Первые.
- Первые. В данном параметре указывается число первых записей, которые будут взяты из регистра в виртуальную таблицу. Данный параметр необходим для упорядочивания элементов виртуальной таблицы 1с.
Практическая часть урока №6
В данном разделе нам предстоит решить две задачи по пройденной теме.
Задача 1
Получить остатки номенклатуры на указанном складе на конец месяца.
Для простоты предположим, что весь учет товаров на складах идет по 41 счету бухгалтерского учета.
- Создадим новый запрос;
- Запустим конструктор запросов;
- В раздел Таблицы перетащим таблицу Хозрасчетный.Остатки из ветки РегистрыБухгалтерии;
- Выделим данную таблицу и нажмем кнопку Параметры виртуальной таблицы;
- В поле Период впишем параметр, в который будет передаваться дата на которую будут браться остатки. Так как мы используем таблицу Остатки, в параметр передадим не дату а границу, с видом Включая;
- В поле УсловиеСчета вручную или используя редактор произвольных выражений вписываем условие на счет, используя оператор В ИЕРАРХИИ, для того чтобы в запрос попали остатки по всем субсчетам счета 41;
- В поле Субконто зададим параметр, в который передадим массив субконто. В нашей задаче нам нужны только склады и номенклатура, первым элементом массива зададим вид субконто Склады, а вторым Номенклатура;
- В поле Условие вручную или используя редактор произвольных выражений наложим отбор на склад, который в нашем случае хранится в поле Субконто1.
- На этом заполнение параметров виртуальной таблицы завершено, нажимаем кнопку ОК;
- В раздел Поля перетащим Субконто1, Субконто2 и КоличествоОстаток;
- Перейдем на вкладку Объединения / Псевдонимы;
- Зададим псевдонимы для полей Субконто1 и Субконто2, назначим для них Склад и Номенклатура соответственно;
- Запрос готов, нажимаем кнопку «ОК» в нижней части окна конструктора.
В итоге у нас получится запрос со следующим текстом:
Задача 2
Получить актуальную цену на конец месяца по указанной номенклатуре и типу цен.
- Создадим новый запрос;
- Запустим конструктор запросов;
- В раздел Таблицы перетащим таблицу ЦеныНоменклатуры.СрезПоследних;
- Выделим данную таблицу и нажмем кнопку Параметры виртуальной таблицы;
- В поле Период впишем параметр, в который будет передаваться дата на которую будет браться срез последних;
- В поле Условие вручную или используя редактор произвольных выражений наложим отбор на поля ТипЦен и Номенклатура;
- В раздел Поля перетащим ресурс Цена;
- Запрос готов, нажимаем кнопку «ОК» в нижней части окна конструктора.
В итоге у нас получится запрос со следующим текстом:
Источник
Профессия — 1С
Виртуальные таблицы остатков и оборотов
рубрики: Виртуальные таблицы | Дата: 11 июня, 2017
Регистры накопления в системе 1С:Предприятие делятся на два вида: регистры накопления остатков и регистры накопления оборотов.
Вид регистра выбирается при его создании в конфигураторе
Как следует из названия одни предназначены для получения остатков на какую-либо дату, а вторые для получения оборотов за выбранный период. В зависимости от вида регистра накопления платформа 1С:Предприятия формирует разный набор виртуальных таблиц. В этой статье и рассмотрим работу с виртуальными таблицами регистров накопления. Для этого создадим регистр накопления остатков — ТоварыОстатки и регистр накопления оборотов — ТоварыОбороты.
Теперь рассмотрим какие виртуальные таблицы предоставляет платформа для каждого из этих регистров.
Регистр накопления оборотов
Для наглядности откроем конструктор запросов и посмотрим какие таблицы доступны для регистра ТоварыОбороты. Это таблица самого регистра — ТоварыОбороты, которая существует физически в базе данных, и одна виртуальная таблица — ТоварыОбороты.Обороты
Со стандартной таблицей все понятно. Рассмотрим подробнее виртуальную.
Виртуальная таблица Обороты
Эта таблица позволяет получать оброты ресурсов в разрезе измерений. В нашем случае у нас два измерения: Склад и Товар. И один ресурс — Количество
Пусть в нашем регистре есть следующие записи
Вернемся в конструктор запросов и для начала просто выберем из таблицы ТоварыОбороты.Обороты все поля
Соответственно запрос будет выглядеть следующим образом:
Результат выполнения запроса выглядить вот так:
Склад | Товар | КоличествоОборот |
---|---|---|
Центральный | Ручка | 3 |
Офис | Ручка | 7 |
Центральный | Карандаш | 21 |
Офис | Карандаш | 4 |
То есть мы получили обороты в разрезе товаров и складов за все время. Предположим, что нас не интересуют склады и мы хотим получить обороты только в разрезе товаров.
Для этого исключим из запроса измерение Склад
и в результате у нас останется только две строки
Товар | КоличествоОборот |
---|---|
Ручка | 10 |
Карандаш | 25 |
Но как правило за все время существования регистра обороты получать не требуется. В основном они нужны за какой-то конкретный период: месяц, квартал, год и т.д. Плюс еще обычно нужны отборы по измерениям (Товар, Склад). Это достигается использованием параметров виртуальной таблицы. Заполнять параметры удобно из конструктора. По кнопке Параметры виртуальной таблицы открывается диалоговое окно в котором можно прописать все что нам нужно:
После этого наш исходный запрос примет следующий вид
Как видим отличие в том, что в скобках после имени виртуальной таблицы появились параметры, которые необходимо заполнить перед выполнением запроса.
У тех кто только начинает работать с виртуальными таблицам зачастую возникает соблазн вместо использования параметров установить отбор привычным способом:
Делать так категорически нельзя. Это отрицательно скажется на производительности и на вашей оценке при сдаче экзамена 1С:Специалист.
При заполнении параметров мы пропустили Периодичность. Давайте раскроем список и из массы возможных вариантов выберем Месяц. Все остальные параметры уберем, чтобы не путаться.
После этого наблюдаем, что в полях таблицы появилось поле Период.
Добавив и его в выбранные поля, получим вот такой текст запроса:
Период | Склад | Товар | КоличествоОборот |
---|---|---|---|
01.06.2017 0:00:00 | Центральный | Ручка | 3 |
01.06.2017 0:00:00 | Центральный | Карандаш | -5 |
01.06.2017 0:00:00 | Офис | Карандаш | 4 |
01.05.2017 0:00:00 | Офис | Ручка | 7 |
01.05.2017 0:00:00 | Центральный | Карандаш | 26 |
Таким образом внутри выбранного временного интервала мы можем разбить обороты на более мелкие промежутки в соответствии с выбранной периодичностью.
Регистр накопления остатков
Так же как и с оборотным регистром посмотрим в конструкторе запросов какие же виртуальные таблицы доступны для регистра накопления остатков
Как видим для регистра накопления остатков доступны три виртуальные таблицы: Обороты, Остатки, ОстаткиИОбороты. Рассмотрим каждую из них в отдельности.
Виртуальная таблица Обороты
Несмотря на то, что вид регистра — Остатки, мы тем не менее можем получать по нему и обороты. Плюс у нас здесь есть два дополнительных ресурса: Приход и Расход
Напомню, что когда делается запись в регистр остатков, указывается вид движения накопления (приход или расход), тогда как для оборотного регистра вид движения не указывают. Поэтому здесь мы имеем дополнительный бонус в виде возможности получить не только в целом оборот за период, но и приход с расходом в отдельности. Но конечно если в метаданных есть оборотный регистр с аналогичным набором измерений, то для получения оборотов лучше использовать именно его. В целом работа с этой виртуальной таблицей подобна работе с виртуально таблицей Обороты оборотного регистра, рассмотренной выше.
Виртуальная таблица Остатки
Эта таблица используется для получения остатков ресурсов в разрезе измерений. В параметрах таблицы мы можем указать дату на которую получаем остатки и установить отборы:
Рассмотрим небольшой пример. Имеем следующие записи регистра:
Выберем все доступные поля а в качестве даты получения остатков установим конец июня. Отбор по измерениям устанавливать не будем. Тогда текст запроса будет выглядеть следующим образом:
А после его выполнения получим вот такой результат
Склад | Товар | КоличествоОстаток |
---|---|---|
Центральный | Ручка | 3 |
Центральный | Карандаш | 21 |
Офис | Ручка | 7 |
Офис | Карандаш | 4 |
Виртуальная таблица ОстаткиИОбороты
Эта таблица объединяет в себе две ранее рассмотренные и позволяет получить обороты за выбранный период времени, а также остатки на начало и на конец периода. Также можно установить отбор.
Использование этой таблицы может быть оправдано, когда нужно в одном отчете одновременно получить и обороты и остатки на начало и конец периода. В остальных случаях злоупотреблять ее применением не стоит.
Источник
Обучение программированию на 1С
- Главная
- Статьи
- Жизнь 1С
- Новости & Личное
- Программирование
- Полезное
- Библиотека решений
- Функции & Процедуры
- Материалы
- Скачать 1С
- Контакты
Регистры накопления в 1С
Прикладные объекты в рабочей конфигурации программы 1С получили название «Регистры накопления». Они используются для накопления актуальной информации об итоговом наличии и промежуточном движении имущества, денежных средств и т.п. активов. Регистры накопления формируются данными, которые вводит пользователь в программу документами системы. Основная задача регистров – предоставление данных для отчётных форм.
Вид, тип, структура
Все данные хранятся в узлах системы. Оси системы представляют собой измерения регистра, а сами совокупные данные в узлах – это ресурсы конкретного регистра. Визуально регистр накопления – таблица, количество колонок которой соответствует сумме его измерений. Кроме параметров измерений и ресурсов регистр накоплений характеризуется набором реквизитов. Они позволяют подключать данные дополнительной информации. Сами реквизиты не оказывают влияния на значение ресурса, но могут быть частью анализа движения регистра.
Основные типы Регистров накопления в программе 1С:
- Регистры остатков
- Регистры оборотов
Методом встроенного языка 1С можно сформировать Остатки, выборка будет сделана на указанную временную позицию. Можно фильтровать данные в разрезе значений измерений. Можно получить Остатки в разрезе других указанных измерений. Обороты и регистры оборотов предназначены, чтобы хранить информацию, для которой само понятие «Остатки» лишено смысловой нагрузки.
Три категории полей Регистра накопления:
- Измерения
- Ресурсы
- Реквизиты
Период – это Измерение, также как и Регистратор и параметр «Номер строки». Но эти же величины могут служить и категорией Реквизиты, так как способны дать характеристику определённой записи. Такой параметр, как «Вид движения», будет всегда Реквизитом, так как способен только присваивать характеристику записи.
Остатки и Обороты: регистры накопления и виртуальные таблицы
Составные части Регистра накопления Остатков:
- Таблицы движения
- Таблицы итогов
Информация в таблицы движения вводится пользователем вручную или генерируется в процессе проведения определённых документов в системе, возможна специальная обработка для заполнения таблиц движения.
Структура таблиц движения:
Период ?Регистратор ? Номер строки ? Вид движения ? ‹Измерения› ? ‹Ресурсы› ? ‹Реквизиты›
Итоговые таблицы содержат остатки в аналитике измерений с периодом месяц, с данными на начало периода.
Структура таблицы итогов:
Период ? ‹Измерения› ?‹Ресурсы›
Остатки в виртуальной таблице используют всегда таблицы итогов, реже таблицы движений.
Стратегия расчёта остатков:
- Проводится отбор ближайшего большего или равного момента, на который Остатки рассчитаны.
- Закрепляются имеющиеся Остатки из таблицы итогов.
- При несовпадении моментов времени, Остатки досчитываются по таблицам движений к данным таблицы итогов.
Обороты формируют виртуальную таблицу только из данных таблиц движений. Если нужны Обороты, то будут обрабатываться все данные о движении, независимо от наличия данных в итоговых таблицах.
Если задача получить виртуальную таблицу остатков и оборотов, то соответственно рассчитываться будут и Остатки, и Обороты. Способ работы такой таблицы зависит от наличия или отсутствия указаний о периодичности данных. Без указания периодичности расчёт проводится в формате единого запроса. Внутри запроса содержатся подзапросы 1С. Один из подзапросов отвечает за расчёт остатков на начало периода, второй вычисляет данные по оборотам за период, результаты объединяются и представляют собой единый результат. Если периодичность указана, расчёт ведётся следующим образом: сначала получают остатки на начало периода, затем вычисляют обороты с указанной периодичностью, только потом объединяются итоговые данные всех запросов.
Регистры Оборотов и Остатков, отличия
Обороты накапливаются в регистре оборотов, в регистре остатков содержатся только итоговые данные. По оборотному регистру нельзя узнать остатки, для его выражения есть только один формат виртуальной таблицы. Структура таблиц сама по себе схожа. Обороты хранятся с периодичностью месяц. Итоги формируются на каждую дату, когда было движение. Таблица оборотов использует информацию и из таблиц итогов, и из таблиц движений.
Источник
Конструктор запросов 1С — обучение на примерах
Урок 6. Виртуальные таблицы и их использование в конструкторе запросов
Задача 1: Получить остатки номенклатуры на указанном складе на конец месяца.
Задача 2: Получить актуальную цену на конец месяца по указанной номенклатуре и типу цен.
Новые механизмы: заполнение параметров виртуальных таблиц.
Теоретическая часть урока №6
У некоторых объектов метаданных помимо основной таблицы в базе данных присутствуют виртуальные таблицы. Они облегчают доступ к некоторой информации содержащейся в основной таблице. Использовать данные виртуальных таблиц можно при помощи запросов, либо при помощи специальных методов встроенного языка 1с 8.
Рассмотрим основные виды виртуальных таблиц 1с для различных объектов метаданных:
- СрезПоследних. Метаданные: периодические регистры сведений. Данная таблица позволяет получить последние актуальные данные на указанную дату, такие данные называются срезом последних. Возможно получить срез как в целом по регистру, так и по одному, либо нескольким измерениям;
- СрезПервых. Метаданные: периодические регистры сведений. Данная таблицы позволяет получить первые актуальные данные появившееся в регистре в указанную дату, либо после нее, такие данные называются срезом первых. Возможно получить срез как в целом по регистру, так и по одному, либо нескольким измерениям;
- Остатки. Метаданные: регистры бухгалтерии, регистры накопления с видом регистра остатки. Данная таблица позволяет получить остатки по ресурсам регистра на указанную дату. Возможно получать остатки как в целом по регистру, так и в разрезе определенных измерений, для регистров бухгалтерии в измерения также включаются счет и субконто относящиеся к данному счету;
- Обороты. Метаданные: регистры бухгалтерии, регистры накопления. Данная таблица позволяет получить обороты по ресурсам регистра за указанный период. Возможно получать обороты как в целом по регистру, так и в разрезе определенных измерений, для регистров бухгалтерии в измерения также включаются счет, субконто, кор. счет, кор. субконто;
- ОстаткиИОбороты. Метаданные: регистры бухгалтерии, регистры накопления с видом регистра остатки. Данная таблица позволяет получать остатки по ресурсам на начало и конец указанного периода и обороты по ресурсам за указанный период. Возможно получать остатки и обороты как в целом по регистру, так и в разрезе определенных измерений, для регистров бухгалтерии в измерения также включаются счет и субконто относящиеся к данному счету;
- ОборотыДтКт. Метаданные: регистры бухгалтерии. Данная таблица позволяет получить обороты по ресурсам регистра за указанный период. Возможно получать обороты как в целом по регистру, так и в разрезе определенных измерений, в измерения также включаются дебетовая и кредитовая части проводки: счет дебета, счет кредита, субконто дебета, субконто кредита и т.д.;
- ДвиженияССубконто. Метаданные: регистры бухгалтерии. Данная таблица позволяет получить записи регистра бухгалтерии вместе со значениями субконто.
Конструктор запросов позволяет работать с виртуальными таблицами регистров. Если у регистра есть виртуальные таблицы, то они будут находится в разделе База данных на вкладке Таблицы и поля после основной таблицы регистра.
Для того чтобы получить нужные данные из виртуальной таблицы регистра, необходимо заполнить ее параметры. Разберем заполнение параметров для основных виртуальных таблиц. Для того чтобы открыть окно параметров виртуальной таблицы, ее необходимо перенести из раздела База данных, в раздел Таблицы, выделить и нажать в кнопку Параметры виртуальной таблицы.
СрезПоследних и СрезПервых
- Период. В данном поле необходимо задать параметр, в который будет передана дата, на которую будет осуществляться срез первых, либо срез последних;
- Условие. Данное поле присутствует практически у всех виртуальных таблиц, в нем задается условие на поля виртуальной таблицы. Данное условие необходимо прописать вручную, либо воспользоваться редактором произвольных выражений, который можно запустить нажав кнопку с тремя точками.
ПРИМЕЧЕНИЕ! Если вам необходимо задать условия на поля виртуальной таблицы, делать это необходимо именно в параметрах таблицы, а не на вкладке Условия. Все дело в том, что запрос сначала выбирает данные, учитывая указанные параметры, а уже потом накладывает на него отбор из вкладки Условия. Поэтому условия наложенные в параметрах таблицы отработают быстрее, чем те которые указаны на вкладке Условия. Однако это правило не следует использовать для установки условий на ресурсы регистров, так как в данном случае они не будут отрабатывать также, как условия наложенные на измерения и реквизиты (т.е. если вам необходим отбор по ресурсам регистра, делать это нужно на вкладке Условия).
Остатки в регистре накопления
- Период. В данном поле необходимо задать параметр, в который будет передана дата или граница, на которую будет осуществляться получение остатков. У таблицы Остатки существует небольшая особенность, если вам необходимо получить остаток на определенную дату, то передать в параметр необходимо эту дату плюс одну секунду, либо границу с типом границы Включая;Пример 1
Остатки в регистре бухгалтерии
- УсловиеСчета. В данном поле задается условие на поле Счет виртуальной таблицы. В отличии поля Условия, для создания условий доступно только измерение Счет;
- Субконто. В данном поле задается параметр, содержащий массив видов субконто, которые должны анализироваться в данной виртуальной таблице. Например, если вы хотите получить остатки по 41 счету бухгалтерского учета, но вам не нужен разрез по складам, то в данный параметр можно передать массив состоящий из одного элемента: Номенклатура из плана видов характеристик ВидыСубконтоХозрасчетные.
При помощи данного параметра можно увеличить скорость выполнения запроса, исключив ненужную аналитику. Субконто в виртуальной таблице будут доступны в том порядке, в котором они стоят в массиве. Если в параметр передано меньше видов субконто, чем существует на счете, то не указанные в параметре субконто использовать нельзя. Данный параметр не является обязательным, если он не задан, то в виртуальной таблице используются все доступные субконто.
Обороты в регистре накопления
- НачалоПериода. Параметр в котором хранится дата начала периода, за который будут браться обороты;
- КонецПериода. Параметр в котором хранится дата окончания периода, за который будут браться обороты;
- Периодичность. Определяет группировку по периоду в виртуальной таблице. Если, например, указана периодичность Месяц, то данные в таблице будут сгруппированы по всем измерениям и месяцу, в полях таблицы появится поле Период, в котором будет хранится первый день месяца, в котором было сделано движение регистра. Если оставить поле Периодичность пустым, то периода в полях виртуальной таблицы не будет. Помимо периодичности связанной с временными промежутками есть еще несколько ее типов:
- Запись. Данные будут выбираться по отдельным записям регистра, точно также как в полной таблице. В полях появляются Период и Регистратор (документ который сделал данное движение);
- Регистратор. Данные будут сгруппированы по документу сделавшему движения в регистре. Данная группировка удобна как раз тогда, когда вам необходимо иметь разрез по документам. В полях появляются Период и Регистратор;
- Период. Данные группируются по измерениям регистра за весь период оборота;
- Авто. Данные группируются до секунды, в полях появляются Регистратор, ПериодСекунда, …. ПериодГод.
Обороты в регистре бухгалтерии
- УсловиеКорСчета. В данном поле задается условие на поле корреспондирующий счет проводки. В отличии поля Условия, для создания условий доступно только измерение КорСчет;
- КорСубконто. В данном поле задается параметр, содержащий массив видов субконто корреспондирующего счета, работает аналогично параметру Субконто, см. раздел «Остатки в регистре бухгалтерии».
Остатки и обороты в регистре накопления
- МетодДополнения. Метод дополнения периодов, данный параметр определяет за какие периоды будут получены движения регистра. Если указано значение Движения, то будут получены периоды, в которых были движения (обороты не равны нулю), если ДвиженияИГраницыПериода, то за периоды, по которым были движения, плюс начальный и конечный периоды, если на их начало был остаток. Данный параметр имеет смысл только, если Периодичность не равна Период. ДвиженияИГраницыПериода является значением по умолчанию, поэтому если нужен данный метод дополнения, поле можно оставить пустым.
Остатки и обороты в регистре бухгалтерии
Все параметры используемые в данной таблице были описаны в предыдущих пунктах.
Обороты Дебет Кредит
- УсловиеСчетаДт. В данном поле задается условие на поле СчетДт виртуальной таблицы, это счет левой части бухгалтерской проводки;
- УсловиеСчетаКт. В данном поле задается условие на поле СчетКт виртуальной таблицы, это счет правой части бухгалтерской проводки;
- СубконтоДт. В данном поле задается параметр, содержащий массив видов субконто, которые должны анализироваться для левой (дебетовой) части проводки;
- СубконтоКт. В данном поле задается параметр, содержащий массив видов субконто, которые должны анализироваться для правой (кредитовой) части проводки;
Движения с субконто
- Упорядочивание. В данном параметре можно задать поля сортировки записей виртуальной таблицы. Упорядочивать записи можно только в том случае, если заполнен параметр Первые.
- Первые. В данном параметре указывается число первых записей, которые будут взяты из регистра в виртуальную таблицу. Данный параметр необходим для упорядочивания элементов виртуальной таблицы 1с.
Практическая часть урока №6
В данном разделе нам предстоит решить две задачи по пройденной теме.
Задача 1
Получить остатки номенклатуры на указанном складе на конец месяца.
Для простоты предположим, что весь учет товаров на складах идет по 41 счету бухгалтерского учета.
- Создадим новый запрос;
- Запустим конструктор запросов;
- В раздел Таблицы перетащим таблицу Хозрасчетный.Остатки из ветки РегистрыБухгалтерии;
- Выделим данную таблицу и нажмем кнопку Параметры виртуальной таблицы;
- В поле Период впишем параметр, в который будет передаваться дата на которую будут браться остатки. Так как мы используем таблицу Остатки, в параметр передадим не дату а границу, с видом Включая;
- В поле УсловиеСчета вручную или используя редактор произвольных выражений вписываем условие на счет, используя оператор В ИЕРАРХИИ, для того чтобы в запрос попали остатки по всем субсчетам счета 41;
- В поле Субконто зададим параметр, в который передадим массив субконто. В нашей задаче нам нужны только склады и номенклатура, первым элементом массива зададим вид субконто Склады, а вторым Номенклатура;
- В поле Условие вручную или используя редактор произвольных выражений наложим отбор на склад, который в нашем случае хранится в поле Субконто1.
- На этом заполнение параметров виртуальной таблицы завершено, нажимаем кнопку ОК;
- В раздел Поля перетащим Субконто1, Субконто2 и КоличествоОстаток;
- Перейдем на вкладку Объединения / Псевдонимы;
- Зададим псевдонимы для полей Субконто1 и Субконто2, назначим для них Склад и Номенклатура соответственно;
- Запрос готов, нажимаем кнопку «ОК» в нижней части окна конструктора.
В итоге у нас получится запрос со следующим текстом:
Задача 2
Получить актуальную цену на конец месяца по указанной номенклатуре и типу цен.
- Создадим новый запрос;
- Запустим конструктор запросов;
- В раздел Таблицы перетащим таблицу ЦеныНоменклатуры.СрезПоследних;
- Выделим данную таблицу и нажмем кнопку Параметры виртуальной таблицы;
- В поле Период впишем параметр, в который будет передаваться дата на которую будет браться срез последних;
- В поле Условие вручную или используя редактор произвольных выражений наложим отбор на поля ТипЦен и Номенклатура;
- В раздел Поля перетащим ресурс Цена;
- Запрос готов, нажимаем кнопку «ОК» в нижней части окна конструктора.
В итоге у нас получится запрос со следующим текстом:
Источник