Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.175] |
|
Страницы: (4) [1] 2 3 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Всем здравия!
Опыта в 1с нет, тч извиняйте. Конектюсь через СОМ. В общем задача вытащить все данные из: Справочники: Номенклатура, Контрагенты. Можно ли их вытащить сразу двумерной таблой? Если нет, то как построчно вывести? Dim cntr As Object Dim trade As Object Dim Òîâàð As Object Set cntr = CreateObject("V83.COMConnector") Set trade = cntr.Connect("File=""C:\Program Files\1cv8""; Usr=""Пупкин"";") На этом мои познания закончились, т.к. дальше 1С код идет. Если можно примеры вывода и ввода. Заранее весьма благодарен. |
Сообщ.
#2
,
|
|
|
https://forum.infostart.ru/forum9/topic141309/
См. "// Пример на языке MS Visual Basic". А использовать - как обычный рекордсет, с поправкой на имена его методов и свойств. |
Сообщ.
#3
,
|
|
|
Цитата Akina @ https://forum.infostart.ru/forum9/topic141309/ См. "// Пример на языке MS Visual Basic". А использовать - как обычный рекордсет, с поправкой на имена его методов и свойств. На последней строке выдаёт ошибку. С чем это может быть связано? Может какой реф ему ещё нать? Добавлено Может админ что перекрыл или в 1с? Я первый кто конектится так у нас. Прикреплённый файл____________________.png (11,85 Кбайт, скачиваний: 730) |
Сообщ.
#4
,
|
|
|
У тебя есть и 1С, и коннектор, и ещё много чего.
У меня нет ничего вышеперечисленного, включая интерес. И кто из нас должен экспериментировать и читать маны? Или хотя бы смотреть в окно OB и на сообщения об ошибках? |
Сообщ.
#5
,
|
|
|
Покопался в загашниках 12-летней давности, накопал компонент для делфей как раз
основанный на COM к одинэске, вот модуль. ПЫСЫ. Программирование тогда только начинал постигать, т.ч. говнокод присутствует в огромных дозах, типа утечек памяти и глобальных переменных, но всё что тебе надо и даже больше чем надо там есть. Прикреплённый файлole1c.pas (27,46 Кбайт, скачиваний: 336) |
Сообщ.
#6
,
|
|
|
Цитата Marchello @ В общем задача вытащить все данные из: Справочники: Номенклатура, Контрагенты. Версия 1С какая? |
Сообщ.
#7
,
|
|
|
Цитата Bas @ Цитата Marchello @ В общем задача вытащить все данные из: Справочники: Номенклатура, Контрагенты. Версия 1С какая? 1С:Предприятие 8.3 (8.3.10.2650) Бухгалтерия предприятия, редакция 3.0 (3.0.57.17) |
Сообщ.
#8
,
|
|
|
Цитата Marchello @ File=""C:\Program Files\1cv8" Это у тебя реально там база лежит, или ты коннектишся к экзешнику? Добавлено 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 Добавлено Цитата Marchello @ вытащить все данные из: Справочники: Номенклатура, Контрагенты. Тебе придется указывать конкретные реквизиты этих справочников |
Сообщ.
#9
,
|
|
|
Цитата ^D^ima @ Это у тебя реально там база лежит, или ты коннектишся к экзешнику? Хороший вопрос! Админа вымучил. Короче база лежит на серваке, у юзеров клиенты. Работает через постгри. То что реквизиты указывать это я понимаю. Мне примерчик нужен как именно из ёкселя обращаться к таблам и запросы делать. Дальше уже сам буду разбираться. |
Сообщ.
#10
,
|
|
|
Цитата Marchello @ Работает через постгри. Не важно. Как в 1с-ке строка подключения, то и сюда пихай.В списке баз внизу строка. Добавлено Цитата Marchello @ Мне примерчик нужен как именно из ёкселя обращаться к таблам и запросы делать. выше примерчик |
Сообщ.
#11
,
|
|
|
Цитата Marchello @ Мне примерчик нужен как именно из ёкселя обращаться к таблам и запросы делать. Вот пример для 1С. Сам адаптируешь для экселя. |
Сообщ.
#12
,
|
|
|
Добавил в пример запрос
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 |
Сообщ.
#13
,
|
|
|
Цитата ^D^ima @ Все равно не хочет. На первом set дольше висит но выдаёт ту же ошибку. Может где что-то не так пишу? Визуально базу на серваке не видно. Может быть из-за этого? Как проверить что ее хоть видит V83 при конекте? Не понятно то ли база его отпихивает, то ли не видит вообще его. У нас стандартная версия, может быть отключена внешняя обработка? 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 |
Сообщ.
#14
,
|
|
|
Цитата Marchello @ Как проверить что ее хоть видит V83 при конекте? Ты в 1С базу-то открываешь? Добавлено советую что-бы идти дальше локально поставить копию к себе файловую базу. |
Сообщ.
#15
,
|
|
|
Цитата kosten @ Благодарю. Цитата ^D^ima @ Благодарю, то что надо. Осталось только подключиться. Добавлено Цитата ^D^ima @ Алгоритм какой использовать? Открыть локального клиента, а потом конектиться из экселя к серваку без указания паса и логина? Или както ещё? |