Имя: Пароль:
1C
 
Com-соединение и проведение документа
0 Serdolik55
 
30.09.11
17:47
Коллеги!
Подключаяюсь по Com-соединение в другую базу, создаю там документ, записать его удаётся, а вот провести нет: пишет(Ошибка при вызове метода контекста (Записать): Произошла исключительная ситуация: Несоответствие типов (параметр номер '1')). Кто-нибудь знает, можно ли по com-соединению провести в удалённой базе документ и если да, то как?
Код привожу ниже:

Состояние("Проверка наличия соединения с бух. базой ООО ""Ромашка""...");
   V82 = Новый COMОбъект("V82.COMConnector");    
   Попытка
       СоединениеБух = V82.Connect("File="""+База+""";Usr="""+Имя+""";Pwd="""+Пароль+""";");
       Состояние("Проверка наличия соединения - Ок!");
   Исключение
       Предупреждение("Нет связи с удалённой базой!!!");
       Возврат;
   КонецПопытки;
                       
       Если ЗапросДляПереносаДокументов().Пустой() Тогда
           Предупреждение("Нет документов для переноса!!!");
           Возврат;
       Иначе
           ВыборкаШапки =  ЗапросДляПереносаДокументов().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
           Пока ВыборкаШапки.Следующий()Цикл
               
               Состояние("Создание документов в базе ООО ""Ромашка""... ");
               
               ComПоступление = СоединениеБух.Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
               ComПоступление.ВидОперации = СоединениеБух.Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия;
               ComПоступление.Дата = ВыборкаШапки.Дата;
               ComПоступление.ВалютаДокумента = СоединениеБух.Константы.ВалютаРегламентированногоУчета.Получить();
               ComПоступление.Организация = СоединениеБух.Справочники.Организации.НайтиПоКоду("00005");  
               ComПоступление.Контрагент = СоединениеБух.Справочники.Контрагенты.НайтиПоКоду("00004251");  
               ComПоступление.ДоговорКонтрагента = СоединениеБух.Справочники.ДоговорыКонтрагентов.НайтиПоКоду("00009277");
               ComПоступление.Склад = СоединениеБух.Справочники.Склады.НайтиПоКоду("00000001"); //Основной склад
               ComПоступление.СпособЗачетаАвансов = СоединениеБух.Перечисления.СпособыЗачетаАвансов.Автоматически;
               ComПоступление.УчитыватьНДС = Истина;
               ComПоступление.СуммаВключаетНДС = Истина;
               ComПоступление.НДСВключенВСтоимость = Ложь;
               ComПоступление.КурсВзаиморасчетов = 1;
               ComПоступление.КратностьВзаиморасчетов = 1;
               ComПоступление.СчетУчетаРасчетовСКонтрагентом = СоединениеБух.ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;  //60.01
               ComПоступление.СчетУчетаРасчетовПоАвансам = СоединениеБух.ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным; //60.02
               ComПоступление.Комментарий = ВыборкаШапки.ДляКомментария ;  
               
               Курс = ВыборкаШапки.КурсДокументаВРублях;
               
               ВыборкаДетальныхЗаписей = ВыборкаШапки.Выбрать();
               Пока ВыборкаДетальныхЗаписей.Следующий() Цикл
                   ComСтрПоступление = ComПоступление.Товары.Добавить();
                   ComСтрПоступление.Номенклатура = ПоискНоменклатуры (СоединениеБух,ВыборкаДетальныхЗаписей.Номенклатура,ВыборкаДетальныхЗаписей.КодСтавкиНДС);
                   ComСтрПоступление.Количество = ВыборкаДетальныхЗаписей.Количество;
                   ComСтрПоступление.Цена = Окр(ВыборкаДетальныхЗаписей.Цена*Курс,2);
                   ComСтрПоступление.Сумма = Окр(ВыборкаДетальныхЗаписей.Сумма*Курс,2);
                   ComСтрПоступление.СтавкаНДС = СоединениеБух.Перечисления.СтавкиНДС.БезНДС;
                   ComСтрПоступление.СчетУчета = СоединениеБух.ПланыСчетов.Хозрасчетный.ТМЦпринятыеНаОтветственноеХранение; //002
                   ComСтрПоступление.НомерГТД = ПоискГТД(СоединениеБух,ВыборкаДетальныхЗаписей.НомерГТДКод);
                   ComСтрПоступление.СтранаПроисхождения = СоединениеБух.Справочники.КлассификаторСтранМира.НайтиПоКоду(ВыборкаДетальныхЗаписей.СтранаПроисхожденияКод);
                   ComСтрПоступление.ОтражениеВУСН = СоединениеБух.Перечисления.ОтражениеВУСН.НеПринимаются;
               КонецЦикла;
           Попытка
               ComПоступление.Записать();
               Сообщить("Создан и проведен документ: Поступление товаров и услуг " + ComПоступление.Номер + ComПоступление.Дата);
           Исключение
               Сообщить("Не удалось провести документ! " + ОписаниеОшибки(),СтатусСообщения.Важное);
           КонецПопытки;
           
           КонецЦикла;
1 Reset
 
30.09.11
17:49
ComПоступление.Записать(СоединениеБух.РежимЗаписиДокумента.Проведение);
2 Serdolik55
 
30.09.11
17:51
(1) Спасибо! Получилось!
AdBlock убивает бесплатный контент. 1Сергей