Инструменты пользователя

Инструменты сайта


1c:база:запросы

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
1c:база:запросы [2015/11/22 04:47]
admin мелкие правки
1c:база:запросы [2020/10/01 03:34] (текущий)
admin мелкое оформление
Строка 1: Строка 1:
 ====== Запросы ====== ====== Запросы ======
 ===== Описание ===== ===== Описание =====
-Запросы представляют собой, табличную модель доступа к данным. С помощью запросов удобно организовывать чтение данных, по той причине, что с помощью **одного** запроса (здесь читаем обращения к серверу) можно в большинстве случаев получить все необходимые для работы данные. В случае с объектной моделью доступа(работа с классом ''Справочник.Выборка''), при получении каждого элемента в переборе система будет обращаться к серверу. В том случае если база 1С работает под управлением СУБД (клиент-серверный вариант) использование запросов является более оптимальным, потому что работа СУБД ориентирована на использование запросов. Результатом запроса всегда является одна таблица за исключением специфических случаев (например в случае пакетного запроса). <WRAP center round tip 60%>+Запросы представляют собой, табличную модель доступа к данным. С помощью запросов удобно организовывать чтение данных, по той причине, что с помощью **одного** запроса (здесь читаем обращения к серверу) можно в большинстве случаев получить все необходимые для работы данные. В случае с объектной моделью доступа(работа с классом ''Справочник.Выборка''), при получении каждого элемента в переборе система будет обращаться к серверу. В том случае если база 1С работает под управлением СУБД (клиент-серверный вариант) использование запросов является более оптимальным, потому что работа СУБД ориентирована на использование запросов. **Результатом запроса всегда является одна таблица за исключением специфических случаев** (например в случае пакетного запроса). <WRAP center round tip 60%>
 Перед тем как возьметесь за конструктор, попробуйте представить поля выходной таблицы, источники этой таблицы, приблизительно как должна получать эти данные система. Перед тем как возьметесь за конструктор, попробуйте представить поля выходной таблицы, источники этой таблицы, приблизительно как должна получать эти данные система.
 </WRAP> </WRAP>
Строка 117: Строка 117:
  
 Перед построением запроса, необходимо четко определить какие данные и из каких таблиц должны попадать в результат запроса. Огромное значение имеет то, как запрос будет связывать между собой данные из нескольких таблиц. Существуют следующие виды соединений: Перед построением запроса, необходимо четко определить какие данные и из каких таблиц должны попадать в результат запроса. Огромное значение имеет то, как запрос будет связывать между собой данные из нескольких таблиц. Существуют следующие виды соединений:
-  * Декартово произведение, или cross join, такое соединение получается  если не указывать какой тип связи нам нужен, система для каждой таблицы создаст набор записей, например если в одной таблице было 7 записей а во второй 12 в результате запроса вы получите 7 * 12 = 84 то есть все комбинации которые можно составить из этих данных. Забыв указать тип соединения и объединив таблицы с несколькими десятками тысяч записей(регистр остатков товара в небольшой базе) можно создать при выполнении запроса и выводе результата серьезную нагрузку на базу. +  * **Декартово произведение**, или cross join, такое соединение получается  если не указывать какой тип связи нам нужен, система для каждой таблицы создаст набор записей, например если в одной таблице было 7 записей а во второй 12 в результате запроса вы получите 7 * 12 = 84 то есть все комбинации которые можно составить из этих данных. Забыв указать тип соединения и объединив таблицы с несколькими десятками тысяч записей(регистр остатков товара в небольшой базе) можно создать при выполнении запроса и выводе результата серьезную нагрузку на базу. 
-  * Внутреннее соединение или inner join(галочка "ВСЕ" не стоит не слева, не справа),  необходимо использовать тогда когда из двух таблиц нужно получить только те данные которые совпадают по условию связи в обоих таблицах. +  * **Внутреннее соединение** или inner join(галочка "ВСЕ" не стоит не слева, не справа),  необходимо использовать тогда когда из двух таблиц нужно получить только те данные которые совпадают по условию связи в обоих таблицах. 
-  * Левое соединение или left inner join (галочка "ВСЕ" стоит слева) – в результат запроса попадают все записи которые находятся в левой таблице, и те записи из правой таблицы которые отвечают условию связи. +  * **Левое соединение** или left inner join (галочка "ВСЕ" стоит слева) – в результат запроса попадают все записи которые находятся в левой таблице, и те записи из правой таблицы которые отвечают условию связи. 
-  * Правое соединение или right inner join тоже самое что и левое соединение, только в результат попадают все записи из таблицы справа(галочка "ВСЕ" стоит справа), следует отметить, что 1С старается придерживаться левого соединения и если вы попробуете настроить правое соединение,  с помощью конструктора, при нажатии на кнопку ОК, она поменяет местами таблицы и сделает левое соединение. +  * **Правое соединение** или right inner join тоже самое что и левое соединение, только в результат попадают все записи из таблицы справа(галочка "ВСЕ" стоит справа), следует отметить, что 1С старается придерживаться левого соединения и если вы попробуете настроить правое соединение,  с помощью конструктора, при нажатии на кнопку ОК, она поменяет местами таблицы и сделает левое соединение. 
-  * Полное соединение или full outer join (галочка "ВСЕ" стоит и слева и справа) в запрос попадут все записи из обоих таблиц, которые 1С попытается сопоставить с помощью условия связи.+  * **Полное соединение** или full outer join (галочка "ВСЕ" стоит и слева и справа) в запрос попадут все записи из обоих таблиц, которые 1С попытается сопоставить с помощью условия связи.
  
 ==== Вложенные запросы ==== ==== Вложенные запросы ====
1c/база/запросы.1448156856.txt.gz · Последнее изменение: 2015/11/22 04:47 — admin