Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как передать параметры в запрос MySQL
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Svetas_2024
Добрый день, уважаемые форумчани. Прошу помощи
1С:Предприятие 8.3 (8.3.15.1869), "Управление производственным предприятием для Украины", редакция 1.3 (1.3.66.1) , формы обычные (не управляемые)
вопрос

подключаюсь к MySQL
 Параметры = ВнешниеИсточникиДанных.Битрикс.ПолучитьОбщиеПараметрыСоединения();
Параметры.АутентификацияСтандартная = Истина;
Параметры.ИмяПользователя ="Analyst";
  Параметры.СтрокаСоединения = "
|DRIVER={MySQL ODBC 8.2 ANSI Driver};
|PORT= 62394;
|DATABASE=dbalupro;
|UID=Analyst;
|LANGUAGE=русский";

Параметры.СУБД = "MySQL";
ВнешниеИсточникиДанных.Битрикс.УстановитьОбщиеПараметрыСоединения(Параметры);
ВнешниеИсточникиДанных.Битрикс.УстановитьПараметрыСоединенияПользователя(ИмяПользователя(), Параметры);
ВнешниеИсточникиДанных.Битрикс.УстановитьПараметрыСоединенияСеанса(Параметры);    

Попытка
    ВнешниеИсточникиДанных.Битрикс.УстановитьСоединение();
Исключение

КонецПопытки;

но вот как передать параметры в запрос
Запрос = Новый Запрос("ВЫБРАТЬ
          |   sk_task_change_key_person.TASK_ID,
      |   sk_task_change_key_person.USER_ID,
      |   sk_task_change_key_person.USER_FIO,
      |   sk_task_change_key_person.USER_TYPE
      |ИЗ
          |   ВнешнийИсточникДанных.Битрикс.Таблица.sk_task_change_key_person КАК sk_task_change_key_person    
      |ГДЕ
       |     sk_task_change_key_person.TASK_ID =&Задача
       |");

    Запрос.УстановитьПараметр("Задача", "50793");

    Таблица = Запрос.Выполнить().Выгрузить();
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Сообщить(выборка.USER_FIO);
    конеццикла;

параметр
&Задача
не видит и запрос не работает, но если заменить значением "50793", то работает.
Но нужно передать строковые параметры
Запрос.УстановитьПараметр("Состояние1", "Соисполнитель");
для
|  и  (sk_task_change_key_person.USER_TYPE="Состояние1"
- Вопрос как это сделать (передать строковые параметры)?
sava1
возможно, длина строки различная - попробуйте ПОДОБНО или привести длину строки
а так с ВнешнийИсточникДанных параметр должен проходить
Svetas_2024
sava1 @ Сегодня, 8:15 необходимо зарегистрироваться для просмотра ссылки ,
ошибку даёт
Цитата
Ошибка при вызове метода контекста (Выполнить)
{Отчет.Отчет1.Форма.ФормаОтчета.Форма(46)}: Таблица = Запрос.Выполнить().Выгрузить();
по причине:
{(9, 6)}: Неверные параметры "ПОДОБНО"
<<?>>sk_task_change_key_person.TASK_ID ПОДОБНО &Задача


необходимо зарегистрироваться для просмотра ссылки

у USER_TYPE - Короткий текст
USER_ID -Числовой
и в чём ошибка?
sava1
ну наверно Задача = "%АААААА%"
Svetas_2024
sava1 @ Сегодня, 8:15 необходимо зарегистрироваться для просмотра ссылки ,
спасибо
заработало
 Запрос = Новый Запрос("ВЫБРАТЬ
      |   sk_task_change_key_person.TASK_ID,
      |   sk_task_change_key_person.USER_ID,
      |   sk_task_change_key_person.USER_FIO,
      |   ВЫРАЗИТЬ (sk_task_change_key_person.USER_TYPE КАК СТРОКА(13))
      |ИЗ
      |   ВнешнийИсточникДанных.Битрикс.Таблица.sk_task_change_key_person КАК sk_task_change_key_person    
      |ГДЕ
        |      ВЫРАЗИТЬ (sk_task_change_key_person.TASK_ID КАК Число(10))=&Задача
        |   и  (ВЫРАЗИТЬ (sk_task_change_key_person.USER_TYPE КАК СТРОКА(13))=&Состояние1
        |  или  ВЫРАЗИТЬ (sk_task_change_key_person.USER_TYPE КАК СТРОКА(13))=&Состояние2)
        |    и  ВЫРАЗИТЬ (sk_task_change_key_person.USER_TYPE КАК СТРОКА(13))<>&Состояние3
        |");
    Запрос.УстановитьПараметр("Состояние1", "Соисполнитель");
    Запрос.УстановитьПараметр("Состояние2", "Ответственный");  
    Запрос.УстановитьПараметр("Состояние3", "Постановщик");  
    Запрос.УстановитьПараметр("Задача", 50793);

    Таблица = Запрос.Выполнить().Выгрузить();
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.