helpf.pro
Регистрация

v8.2 УП: Подключение к ИБ через ComОбъект

zeratul
05.07.2011 09:18Прочитано: 15817
Всем привет!
Делаю подключение к ИБ ЗУП из БП!Хочу сделать перенос данных из одного документа в другой!
Код 1C v 8.х
 тз = Новый ТаблицаЗначений;
тз.Колонки.Добавить("Документ",Новый ОписаниеТипов("ДокументСсылка.БС_учетныйЛист"));
тз.Колонки.Добавить("Дата",Новый ОписаниеТипов("Дата"));
тз.Колонки.Добавить("Номер",Новый ОписаниеТипов("Число"));
тз.Колонки.Добавить("Организация",Новый ОписаниеТипов("СправочникСсылка.Организации"));
тз.Колонки.Добавить("Подразделение",Новый ОписаниеТипов("СправочникСсылка.ПодразделенияОрганизаций"));
тз.Колонки.Добавить("ТехОперация",Новый ОписаниеТипов("СправочникСсылка.БС_нормыВыработки"));
тз.Колонки.Добавить("СчетЗатрат",Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный"));
тз.Колонки.Добавить("НоменГруппа",Новый ОписаниеТипов("СправочникСсылка.НоменклатурныеГруппы"));
тз.Колонки.Добавить("СтатьяЗатрат",Новый ОписаниеТипов("СправочникСсылка.СтатьиЗатрат"));
тз.Колонки.Добавить("СуммаРегл",Новый ОписаниеТипов("Число"));
тз.Колонки.Добавить("Сотрудник",Новый ОписаниеТипов("СправочникСсылка.СотрудникиОрганизаций"));
Выборка = Документы.БС_УчетныйЛист.Выбрать(НачалоПериода,КонецПериода);
Пока выборка.Следующий() Цикл
ТзСтр = тз.Добавить();
ТзСтр.Документ = Выборка.Ссылка;
ТзСтр.Дата = Выборка.Дата;
ТзСтр.номер = Выборка.Номер;
ТзСтр.Организация = Выборка.Организация.Ссылка;
ТзСтр.Подразделение = Выборка.Бригада.Ссылка;
ТзСтр.Сотрудник = Выборка.Работник;
Для каждого Текстрока из Выборка.ТабличнаяЧасть Цикл
ТзСтр.ТехОперация = Текстрока.НормыВыработки;
ТзСтр.СчетЗатрат = Текстрока.СчетЗатрат;
Если Текстрока.СчетЗатрат.ВидыСубконто.Количество()>1 Тогда
ТзСтр.НоменГруппа = Текстрока.Субконто1;
ТзСтр.СтатьяЗатрат = Текстрока.Субконто2;
Иначе
ТзСтр.статьязатрат = текстрока.Субконто1;
КонецЕсли;
ТзСтр.СуммаРегл = Текстрока.ВсегоЗП;
КонецЦикла;
КонецЦикла;
Тз.Свернуть("Документ,Дата,номер,Организация,Подразделение,Сотрудник,ТехОперация,СчетЗатрат,НоменГруппа,СтатьяЗатрат","СуммаРегл");
v8 = Новый COMОбъект("V82.ComConnector");
СтрокаПодключения = "file='" + "C:\Documents and Settings\Владелец\Рабочий стол\Роман\Раздолье_ЗУП\Зарплата базовая" + "'; usr='" + Пользователь + "'; pwd='" + Пароль + "';";
Попытка
//Соединение = V8.Connect("Usr=""admin"";Pwd="""";File=""\\srvr\1C\V8\UPP""");

Соединение = V8.Connect(СтрокаПодключения);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
СпрТех = Соединение.Справочники.ТехнологическиеОперации;
ДокументСдельныйНаряд = Соединение.Документы.СдельныйНаряд;
Для каждого Стр из Тз Цикл
Док = ДокументСдельныйНаряд.СоздатьДокумент();
Док.Дата = КонецМесяца(Стр.Дата);
док.ДатаНачалаПериода = КонецМесяца(Стр.Дата);
док.Организация = Стр.Организация;
док.Подразделение = Стр.Подразделение;
Текстрока = Док.Выработка.Добавить();
текстрока.ТехнологическаяОперация = стр.ТехОперация;
текстрока.СчетЗатрат = стр.счетзатрат;
текстрока.СуммаРегл = стр.СуммаРегл;
текстрока.НоменклатурнаяГруппа = стр.номенгруппа;
текстрока.статьязатрат = стр.статьязатрат;
Док.Записать();
Сообщить("Создан документ "+Док);
КонецЦикла;

Когда через отладчик смотрю значения объекта в базе приемнике, тип и значение "comОбъект", и не получается присвоить ему значение!Подключение делаю впервые, подскажите пожалуйста что не так делаю?
Изменено 05.07.11 11:32:33 по причине: Раскрашен Код
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
05.07.2011 12:38Ответ № 1
на первый взгляд все верно, вот тоже рабочий пример
Код 1C v 8.х
 // Создание объекта-коннектора 
cntr = Новый COMObject("V82.COMConnector");
// создается объект COM-соединение
connection = cntr.Connect("File=""c:\InfoBases\Trade"";Usr=""Director"";");
СпрКонтрагенты = connection.Справочники.Контрагенты;
Выборка = СпрКонтрагенты.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Наименование);
КонецЦикла;
Makcum
08.07.2011 11:13Ответ № 2
На сколько я знаю одно из ограничений функциональности базовой версии - это не поддерживаются COM-соединение и Automation-сервер.
http://v8.1c.ru/hrm/bazovaya_versiya.htm
а судя по вашему коды, вы пытаетесь подключиться именно к базовой
asylum90
27.09.2013 16:33Ответ № 3

Изменено 27.09.13 16:34:02
DJ_Serega
01.10.2013 00:31Ответ № 4
Сорее всего вы передаете ссылку а по com'у передаются только примитивные типы.
Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.