Подключение к другой базе 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 все время остается открытой с постоянным подключением к БД

63 Comments

  1. AKV77

    Протестировал. Работает. Только убери пользователя «Гл бух» — вылезает вне зависимости от того какого пользователя набираешь. Закомментируй строчки в коде.

    Reply
  2. Yashazz

    Как насчёт режима отладки при com-подключении, им можно рулить и в нём работать?

    Reply
  3. Незнайка

    (2) да

    (1) спасибо, исправил

    Reply
  4. EvgeniuXP

    спасибо, воспользуюсь данной обработкой, плохо что здесь сделали ограничение на скачивание через 1$, совсем не удобно! верните обратно плиз, раз в день, очень прошу.

    Reply
  5. Ichigo

    Клевая вещь, огромное спасибо!

    Reply
  6. Анатолий50

    Хорошая вещь, только долго будет бесполезная для меня и многих, нет у меня ваших денег. 🙂 Придется 10 раз выражать одобрение или негодование тому, что в глаза не видел. Интерес к сайту сразу упал.

    Reply
  7. soap

    Спасибо за идею лежало на поверхности а сам не допер

    Reply
  8. Zoomby

    Спасибо автору, воспользуемся.

    Reply
  9. Незнайка

    (6) ребята, у меня тоже нет Ваших денег, а хотелось бы … 🙂

    пишите в личку (andrey_k65@mail.ru), отправлю

    Reply
  10. MrXaN

    Автору огромное спасибо очень помогло

    Reply
  11. alekseineputin

    Плюсану, и безпонтовый пост оставлю. Ох, уж эти инфорублики (((

    Reply
  12. Незнайка

    (11) инфорублики — это что, Инфостарт за скачивание бабки берет?

    если да, то прикольно… а сколько?

    Reply
  13. asg1975

    Идея безусловно интересная. Но я лично подключаюсь в таких случаях прямо из обработки по параметрам введенным на форме (сохраняются в настройках). Вроде не сильно напрягает такой вариант. Разве что дольше на 5-10 секунд

    Reply
  14. Незнайка

    (13) до какого-то времени и меня не напрягало, но последнее время что-то у меня переносов и корректировок через OLE стало больше и не всегда ПОДКЛ-ОТКЛ это 5-10 сек. Иногда и 20-40, а когда это по 40 раз во время отладки, то достает немного.

    Reply
  15. alekseineputin

    (12) http://infostart.ru/profile/purse/ раньше было бесплатно раз в день, или с рейтингом больше 30. Теперь же на скачивание опубликованного кем-то чего-то требуется 1 стартденьга. Накапливается за счет сообщений и публикаций. Где-то здесь видел информацию по этой теме, но не помню. А искать недосуг сейчас.

    Reply
  16. fomix

    (9) За идею «+». Думаю очень пригодится в работе.А за открытость автора к диалогу «+++».

    Reply
  17. Alraune
  18. Незнайка

    (17) Очень хорошо все там написано, особенно:

    <<…Поэтому будьте вежливы и уважительны в общении, вне зависимости от уровня знаний и специализации

    собеседника …>>

    Помню еще год-полтора назад всё было несколько не так, некоторым (близким к императору) позволялось

    многое… Искренне рад, что теперь всё по другому.

    Reply
  19. alekseineputin

    (18) Посмотри на посты Поручика. Уж очень он любит сначала сказать, потом исправиться 😀

    Reply
  20. serg63

    Идея хорошая. Надо бы такое-же применить для Предприятия 7.7. Хотя раньше в 7.0 и 7.5 использовал загрузить текстовый файл программы в модуле. Сейчас и компьютеры мощные появились и загрузка Предприятие 7.7 быстро происходить и кеш используется при повторной загрузки. А для Предприятия 8 — это актуально (примерно 5-10 сек), особенно для отладки.

    Reply
  21. andru_dv

    Недавно как раз боролся с V8comConnector. А тут готовая обработка.

    Спасибо, помогает в повседневной работе программиста!

    Reply
  22. CaSH_2004

    Да автор молодец — я до аналогичного удобного интерфейса тоже дошел, но т.к. не часто юзаю ОЛЕ то и потребности в буфферизации не было, но будем иметь ввиду.

    Reply
  23. Lacrimosa0000

    Часто работаю с СОМ, хорошая идея, спасибо.

    Reply
  24. ValeriVP

    еще приделать выбор баз (как тут: http://infostart.ru/public/16628/ ) — было бы еще лучше

    Reply
  25. Alexey55

    Спасибо! классная вещь!

    Reply
  26. pmtvv

    гут, полезная штука

    Reply
  27. Незнайка

    (24) — добавил выбор баз и авторизацию

    Большое спасибо Rebelx за http://infostart.ru/public/16628/

    Reply
  28. den_vladimir

    Спасибо за Труд! Сам думал, что-нить в этом роде сделать — руки не дошли!

    Reply
  29. den_vladimir

    Спасибо за Труд! Сам думал, что-нить в этом роде сделать — руки не дошли!

    Reply
  30. CaSH_2004

    Все замечательно! А зачем указал в каких конфах может использоваться?

    Попытался соедениться с Альфа-Авто (8.1) по V81.Application, пишет ошибку:

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

    МассивПользователей = База.ПользователиИнформационнойБазы.ПолучитьПользователей();

    по причине:

    Произошла исключительная ситуация: Пользователю недостаточно прав для выполнения операции.

    И сделал бы запуск побработки 2 интуитивным, чтобы догадаться пришлось лезть в код

    Да и кнопка открытия маленькая, нервирует

    Reply
  31. Незнайка

    (30) Спасибо.

    Убрал ссылки на конфигурации

    Добавил кнопку «ОТКРЫТЬ».

    Reply
  32. xslava2008

    А нельзя ли простенький какой нибудь пример обработки для подключения из v8 в v77 ? Например перебор документа какого нибудь вида? Язык будет 7.7 или 8 ?

    Reply
  33. trvqaz

    спасибо большое!!! наконец-то нашел обработку нужную для 8.2!!! очень помогло в начинаниях разбирания внешних обработок 1С:)

    Reply
  34. trvqaz

    спасибо большое!!! наконец-то нашел обработку нужную для 8.2!!! очень помогло в начинаниях разбирания внешних обработок 1С:))

    Reply
  35. Djonny

    Хорошая вещь!

    Reply
  36. nika14

    Отличный пример! Спасибо!

    Reply
  37. softest

    Спасибо!

    Reply
  38. testy05

    Tnk!

    Reply
  39. testy05

    Спасибо! 8,2 работает!!!

    Reply
  40. Misanets

    Автор давай ликбез! Чем подключение через СОМ отличается от Application?

    У меня на рабочем ПК не работает СОМ соединаени, не знаю почему, комп уже такой был когда я за него сел, где что смотреть х.з., а про Аpplication что-то вобще не вспомнил кода понадобилось. Так что давай кратко и о главном 🙂

    Reply
  41. Kyrales

    Вообще че попало обработка. Попробовал COM-соединение к 8.2 подключится, ни черта не работает. Формы плавают. Интерфейс ниже плинтуса. Ошибки при нажатии на любую кнопку, надо же их отрабатывать.

    Reply
  42. Незнайка

    (42) Kyrales, Ну с одной стороны, спасибо за критику, какой бы она ни была.

    Разберусь.Исправлю.На выходных.

    С другой стороны, приятно порадовал Ваш дружелюбный тон, очень выдержанный,

    сразу видно воспитанного человека. С ним хочется конструктивно сесть за стол переговоров и в

    доброжелательной атмосфере решать вопросы. Заодно набраться опыта, общаясь с человеком, не допускающим

    ошибок. 🙂

    Reply
  43. Незнайка

    For all! Эта обработка — всего лишь пример для всех, кому это может пригодиться.

    Не коммерческая. Выкладывается «как есть». Посмотрите. Нужно — подправьте под себя.

    Причем, КАК ХОЧЕТСЯ.

    Reply
  44. opiumdx

    Интересная обработка!

    Reply
  45. Zas1402

    Спасибо автору, воспользуемся.

    Reply
  46. Kyrales

    (43) Я фиксирую факт, который есть на текущий момент. Если она у тебя тестовая, не надо её никуда выкладывать и лучше держать при себе.

    Reply
  47. Незнайка

    Если Вы фиксируете факты, то с одной стороны, спасибо Вам за это.

    С другой стороны, и фиксируйте себе дальше.

    И позвольте мне решать, что выкладывать и где держать, и Вам того же желаю. Это называется свобода. Если ребята выкладывают здесь что-то, а другие им подсказывают об ошибках или неточностях, то это как-бы «один воин поправляет другому доспехи» и с такими ребятами и в разведку можно.

    Ваш менторский тон вызывает только аналогичные Вашему тону чувства.

    Сильный (например, в программировании) — это не обязательно человек, который разговаривает так, как Вы.

    Я просмотрел Ваши обработки и Вы не найдете ни одного моего высказывания о них в том тоне, в котором это позволяете себе Вы. И не потому что сказать нечего. Но я уважаю Ваше право творить, программировать и т.д.,

    и мне трудно будет уважать себя, если бы мои высказывания были подобны Вашим. Извините.

    Reply
  48. mtv:)

    (0) Незнайка, у Вас в заголовке публикации есть строка: «( СПАСИБО alexk-is http://infostart.ru/public/96548/ )».

    Вообще-то автором публикации «Кнопка переоткрытия внешней обработки для 8.2» является ShantinTD. За что спасибо alexk-is — не понятно… 🙂

    Reply
  49. Незнайка

    (49) mtv:), Спасибо, исправил. Приношу извинения ShantinTD

    Reply
  50. nitr02k

    Идея интересная, но я думаю что для полного набора не хватает еще добавить коннект с 7.7 получился бы такой швейцарский набор… Пожалуй сделаю чтото подобно для себя. Спасибо!!!

    Reply
  51. Незнайка

    (51) nitr02k, да вроде есть коннект с 7.7….

    справа вверху переключатель 5 (V77.Application)

    Reply
  52. NOVOPRO

    Отличный пример! Спасибо!

    Reply
  53. Масянька

    Хорошая вещь главное удобная и простая!

    Reply
  54. need1cc

    огромное спасибо!

    Reply
  55. zverek2

    Огромное спасибо автору. Как пример, данная обработка мне очень пригодилась. Интерфейс понятен и удобен.

    Reply
  56. XPg

    СУпер! особенно когда понять не можешь с чего начать и как пользоваться, а созданные кем либо примеры всегда облегчают работу!

    Reply
  57. astonvilla

    Скачал как пример..

    Надо написать обмен по ОЛЕ между базами 8.2

    Т.ч. плюсую авансом 🙂

    Reply
  58. rom-x

    Отличная обработка, удобно красиво наглядно. Есть небольшое предложение добавить массовый перебор из папок: указываем папку с базами, и обработка поочередно подключается к каждой.

    Reply
  59. WellMaster

    Пытаюсь подключиться к базе методом COMCOnnector, не подключается и пишет «БД НЕ ПОДКЛЮЧЕНА!»

    Что делаю не так?

    Reply
  60. seermak

    Скачал, посмотрел «+» отправил. Общее замечание для тех, кто(как и я) ставит платформу в «свои каталоги» — обработка работать не будет — библиотека не регистрируется = выход: переставляйте платформу в каталоги с АНГЛИЦКИМИ буквами. «проверено — мин нет». Переделал обработку под 8.2 управляемые — проблема = после подключения рвет соединение — если ссылку на подключение «Ваза» хранить на сервере, то после выполнения подключения форма удаляет серверные переменные и ссылки, а если на клиенте — не будет работать такое подключение дальше….. Я решил — все работает, как надо (хвастаюсь). Не понятно = 77 и 81 работают правильно, а 82 открывает подключаемую базу — (я один такой, или еще есть «особо одаренные») — вернее всего проблема в строке подключения… Кстати, в Вашей обработке для 77 немного неточно — выводится окно авторизации = добавьте в строке подключения «/M /N» + Пользователь,». Не стоит пытаться при подключении к базе «выдирать» пароли пользователей обычным способом — их там нет = выход — «тырить» их когда пользователь вводит пароль в поле «Пароль» или искать где они хранятся в файлах базы. Если надо обработку — пишите С уважением, дата, подпись

    PS да и еще: по команде отключения от базы (если в программе стоит защита от выключения) обработка вешается напрочь = решение= добавить в процедуру отключения: Если Объект.ТипПодключения <> 5 Тогда

    База.ЗавершитьРаботуСистемы(Ложь);

    КонецЕсли;

    Reply
  61. OrsoBear

    Уважаемые коллеги, вижу тут знатоки OLE собрались.

    Возникает в последнее время такая проблема.

    Подключаюсь по OLE из 8.2 к 7.7, либо из 7.7 к 7.7

    Могу с обычного компьютера, могу на сервере.

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

    После этого закрываю открытую базу OLE в диспетчере задач.

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

    Выгрузки за день производятся по многу раз. Код уже отлажен, и ошибок 1С нет.

    Но иногда приключаются форс мажоры в виде транзакций на SQL и подобные.

    И тогда спасает только перезагрузка.

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

    Заранее спасибо за помощь.

    Reply
  62. AlexO

    (63) OrsoBear, OLE-служба сервера 1С глючит.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *