Имя: Пароль:
1C
1C 7.7
v7: Как сделать такой обмен между 2-мя базами с помощью Sqlite с распараллеливанием процессов?
0 FobusVGrunt
 
17.05.16
15:15
Добывать данные через OLE  из другой базы, медленно + различные ограничения (с длинными строками проблемы там и другие есть). Если попробовать так:
Через OLE подключаемся к нужной БД, там запускаем глобальную процедуру по выгрузки данных в БД Sqlite (через обработку ожидания).
В основной базе подключаемся к этой  же БД Sqlite и читаем данные. Сделать таблицу куда будут помещаться имена выгруженных видов объектов. Основная база мониторит  эту таблицу и при появление новой строке начинает грузить таблицу.  OLE процесс выгружает данные, основной процесс грузит.  Какие ЗА и ПРОТИВ? Взлетит или нет?
1 Heckfy
 
17.05.16
15:20
А чем РИБ не подходит?
2 FobusVGrunt
 
17.05.16
15:25
(1) Суть задачи немного другая, при переносе не которые реквизиты меняются, есть и другие моменты
3 FobusVGrunt
 
17.05.16
15:26
(1) + это разовые обмены, а не на постоянной основе
4 Wern
 
17.05.16
15:48
(3) Чем КД не подходит?
5 FobusVGrunt
 
17.05.16
15:51
(4) Что такое КД?
6 Avalone2010
 
17.05.16
15:51
(4)ее учить надо, велосипеды с оле намного веселее. Особенно когда после тебя приходит другой программист и разбирает их. Ох как ему весело!
7 Avalone2010
 
17.05.16
15:52
(5)конвертация данных.Конфигурация такая есть
8 Valerik0101
 
17.05.16
15:53
Взлетит. Против.
С сайтом один такой похожий обмен сделан, только через мсскуль. Работает.
Насколько это целесообразно для обмена между базами 1С - есть сомнения, но взлетит если правильно сделать.
9 FobusVGrunt
 
17.05.16
15:55
(8) Почему против ?
10 Mikeware
 
17.05.16
15:58
(0) подключайся как к внешней базе, метаданные присоединяй через 1с++, и тяни напрямую.
И да, класс "прямой запрос" вроде мог работать с другой базой тоже.
11 FobusVGrunt
 
17.05.16
16:01
(8) Есть 3-основных подхода:
1)РИБ
2) Заходить в одну базу выгружать данные в промежуточный файл, заходить в другую загружать.
3) Через OLE
Ну про КД  нечего не могу сказать, незнаком.
Чем такой нестандартных подход хуже, который я предложил. Пользователь  запускает обработку в одной базе, без сложных настроек и беготни из одной базы в другую. + думаю скорость на порядок должна быть больше. Перебор  ОЛЕТЗ-ки или ОЛЕ справочника в раз 10 медленей работает, чем не ОЛЕ
12 FobusVGrunt
 
17.05.16
16:02
(10) Не совсем понятно "подключится как к внешней базе"
13 Злопчинский
 
17.05.16
16:04
(5) нахрена это самосвал в клюшках? я понимаю его использование в обменах 8-8 где восьмерчники схемы данных не знают/не помнят и за любым чихом в КД лезут...
14 Mikeware
 
17.05.16
16:06
(13) ну, при должном навыке - гораздо проще.
Ну и это уже стандарт, хочешь ты этого или нет.
15 ДенисЧ
 
17.05.16
16:07
(13) Могу продать резиновую кувалдочку (сегодня в магазине видел).
16 Mikeware
 
17.05.16
16:09
17 Mikeware
 
17.05.16
16:09
(15) XNJ, GJ K,E&
18 ДенисЧ
 
17.05.16
16:13
(17) Составишь компанию? Одному там скучно
19 FobusVGrunt
 
17.05.16
16:23
(16) Тут для SQL версии по-моему только
20 Mikeware
 
17.05.16
16:25
(19) тут для метаданных. а уж используя подготовленный запрос, можешь обращаться и к чужой базе.
Ну и посмотри класс ПрямойЗапрос, там _вроде_ было сделано и для 1склайт, но не гарантирую
21 FobusVGrunt
 
17.05.16
16:27
(20) ок спс
22 Ёпрст
 
