выгрузить из 1с в mysql
Добрый день! уважаемые участники, я первый раз работаю в 1С. помогите решить задачу выгрузке некоторых данных с 1С Документы в mysql
в общем Задача такая Каждый день после заполнения данных выгружает в mysql
Но у меня выгрузить данные не получается
в общем Задача такая Каждый день после заполнения данных выгружает в mysql
Но у меня выгрузить данные не получается
&НаКлиенте
Процедура ДействияФормыВыгрузкаГород(Кнопка)
СтрокаПодключения = "DRIVER={MySQL ODBC 8.0 ANSI Driver};SERVER=localhost;DATABASE=btu;USER=root;PASSWORD=;";
Соединение = Новый COMОбъект("ADODB.Connection");
Попытка
Соединение.Open(СтрокаПодключения);
Исключение
Сообщить("Ошибка подключение - " + ОписаниеОшибки());
КонецПопытки;
Запрос = Новый Запрос;
ТекущаяДата = ТекущаяДата();
Запрос.Текст ="ВЫБРАТЬ
|бту_ПутевойЛист.Дата,
|бту_ПутевойЛист.Депо.Наименование,
|бту_ПутевойЛист.НомерМаршрута,
|бту_ПутевойЛист.НомерВыхода,
|бту_ПутевойЛист.ТипРасписания,
|бту_ПутевойЛист.Троллейбус1,
|бту_ПутевойЛист.Троллейбус2,
|бту_ПутевойЛист.Водитель1.ФизЛицо,
|бту_ПутевойЛист.Водитель2.ФизЛицо
|ИЗ
|Документ.бту_ПутевойЛист КАК бту_ПутевойЛист";
Выбрать = Запрос.Выполнить().Выбрать();
//Выборка=РезультатЗапроса.Выбрать();
Пока Выбрать.Следующий() Цикл
ЗапросInsert = Новый Запрос;
ЗапросInsert.Текст = "INS ERT IN TO btu_waybill (date, depo, route_number, exit_number, schedule_type, trolleybus1, trolleybus2, driver1, driver2 )VALUES (:Дата, :Депо, :НомерМаршрута, :НомерВыхода, :ТипРасписания, :Тролейбус1, :Тролейбус2, :Водитель1, :Водитель2 )";
ЗапросInsert.УстановитьПараметр("Дата", Выбрать.Дата);
ЗапросInsert.УстановитьПараметр("Депо", Выбрать.Выбрать());
ЗапросInsert.УстановитьПараметр("НомерМаршрута", Выбрать.НомерМаршрута);
ЗапросInsert.УстановитьПараметр("НомерВыхода", Выбрать.НомерВыхода);
ЗапросInsert.УстановитьПараметр("ТипРасписания", Выбрать.ТипРасписания);
ЗапросInsert.УстановитьПараметр("Троллейбус1", Выбрать.Троллейбус1);
ЗапросInsert.УстановитьПараметр("Троллейбус2", Выбрать.Троллейбус2);
//ЗапросInsert.УстановитьПараметр("Водитель1", Выбрать.());
//ЗапросInsert.УстановитьПараметр("Водитель2", Выбрать.Водитель2())
КонецЦикла;
Сообщить("Выгрузка данных в MySQL завершена.");
КонецПроцедуры
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
запрос я чуть поменял
теперь ошибка выходить
Ошибка подключения - {Документ.ПутевойЛист.Форма.ФормаСписка.Форма(171)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
какой драйвер правильный поставить ?
у меня xampp версия mysql 10.4.13-MariaDB
conn = Новый COMОбъект("ADODB.Connection");
ConnectionString = "DRIVER={MySQL ODBC 5.3 Unicode};SERVER=localhost;DATABASE=btu;USER=root;PASSWORD=;";
Попытка
conn.open(ConnectionString);
Исключение
Сообщить("Ошибка подключения - " + ОписаниеОшибки());
Возврат;
КонецПопытки;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПутевойЛист.Ссылка,
| ПутевойЛист.Дата,
| ПутевойЛист.Депо,
| ПутевойЛист.НомерМаршрута,
| ПутевойЛист.НомерВыхода,
| ПутевойЛист.ТипРасписания,
| ПутевойЛист.Троллейбус1,
| ПутевойЛист.Троллейбус2,
| ПутевойЛист.Водитель1
|ИЗ
| Документ.ПутевойЛист КАК ПутевойЛист";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КонецЦикла;
Попытка
conn.execute("INS ERT IN TO btu_waybill (waybill, date, depo, route_number, exit_number, schedule_type, trolleybus1, trolleybus2, driver1, driver2)VALUES (:Ссылка,:Дата, :Депо, :НомерМаршрута, :НомерВыхода, :ТипРасписания, :Тролейбус1, :Тролейбус2, :Водитель1, :Водитель2 )");
Исключение
Сообщить("Ошибка выполнения запроса - " + ОписаниеОшибки());
КонецПопытки;
conn.Close();
Показатьтеперь ошибка выходить
Ошибка подключения - {Документ.ПутевойЛист.Форма.ФормаСписка.Форма(171)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
какой драйвер правильный поставить ?
у меня xampp версия mysql 10.4.13-MariaDB
Прикрепленные файлы:
(13)удалил лишний драйвера установил Х86 драйвер 5.3 но теперь выходить другая ошибка
вот само ConnectionString
вот код ошибки
Ошибка выполнения запроса - {Документ.бту_ПутевойЛист.Форма.ФормаСписка.Форма(201)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 5.3(w) Driver][mysqld-5.5.5-10.4.13-MariaDB]You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':Ссылка,:Дата, :Депо, :НомерМаршрута, :Номер...' at line 1
посоветуйте мне как исправить,
как можно проверить какая версия более подходящая ?
вот само ConnectionString
conn = Новый COMОбъект("ADODB.Connection");
ConnectionString = "DRIVER={MySQL ODBC 5.3 Unicode DRIVER};SERVER=localhost;DATABASE=btu;USER=root;PASSWORD=;";
Попытка
conn.open(ConnectionString);
Исключение
Сообщить("Ошибка подключения - " + ОписаниеОшибки());
Возврат;
КонецПопытки;
Показатьвот код ошибки
Ошибка выполнения запроса - {Документ.бту_ПутевойЛист.Форма.ФормаСписка.Форма(201)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 5.3(w) Driver][mysqld-5.5.5-10.4.13-MariaDB]You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':Ссылка,:Дата, :Депо, :НомерМаршрута, :Номер...' at line 1
посоветуйте мне как исправить,
как можно проверить какая версия более подходящая ?
(14)не верно написан текст запроса: ":Ссылка,:Дата, :Депо, :НомерМаршрута, :Номер..." неизвестны СУБД MySQL
Вариантов решения 2:
1.Собирать текст запроса динамически, преобразовав все нужные значения к строковым
2. Написать запрос с параметрами и передавать значения в них
Вариантов решения 2:
1.Собирать текст запроса динамически, преобразовав все нужные значения к строковым
2. Написать запрос с параметрами и передавать значения в них
Чуток переделал запрос,
ошибка в том что нет записи в БД
но при нажатия на кнопку
минут две кружить и приходить ответ Сообщить("Выгрузка данных в MySQL завершена.");
где допустил ошибку ?
ошибка в том что нет записи в БД
но при нажатия на кнопку
минут две кружить и приходить ответ Сообщить("Выгрузка данных в MySQL завершена.");
где допустил ошибку ?
&НаКлиенте
Процедура ДействияФормыВыгрузкаГород(Кнопка)
СтрокаПодключения = "DRIVER={MySQL ODBC 8.0 ANSI Driver};SERVER=localhost;DATABASE=btu;USER=root;PASSWORD=;";
conn = Новый COMОбъект("ADODB.Connection");
Попытка
conn.Open(СтрокаПодключения);
Исключение
Сообщить("Ошибка подключение - " + ОписаниеОшибки());
КонецПопытки;
ТекстовыйДок = Новый ТекстовыйДокумент;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|ПутевойЛист.Дата,
|ПутевойЛист.Депо,
|ПутевойЛист.НомерМаршрута,
|ПутевойЛист.НомерВыхода,
|ПутевойЛист.ТипРасписания,
|ПутевойЛист.Троллейбус1,
|ПутевойЛист.Троллейбус2,
|ПутевойЛист.Водитель1,
|ПутевойЛист.Водитель2
|ИЗ
|Документ.ПутевойЛист КАК ПутевойЛист";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ТекстовыйДок.ДобавитьСтроку("$qury1 = mysqli_query($link, ""INS ERT IN TO btu_waybill (date, depo, route_number, exit_number, schedule_type, trolleybus1, trolleybus2, driver1, driver2) VALUES ('"+Выборка.Дата+"', '"+Выборка.Депо+"' '"+Выборка.НомерМаршрута+"', '"+Выборка.НомерВыхода+"', '"+Выборка.ТипРасписания+"','"+Выборка.Троллейбус1+"', '"+Выборка.Троллейбус2+ "', '"+Выборка.Водитель1+"', '"+Выборка.Водитель2+"')"")");
КонецЦикла;
Сообщить("Выгрузка данных в MySQL завершена.");
КонецПроцедуры
Показать
(16)сколько еще раз нужно повторить, что сформировать текст запроса - это только часть решения задачи, остальная часть - чтобы сформированный текст запроса прошел синтаксический контроль и сформированный запрос таки выполнился
Сформированный текст запроса необходимо выполнить, а не просто сохранить его в ОЗУ и надеятся на то, что 1с дальше сама догадается, что делать со всем этим добром, что написано в коде.
Сформированный текст запроса необходимо выполнить, а не просто сохранить его в ОЗУ и надеятся на то, что 1с дальше сама догадается, что делать со всем этим добром, что написано в коде.
(17) я думал тут передаю в БД результат запроса
Пока Выборка.Следующий() Цикл
ТекстовыйДок.ДобавитьСтроку("$qury1 = mysqli_query($link, ""INS ERT IN TO btu_waybill (date, depo, route_number, exit_number, schedule_type, trolleybus1, trolleybus2, driver1, driver2) VALUES ('"+Выборка.Дата+"', '"+Выборка.Депо+"' '"+Выборка.НомерМаршрута+"', '"+Выборка.НомерВыхода+"', '"+Выборка.ТипРасписания+"','"+Выборка.Троллейбус1+"', '"+Выборка.Троллейбус2+ "', '"+Выборка.Водитель1+"', '"+Выборка.Водитель2+"')"")");
КонецЦикла;
(21)
Выбрать
Максимум(Дата) КАК Дата
ПОМЕСТИТЬ ВТСрезПоследних
ИЗ
Документ.ПутевойЛист
;
Выбрать
Т1.Дата,
Т2.Депо,
Т2.НомерМаршрута,
Т2.НомерВыхода,
Т2.ТипРасписания,
Т2.Троллейбус1,
Т2.Троллейбус2,
Т2.Водитель1,
Т2.Водитель2
ИЗ
ВТСрезПоследних КАК Т1
Левое СОЕДИНЕНИЕ Документ.ПутевойЛист КАК Т2
ПО Т1.Дата = Т2.Дата
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот