1с и другая (не 1с) база SQL, запись и редактирование напрямую. #484694


#0 by xoma1c
Клиент хочет подключаться напрямую из 1с8 к другой (не 1с) базе SQL, и записыватьизменять в ней нужные строки (вместо обмена данными по XML с той базой, как сейчас). Из внешней обработки 1с8. Подскажите, отговаривать ли его от этой затеи или нет, какие подводные камни? Насколько реально это сделать?
#1 by Aleksey_3
Сделать легко. Был бы толк
#2 by xoma1c
В смысле, толк?
#3 by Aleksey_3
Смотря что за "другая база"? Если это просто табличка - то в легкую. Если это другая база типа 1С, то запаришься вручную в кучу таблиц писать. Сильно не тривиальная и геморройная задача
#4 by xoma1c
Просто табличка, может несколько, 2-3.
#5 by shuhard
ADODB + 10 минут работы, если база не требует вьюшек 1 час работы, если требует
#6 by xoma1c
а как там через ADODB найти нужную запись в (не 1с) базе sql и редактировать? Где посмотреть можно?
#7 by shuhard
при таком уровне знаний лучше не браться
#8 by Aleksey_3
#9 by xoma1c
Да я не собираюсь, но чем-то аргументировать надо. Это то понятно. Потом запросом найти нужную запись и править? Где можно про редактирование почитать?
#10 by Aleksey_3
Яндекс найдется все
#11 by el-gamberro
#12 by ice777
подключиться напрямую.. гм. А если создатель той базы забыл связи прописать (прописал только программно) - ну и повалишь все в той базе на.
#13 by xoma1c
Спасибо! Да я вообще против напрямую, есть граница ответственности, тут я с 1с, давай мне выгрузку все сделаю, а ваша база(не 1с) - ваша ответственность. Огребали, знаем. Было дело, обработка по ADODB у меня нормально дома пошла, у клиента - не заработала. Почему - ума не приложу.
#14 by Aleksey_3
Так от нас что хочешь услышать. Что нет не делай? Или да делай?
#15 by mr_K
Уже 5 лет работаем в связке: база 1С - CRM база на SQL. 1С сначала 7.7, потом 8.1, ADO = никаких проблем. И загрузка из той базы, и выгрузка туда. Так что при правильно заточенных руках - все замечательно работает.
#16 by mr_K
+ Главное из внешней базы напрямую в 1с  не писать. Это проблематично. Но тоже реализуемо(с некоторыми ограничениями)
#17 by xoma1c
Спасибо! Выходит для рализации задачи надо хорошо знать SQL операторы манипуляции данными (Data Manipulation Language, DML)?
#18 by Keper
C MySQL обмениваюсь. Если операции мелкие - проблем быть не должно. Если задачи тривиальные, особых знаний не нужно, всё гуглится.
#19 by xoma1c
Подозреваю, что в таблицах будет очень, очень много записей, и они будут неуклонно увеличиватся. Не будет ли тормозить запрос из 1с через ADODB и запись в отобранные запросом строки? Будет трмозить - смогу убедить не делать такую схему, жить на XML обмене.
#20 by Keper
вообще-то устаревшие записи можно удалять. Запросы как на чтение, так и на изменение не тормозят. Опять же повторюсь - всё зависит от конкретного случая. Надо проверять.
#21 by el-gamberro
ado и xml, это как гепард и черепаха))) так что убедить не удасться)))
#22 by xoma1c
Спасибо, убеждать не буду :)
#23 by xoma1c
Еще наверно глупый вопрос, если к MySQL например, несколько человек подключаются и пишут тударедактируют то как блокировка записей или таблицы происходит?
#24 by Любитель XML
см.
#25 by xoma1c
Действительно, все просто. ------------ В MySQL все блокировки, кроме блокировок таблиц типов InnoDB и BDB, не создают тупиковых ситуаций. Это обеспечивается за счет того, что все необходимые блокировки всегда запрашиваются единожды в начале запроса и блокировка таблиц всегда происходит в одном и том же порядке. В таблицах типа InnoDB устанавливается блокировка строк, а в таблицах типа BDB - блокировка страниц в процессе выполнения SQL-команд, а не в начале транзакции. Метод блокирования, используемый в MySQL для блокировок записи (WRITE), работает следующим образом:    * Если на данной таблице нет никаких блокировок, то на нее накладывается блокировка записи.    * В противном случае запрос на данную блокировку ставится в очередь блокировок записи. Метод блокирования, используемый в MySQL для блокировок чтения (READ), работает следующим образом:    * Если на данной таблице нет блокировок записи, то на нее накладывается блокировка чтения.    * В противном случае запрос на данную блокировку ставится в очередь блокировок чтения. При освобождении текущей блокировки становится возможной следующая блокировка для потоков из очереди блокировок записи, затем для потоков из очереди блокировок чтения.
#26 by ДАртаньян
В своё время делал внесение остатков из 7.7 бухгалтерии в складскую программу materials control. adoшные insertы в 6 таблиц к базе на оракле. Остатки сошлись. Влёгкую. Спецы по materials control потом 2 недели бока в базе разгребали, но так и не поняли :-), откуда беда пришла.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С