gifts2017

Подключение к другой базе V.8 через OLE

Опубликовал Андрей Коляда (Незнайка) в раздел Программирование - Инструментарий

Работающим с OLE посвящается...

29.10.2011 г.
Исправлены баги с формой,
Добавил кнопку "Ctrl+Z ПЕРЕОТКРЫТЬ ОБРАБОТКУ"   (СПАСИБО  ShantinTD http://infostart.ru/public/96548/)
Не протестировал соединение с базой в клиент-серверном варианте, нет времени. Сделаю чуть позже или  может кто протестит, буду благодарен (напишу СПАСИБО большими буквами :-))
12.10.2011 г. - Добавил подключение к v.7.7
08.10.2011 г. - Добавил выбор баз и авторизацию + улучшения по мелочи

Наконец-то дошли руки доделать эту обработку. Ничего нового, просто небольшое удобство в работе.

Обычно, когда нужно было подключиться к другой БД (v.8) и функционал подключения и функционал собственно необходимых действий я писал в одной обработке. Алгоритм действий в этом случае был такой:

  1. создать обработку, написать необходимые функции/процедуры,
  2. запустить обработку (в пользовательском режиме),
  3. подключиться к нужной БД,
  4. запустить на выполнение нужную мне процедуру/функцию
  5. если ошибок нет, то все хорошо. Если есть ошибки или нужно что-то доделать, то п. 6
  6. отключиться от БД
  7. записать изменения в конфигураторе, сохранить и снова с п. 2 по п. 5

