Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Конвертация SQL запроса на язык 1С
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
xtd
Есть такой SQL запрос:

SQL
"SELECT DISTINCT s.description, c.PartsDataSupplierArticleNumber FROM article_oe a
JOIN manufacturers m ON m.id=a.manufacturerId
JOIN article_cross c ON c.OENbr=a.OENbr
JOIN suppliers s ON s.id=c.SupplierId
WHERE a.datasupplierarticlenumber='". $number ."' AND a.supplierid='" . $brand_id . "'


Как это написать на языке запросов 1С?
Vofka
xtd, прямые запросы к СУБД делаются с использованием языка запросов СУБД. Т.е. запрос как есть, так и должен остаться.
xtd
Vofka @ Сегодня, 13:39 необходимо зарегистрироваться для просмотра ссылки ,

Подключаю таблицы через ODBC и строю запрос через Внешние источники данных.
Vofka
Что означает эта фраза:
Цитата(xtd @ 02.08.18, 14:15) необходимо зарегистрироваться для просмотра ссылки
Подключаю таблицы через ODBC

?
xtd
Vofka @ Сегодня, 14:23 необходимо зарегистрироваться для просмотра ссылки ,

Есть БД MySQL, устанавливаем необходимо зарегистрироваться для просмотра ссылки, в 1С добавляем Внешний источник данных, в нем добавляем таблицы БД MySQL с помощью строки подключения к ODBC.
sava1
для примера через одбц

    ПутьКБД ="169.254.176.133:mDb";
    СтрокаСоединения = "Driver=Firebird/InterBase(r) driver;Uid=SYSDBA;Pwd=masterkey; DbName=" + СокрП(ПутьКБД) + ";Charset=WIN1251; Autoquoted=1";
    Соединение = Новый COMОбъект("ADODB.Connection");
    Соединение.ConnectionString = СтрокаСоединения;
    //Соединение.ConnectionTimeOut = 1200;
    //Соединение.CursorLocation = 3;
    Попытка
        Соединение.Open(Соединение.ConnectionString);        
    Исключение
        Сообщить("Невозможно установить соединение с Firebird:
        | "+ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    //
    //Команда = Новый COMОбъект("ADODB.Command");
    //НаборЗаписей = Новый COMОбъект("ADODB.RecordSet");
    ТекстЗапроса = "select * from ""getShiftSalesByOrder""";    
    Попытка
        ВыборкаСтрокС = Соединение.Execute(ТекстЗапроса);
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;        
    КонецПопытки;
    //
    тз = ТабличнаяЧасть1.Выгрузить();
    тз.Очистить();
    Пока ВыборкаСтрокС.EOF=0 Цикл //Цикл по записям
        нс = тз.Добавить();
        нс.Топливо_ГСМ = СокрЛП(ВыборкаСтрокС.Fields("FuelName").value);
        нс.Топливо_ИД = СокрЛП(Строка(Формат(ВыборкаСтрокС.Fields("FuelID").value,"ЧГ=")));
        нс.нпп =1;
        ВыборкаСтрокС.MoveNext(); //Переходим к след. записи
    КонецЦикла;


Vofka
SELECT DISTINCT
    s.description,
    c.PartsDataSupplierArticleNumber
FROM
    ВнешнийИсточникДанных.ИМЯ_МОЕГО_ИСТОЧНИКА.Таблица.article_oe a
    JOIN ВнешнийИсточникДанных.ИМЯ_МОЕГО_ИСТОЧНИКА.Таблица.manufacturers m ON m.id=a.manufacturerId
    JOIN ВнешнийИсточникДанных.ИМЯ_МОЕГО_ИСТОЧНИКА.Таблица.article_cross c ON c.OENbr=a.OENbr
    JOIN ВнешнийИсточникДанных.ИМЯ_МОЕГО_ИСТОЧНИКА.Таблица.suppliers s ON s.id=c.SupplierId
WHERE
    a.datasupplierarticlenumber=&number AND a.supplierid=&brand_id
xtd
Vofka @ Сегодня, 15:31 необходимо зарегистрироваться для просмотра ссылки ,

Всем спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.