17.05.16
16:29
(20) ошибаешься, скульлайт работает только в родной базе.

Если нужен для дбф запрос к сторонней базе, то всё лепится через фоксовый провайдер.
И типизацию можно прикрутить, при желании и метапарсер будет работать и .. что хочешь.
Ну и по большому счету, особой разницы нет, куда запрос лепить, в скулеву базу или дбф.
23 Mikeware
 
17.05.16
16:31
(22) ну, через фоксу у тебя на страничке вроде пример есть, гуглится первым...
24 Ёпрст
 
17.05.16
16:32
(23) ээ.. а че за страничка ? :)
25 Mikeware
 
17.05.16
16:32
(24) "911" не твое?
26 Ёпрст
 
17.05.16
16:34
(25) не.. это вроде КонецЦикла делал, могу ошибаться
27 Mikeware
 
17.05.16
16:36
28 Ёпрст
 
17.05.16
16:37
А код, для синхронизации, валялся на форуме 1cpp, я его только модернизировал в своё время чутка.
29 FobusVGrunt
 
17.05.16
16:37
(0) Все равно хотелось бы услышать по теме. За и Против предложенного метода. + распараллелить выгрузку и загрузку
30 Mikeware
 
17.05.16
16:38
31 Ёпрст
 
17.05.16
16:39
Оле вообще зло.
Проще брать готовые решения. Уриб, например, для отслеживания изменений, МОД для отправки этих изменений.
Усё.
32 Ёпрст
 
17.05.16
16:40
ну, или просто взять мод, поправить там регистрацию в глобальничке(код чутка) и пользовать его
33 Mikeware
 
17.05.16
16:41
(31) Зло - это деньги. поэтому всегда зла не хватает. а оле - ну, что-то типа (30)
Не, использовать, конечно, можно. но нуегонафик
34 Ёпрст
 
17.05.16
16:43
(33) не, ну разово, оля вполне себе, но на постоянной основе - в печь.
35 FobusVGrunt
 
17.05.16
16:46
(31) В моем примере ОЛЕ одну функцию глобальную запускает, а не лопатит всю базу. Такой обмен не постоянный, так что Уриб не катит. Перенести данные с одной БД в другую и месяц по-мониторить  изменения в старой базе и обновить в новой.
36 FobusVGrunt
 
17.05.16
16:46
(30) Чтоб еще немного аргументированно
37 Mikeware
 
17.05.16
16:47
(34) разово -да. но и то если на одном сервере...
38 Mikeware
 
17.05.16
16:47
(36) опыт.
39 Карупян
 
17.05.16
17:00
(11) Варианты 1 и 2 по сути одно и тоже
40 Карупян
 
17.05.16
17:01
хочешь скорости - смотри в сторону сервисов веб или хттп илои одата
41 aleks_default
 
17.05.16
17:02
(35)А как отслеживать внесенные изменения будешь?
42 Mikeware
 
17.05.16
17:03
(39) ценность РБД - в автоматической регистрации...
43 Mikeware
 
17.05.16
17:04
(40) веб и прочее - толко если через какую-то прокладку типа серджиниевской компоненты для .нет
44 FobusVGrunt
 
17.05.16
17:53
(41) таблицу соотвествия создам в той же БД SQLite. Мне пока нужно  отслеживать только новые объекты. две колонки ID старой базы и ID объекта в новой базе. В этой таблице хранить ID  старой базы и соответ. ID новой. При появлении нового объекта в старой базе смотрит в этой таблице наличие с таким ID, нет создается новый
45 aleks_default
 
17.05.16
17:56
(44)Ну так а че бы не начать писать тогда уже свою "убийцу 1с"? Все равно уже полфункционала переписал.
46 Djelf
 
17.05.16
21:14
(44) Таблица соответствия пойдет, можно еще перехватчиком подписаться на на событие ПриЗаписи и сразу писать версию записи в sqlite из базы источника.
Вот только вытягивать данные из 100500 табличек через sqlite будет сложнее, чем через КД - придется создавать таблички.
Должно взлететь. Но попарится придется.
47 4St
 
17.05.16
21:44
Что-то с многопоточным обменом делали ребята из 2is. Можно их ещё погуглить.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс