Коллеги, я в последнее время по работе активно использую доступ к 1С из внешнего приложения.
Думаю, эта тема будет интересна многим. В этой ветке я буду выкладывать примеры кода с пояснениями и прошу Ваших комментариев и пожеланий.
Подключение к 1С v.8 через COMConnector
Внешнее соединение с приложением 1С v.8 может осуществляться двумя способами — через объекты OLEAutomation и COMConnection.
Основное отличие — первый вариант обращается к полноценному приложению, включая интерфейсные объекты (окно приложения, формы, табло и т.п.). Второй вариант предназначен для работы с данными без обращения к интерфейсу. Второй вариант гораздо производительнее и требует меньше ресурсов.
Поскольку мне в работе приходится обращаться к 1С именно через COMConnection, я буду приводить примеры работы именно через этот механизм. Язык программирования — VBA.
Итак, первый код. Получаем подключение к 1С.
Подключаем к проекту VBA ссылку на библиотеку 1CV81 COMConnector Tipe Library (меню Tools — Refernces).
Копируем в модуль код:
Public v8 As Object
Dim v8con As New V81.COMConnector
Public Sub v8connect()
'Версия для файлового варианта 1С
'Set v8 = v8con.Connect("File=""C:Путь к папке с конфигурацией""; Usr =""ИмяПользователя"";Pwd=""Пароль""")
'Версия для серверного варианта 1С
Set v8 = v8con.Connect("Srvr=ИмяСервера1С;Ref=ИмяИнформационнойБазы;Usr =""ИмяПользователя"";Pwd=""Пароль""")
End Sub
В результате получаем публичную переменную v8 типа Object с активным подключением к заданной информационной базе.
Все параметры понятны интуитивно. Путь к базе, сервер и имя базы можно подсмотреть в окне запуска 1С.
#1
08.11.2010, 12:09
Последнее редактирование: 08.11.2010, 12:32 от Алексей Шмуйлович
Пример работы со справочником Контрагенты
'Получение ссылки на элемент справочника Контрагенты
'В системе 1С принято организациями назвать юрлица, бухгалтерский учет которых ведется в информационной системе (свои фирмы).
'Все остальные юрлица учитываются в справочнике Контрагенты. Причем организации также присутствуют в справочнике Контрагенты,
'но не наоборот.
'SpravContragent - функция возвращает логическое значение True, если удалось получить ссылку на элемент справочника Контрагенты
'v8 - объект COMConection, с установленным подключеннием к базе 1С
'INN - Строка ИНН для поиска элемента в справочнике
'Name - Строка Наименования для проверки на соответствие ИНН и наименования (некоторые госучреждения имеют одинаковый ИНН)
'Org - Срока с названием нашей организации. В случае добавления нового контрагента будет создан договор на эту организацию.
'Ref - в эту объектную переменную будет помещена ссылка на элемент справочника в случае успешного исполнения функции
'Message - Строка с сообщением об ошибках и прочих особых обстоятельствах
Public Function SpravContragent(v8 As Object, INN As String, Name As String, Org As String, Ref As Object, Message As String) As Boolean
'Ищем элемент справочника
Set Ref = v8.Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", INN)
If Ref.Наименование = "" Then 'Если получили пустую ссылку, создаем нового контрагента
Set Ref = v8.Справочники.Контрагенты.СоздатьЭлемент()
Ref.Наименование = Name
Ref.ИНН = INN
'Предварительно создайте в справочнике Контрагенты папку (группу) "Новые контрагенты"
Ref.Родитель = v8.Справочники.Контрагенты.НайтиПоНаименованию("Новые контрагенты")
Ref.Записать
Set Дог = v8.Справочники.ДоговорыКонтрагентов.СоздатьЭлемент()
Дог.Наименование = "Основной договор"
Дог.Владелец = Ref.ссылка
Дог.Организация = v8.Справочники.Организации.НайтиПоНаименованию(Org)
Дог.ВалютаВзаиморасчетов = v8.Справочники.Валюты.НайтиПоНаименованию("руб")
Дог.ВидДоговора = v8.Перечисления.ВидыДоговоровКонтрагентов.Прочее
Дог.ВедениеВзаиморасчетов = v8.Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом
Дог.Записать
Ref.ОсновнойДоговорКонтрагента = Дог
Ref.Записать
'Создаем задачу в системе 1С. Код процедуры CreateTask будет приведен позже. Пока эту строку нужно закомментировать
'CreateTask v8, "Добавлен новый контрагент """ & Name & """. Проверьте правильность заполнения реквизитов.", Ref.ссылка
SpravContragent = True
Else
If Ref.Наименование = Name Then
'Определяем, что делать, если элемент помечен на удаление. Например, снимаем пометку.
If Ref.ПометкаУдаления Then Ref.ПолучитьОбъект.УстановитьПометкуУдаления 0
SpravContragent = True
Else
Message = "Сообщение менеджеру: Контрагент с указанным ИНН найден в справочнике, но его наименование не совпадает с запрошенным (""" & Name & """). Наименование в справочнике """ & Ref.Наименование & """. Свяжитесь с департаментом финансов."
SpravContragent = False
End If
End If
End Function
'Пример использования
Sub testSpravContragent()
Dim text As String
Dim OutRef As Object
If v8 Is Nothing Then v8connect
'Замените параметры вызова функции на правильные наименования и ИНН, чтобы получить ссылку на существующий элемент
If SpravContragent(v8, "Тестовое название", "123456789012", "Тестовая организация", OutRef, text) Then
Debug.Print OutRef.Наименование
Debug.Print text
Debug.Print OutRef.ОсновнойДоговорКонтрагента.Наименование
End If
End Sub
#2
08.11.2010, 12:30
Последнее редактирование: 08.11.2010, 12:33 от Алексей Шмуйлович
Получаем структуру данных документа для дальнейшего использования в коде
Код должен запускаться из VBA-модуля книги MS Excel.
Sub RunDocumentStructure()
If v8 Is Nothing Then v8connect
DocumentStructure v8.метаданные.Документы.ПлатежноеПоручениеВходящее
DocumentStructure v8.метаданные.Документы.СчетНаОплатуПокупателю
'DocumentStructure v8.метаданные.Документы...
End Sub
Sub DocumentStructure(Документ) 'Выводит структуру данных документа на лист Excel
'Dim Документ As Object, sht As Worksheet
If v8 Is Nothing Then v8connect
Set sht = ActiveWorkbook.Sheets.Add
sht.Name = Left(Документ.Имя & " Структура", 31)
On Error Resume Next
For Each рек In Документ.Реквизиты
r = r + 1
sht.Cells(r, 1) = "Документ." & рек.Имя
sht.Cells(r, 1).InsertIndent -1
sht.Cells(r, 1).Font.Bold = True
sht.Cells(r, 2) = рек.Синоним
sht.Cells(r, 3) = v8.String(рек.тип)
If v8.String(рек.тип) = "Строка" Then sht.Cells(r, 3) = v8.String(рек.тип) & "(" & v8.String(рек.тип.квалификаторыстроки.длина) & ")"
If v8.String(рек.тип) = "Число" Then sht.Cells(r, 3) = v8.String(рек.тип) & "(" & v8.String(рек.тип.квалификаторычисла.разрядность) & "," & v8.String(рек.тип.квалификаторычисла.разрядностьдробнойчасти) & ")"
Next
For Each тч In Документ.Табличныечасти
r = r + 1
sht.Cells(r, 1) = "Документ." & тч.Имя
sht.Cells(r, 2) = "Табличная часть (подчиненная таблица)"
sht.Cells(r, 1).InsertIndent -1
sht.Cells(r, 1).Font.Bold = True
For Each рек In тч.Реквизиты
r = r + 1
sht.Cells(r, 1).InsertIndent 1
sht.Cells(r, 1).Font.Bold = False
sht.Cells(r, 1) = тч.Имя & "." & рек.Имя
sht.Cells(r, 2) = рек.Синоним
sht.Cells(r, 3) = v8.String(рек.тип)
If v8.String(рек.тип) = "Строка" Then sht.Cells(r, 3) = v8.String(рек.тип) & "(" & v8.String(рек.тип.квалификаторыстроки.длина) & ")"
If v8.String(рек.тип) = "Число" Then sht.Cells(r, 3) = v8.String(рек.тип) & "(" & v8.String(рек.тип.квалификаторычисла.разрядность) & "," & v8.String(рек.тип.квалификаторычисла.разрядностьдробнойчасти) & ")"
Next
Next
sht.Columns("A:B").EntireColumn.AutoFit
End Sub
К примеру: Подключение к 1С v.8 через COMConnector
При таком способе у меня Excel аварийно завершает работу на строке подключения. Попробовал через позднее связывание, — выдаёт ошибку: «Method ‘Connect’ of object ‘IV8COMConnector3’ failed».
Public Sub v8connect()
Set v8 = CreateObject("v81.COMConnector")
'Подключаемся через пользователя со всеми правами:
ConnectionString = "File=""C:База81"";Usr=""Шпец"";Pwd=""12345"";"
Set v8con = v8.Connect(ConnectionString)
End Sub
База создана с нуля. Есть идеи как пофиксить ошибку?
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли
Нужно проверить у пользователя конкретно право внешнего соединения.
Да, я посмотрел у себя в конфигурации. Ни одна роль, имеющаяся в типовой конфигурации, не имеет права внешнего подключения. У нас в конфигурацию добавлена роль, имеющая такое право. Право задается для самого верхнего объекта в дереве конфигурации, то есть для самой конфигурации.
ВБА для меня темный лес, в 1С постоянно что то изучаю и 95% нужной информации выгружаю через свои обработки
Ну и хорошо, будем обращаться за советом
Доброго времени суток!
Спасибо за статью! Очень помогла! Подключение, пример — все работает.
Подскажите где в 1С взять данные такие как для формирования Книги покупок (в частности по счет-фактурам).
С объектной моделью 1С незнаком.
Может подскажите где посмотреть объектную модель 1С?
Спасибо
Самые общие советы: посмотрите для начала в конфигураторе 1С дерево конфигурации, увидите какие бывают объекты, набор их свойств.
Там же есть синтакс-помощник, где системно описана структура объектной модели, свойства и методы языка.
Ваш вопрос относится к конкретному объекту конфигурации — документу Счета-фактуры полученные. Найдите его в дереве конфигурации, посмотрите набор реквизитов. В Синтакс помощнике посмотрите, какие методы существуют для документов.
Еще один вариант познакомиться со структурой конкретной конфигурации, а точнее структурой данных — изучить Консоль отчетов. Это универсальный инструмент, позволяющий в режиме Предприятия (не в конфигураторе) строить запросы к различным таблицам данных. Ищите консоль отчетов в меню Отчеты — Универсальные отчеты — Консоль отчетов.
Спасибо!
Уже рою в этом направлении.
- Профессиональные приемы работы в Microsoft Excel
-
►
Обмен опытом -
►
Другие офисные программы -
►
1C -
►
Статья «Работа с 1С v.8 через COMConnector из Excel» (черновик)
agregator Пользователь Сообщений: 214 |
#1 23.01.2018 18:02:09 Всем, здравствуйте. Пробую подключиться к серверу 1С с помощью кода (при запуске программы 1С поле пароля пустое)
Но при выполнении, появляется сообщение Debug на строке
Подскажите пожалуйста где ошибка. Кросс Excel всемогущий. |
||||
_Igor_61 Пользователь Сообщений: 3007 |
Здравствуйте! Я вообще-то не спец в этом, но вдруг угадал: для пустого пароля точно нужно пять кавычек, а не четыре? |
agregator Пользователь Сообщений: 214 |
Здесь именно пять кавычек. |
Дмитрий Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#4 23.01.2018 20:01:58
для пароля 4, пятая закрывающая строку подключения.
а что пишет-то сообщение? Может, раз пароль отсутствует, его и не указывать вовсе?
плюс, может быть путь к серверу более полный указать надо. Но здесь не подскажу — информации мало, а я к 1С сам не подключался 100500 лет. Изменено: Дмитрий Щербаков — 23.01.2018 20:02:53 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||||
БМВ Модератор Сообщений: 21378 Excel 2013, 2016 |
#5 23.01.2018 20:07:18
Уверены? http://1clenta.ru/pattern/33 не нужно ли там ; добавить? По вопросам из тем форума, личку не читаю. |
||
_Igor_61 Пользователь Сообщений: 3007 |
Ой, неужели я все-таки угадал? |
БМВ Модератор Сообщений: 21378 Excel 2013, 2016 |
_Igor_61, А вдруг там пароль один апостраф ( самый распространённый пароль — шесть звездочек ) По вопросам из тем форума, личку не читаю. |
agregator Пользователь Сообщений: 214 |
Утром на работе попробую предложения _Igor_61, Дмитрия Щербакова и БМВ. Изменено: agregator — 23.01.2018 20:26:24 |
agregator Пользователь Сообщений: 214 |
#9 23.01.2018 20:31:14 В примере показывалось так
Excel всемогущий. |
||
Дмитрий Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#10 23.01.2018 20:42:01
Текст ошибки все так же будет не лишним. Кроме Вас никто не знает что там за ошибка. Может ошибка вообще в недоступности сервера. Изменено: Дмитрий Щербаков — 23.01.2018 20:42:32 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
agregator Пользователь Сообщений: 214 |
На предложение _Igor_61 четыре кавычки VBA ругается «Compile error: Expected: list separator or)» |
agregator Пользователь Сообщений: 214 |
Сказали пользователя с паролем и макрос сработал. |
Дмитрий Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#13 24.01.2018 09:16:24
Возможно, Ваше соединение не поддерживает обращение извне без указания пароля. Полагаю, что это быстрее решится на форуме по 1С. Может как-то иначе надо указывать подключение, если пароля нет. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
Jack Famous Пользователь Сообщений: 10848 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
https://vk.com/pavelgrishenkov?w=wall89239090_1137 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
agregator Пользователь Сообщений: 214 |
#15 24.01.2018 14:32:25
Да, я указываю пользователя, а поле пароля остается пустым. Excel всемогущий. |
||
18 / 20 / 2 Регистрация: 04.03.2017 Сообщений: 199 |
|
1 |
|
13.09.2018, 13:28. Показов 25121. Ответов 30
Доброго времени суток. Кто знает, скажите пожалуйста, как через excel происходит подключение к 1С, то есть как посредством запросов, VBA и прочего, минуя выгрузку CSV таблиц из 1C сразу обращаться к дужным данным в 1C? В excel есть вкладка данные (рисунок 1), в ней есть графа «Из базы данных SQL Server» (рисунок 2), которая открывает окно ввода сервера и инструкций (рисунок 3). Как я понимаю нужно туда подставить какие-то значения, но какие? У меня есть пользовательский логин и пароль для 1C, на вкладке 1С «О программе» есть тоже кое-какая информация (рисунок 4), и я так понимаю её тоже нужно куда-то вставить. Кто знает, помогите пожалуйста подключиться к 1С, два дня перерывал весь интернет, ничего не нашёл (или не понял). Очень нужно.
0 |
7 / 7 / 3 Регистрация: 09.01.2018 Сообщений: 210 |
|
13.09.2018, 18:16 |
21 |
А где в России берут все ПО? На торрентах. Добавлено через 16 минут
0 |
7 / 7 / 3 Регистрация: 09.01.2018 Сообщений: 210 |
|
14.09.2018, 09:37 |
22 |
Последний скрин не видел… В нем вижу, что Initial Catalog=Base8; Добавлено через 33 минуты Добавлено через 5 минут
0 |
477 / 134 / 49 Регистрация: 07.05.2016 Сообщений: 521 |
|
14.09.2018, 10:45 |
23 |
а точно нужно именно из excel подключаться в базе для решения задачи?
0 |
18 / 20 / 2 Регистрация: 04.03.2017 Сообщений: 199 |
|
14.09.2018, 14:15 [ТС] |
24 |
vpivo, QwertyZ, ну просто хочу из экселя сразу формировать отчёты, статистику, и планирование закупок (на основе статистике). а там, в 1C, хренова туча информации, и всё нужно обрабатывать, всё с исключениями, потому что 1С у нас написана не очень.. Добавлено через 1 минуту
0 |
477 / 134 / 49 Регистрация: 07.05.2016 Сообщений: 521 |
|
14.09.2018, 15:31 |
25 |
ГарриНаФеррари,
vpivo, QwertyZ, ну просто хочу из экселя сразу формировать отчёты, статистику, и планирование закупок (на основе статистике). а там, в 1C, хренова туча информации, и всё нужно обрабатывать, всё с исключениями, потому что 1С у нас написана не очень.. т.е. вы думаете, что будет проще извлекать какие-то данные из SQL таблиц, чем формировать отчеты в 1С ?
0 |
7 / 7 / 3 Регистрация: 09.01.2018 Сообщений: 210 |
|
14.09.2018, 16:36 |
26 |
По мне так лучше потратить месяц на изучение псевдоERP, она же аляСУБД под названием 1С, чем этого монстра Excel задействовать. Поверьте на слово, Excel — худший вариант.
0 |
18 / 20 / 2 Регистрация: 04.03.2017 Сообщений: 199 |
|
14.09.2018, 21:57 [ТС] |
27 |
Если всё так плохо с 1С и excel, то почему при приёме на работу почти всегда требуют знание sql и excel, я так понимаю что именно для того, чтобы с помощью excel извлекать данные из 1C..? Добавлено через 1 час 0 минут
0 |
Тест 383 / 162 / 56 Регистрация: 26.02.2010 Сообщений: 1,241 |
|
17.09.2018, 09:21 |
28 |
чтобы с помощью excel извлекать данные из 1C..? вообщем первый раз такое слышу
0 |
Эксмет |
17.09.2018, 09:54
|
Не по теме:
Да и ещё плюс ко всему, это наверное самое основное, мне чтобы создать сводную таблицу в excel, нужно обработать примерно 2 400 000 строк (каждая строка содержит 27 столбцов). Excel просто не тянет такой объём, OLAP-куб обрабатывается ооооочень долго, это просто жесть какая-то….У меня один файлик такой весит 400мб, excel дохне Вот вы сами объяснили, почему в компаниях, которые не хотят загнуться в скором времени, переходят от учета в excel на 1С.
0 |
megacold 24 / 19 / 6 Регистрация: 10.11.2016 Сообщений: 51 |
||||||||
04.11.2018, 07:07 |
30 |
|||||||
Если не знаете, как подключиться то будете 2 года пытаться собрать инфу из sql.
0 |
Al75 0 / 0 / 0 Регистрация: 28.08.2020 Сообщений: 1 |
||||
28.08.2020, 19:58 |
31 |
|||
‘В редакторе Excel подключаем через Reference библиотеку V83.COMconnector. Если ее нет то нужно установить
0 |
Как вытащить справочники из 1С через V83.COMConnector
, Запрос в 1 С из EXCEL
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Full Member Рейтинг (т): 6 |
Всем здравия! В общем задача вытащить все данные из: Можно ли их вытащить сразу двумерной таблой?
Dim cntr As Object Dim trade As Object Dim Òîâàð As Object Set cntr = CreateObject(«V83.COMConnector») Set trade = cntr.Connect(«File=»»C:Program Files1cv8″»; Usr=»»Пупкин»»;») На этом мои познания закончились, т.к. дальше 1С код идет. Если можно примеры вывода и ввода. Заранее весьма благодарен. |
Akina |
|
https://forum.infostart.ru/forum9/topic141309/ |
Marchello |
|
Full Member Рейтинг (т): 6 |
Цитата Akina @ 30.01.18, 13:19
На последней строке выдаёт ошибку. Добавлено 30.01.18, 14:40 Сообщение отредактировано: Marchello — 30.01.18, 14:40
|
Akina |
|
У тебя есть и 1С, и коннектор, и ещё много чего. |
Gonarh |
|
Full Member Рейтинг (т): 28 |
Покопался в загашниках 12-летней давности, накопал компонент для делфей как раз |
Bas |
|
Цитата Marchello @ 30.01.18, 12:57 В общем задача вытащить все данные из: Версия 1С какая? |
Marchello |
|
Full Member Рейтинг (т): 6 |
Цитата Bas @ 30.01.18, 23:41 Цитата Marchello @ 30.01.18, 12:57 В общем задача вытащить все данные из: Версия 1С какая?
1С:Предприятие 8.3 (8.3.10.2650) |
^D^ima |
|
Цитата Marchello @ 30.01.18, 12:57 File=»»C:Program Files1cv8″ Это у тебя реально там база лежит, или ты коннектишся к экзешнику? Добавлено 31.01.18, 11:47
Sub Кнопка1_Щелчок() Dim cntr As Object Dim Buh As Object Dim Контрагенты As Object Dim Выборка As Object Dim n As Integer Dim Count As Integer Set cntr = CreateObject(«V83.COMConnector») Set Buh = cntr.Connect(«File=»»C:TestBaseКаврецкая»»;») Set Контрагенты = Buh.Справочники.Контрагенты Set Выборка = Контрагенты.Выбрать() n = 1 While Выборка.следующий() = True Cells(n, 1).Value = Выборка.Наименование Cells(n, 2).Value = Выборка.ИНН n = n + 1 Wend End Sub Добавлено 31.01.18, 11:50 Цитата Marchello @ 30.01.18, 12:57 вытащить все данные из: Тебе придется указывать конкретные реквизиты этих справочников |
Marchello |
|
Full Member Рейтинг (т): 6 |
Цитата ^D^ima @ 31.01.18, 11:00 Это у тебя реально там база лежит, или ты коннектишся к экзешнику? Хороший вопрос! То что реквизиты указывать это я понимаю. Сообщение отредактировано: Marchello — 31.01.18, 12:51 |
^D^ima |
|
Цитата Marchello @ 31.01.18, 12:46 Работает через постгри.
Не важно. Добавлено 31.01.18, 12:52 Цитата Marchello @ 31.01.18, 12:46 Мне примерчик нужен как именно из ёкселя обращаться к таблам и запросы делать. выше примерчик |
kosten |
|
Цитата Marchello @ 31.01.18, 12:46 Мне примерчик нужен как именно из ёкселя обращаться к таблам и запросы делать. Вот пример для 1С. Сам адаптируешь для экселя. |
^D^ima |
|
Добавил в пример запрос
Sub Кнопка1_Щелчок() Dim cntr As Object Dim Buh As Object Dim Контрагенты As Object Dim Выборка As Object Dim Запрос As Object Dim ВыборкаЗапрос As Object Set cntr = CreateObject(«V83.COMConnector») Set Buh = cntr.Connect(«File=»»C:TestBaseКаврецкая»»;») Set Контрагенты = Buh.Справочники.Контрагенты Set Выборка = Контрагенты.Выбрать() n = 1 While Выборка.следующий() = True Cells(n, 1).Value = Выборка.Наименование Cells(n, 2).Value = Выборка.ИНН n = n + 1 Wend Set Запрос = Buh.NewObject(«Запрос») Запрос.Текст = «ВЫБРАТЬ Номенклатура.Наименование КАК Наименование ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Код = &Код» Запрос.УстановитьПараметр «Код», «00-00000291» Set ВыборкаЗапрос = Запрос.Выполнить.Выбрать() While ВыборкаЗапрос.следующий() = True Cells(1, 3).Value = Выборка.Наименование Wend End Sub |
Marchello |
|
Full Member Рейтинг (т): 6 |
Цитата ^D^ima @ 31.01.18, 12:51
Все равно не хочет.
Sub Excel_to_trade() Dim cntr As Object Dim trade As Object Set connector = CreateObject(«V83.COMConnector») Serv = «1c8server» Bs = «SRV-BUH» User = «Ìàð÷åâñêèé Ä. Å.» Pass = vbNullString Set trade = connector.Connect(«Srvr=»»1c8server»»;Ref=»»SRV-BUH»»;») Set trade = connector.Connect(«Srvr=» & Serv & «;» & «Ref=» & Bs & «;» & «Usr=» & User & «;» & «Pwd=» & Pass) Set trade = connector.Connect(«Srvr=» & Serv & «;» & «Ref=» & Bs & «;» & «Usr=» & User & «;» & «Pwd=» & Pass & «;») End Sub |
^D^ima |
|
Цитата Marchello @ 31.01.18, 13:38 Как проверить что ее хоть видит V83 при конекте? Ты в 1С базу-то открываешь? Добавлено 31.01.18, 13:56 |
Marchello |
|
Full Member Рейтинг (т): 6 |
Цитата kosten @ 31.01.18, 13:14 Благодарю. Цитата ^D^ima @ 31.01.18, 13:34 Благодарю, то что надо. Осталось только подключиться. Добавлено 31.01.18, 14:07 Цитата ^D^ima @ 31.01.18, 13:54 Алгоритм какой использовать? Открыть локального клиента, а потом конектиться из экселя к серваку без указания паса и логина? |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- VB for Application
- Следующая тема
[ Script execution time: 0,0707 ] [ 22 queries used ] [ Generated: 14.04.23, 16:33 GMT ]
23.08.19 — 12:48
Здравствуйте.
Пытаюсь запустить макрос , который выгружает из 1С документы. Но возникает ошибка «Не установлены компоненты доступа к серверу 1С:Предприятия» . Подскажите в чем может быть причина, вроде бы все установлено Платформа 8.3
Код следующий:
Set conn = CreateObject(«V83.COMConnector»)
Set bd = conn.Connect(«Srvr=»»Zeus:1687″»;Ref=»»moto_sup»»;Usr=»»Логин»»;Pwd=»»12345″»»)
Set Запрос = bd.NewObject(«Запрос»)
Запрос.Текст = «Здесь текст консольного запроса к БД 1С»
1 — 23.08.19 — 12:50
2 — 23.08.19 — 13:27
(0) Зачем нужны эти нелепые телодвижения? Почему бы из 1с не генерировать все, что нужно?
3 — 23.08.19 — 13:30
(2) Увы, далеко не все возможности Экселя поддерживаются в платформенной записи табдока в эксель-файл
4 — 23.08.19 — 13:51
(1) Зарегистрировала вручную. но все равно такая же ошибка
5 — 23.08.19 — 13:59
мож excel 64 разрядный
6 — 23.08.19 — 14:03
(5) 32
7 — 23.08.19 — 14:30
Такое ощущение, что надо еще что то в платформе доставить или права дать кому-то
8 — 23.08.19 — 14:37
(7) если бы я знала что )
9 — 23.08.19 — 14:50
(6)А 1с сколькибитная?
10 — 23.08.19 — 14:54
Можно озвучить полный текст задачи?
11 — 23.08.19 — 15:02
(9) 32
12 — 23.08.19 — 15:02
(0) CreateObject(«V83.COMConnector») — ВНЕШНЕЙ Обработкой 1С пробовали все тоже самое получать, через V83.COMConnector?
13 — 23.08.19 — 15:03
(10)Пытаюсь запустить макрос , который выгружает из 1С документы. Но возникает ошибка «Не установлены компоненты доступа к серверу 1С:Предприятия»
Код следующий:
Set conn = CreateObject(«V83.COMConnector»)
Set bd = conn.Connect(«Srvr=»»Zeus:1687″»;Ref=»»moto_sup»»;Usr=»»Логин»»;Pwd=»»12345″»»)
Set Запрос = bd.NewObject(«Запрос»)
Запрос.Текст = «Здесь текст консольного запроса к БД 1С»
14 — 23.08.19 — 15:03
(12) нет
15 — 23.08.19 — 15:04
(14) пробуйте, это явно отметет множество причин
16 — 23.08.19 — 15:11
(13)А операционная система 32 или 64х?
17 — 23.08.19 — 15:17
(15) Первая же причина — на КОМПЕ не установлен из дистрибутива COMConnector.
18 — 23.08.19 — 15:19
(15) Вторая причина на КОМПЕ из макроса не виден менеджер лицензий 1С.
19 — 23.08.19 — 15:24
(13) Это я уже видел. Дальше что происходит?
20 — 23.08.19 — 19:30
(16) 64
21 — 23.08.19 — 19:31
(19) ничего не происходит. Эта ошибка выскакивает и все.
22 — 23.08.19 — 19:32
(17) а как его установить?
23 — 23.08.19 — 19:43
делаю вот так CreateObject(«V83.Application») ошибка та же
МимохожийОднако
24 — 23.08.19 — 20:58
(22) setup из дистрибутива 1С8. Потом зарегистрируй com….dll