SQL запросы (версия 3.xx)/1C: различия между версиями

Материал из Call Office Wiki
Перейти к навигации Перейти к поиску
Строка 15: Строка 15:


  ВЫБРАТЬ *  
  ВЫБРАТЬ *  
ИЗ Справочник.Контрагенты КАК Контрагенты
      ИЗ Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК Телефон
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК Телефон ПО (Телефон.Объект = Контрагенты.Ссылка)  
ПО (Телефон.Объект = Контрагенты.Ссылка)  
                                                                            И (Телефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
И (Телефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
                                                                            И (Телефон.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента))
И (Телефон.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента))
    ГДЕ Телефон.Представление ЕСТЬ НЕ null  
ГДЕ Телефон.Представление ЕСТЬ НЕ null  
УПОРЯДОЧИТЬ ПО Контрагенты.Наименование
УПОРЯДОЧИТЬ ПО Контрагенты.Наименование


Стандартный SQL-запрос на выборку контактов из Справочник.Контрагенты с номерами телефонов:
Стандартный SQL-запрос на выборку контактов из Справочник.Контрагенты с номерами телефонов:


  SELECT *  
  select *  
FROM Справочник.Контрагенты AS Контрагенты
  from Справочник.Контрагенты AS Контрагенты
LEFT JOIN РегистрСведений.КонтактнаяИнформация AS Телефон
        left join РегистрСведений.КонтактнаяИнформация as Телефон on (Телефон.Объект = Контрагенты.Ссылка)
ON (Телефон.Объект = Контрагенты.Ссылка)
                                                                and (Телефон.Тип = VALUE(Перечисление.ТипыКонтактнойИнформации.Телефон))
AND (Телефон.Тип = VALUE(Перечисление.ТипыКонтактнойИнформации.Телефон))
                                                                and (Телефон.Вид = VALUE(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента))
AND (Телефон.Вид = VALUE(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента))
  where Телефон.Представление is not null  
WHERE Телефон.Представление is not null  
order by Контрагенты.Наименование
ORDER BY Контрагенты.Наименование


Ссылка на документацию по SQL-запросам http://its.1c.ru/db/metod8dev#browse:13:-1:1989:2004:2006:2019.
Ссылка на документацию по SQL-запросам http://its.1c.ru/db/metod8dev#browse:13:-1:1989:2004:2006:2019.

Версия 15:53, 10 марта 2017

Для работы с данными 1С можно использовать стандартные SQL запросы, которые буду преобразованы в формат, воспринимаемый 1С.

Поддерживаются SQL - операторы:

  • select или ВЫБРАТЬ - выборка данных. В списке полей можно указать только * - все поля. Пример: ВЫБРАТЬ ПЕРВЫЕ 10 * ИЗ Справочник.Контрагенты
    • where или ГДЕ - позволяет указать условие выборки. Пример: select * from Справочник.Контрагенты where Наименование = "Тест"
  • insert - вставка данных, позволяет указать список полей и константы значений, выражения не поддерживаются. Пример: insert into Справочники.Контрагенты (Наименование) values ("Тест")
  • update - изменение данных, позволяет указать список изменяемых полей и условие отбора. Пример: update Справочники.Контрагенты set Комментарий = 5 where Наименование = 'Тест'
  • delete - изменение данных, позволяет указать список изменяемых полей и условие отбора. Пример: delete from Справочник.Контрагенты where Наименование = "Тест"

Помимо этого SQL-запросы к этому источнику данных могут содержать комментарии в виде /* */ и содержать несколько запросов разделенных символами // на новой строке.

Пример SQL-запросов

SQL-запрос на языке 1C на выборку контактов из Справочник.Контрагенты с номерами телефонов:

ВЫБРАТЬ * 
     ИЗ Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК Телефон ПО (Телефон.Объект = Контрагенты.Ссылка) 
                                                                           И (Телефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
                                                                           И (Телефон.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента))
   ГДЕ Телефон.Представление ЕСТЬ НЕ null 

УПОРЯДОЧИТЬ ПО Контрагенты.Наименование

Стандартный SQL-запрос на выборку контактов из Справочник.Контрагенты с номерами телефонов:

select * 
  from Справочник.Контрагенты AS Контрагенты
       left join РегистрСведений.КонтактнаяИнформация as Телефон on (Телефон.Объект = Контрагенты.Ссылка)
                                                                and (Телефон.Тип = VALUE(Перечисление.ТипыКонтактнойИнформации.Телефон))
                                                                and (Телефон.Вид = VALUE(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента))
 where Телефон.Представление is not null 

order by Контрагенты.Наименование

Ссылка на документацию по SQL-запросам http://its.1c.ru/db/metod8dev#browse:13:-1:1989:2004:2006:2019.



Назад к SQL-запросам