SQL запросы (версия 3.xx)/1C

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

Для работы с данными 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-запрос на выборку контактов из Справочник.Контрагенты с номерами телефонов:

ВЫБРАТЬ

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



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