![]() |
![]() |
|
1c и c# | ☑ | ||
---|---|---|---|---|
0
strimmerxxl
19.08.09
✎
11:35
|
Я правильно понимаю, для того чтобы юзать доступ к 1с следующим образом
V8DbConnection conn = new Connection(); из msvs2008 Нужна внешняя компонента за n килорублей? |
|||
1
shuhard
19.08.09
✎
11:38
|
(0) V81.Application не годиться ?
|
|||
2
strimmerxxl
19.08.09
✎
11:51
|
(1) ты имеешь ввиду вот так
object v8 = Activator.CreateInstance(Type.GetTypeFromProgID("V81.Application")); object[] connectargs = new object[1]; connectargs[0] = @"File=C:\Базы1С\Базы1С8\Тест;Usr=Test"; if ((bool)v8.GetType().InvokeMember("Connect", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.InvokeMethod, null, v8, connectargs)) { v8 = null; } |
|||
3
shuhard
19.08.09
✎
12:00
|
(2) СП
Конфигуратор 1С:Предприятие 8.1 Automation сервер Automation сервер Свойства: Visible (Visible) Методы: Connect (Connect) NewObject (NewObject) String (String) Описание: Система 1С:Предприятие может использоваться внешними приложениями в качестве Automation-сервера. При работе в качестве Automation-сервера 1С:Предприятие предоставляет доступ ко всем свойствам и методам своего глобального контекста, а также включение и выключение пользовательского интерфейса (главного окна 1С:Предприятия 8.1).Кроме того, Automation-сервер 1С:Предприятия имеет дополнительные свойства и методы для выполнения действий, специфичных для работы в режиме Automation. Основное назначение Automation-сервера 1С:Предприятие в управлении приложением 1С:Предприятия 8.1 из других приложений и выполнение действий аналогичных интерактивным действиям, например, построение отчетов. Для запуска системы 1С:Предприятие в качестве Automation-сервера из внешнего приложения, выполняется следующая последовательность действий: создается COMОбъект с идентификатором V81.Application выполняется инициализация системы 1С:Предприятие методом Connect вызываются свойства и методы системы 1С:Предприятие как Automation-сервера Многие современные программные продукты (MS Office, MS FoxPro и т.п.) могут выступать в роли клиентов Automation, что позволяет обмениваться данными между этими продуктами и системой 1С:Предприятие. Замечание 1: Поскольку система 1С:Предприятие может создавать и использовать Automation-серверы, предоставляемые внешними приложениями (т.е. является Automation-клиентом), то имеется возможность из 1С:Предприятия обращаться к другой копии 1С:Предприятия (например, к другой конфигурации) для обмена данными. Замечание 2: Нелокализованные версии внешних программ, обращающихся к программе 1С:Предприятие посредством Automation, могут неправильно интерпретировать русские идентификаторы объектов, например, реквизитов справочников. Данное замечание не относится к продуктам MS Office и к программам, использующим в качестве языка обращения к COM-объектам Microsoft Visual Basic. Рекомендуется использовать локализованные версии программных продуктов, либо в конфигурации использовать идентификаторы без символов кириллицы. Для обращения к свойствам и методам объектов системы 1С:Предприятие из внешних приложений рекомендуется использовать их англоязычные синонимы. Замечание 3: Все созданные объекты Automation существуют до тех пор, пока существует переменная, которая содержит значение данного объекта. Следовательно, сама программа 1С:Предприятие, выступающая в качестве объекта Automation в другой программе, будет находиться в памяти компьютера до удаления или изменения значения переменной, содержащей ее в качестве объекта. Система 1С:Предприятие в качестве Automation-сервера предоставляет полный доступ к своему глобальному контексту. Поэтому объект Automation-сервер 1С:Предприятие в качестве своих свойств может иметь: системные константы, значения заданных в конфигураторе объектов, доступ к которым осуществляется с помощью менеджеров (например, константы, перечисления, справочники, документы, журналы документов, отчеты, обработки, планы видов характеристик, планы счетов, планы видов расчета, регистры), а также переменные, объявленные в модуле приложения с ключевым словом Экспорт. Automation-сервер 1С:Предприятие в качестве своих методов может иметь: системные процедуры и функции, а также процедуры и функции модуля приложения и общих модулей, объявленные с ключевым словом Экспорт. Пример: // Пример1 создания объекта Соединитель = Новый COMObject("V81.Application"); // Пример 2 // В данном примере запускается и инициализируется конфигурация // 1С:Предприятие с базой данных в каталоге c:\InfoBases\Trade. // Далее в программе 1С:Предприятие создается объект типа "Справочник.Товары", // где создается новая группа элементов с названием "***** Экспорт из Excel ******". // Во вновь созданную группу каталога записываются данные из таблицы MS Excel. // Пример приводится на языке MS Visual Basic. Sub Excel_to_trade() Dim trade As Object Dim Товар As Object Dim Группа As Object Dim Элемент As Object Set trade = CreateObject("V81.Application") trade.Connect("File=""c:\InfoBases\Trade"";Usr=""Director"";") Set Товар = trade.Справочники.Товары Set Группа = Товар.СоздатьГруппу() Группа.Наименование = "***** Экспорт из Excel ******" Группа.Записать() N = 100 'Количество строк в документе For Count = 1 To N Set Элемент = Товар.СоздатьЭлемент() Элемент.Наименование = Application.Cells(Count, 2).Value Элемент.Розн_Цена = Application.Cells(Count, 3).Value Элемент.Мел_Опт_Цена = Application.Cells(Count, 4).Value Элемент.Опт_Цена = Application.Cells(Count, 5).Value Элемент.Родитель = Группа.Ссылка Элемент.Записать() Next Count End Sub -------------------------------------------------------------------------------- © 1996-2008 1C. Все права защищены. |
|||
4
strimmerxxl
19.08.09
✎
13:05
|
Не получается создать документ
object v81docs = v81base.GetType().InvokeMember("NewObject", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v81base, new object[] { "ДокументМенеджер.НовыйДок" }); object v81newDoc = v81docs.GetType().InvokeMember("CreateDocument", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v81docs, null); Ругается на первую строчку - "Тип не определен" Пробовал имя документа писать по разному - просто имя, ДокументОбъект.Имя и т.д. |
|||
5
ДенисЧ
19.08.09
✎
13:06
|
ДокументМенеджер.НовыйДок - это что за конструкция?
|
|||
6
shuhard
19.08.09
✎
13:08
|
(4) для отладки синтаксиса удобно подключаться из 1С к 1С, потом из шарпа.
|
|||
7
strimmerxxl
19.08.09
✎
13:09
|
так в примере было, я пробовал просто НовыйДок, все равно пишет что тип не определен
|
|||
8
kitt
19.08.09
✎
13:11
|
для 7ки, но может тоже будет полезно
Книга знаний: Создание объекта из внешней компоненты на C# |
|||
9
shuhard
19.08.09
✎
13:14
|
(7) воспользуйся поиском, через V81.Application на мисте из c# было достаточно постов
|
|||
10
strimmerxxl
20.08.09
✎
12:22
|
а можно ли выгрузить целиком объект в dataGrid или propertyGrid, ну чтоб поля не перебирать все
и еще вопрос - установил веб-расширение 1.1, не могу найти как опубликовать какой-нибудь шаблон для web-доступа киньте ссылки по этой теме, а то ниче не могу найти |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |