Использование виртуальных таблиц 1С в запросах
-

Использование виртуальных таблиц 1С в запросах

0
23192
30.10.2019 Александр Гармышев

Содержание:

1. Получение данных — создание запросов к базе данных.

2. Структура регистров.

3. Доступ к виртуальным таблицам 1С.

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

5. Основные параметры таблицы Оборотов.   

 

1. Получение данных — создание запросов к базе данных.


Получение информации из регистров происходит посредством создания запросов к базе данных, и оттого насколько правильно сделан запрос будет зависеть скорость получения данных и как следствие оптимальность работы системы. В данной статье мы рассмотрим некоторые особенности получения данных посредством запросов данных в 1С. 


2. Структура регистров.


Регистры состоят из двух таблиц, которые хранятся в базе данных, это таблица движений и таблица итогов. Так же в структуру регистров входят виртуальные таблицы, расчет которых производится на основе таблиц движений и итогов, в момент обращения в базе данных.


(Более подробно данная тема рассматривалась в статье. Следует заметить, что указанная статья не дает полного описания механизма регистров, для более углубленного изучения данного вопроса следует использовать дополнительные материалы).


Расчет таблицы итогов будет зависеть от вида регистра 1С, структура имеет следующий вид:



Рис. 1 


3. Доступ к виртуальным таблицам 1С. 


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

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

 

Если обратится к базе данных посредством 1С конструктора запроса, то таблицы будут выглядеть следующим образом.

 


Рис. 2

 

При написании запроса следует ориентироваться на использование виртуальных таблиц 1Срассчитываемых на основе итогов. В этом случае запрос будет наиболее оптимальным.

 


Рис. 3


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

 

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

 


Рис. 4


Период – Дата, либо момент времени на который необходимо получить остатки.

В качестве примера рассмотрим следующую таблицу движений и параметры виртуальной таблицы 1С:



Рис. 5


Остатки рассчитываются на начало секунды!

 

Если к примеру мы укажем дату остатков 20.01.2019 12:00:00 то движения за период 20.01.2019 12:00:00 учтены не будут, и остаток будет равен 8.



Рис. 6


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


Движения формируются документом, для того чтобы документы располагались в хронологическом порядке в пределах секунды, платформа 1С использует объект Момент времени.

Он представляет собой поле Дата+Ссылка



Рис. 7


Момент времени создается автоматически, и изменить его в пределах одной секунды невозможно. Изменить хронологию документов можно, только переместив дату одного издокументов на следующую секунду.


Допустим, что 20.01.2019 12:00:00 был проведен еще один документ, таблица движений примет следующий вид:



Рис. 8


На временной оси два последних документа будут расположены следующим образом



Рис. 9


При расчете остатков на МоментВремени документа, движения этого документа не учитываются !

 

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

В зависимости от свойства Вид Границы, можно получить момент непосредственно перед или после позиции документа.

 


Рис. 10

 

Примеры кода.

 

Получение МоментаВремени :

 

МоментПолученияОстатков = МоментВремени ();

Получение Границы , включая движения документа:

МоментПолученияОстатков = Новый Граница ( МоментВремени (), ВидГраницы . Включая );

    

Условие – параметр позволяющий произвести отбор данных по измерениям регистра.

 

В нашем примере у регистра остатков только одно измерение «Номенклатура».

 


Рис. 11

 

Условия можно описывать как простой конструкцией, например

 

Номенклатура = &Номенклатура

Так и при помощи подзапроса

Номенклатура В (ВЫБРАТЬ

                                    ВтНоменклатура.Номенклатура

                        ИЗ

                                    ВтНоменклатура КАК ВтНоменклатура)

 

При обращении к виртуальной таблице следует передавать в условия наиболее простые конструкции. Не рекомендуется использовать подзапросы и соединения в параметрах виртуальной таблицы, так как это приводит к медленной работе запроса.

 

Если все же подзапрос необходим, то необходимо соблюдать следующие условия:


·        в подзапросе только одна таблица, нет соединений с другими таблицами.

 

·        если в подзапросе таблица табличной части (например, Документ.Накладная.СписокТоваров), то не должно быть обращения к реквизитам таблицы-шапки (Накладная.Проведен).

 

·        если в подзапросе  таблица, у которой могут быть табличные части (например, Документ.Накладная), то не должно быть обращений к табличным частям (например, ГДЕ Документ.Накладная.СписокТоваров.Номенклатура = "1").

    

·        если в подзапросе  временная таблица, то не должно быть условий (раздела ГДЕ).


·        если в подзапросе  постоянная таблица, то условие (раздел ГДЕ) может быть допустимо, только если условие выполняется для 80% (или более) случаев, отсутствие условия означает выполнение для 100% случаев


·        если в подзапросе постоянная таблица, то в ограничениях доступа к данным (RLS) не должно содержатся подзапросов и соединений (допускаются только простые условия вида "ГДЕ Реквизит = Значение", "ГДЕ Истина").  

 

5. Основные параметры таблицы Оборотов.



Рис. 12


Как видим в качестве периода здесь два параметра, это НачалоПериода и КонецПериода.

Обороты в отличие от остатков можно получить только за определенный период. К примеру, если нам требуется узнать остаток товаров, то мы говорим : «Сколько товаров осталось на сегодня на 12:00? а вчера на 18:00». В случае оборотов вопрос строится так: «Сколько товаров было продано за сегодня? А за этот месяц?».


НачалоПериода – в случае если указывается дата, то берется начало секунды; если параметр не указан, то берется начало секунды периода первого движения.


КонецПериода – в случае если указывается дата, то берется конец секунды; если параметр не указан, то берется конец секунды периода последнего движения.


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



 Рис. 13


В случае если в качестве параметра НачалоПериода или КонецПериода, берется МоментВремени документа, то движения самого документа будут входить в выбираемый период!



Рис. 14        


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

Следующим параметром таблицы оборотов является Периодичность таблицы.



Рис. 15


Периодичность - позволяет детализировать записи виртуальной таблицы обороты в соответствии с выбранным периодом.

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



Рис. 16


Выберем данные из таблицы оборотов, в качестве периодичности выберем месяц.

Т.к. все движения формировались в одном месяце, то получим всего одну запись:



Рис. 17


Изменим периодичность на секунду, два последних движения сформированы в одну секунду, поэтому они будут представлены одной записью:



Рис. 18


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



Рис. 19


Если в качестве периодичности выбрать авто то возможно привести данные к нескольким периодам:



Рис. 20

 

Параметр условие аналогичен условию в виртуальной таблице остатков.

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

Для регистра с видом остатки это таблица остатки, для оборотного обороты.

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

При соблюдении этих условий, возможно получить данные наиболее оптимальным способом.


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

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

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Теги
# абота Риелторского Агентства # Управление торговлей 11 #Работа Риелторского Агентства # 1C # CRM-система # Cинтаксис-помощник # Cинхронные методы работы # PDF документами # PowerShell # XML-файл # Бизнес-процесс # Глубина анализа # Графические объекты # Динамический список # Документ заполнен # Документ Отбор (размещение) товаров # Документ Отгрузка товаров ИС МП # Документ Приобретение товаров и услуг # Документ УПД # Доступ на ТСД # ДтКт # ЕАЭС # Закладка Администрирование # Зарплата и кадры # Имя таблицы # ИТС # Кабель NYM(Севкабель) 3x5.5 # Книга учета доходов и расходов # Курс валюты # Лицо с правом подписи # Лицо, имеющее право подписи документов # Маркировка цифровыми кодами # Минимальные цены продажи в 1С # Настройка НСИ и разделов # Настройка ценообразования # НДФЛ # Нематериальные активы # Обмен электронными документами # Оплата через банк # Основное ответственное лицо организации # Перемещение ТС и оборудования # Проведение инструктажа # Продажи или Закупки # Прочие доходы # Пункт Подключить обработки # Пункт Сервис # ПФР и ФФОМС # Работа ТС # Расчет налога УСН # Расчетные счета # Система «Честный знак» # Система GS1 # Списание на расходы # Справка-расчет налога УСН # Страховые взносы # Таблица формы # Таблица формы «Сотрудники» # Товары # Установка цен на товары # Формат Цифровой Маркировки # Функция Дата # Функция ДеньГода # Функция ДеньНедели # Центральный Банк России # Цены номенклатуры 2.5 # Элементы #1.6-НДФЛ #1С Бухгалтерия #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С: УТ #1С: УХ #1С:ERP #1С:БГУ #1С:БП #1С:Риелтор #1С:Управление холдингом #1С.6-НДФЛ #ADO #APACHE #API #canonical #com-объекты #Cправочник БИК #Excel #Excel в 1С #GoogleDrive #Googleаккаунт #HTTP #ITIL #Koderline: Управление медиа-холдингом #Koderline: Управление проектами строительства скважин #LINUX #MS SQL Server #PDF #WEB #WEB-сервисы 1С #Word #WS-ссылки #XDTO-объект #XML #XML-обмен #Администрирование 1С #Адрес URL описания #акты в 1С #Банковские счета #Безопасность сервера #Бесшовная интеграция #БИТ.Финанc #Битрикс24 #Блокировки в 1С #БСП #БУ #Бурение скважин #Бухгалтерская отчётность в МСФО #Бюджетирование #Вид Характеристики #Внедрение #Внедрение ERP #Внешний вид формы #Выбор каталога #Выбранные файлы #Документ Отпуск #Документ1 #Журналы #Загрузка цен в 1С #Задача для 1С #Закладка Торговля #Закрытие месяца #Заменить #Запись регистра сведений #Запросы 1С #Интеграция 1С #Интервал dpi #История пользователя #Кадровые документы #КАК ОТРАЖАЮТСЯ ТОВАРЫ В ПУТИ 1С #Как сделать в 1С #Карточка Объекта недвижимости #Классификаторы и курсы валют #Клиент-серверная схема #Код ЦМТ #Конвертация данных #Контроль документов #Конфигурация 1С #Конфигурация 1С ЗУП 3.1 #Копирование настроек пользователей #Корпоративное сопровождение #Лизинг #Лицензии 1С #Лицензионный договор #Личные документы #Массив Номенклатур #Массовая регистрация отгулов #Меню Отчет #Механизм Анализа Данных в 1С #Моделирование #Модуль Диадок #МРОТ #МСФО #Налоги #Начисления Арендной платы #Новый Массив #Обмен между базами #Обновления #Общие ознакомительные рассылки #Операции в 1С #Оптимизация #Организация #Отпуск #Отчетность #Отчеты в 1С #Оформление перевода работника #Оценка задач #Параметр «Количество» #Партнер #Передача неисключительных прав #Перенос данных #Перенос цен из Excel в 1С #Периодичность ДЕНЬ #Периодичность МЕСЯЦ #Печатная форма документа #Планирование #Поле Ввода Значение Субконто #Полезные обработки #Пользовательский режим #Правила обмена #предопределенные элементы справочников #Прием на работу #Принцип работы 1С #Проводки 1С #Программа 1С #Программирование в 1С #Программные права #Продажа ТМЦ #Продажи #Продление #Производство #Просмотр #Путь к файлу #Работа с объектами в 1С #Расторжение #Расчет зарплаты #Расчетные документы #Расширение конфигурации #Регламентированная отчетность #Режим РИБ #Результаты поиска #РСБУ #С # #Сдельный заработок #СЗВ-СТАЖ #СКД #Соединение COM в 1С платформе #Соединение СОМ в 1С платформе #Сравнение конфигураций #Счет-фактура #Текущая Строка #Территориальная привязка #Территориальные рамки #Тестирование 1С #Техническое задание #Типы данных ссылки #Торговое оборудование #Транспортная логистика #Управление проектами #Установка цен номенклатуры #Финансовый учет #Формат MicrosoftExcel #Функционал МРМ #Х-точка #Характеристики Товаров #Хранилище настроек #Хранить историю изменений #Ценообразование #Чтение #Экзамен 1С #электронные подписи #Яндекс-диск или Google-диск #Яндекс.Касса 1С под Linux 1С:УНФ Email или телефон Работа с объектами в 1С Функциональные опции в 1С
Услуги программиста 1С
Получите специалиста  
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.