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