Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 08:52

Внешние источники данных

Автор anyut_ka, 25 авг 2014, 16:00

0 Пользователей и 1 гость просматривают эту тему.

anyut_ka

Добрый день! Подскажите пожалуйста...Конфигурация самописная 8.3.5. Есть сайт на MySQL и 1C (сервер на Linux). Подключение к внешнему источнику настроила, данные вычитываются. Но необходимо программно очищать таблицу "mytable" из MySQL и записывать в нее данные. Установили драйвер на сервере под Linux. Данные вроде пишутся (одной строкой), но вылетает ошибка "Fetch without a SELECT". Выборки никакой я не делаю. Пишу следующим образом:

Если ВнешниеИсточникиДанных.Сайт.ПолучитьСостояние() = СостояниеВнешнегоИсточникаДанных.Отключен Тогда Параметры1 = ВнешниеИсточникиДанных.Сайт.ПолучитьОбщиеПараметрыСоединения();
Параметры1.СтрокаСоединения = "dsn=mydsn;server=myserver;uid=myuser;database=mybase"; ВнешниеИсточникиДанных.Сайт.УстановитьОбщиеПараметрыСоединения(Параметры1); ВнешниеИсточникиДанных.Сайт.УстановитьСоединение(); КонецЕсли; ОбъектВИ = ВнешниеИсточникиДанных.Сайт.Таблицы.mytable.СоздатьОбъект(); ОбъектВИ.adress = "Вологда"; ОбъектВИ.Id = "1_0000"; ОбъектВИ.Записать();

В итоге 1С-ка "падает".

roman_se.kz

Добрый день!
Ну во-первых, где хороший тон? Код абсолютно не читабельный!
Во-вторых, описание таблицы, в которую пытаетесь записать строку в студию
И не проще ли записывать в таблицу оператором INSERT?
И еще, Вы в таблицу записываете id,
ОбъектВИ.Id = "1_0000"
он разве не автоикрементный?

anyut_ka

Здравствуйте! Пыталась код разместить по-нормальному, но он в 2 строки сжался....

Вот описание таблицы


CREATE TABLE `my_table` (
  `Id` varchar(11) NOT NULL default '',
  `counter` varchar(25) default NULL,
  `object` varchar(100) default NULL,
  `adress` varchar(100) default NULL,
  `customer` varchar(150) default NULL,
  `inn` varchar(12) default NULL,
  `zona` varchar(20) default NULL,
  `idcustomer` varchar(9) default NULL,
  `idregion` int(5) default NULL,
  `region` varchar(30) default NULL,
  `street` varchar(50) default '',
  `home` varchar(25) default NULL,
  `flat` varchar(5) default NULL,
  PRIMARY KEY  (`Id`)
) ENGINE=innodb DEFAULT CHARSET=cp1251 ROW_FORMAT=DYNAMIC;



С помощью команды Insert не могу понять как сделать, ситуация следующая: сервер Linux, поставлен драйвер ODBC под Linux...пыталась создать ComObject, Recordset, пишет, что ComОбъекты можно создавать только в Windows. Еще пишут, что можно с помощью функций внешнего источника работать с Mysql, пока не получается --> внешний источник не видит функцию/процедуру созданную в Mysql, может прав каких не хватает...

А ID  у меня не инкрементный, у меня он из 1С формируется

roman_se.kz

Вы через ADO подключались, или через ODBC?

anyut_ka

может я не верно понимаю, драйвер ODBC нужен для подключения к ADO?
Добавлено: 26 авг 2014, 11:10


Пыталась через хранимую функцию MySQL например сначала выбрать количество записей, все отработало, т.е. создала хранимую функцию в MySQL, потом создала функцию во внешнем источнике, связав ее с хранимой...и данные выбираются. Очистка таблица, вставка строк в таблицу или обновление не срабатывает, т.к. в хранимой функции TRUNCATE, INSERT, UPDATE писать нельзя, а хранимых процедур 1С-ка просто не видит :dfbsdfbsdf:! Кто работал с внешними источниками и MySQL, расскажите пожалуйста, как все-таки настроить или это недоработка 1С, тогда буду реализовать какими-то другими путями! Или может у кого-то получилось с помощью методов СоздатьОбъект и Удалить работать с MySQL, киньте пожалуйста примеры!

roman_se.kz

Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.ConnectionString = "server=;Initial Catalog=;Persist Security Info=True;User ID=;Password=;Provider=SQLOLEDB.1";

Или
Соединение = Новый COMОбъект("ADODB.Connection"); 
ConnectionString= "DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;DATABASE=Julia;OPTION=3;UID=root";


Какой вариант у вас?

anyut_ka

СтрокаПодключения = "dsn=mydsn;server=myserver;uid=myuser;database=mybase"; это так пишу во внешнем источнике...dsn другой программист настраивал, ну там он просто имя драйвера для Linux прописал, который и установил на сервере. Также прописал имя сервера, базы данных, пользователя и пароль.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск