Записки программиста 1с

Виртуальные таблицы 1с.

Виртуальные таблицы 1с используются в запросах.

У некоторых объектов метаданных помимо основной таблицы в базе данных присутствуют виртуальные таблицы. Они облегчают доступ к некоторой информации содержащейся в основной таблице. Использовать данные виртуальных таблиц можно при помощи запросов, либо при помощи специальных методов встроенного языка 1с 8.

Виртуальные таблицы 1с
Таблицы регистров 1с

виртуальные таблицы 1с для различных регистров

Рассмотрим основные виды виртуальных таблиц для различных регистров 1с:

  • СрезПоследних. Метаданные: периодические регистры сведений. Безусловно, данная таблица позволяет получить последние актуальные данные на указанную дату, такие данные называются срезом последних. Возможно получить срез как в целом по регистру, так и по одному, либо нескольким измерениям;
  • СрезПервых. Метаданные: периодические регистры сведений. Бесспорно, данная таблицы позволяет получить первые актуальные данные появившееся в регистре в указанную дату, либо после нее, такие данные называются срезом первых. Возможно получить срез как в целом по регистру, так и по одному, либо нескольким измерениям;

Виртуальные таблицы регистров накопления и регистров бухгалтерии

  • Остатки. Метаданные: регистры бухгалтерии, регистры накопления с видом регистра остатки. Безусловно, данная таблица позволяет получить остатки по ресурсам регистра на указанную дату. Возможно получать остатки как в целом по регистру, так и в разрезе определенных измерений, для регистров бухгалтерии в измерения также включаются счет и субконто относящиеся к данному счету;
  • Обороты. Метаданные: регистры бухгалтерии, регистры накопления. Бесспорно, данная таблица позволяет получить обороты по ресурсам регистра за указанный период. Возможно получать обороты как в целом по регистру, так и в разрезе определенных измерений, для регистров бухгалтерии в измерения также включаются счетсубконтокор. счеткор. субконто;
  • ОстаткиИОбороты. Метаданные: регистры бухгалтерии, регистры накопления с видом регистра остатки. Несомненно, данная таблица позволяет получать остатки по ресурсам на начало и конец указанного периода и обороты по ресурсам за указанный период. Возможно получать остатки и обороты как в целом по регистру, так и в разрезе определенных измерений, для регистров бухгалтерии в измерения также включаются счет и субконто относящиеся к данному счету;
  • ОборотыДтКт. Метаданные: регистры бухгалтерии. Впрочем, данная таблица позволяет получить обороты по ресурсам регистра за указанный период. Возможно получать обороты как в целом по регистру, так и в разрезе определенных измерений, в измерения также включаются дебетовая и кредитовая части проводки: счет дебета, счет кредитасубконто дебетасубконто кредита и т.д.;
  • ДвиженияССубконто. Метаданные: регистры бухгалтерии. Бесспорно, данная таблица позволяет получить записи регистра бухгалтерии вместе со значениями субконто.

Конструктор запросов 1с позволяет работать с виртуальными таблицами регистров. Для проверки текста запроса можно применять консоль запросов. Если у регистра есть виртуальные таблицы, то они будут находится в разделе База данных на вкладке Таблицы и поля после основной таблицы регистра.

Виртуальные таблицы 1с
Конструктор запросов 1с

Виртуальные таблицы регистров сведений 1с

Регистры сведений 1с могут иметь только две виртуальные таблицы:

СрезПервых

Данная таблицы позволяет получить первые актуальные данные появившееся в регистре в указанную дату, либо после нее, такие данные называются срезом первых.

СрезПоследних

Данная таблица позволяет получить последние актуальные данные на указанную дату, такие данные называются срезом последних

Виртуальные таблицы 1с
Виртуальные таблицы регистра сведений 1с

Для заполнения параметров виртуальной таблицы Регистра сведений:

Во-первых нажимаем на кнопку “Параметры виртуальной таблицы”

Виртуальные таблицы 1с
Параметры виртуальной таблицы

Во-вторых задаем параметры:

таблицы в регистре сведений
Окно задания параметров виртуальной таблицы

Код запроса будет выглядеть так:

ВЫБРАТЬ Валюта, Курс 
ИЗ РегистрСведений.КурсыВалют.СрезПоследних(&Период, Валюта = &Валюта);

Данный запрос выдаст курс одной валюты (&Валюта) на определенную дату(&Период).

В заключении приведем еще два фрагмента кода для регистра сведений.

Во-первых получение всех курсов валют на заданную дату:

ВЫБРАТЬ Валюта, Курс 
ИЗ РегистрСведений.КурсыВалют.СрезПоследних(&ЗаданнаяДата);

Во-вторых нахождение цены назначаемой в Справочнике ВидыЦен на заданную дату. В Справочнике ВидыЦен указываются названия цен, например Оптовая.

ВЫБРАТЬ Номенклатура, Цена
ИЗ РегистрСведений.ЦеныКомпании.СрезПоследних(&ЗаданнаяДата, ВидыЦен=&ВыбТипЦен);

Создание и использование регистра “Цены” описано в статье “Документ Установка цен Номенклатуры“.

Виртуальные таблицы регистров накопления

Регистры накопления могут быть двух видов:

  • Остатки
  • Обороты

Виртуальные таблицы применяются при работе с регистрами накопления 1с.

Виртуальные таблицы в регистре накопления остатки

таблицы в регистре накопления остатки
Параметры регистра накопления остатки

Период. В данном поле необходимо задать параметр, в который будет передана дата или граница, на которую будет осуществляться получение остатков. У таблицы Остатки существует небольшая особенность, если вам необходимо получить остаток на определенную дату, то передать в параметр необходимо эту дату плюс одну секунду, либо границу с типом границы Включая

Виртуальные таблицы в регистре накопления обороты

Параметры регистра накопления обороты
Параметры регистра накопления обороты
  • НачалоПериода. Параметр в котором хранится дата начала периода, за который будут браться обороты;
  • КонецПериода. Параметр в котором хранится дата окончания периода, за который будут браться обороты;
  • Периодичность. Определяет группировку по периоду в виртуальной таблице. Если, например, указана периодичность Месяц, то данные в таблице будут сгруппированы по всем измерениям и месяцу, в полях таблицы появится поле Период, в котором будет хранится первый день месяца, в котором было сделано движение регистра. Если оставить поле Периодичность пустым, то периода в полях виртуальной таблицы не будет. Помимо периодичности связанной с временными промежутками есть еще несколько ее типов:
    • Запись. Данные будут выбираться по отдельным записям регистра, точно также как в  полной таблице. Притом, в полях появляются Период и Регистратор (документ который сделал данное движение);
    • Регистратор. Данные будут сгруппированы по документу сделавшему движения в регистре. Данная группировка удобна как раз тогда, когда вам необходимо иметь разрез по документам. Притом, В полях появляются Период и Регистратор;
    • Период. Данные группируются по измерениям регистра за весь период оборота;
    • Авто. Данные группируются до секунды, в полях появляются РегистраторПериодСекунда, …. ПериодГод.

Замечание! Если вам необходимо задать условия на поля виртуальной таблицы, делать это необходимо именно в параметрах таблицы, а не на вкладке Условия. В конце концов, запрос сначала выбирает данные, учитывая указанные параметры, а уже потом накладывает на него отбор из вкладки Условия. Поэтому условия наложенные в параметрах таблицы отработают быстрее, чем те которые указаны на вкладке Условия. Однако это правило не следует использовать для установки условий на ресурсы регистров, так как в данном случае они не будут отрабатывать также, как условия наложенные на измерения и реквизиты (т.е. если вам необходим отбор по ресурсам регистра, делать это нужно на вкладке Условия).

Подробно программирование на 1с изучается на курсе “Азы программирование 1с

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *