Имя: Пароль:
1C
 
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
9 shuhard
 
19.08.09
13:14
(7) воспользуйся поиском, через V81.Application на мисте из c#  было достаточно постов
10 strimmerxxl
 
20.08.09
12:22
а можно ли выгрузить целиком объект в dataGrid или propertyGrid, ну чтоб поля не перебирать все

и еще вопрос - установил веб-расширение 1.1, не могу найти как опубликовать какой-нибудь шаблон для web-доступа
киньте ссылки по этой теме, а то ниче не могу найти