Но, так как отладка чаще всего состоит из большего количества итераций, чем мне хочется,то рутинные действия ПОДКЛЮЧИТЬ БД-ОТКЛЮЧИТЬ БД просто задолбали. В результатеродилось такое маленькое решение разделить одну обработку на две.

  •  Обработка №1 (это та, которую Вы можете скачать) подключается к нужной БД,сохраняя ссылку на БД в переменной База.

  •  Обработка №2 (эту обработку Вы создаете сами, пишите в ней чего Вам нужно) запускается из обработки № 1.В обработке №2 должен быть реквизит База (реквизит обработки или реквизит формы).

  Алгоритм действий в этом случае был такой:

  1. создать обработку №2, написать необходимые функции/процедуры,
  2. запустить обработку №1 (в пользовательском режиме),
  3. подключиться к нужной БД,
  4. запустить обработку №2 из обработки №1
  5. если ошибок нет, то все хорошо. Если есть ошибки или нужно что-то доделать, то п. 6
  6. закрыть обработку №2
  7. сделать изменения в обработке №2, сохранить и снова с п. 4

    Т.е. обработка №1 все время остается открытой с постоянным подключением к БД


Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Основной файл обработки
.epf 391,99Kb
24.08.14
517
.epf 391,99Kb 517 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Андрей (AKV77) 05.10.11 12:35
Протестировал. Работает. Только убери пользователя "Гл бух" - вылезает вне зависимости от того какого пользователя набираешь. Закомментируй строчки в коде.
2. Яков Коган (Yashazz) 05.10.11 12:36
Как насчёт режима отладки при com-подключении, им можно рулить и в нём работать?
3. Андрей Коляда (Незнайка) 05.10.11 12:55
4. EvgeniuXP EvgeniuXP (EvgeniuXP) 05.10.11 15:22
спасибо, воспользуюсь данной обработкой, плохо что здесь сделали ограничение на скачивание через 1$, совсем не удобно! верните обратно плиз, раз в день, очень прошу.
5. Андрей Савенков (Ichigo) 05.10.11 17:42
Клевая вещь, огромное спасибо!
6. Анатолий (Анатолий50) 05.10.11 17:46
Хорошая вещь, только долго будет бесполезная для меня и многих, нет у меня ваших денег. :) Придется 10 раз выражать одобрение или негодование тому, что в глаза не видел. Интерес к сайту сразу упал.
Svb84; 02RUSlan; vas.kif-ae; +3 Ответить 1
7. Борис (soap) 05.10.11 23:50
Спасибо за идею лежало на поверхности а сам не допер
8. Zoomby Zoomby (Zoomby) 06.10.11 00:04
Спасибо автору, воспользуемся.
9. Андрей Коляда (Незнайка) 06.10.11 01:00
(6) ребята, у меня тоже нет Ваших денег, а хотелось бы ... :-)
пишите в личку (andrey_k65@mail.ru), отправлю
rawstein; fomix; Zoomby; +3 Ответить 1
10. Pavel Nevzorov (MrXaN) 06.10.11 08:57
Автору огромное спасибо очень помогло
11. Алексей . (mamanelli) 06.10.11 09:20
Плюсану, и безпонтовый пост оставлю. Ох, уж эти инфорублики (((
12. Андрей Коляда (Незнайка) 06.10.11 09:25
(11) инфорублики - это что, Инфостарт за скачивание бабки берет?
если да, то прикольно... а сколько?
13. Алексей Гришков (asg1975) 06.10.11 09:36
Идея безусловно интересная. Но я лично подключаюсь в таких случаях прямо из обработки по параметрам введенным на форме (сохраняются в настройках). Вроде не сильно напрягает такой вариант. Разве что дольше на 5-10 секунд
14. Андрей Коляда (Незнайка) 06.10.11 09:42
(13) до какого-то времени и меня не напрягало, но последнее время что-то у меня переносов и корректировок через OLE стало больше и не всегда ПОДКЛ-ОТКЛ это 5-10 сек. Иногда и 20-40, а когда это по 40 раз во время отладки, то достает немного.
15. Алексей . (mamanelli) 06.10.11 09:46
(12) http://infostart.ru/profile/purse/ раньше было бесплатно раз в день, или с рейтингом больше 30. Теперь же на скачивание опубликованного кем-то чего-то требуется 1 стартденьга. Накапливается за счет сообщений и публикаций. Где-то здесь видел информацию по этой теме, но не помню. А искать недосуг сейчас.
bionicle; 02RUSlan; +2 Ответить 1
16. Fomix (fomix) 06.10.11 09:52
(9) Незнайка, За идею "+". Думаю очень пригодится в работе.А за открытость автора к диалогу "+++".
18. Андрей Коляда (Незнайка) 06.10.11 10:25
(17) Очень хорошо все там написано, особенно:
<<...Поэтому будьте вежливы и уважительны в общении, вне зависимости от уровня знаний и специализации
собеседника ...>>
Помню еще год-полтора назад всё было несколько не так, некоторым (близким к императору) позволялось
многое... Искренне рад, что теперь всё по другому.
19. Алексей . (mamanelli) 06.10.11 10:49
(18) Посмотри на посты Поручика. Уж очень он любит сначала сказать, потом исправиться :D
20. Sergey Б (serg63) 06.10.11 12:21
Идея хорошая. Надо бы такое-же применить для Предприятия 7.7. Хотя раньше в 7.0 и 7.5 использовал загрузить текстовый файл программы в модуле. Сейчас и компьютеры мощные появились и загрузка Предприятие 7.7 быстро происходить и кеш используется при повторной загрузки. А для Предприятия 8 - это актуально (примерно 5-10 сек), особенно для отладки.
21. Андрей (andru_dv) 06.10.11 14:22
Недавно как раз боролся с V8comConnector. А тут готовая обработка.
Спасибо, помогает в повседневной работе программиста!
22. Олег Шалимов (CaSH_2004) 06.10.11 14:40
Да автор молодец - я до аналогичного удобного интерфейса тоже дошел, но т.к. не часто юзаю ОЛЕ то и потребности в буфферизации не было, но будем иметь ввиду.
23. Елена из Средиземья (Lacrimosa0000) 06.10.11 18:26
Часто работаю с СОМ, хорошая идея, спасибо.
24. - - (Rebelx) 06.10.11 19:04
еще приделать выбор баз (как тут: http://infostart.ru/public/16628/ ) - было бы еще лучше
25. Alexey Pak (Alexey55) 07.10.11 09:53
26. tvv (pmtvv) 08.10.11 00:07
27. Андрей Коляда (Незнайка) 08.10.11 06:40
(24) - добавил выбор баз и авторизацию
Большое спасибо Rebelx за http://infostart.ru/public/16628/
28. Владимир Денисов (den_vladimir) 09.10.11 15:58
Спасибо за Труд! Сам думал, что-нить в этом роде сделать - руки не дошли!
29. Владимир Денисов (den_vladimir) 09.10.11 15:58
Спасибо за Труд! Сам думал, что-нить в этом роде сделать - руки не дошли!
30. Олег Шалимов (CaSH_2004) 10.10.11 19:10
Все замечательно! А зачем указал в каких конфах может использоваться?
Попытался соедениться с Альфа-Авто (8.1) по V81.Application, пишет ошибку:

{Форма.ОсновнаяФорма.Форма(340)}: Ошибка при вызове метода контекста (ПолучитьПользователей)
МассивПользователей = База.ПользователиИнформационнойБазы.ПолучитьПользователей();
по причине:
Произошла исключительная ситуация: Пользователю недостаточно прав для выполнения операции.

И сделал бы запуск побработки 2 интуитивным, чтобы догадаться пришлось лезть в код
Да и кнопка открытия маленькая, нервирует
31. Андрей Коляда (Незнайка) 10.10.11 23:41
(30) Спасибо.
Убрал ссылки на конфигурации
Добавил кнопку "ОТКРЫТЬ".
32. Вячеслав Яштаев (xslava2008) 13.10.11 22:57
А нельзя ли простенький какой нибудь пример обработки для подключения из v8 в v77 ? Например перебор документа какого нибудь вида? Язык будет 7.7 или 8 ?
33. Владислав Литвинов (trvqaz) 15.10.11 16:47
спасибо большое!!! наконец-то нашел обработку нужную для 8.2!!! очень помогло в начинаниях разбирания внешних обработок 1С:)
34. Владислав Литвинов (trvqaz) 15.10.11 16:49
спасибо большое!!! наконец-то нашел обработку нужную для 8.2!!! очень помогло в начинаниях разбирания внешних обработок 1С:))
35. Евгений (Djonny) 15.10.11 18:03
36. Ника (nika14) 18.10.11 16:39
Отличный пример! Спасибо!
37. Тарас (softest) 22.10.11 02:14
38. Илья Одноэсник (testy05) 26.10.11 15:41
39. Илья Одноэсник (testy05) 26.10.11 15:43
40. Alex Misanets (Misanets) 27.10.11 19:54
Автор давай ликбез! Чем подключение через СОМ отличается от Application?
У меня на рабочем ПК не работает СОМ соединаени, не знаю почему, комп уже такой был когда я за него сел, где что смотреть х.з., а про Аpplication что-то вобще не вспомнил кода понадобилось. Так что давай кратко и о главном :)
42. Олег Каратаев (Kyrales) 28.10.11 06:47
Вообще че попало обработка. Попробовал COM-соединение к 8.2 подключится, ни черта не работает. Формы плавают. Интерфейс ниже плинтуса. Ошибки при нажатии на любую кнопку, надо же их отрабатывать.
Прикрепленные файлы:
43. Андрей Коляда (Незнайка) 28.10.11 06:57
(42) Kyrales, Ну с одной стороны, спасибо за критику, какой бы она ни была.
Разберусь.Исправлю.На выходных.
С другой стороны, приятно порадовал Ваш дружелюбный тон, очень выдержанный,
сразу видно воспитанного человека. С ним хочется конструктивно сесть за стол переговоров и в
доброжелательной атмосфере решать вопросы. Заодно набраться опыта, общаясь с человеком, не допускающим
ошибок. :-)
44. Андрей Коляда (Незнайка) 28.10.11 07:01
For all! Эта обработка - всего лишь пример для всех, кому это может пригодиться.
Не коммерческая. Выкладывается "как есть". Посмотрите. Нужно - подправьте под себя.
Причем, КАК ХОЧЕТСЯ.
45. Michael Smith (opiumdx) 28.10.11 14:53
46. Игор Мудрицкий (Zas1402) 28.10.11 16:42
Спасибо автору, воспользуемся.
47. Олег Каратаев (Kyrales) 28.10.11 18:44
(43) Я фиксирую факт, который есть на текущий момент. Если она у тебя тестовая, не надо её никуда выкладывать и лучше держать при себе.
48. Андрей Коляда (Незнайка) 28.10.11 19:09
Если Вы фиксируете факты, то с одной стороны, спасибо Вам за это.
С другой стороны, и фиксируйте себе дальше.
И позвольте мне решать, что выкладывать и где держать, и Вам того же желаю. Это называется свобода. Если ребята выкладывают здесь что-то, а другие им подсказывают об ошибках или неточностях, то это как-бы "один воин поправляет другому доспехи" и с такими ребятами и в разведку можно.
Ваш менторский тон вызывает только аналогичные Вашему тону чувства.
Сильный (например, в программировании) - это не обязательно человек, который разговаривает так, как Вы.
Я просмотрел Ваши обработки и Вы не найдете ни одного моего высказывания о них в том тоне, в котором это позволяете себе Вы. И не потому что сказать нечего. Но я уважаю Ваше право творить, программировать и т.д.,
и мне трудно будет уважать себя, если бы мои высказывания были подобны Вашим. Извините.
49. Ю М (mtv:)) 29.10.11 20:06
(0) Незнайка, у Вас в заголовке публикации есть строка: "( СПАСИБО alexk-is http://infostart.ru/public/96548/ )".
Вообще-то автором публикации "Кнопка переоткрытия внешней обработки для 8.2" является ShantinTD. За что спасибо alexk-is - не понятно... :-)
50. Андрей Коляда (Незнайка) 30.10.11 00:11
(49) mtv:), Спасибо, исправил. Приношу извинения ShantinTD
51. nitro (nitr02k) 02.11.11 16:10
Идея интересная, но я думаю что для полного набора не хватает еще добавить коннект с 7.7 получился бы такой швейцарский набор... Пожалуй сделаю чтото подобно для себя. Спасибо!!!
52. Андрей Коляда (Незнайка) 02.11.11 16:23
(51) nitr02k, да вроде есть коннект с 7.7....
справа вверху переключатель 5 (V77.Application)
53. Anatoliy (NOVOPRO) 09.11.11 03:55
Отличный пример! Спасибо!
54. Татьяна Беляева (Масянька) 27.11.11 05:27
Хорошая вещь главное удобная и простая!
56. arr arrr (need1cc) 07.01.12 19:16
57. zverek2 16.01.12 16:19
Огромное спасибо автору. Как пример, данная обработка мне очень пригодилась. Интерфейс понятен и удобен.
58. PaBuJlb XaupyJluH (rawstein) 08.02.12 11:05
СУпер! особенно когда понять не можешь с чего начать и как пользоваться, а созданные кем либо примеры всегда облегчают работу!
59. Владимир Костецкий (astonvilla) 12.03.12 19:42
Скачал как пример..
Надо написать обмен по ОЛЕ между базами 8.2
Т.ч. плюсую авансом :)
60. Роман Хусяинов (rom-x) 07.04.12 23:19
Отличная обработка, удобно красиво наглядно. Есть небольшое предложение добавить массовый перебор из папок: указываем папку с базами, и обработка поочередно подключается к каждой.
61. WellMaster (WellMaster) 05.06.12 14:33
Пытаюсь подключиться к базе методом COMCOnnector, не подключается и пишет "БД НЕ ПОДКЛЮЧЕНА!"
Что делаю не так?
62. Сергей (seermak) 28.06.12 04:27
Скачал, посмотрел "+" отправил. Общее замечание для тех, кто(как и я) ставит платформу в "свои каталоги" - обработка работать не будет - библиотека не регистрируется = выход: переставляйте платформу в каталоги с АНГЛИЦКИМИ буквами. "проверено - мин нет". Переделал обработку под 8.2 управляемые - проблема = после подключения рвет соединение - если ссылку на подключение "Ваза" хранить на сервере, то после выполнения подключения форма удаляет серверные переменные и ссылки, а если на клиенте - не будет работать такое подключение дальше..... Я решил - все работает, как надо (хвастаюсь). Не понятно = 77 и 81 работают правильно, а 82 открывает подключаемую базу - (я один такой, или еще есть "особо одаренные") - вернее всего проблема в строке подключения... Кстати, в Вашей обработке для 77 немного неточно - выводится окно авторизации = добавьте в строке подключения "/M /N" + Пользователь,". Не стоит пытаться при подключении к базе "выдирать" пароли пользователей обычным способом - их там нет = выход - "тырить" их когда пользователь вводит пароль в поле "Пароль" или искать где они хранятся в файлах базы. Если надо обработку - пишите С уважением, дата, подпись
PS да и еще: по команде отключения от базы (если в программе стоит защита от выключения) обработка вешается напрочь = решение= добавить в процедуру отключения: Если Объект.ТипПодключения <> 5 Тогда
База.ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;
63. Alex Steiner (OrsoBear) 12.03.13 13:46
Уважаемые коллеги, вижу тут знатоки OLE собрались.
Возникает в последнее время такая проблема.
Подключаюсь по OLE из 8.2 к 7.7, либо из 7.7 к 7.7
Могу с обычного компьютера, могу на сервере.

И бывает, вывалится обработка с ошибкой, к примеру какой-либо код не отработал.

После этого закрываю открытую базу OLE в диспетчере задач.
И снова к ней подключиться уже не могу до перезагрузки сервера (или компьютера)

Выгрузки за день производятся по многу раз. Код уже отлажен, и ошибок 1С нет.
Но иногда приключаются форс мажоры в виде транзакций на SQL и подобные.
И тогда спасает только перезагрузка.

Может кто-то в курсе, где что нужно проверять?

Заранее спасибо за помощь.
64. Алекс Ю (AlexO) 10.06.15 12:05
(63) OrsoBear, OLE-служба сервера 1С глючит.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа