Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 00:02

Запуск процедур 1С из Access

Автор Александр Ашихмин, 19 янв 2016, 06:49

0 Пользователей и 1 гость просматривают эту тему.

Александр Ашихмин

Доброе утро, ребят
Сложно угадать: относится ли эта тема к 1С или к Аксесс. Т.к. я думаю, что ошибся где-то в 1С, напишу сюда.

Задача состоит в том, чтобы подключиться к 1С серверным способом и из аксесс вызвать процедуру в 1С с передачей в нее данных.

Я создал базу в 1С, как полагается (я так думаю) :)
При запуске аксесс происходит подключение к Базе в 1С: (ниже код)
Public v8 As Object
Public Connect As Object
Set v8 = CreateObject("V83.COMConnector")
Set Connect = v8.Connect("Srvr=""server"";Ref=""1C-2016"";Usr=""Автозагрузка"";Pwd=""******""")
MsgBox ("Подключился")



То, что соединение есть свидетельствует запись в 1Сv8 servers, что есть СОМ-соединение.

Далее в аксесс вызываю
If [Статус] <> "Предварительная заявка" Then
   Set Ydogs = CurrentDb.OpenRecordset("select * from GP where [ДоговорПолный]='Y123'", dbOpenDynaset)
   Rez = Connect.ДоработкиКлиентСервер.СоздатьРеализацию("" & Ydogs![ИД] & "", 0, "" & Ydogs![ДоговорПолный] & "") // урезал код, т.к. просто передается список данных.
   MsgBox "Успешно."
End If



В 1С стоит "останова" (см. вложение) и при вызове данной процедуры был бы стоп... но его не происходит, просто выходит сообщение в аксесс "Успешно".

Подскажите пжлст, где я недоглядел чего. Спасибо.

Emil Karapetyan

Точку остановки поставь на Параметры = Новый Массив;
Если у тебя СУБД имеет тип серверный, тогда надо включить отладчик на сервере, для этого надо в реестр добавить ключ, вот этот гайд тебе в помощь http://www.gilev.ru/debug/
Интереса ради, а зачем из акссеса коннектиться к 1С?)

cska-fanat-kz

отладка внешнего соединения не факт что сработает после даже всех выкрутасов с настройкой отладки...

можно в нужных местах писать в журнал регистрации
или отладить процедуру сперва в обработке
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Александр Ашихмин

Цитата: Emil Karapetyan от 19 янв 2016, 09:10
Точку остановки поставь на Параметры = Новый Массив;
Если у тебя СУБД имеет тип серверный, тогда надо включить отладчик на сервере, для этого надо в реестр добавить ключ, вот этот гайд тебе в помощь http://www.gilev.ru/debug/
Интереса ради, а зачем из акссеса коннектиться к 1С?)

привет. у меня есть программа в аксесс "производство", пока я ее не перенес в 1с и не отладил мне нужно чтобы я заносил все не в ручную из аксесс в 1с, а таким способом.
сейчас у меня это работает как пользователь подключается и в фоновом режиме передает данные, но это нужно каждый раз жать кнопку и ждать. а таким способом я думаю я смогу передовать данные моментально. Вот для чего.

Что касается Debug то он у меня подключен. Вот только ничего не происходит. может я делаю что-то нитак, например делаю подключение при работающем конфигураторе или где-то кнопочку не нажал.
Сейчас уже сделал проще. по клику кнопки в аксесс происходит следующее
Rez = Connect.ДоработкиКлиентСервер.Тест()

а в 1С
Процедура Тест()
Сообщить("Работает");
КонецПроцедуры


Подскажи куда еще смотреть. Прям растерялся

cska-fanat-kz

сеанс внешнего соединения БЕЗ интерфейсной части!
где вы собрались увидеть ваше Сообщить()?
говорю же -
Цитата: cska-fanat-kz от 20 янв 2016, 04:50можно в нужных местах писать в журнал регистрации
в этом случае в журнале регистрации увидите свое "Работает" и поймете, что работает :btbzdb:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Александр Ашихмин

Ребят, спасибо. Благодаря журналу понял, что забыл подключить отладку.
Кому полезно будет:
Отладка - Подключение- Там в списке должно быть ваше подключение. Тогда в Журнале видно, что все подключилось и ок. Спасибо всем ;)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск