Skip to content

Latest commit

 

History

History
92 lines (73 loc) · 4.55 KB

03.03-Запросы.md

File metadata and controls

92 lines (73 loc) · 4.55 KB

Запросы

Табличная модель доступа к данным

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

Конструктор:

Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
|	Контрагенты.Ссылка,
|	Контрагенты.ПометкаУдаления,
|	Контрагенты.Код,
|	Контрагенты.Наименование,
|	Контрагенты.ИНН,
|	Контрагенты.КПП,
|	Контрагенты.ЮридическийАдрес,
|	Контрагенты.ПочтовыйАдрес,
|	Контрагенты.Телефон,
|	Контрагенты.ВидОрганизации
|ИЗ
|	Справочник.Контрагенты КАК Контрагенты
|ГДЕ
|	Контрагенты.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка",Ссылка);

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ТЗ		= РезультатЗапроса.Выгрузить();
  • Выбрать - что выбираем;
  • ИЗ - откуда берем;
  • ГДЕ - отбор по параметру.

Соединения в запросах

  • Левое соединение (ко всем строкам левой таблицы мы добавляем строки правой по условию);

      "ВЫБРАТЬ
      |	Контрагенты.Ссылка,
      |	Контрагенты.Наименование,
      |	Контрагенты.ИНН,
      |	Контрагенты.КПП,
      |	КонтактныеЛица.Ссылка КАК Ссылка1,
      |	КонтактныеЛица.Наименование КАК Наименование1,
      |	КонтактныеЛица.Должность
      |ИЗ
      |	Справочник.Контрагенты КАК Контрагенты
      |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛица КАК КонтактныеЛица
      |		ПО КонтактныеЛица.Контрагент = Контрагенты.Ссылка"
    
  • Внутреннее соединение (находим в двух таблицах по условиям и оставляем только их);

      "ВЫБРАТЬ
      |	Контрагенты.Ссылка,
      |	Контрагенты.Наименование,
      |	Контрагенты.ИНН,
      |	Контрагенты.КПП,
      |	КонтактныеЛица.Ссылка КАК Ссылка1,
      |	КонтактныеЛица.Наименование КАК Наименование1,
      |	КонтактныеЛица.Должность
      |ИЗ
      |	Справочник.Контрагенты КАК Контрагенты
      |		ВНУТРЕНЕЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛица КАК КонтактныеЛица
      |		ПО КонтактныеЛица.Контрагент = Контрагенты.Ссылка"
    
  • Полное соединение (оставляем все строки из обоих таблиц, но соединяем только те, которые подошли по условию);

      "ВЫБРАТЬ
      |	Контрагенты.Ссылка,
      |	Контрагенты.Наименование,
      |	Контрагенты.ИНН,
      |	Контрагенты.КПП,
      |	КонтактныеЛица.Ссылка КАК Ссылка1,
      |	КонтактныеЛица.Наименование КАК Наименование1,
      |	КонтактныеЛица.Должность
      |ИЗ
      |	Справочник.Контрагенты КАК Контрагенты
      |		ПОЛНОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛица КАК КонтактныеЛица
      |		ПО КонтактныеЛица.Контрагент = Контрагенты.Ссылка"
    

Полезные ссылки

http://v8.1c.ru/overview/Term_000000309.htm

http://programmist1s.ru/yazyik-zaprosa-1s/

http://helpme1c.ru/zaprosy-v-yazyke-1s-8-v-primerax

http://howknow1c.ru/programmirovanie-1c/zaprosy-1s.html