Имя: Пароль:
1C
 
Как работать через COM
0 ZZ
 
22.09.04
10:49
Есть ли вообще где-нибудь информация про работу с 1С8 через COM, а то в книжке всего лишь одна страничка по этой теме.
1 maxim_a2
 
22.09.04
10:50
Я искал, ничего толком не нашел. А что надо?
2 ZZ
 
22.09.04
10:53
Я тоже искал.
Хотелось рассмотреть подробнее. Интересен также вопрос быстродействия.
А вообще бы хотелось посмотеть хотя бы маленький пример, а там я сам разбирусь.
3 maxim_a2
 
22.09.04
11:02
Я вот делал процедурку для переноса стправочника из демо в рабочую
В рабочей:
Процедура Загрузка_Справочника_СтатьиЗатрат()
   Демо_Конфигурация= Новый ComObject("V8.Application");
   Демо_Конфигурация.Connect("Srvr=""GB"";Ref=""УПП релиз (демо)"";Usr=""Абдулов (гендиректор)""");
   СправочникОттуда = Демо_Конфигурация.Справочники.СтатьиЗатрат.Выбрать();
   while  СправочникОттуда.Следующий() do        
       СправочникСюда=Справочники.СтатьиЗатрат.НайтиПоКоду(СправочникОттуда.Код);
       if СправочникСюда.Пустая() then
           СправочникСюда=Справочники.СтатьиЗатрат.СоздатьЭлемент();
           СправочникСюда.Код=СправочникОттуда.Код;
           СправочникСюда.Наименование=СправочникОттуда.Наименование;
           if Демо_Конфигурация.ПолучитьРеквизитСправочника("СтатьиЗатрат",СправочникСюда.Код,"ВидЗатрат") <> "" then
               СправочникСюда.ВидЗатрат=Перечисления.ВидыЗатрат[УдалПроб(Демо_Конфигурация.ПолучитьРеквизитСправочника("СтатьиЗатрат",СправочникСюда.Код,"ВидЗатрат"))];
           endif;
           if Демо_Конфигурация.ПолучитьРеквизитСправочника("СтатьиЗатрат",СправочникСюда.Код,"СтатусМатериальныхЗатрат") <> "" then
               СправочникСюда.СтатусМатериальныхЗатрат=Перечисления.СтатусыМатериальныхЗатратНаПроизводство[УдалПроб(Демо_Конфигурация.ПолучитьРеквизитСправочника("СтатьиЗатрат",СправочникСюда.Код,"СтатусМатериальныхЗатрат"))];
           endif;
           if trimall(Демо_Конфигурация.ПолучитьРеквизитСправочника("СтатьиЗатрат",СправочникСюда.Код,"ХарактерЗатрат")) <> "" then
               СправочникСюда.ХарактерЗатрат=Перечисления.ХарактерЗатрат[УдалПроб(Демо_Конфигурация.ПолучитьРеквизитСправочника("СтатьиЗатрат",СправочникСюда.Код,"ХарактерЗатрат"))];
           endif;
           if trimall(Демо_Конфигурация.ПолучитьРеквизитСправочника("СтатьиЗатрат",СправочникСюда.Код,"ВидРасходовНУ")) <> "" then
               СправочникСюда.ВидРасходовНУ=Перечисления.ВидыРасходовНУ[УдалПроб(Демо_Конфигурация.ПолучитьРеквизитСправочника("СтатьиЗатрат",СправочникСюда.Код,"ВидРасходовНУ"))];
           endif;
           СправочникСюда.Записать();
       endif;
   enddo;
   Демо_Конфигурация=0;
КонецПроцедуры
Функция УдалПроб(Стр2)
   Стр=Стр2;
   i=Найти(Стр," ");
   while i>0 do
       Стр=mid(Стр,1,i-1)+mid(Стр,i+1);
       i=Найти(Стр," ");
   enddo;
   i=Найти(Стр,"(");
   while i>0 do
       Стр=mid(Стр,1,i-1)+mid(Стр,i+1);
       i=Найти(Стр,"(");
   enddo;
   i=Найти(Стр,")");
   while i>0 do
       Стр=mid(Стр,1,i-1)+mid(Стр,i+1);
       i=Найти(Стр,")");
   enddo;    
   return Стр;
КонецФункции


В демо в модуль приложения вставил:
Функция ПолучитьРеквизитСправочника(Справочник,Код,Реквизит) Экспорт
   Строка1="";
   Спр=Справочники[Справочник].НайтиПоКоду(Код);
   if  not Спр.Пустая() then
       Строка1=Строка(Спр[Реквизит]);
   endif;
   return Строка1;
КонецФункции
4 ZZ
 
22.09.04
11:10
Спасибо, сейчас буду смотреть