Общее·количество·просмотров·страницы

вторник, 29 января 2013 г.

Запросы 1С. Ч. 1. В общем...


Решил посвятить цикл статей запросам 1с, тема актуальна и интересна, думаю это принесет свои плоды.
Запросы достаточно мощный инструмент для получения данных, после получения данных можно сделать по ним выборку или поместить во временную таблицу. Начинающие разработчики знают что существует возможность создание выборки справочников или документов. Как пример:

Выборка = Документы.РасходнаяНакладная.Выбрать(ДатаНач, ДатаКон);

Получим все документы на указанный период между ДатаНач и ДатаКон. Но такое решение обрабатывается как правило в цикле, и не дает возможность применить какие либо более гибкие условия кроме как отбор по периоду или по полю. Если подобных документов 100 не так страшно, а вот если 10000 и в цикле применяется какое либо многоуровневое условие это займет очень много времени и будет являться не оптимальным.

Запросы же позволяют нам более гибко и практически «напрямую» считать данные нужных нам элементов. Все запросы в 1с строятся по sql стандарту, за той небольшой поправкой что писать их можно как на русском так и на английском языках. Как правило пользуются русским.
Но все те кто немного знаком с запросами sql и в глаза видел запросы 1с, отметят интересный факт что в запросе 1с мы обращаемся не напрямую к таблицам базы данных а к элементам конфигурации. Пример:

ВЫБРАТЬ
Банки.Наименование
ИЗ
Справочник.Банки КАК Банки

1с добилась подобного своей специальной библиотекой которая является прослойкой между запросом 1с и непосредственно запросом в БД. Разработчику 1с совершенно не важно что из себя представляет БД клиент-серверный вариант или файловую версию, он оперирует только стандартами и терминологией 1с а все остальное за него сделает платформа. Еще один важный момент который отличает запросы 1с от запросов в других СУБД, у 1с жесткий запрет на модификацию данных, возможно только чтение запросом, хотя и здесь есть некоторые нюансы, которые лучше обсудить позднее.
Перевариваем....

Комментариев нет:

Отправить комментарий