Обмен данными между 1С и удаленной базой MySQL #548706


#0 by Сниф
База 1С 8.2 находится на домашнем компьютере, база MySQL интернет-магазина  - на удаленном хостинге. Требуется наладить экспорт товаров из 1С в MySQL. Делаю бесплатного для знакомого. Вопрос в том, какой из двух методов обмена будет более быстрым: 1. прямое подключение к удаленной базе через "mysql-connector-odbc"; 2. экспорт в формате CVS, отправка через FTP этого файла на удаленный сервер и запуск php-скрипта на сервере для его обработки.
#1 by Amra
Если у тебя не сотни тысяч позиций - первый вариант будет недолгим. Реализовывал и импорт из 1С на сайт, и наоборот, с сайта в 1С
#2 by kabanoff
3 вариант: в последней платформе 8.2 реализованы внешние источники данных. Но в этом случае нужно будет обновлять платформу до последней версии, которая сейчас тестовая.
#3 by Сниф
допустим, 5 тыс. позиций. Каким способом быстрее осуществить экспорт ?
#4 by steep1
CVS
#5 by ДенисЧ
Внешние источники там пока только на чтение, так что не покатит. Зависит от скорости сети
#6 by Сниф
а как скорость сети влияет? если она велика, то и CVS "пулей пролетит" и соединение будет быстро работать.
#7 by ДенисЧ
Если скорость приличная, то лучше лить напрямую. Если нет, то через файл.
#8 by Сниф
реальная скорость канала 300 килобайт в секунду.
#9 by ДенисЧ
Я бы делал напрямую
#10 by Сниф
попробую. тем более в PHP я не особо силен.
#11 by Asmody
нa нормaльных хостингaх mysql нe смотрит нaружу
#12 by ice777
оптимизировать запросы и интрфейс. и хватит штатных средств 82.
#13 by Megas
Делал обмены и 1 и 2... ИМХО 2 намного лучше! Теперь отличия: 1)Легче в отладке 2)Если на MySQL захотят поменять структуру данных то не надо лезть в 1с... так как данные грузятся с файла 3)Каждый разбирается в своём коде 4)Чтоб поправить загрузку на сайте не нужно лезть в 1с.
#14 by Сниф
вроде бы есть технология SSH и программа PuTTY, позволяющие осуществить доступ к любому mysql ... Хотя я об этом только слышал.
#15 by Megas
ИМХО бред... очень много компаний на MYSQL работают...
#16 by Megas
Ещё это при том что тебе не надо делать загрузку, её будет делать ВЭБ мастер! А если ты тогда ХЗ что лучше
#17 by Сниф
что именно - бред? если, как написано в "mysql нe смотрит нaружу", а доступ к нему получить хочется, то строится SSH туннель (с помощью Putty) . нету ВЭБ мастера :)
#18 by y88
можно формировать файл запросов MySQL update, загружить на сервер А PHP коннектиться к MySQL и выполнять загруженный файл
#19 by Сниф
я так понимаю, что в этом случае php скрипт будет очень простым - тупо загрузить, что прислали, да?
#20 by y88
точно правда это потенциальная уязвимасть
#21 by Megas
Ну работающий комп - это потенциальная уязвимасть
#22 by Megas
Я вот из 1с ки долбился когда на сайт, то каждый час менял пароль долбления 1с...
#23 by Сниф
а у тебя есть пример формирования из 1С файла "MySQL update"? :)
#24 by y88
нет, только идея :) Это обычный текстовый файл - попробуй выгрузи дамп мускула
#25 by ado
Посмотри phpMyAdmin из комплекта Денвера, вроде, там есть такой функционал.
#26 by Сниф
ага, этим я сейчас и занимаюсь :) интересно, что будет, если загрузить весь дамп обратно. с таблицами все нормально: "CREATE TABLE IF NOT EXISTS" А товары не задублируются?
#27 by ado
А бис его знает. На копии спробуй. Хотя, по идее, очищать таблички сперва должон.
#28 by Kreont
Учти ограничение на исполнение запросов на пхп. А то может и придется пачками по N-отправлять
#29 by Сниф
не дает загрузить дамп: "Duplicate entry '1' for key 'PRIMARY'". А очишать таблицу перед каждым импортом не есть хорошо. ограничение на размер файла, да?
#30 by y88
дык не insert а update нужно Смотри уникальные ключи
#31 by Kreont
и на размер файла (2 МБ стандартно), и еще есть ограничение на обработку пхп скрипта (вроде 30 сек. стандартно) А очишать таблицу ... = нехорошо, мусора много остается Я пробовал через прямое подключение к MySQL (использовал длл-ку v7mysql.dll ) идет долго но надежно :). Правда добавлял порциями
#32 by Сниф
попробовал заменить в дампе INSERT INTO на UPDATE сервер ответил: "check the manual" :)
#33 by Kreont
правильно ответил, так прямо не меняется insert into Таблица (Колонки через запятую) values (Значения через запятую) а для update: update Таблица set Колонка = Значение, и т.д.
#34 by APXi
replase попробуй
#35 by acsent
самый быстрый способ: LOAD DATA INFILE ...
#36 by kokamoonga
на нормальных хостингах право решать куда смотрит мускул предоставляется владельцу аккаунта. Была уже тут дискуссия на эту тему. Для интереса звонил парочке крупных хостеров. Там сказали что никаких ограничений на доступ типа 'user'@'%' они не ставят. У моих хостеров, к слову помешанных на безопасности, политика ровно такая же. >> Делал обмены и 1 и 2... ИМХО 2 намного лучше! имхо 1 лучше когда у тебя синхронизация в хранимки упрятана.
#37 by Diliak
Я года полтора для "клюшки" использовал внешнюю компоненту v7mysql. Все загрузки, update и delete делал через нее. Шустро, удобно. Таблицы на сотни тысяч записей. Насчет работает ли с 8-кой - не знаю.
#38 by Kreont
работает, гарантия, см.
#39 by Адинэснег
выгружай на общий фтп-ресурс, вызывай запуск скрипта из поля хтмл ЭлементыФормы.ПолеHTMLСкрытое.Перейти("хттп://мойсайт/скрипт.пхп")
#40 by Адинэснег
или ваще через Новый ХТТПСоединение
#41 by Сниф
Может где-то есть пример PHP-скрипта с использованием конструкции "LOAD DATA INFILE"? PHP пока у меня туго идет :(
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям