|
OLE к 77 контекст доступа | ☑ | ||
---|---|---|---|---|
0
Snik_666
22.07.11
✎
22:32
|
Добрый вечер! Подскажите правильный контекст доступа ?
код s_path = "_path"; s_user = "е"; s_pass = "1"; COM_77 = Новый COMОбъект("V77s.Application"); V77 = COM_77.Initialize(COM_77.RMTrade, "/D" + s_path + " /N" + s_user + " /P" + s_pass, "NO_SPLASH_SHOW");//, "NO_SPLASH_SHOW" Если НЕ V77 Тогда Сообщить("Не удачная попытка входа в 77"); Возврат; КонецЕсли; ТЗ = COM_77.CreateObject("ТаблицаЗначений"); ТЗ.НоваяКолонка("Склад"); ТЗ.НоваяКолонка("РегистраторВид"); ТЗ.НоваяКолонка("ДатаДок"); Выдает ошибку Ошибка при установке значения атрибута контекста (Вспомогательный): Типы не совпадают (0) Ит.ИспользоватьПланСчетов(COM_77.ПланыСчетов.Вспомогательный); ТЗ.НоваяКолонка("НомерДок"); ТЗ.НоваяКолонка("КвоПрих"); ТЗ.НоваяКолонка("КвоРасх"); ТЗ.НоваяКолонка("СтоимостьПрих"); ТЗ.НоваяКолонка("СтоимостьРасх"); ВыбРазделительУчета = COM_77.CreateObject("Справочник.Фирмы"); Если ВыбРазделительУчета.НайтиПоКоду("2") = 1 Тогда Фирма = ВыбРазделительУчета.ТекущийЭлемент(); КонецЕсли; ТМЦ = COM_77.CreateObject("Справочник.ТМЦ"); Если ТМЦ.НайтиПоКоду(СокрЛП(КодТМЦ77)) = 1 Тогда ВыбСубконто1 = ТМЦ.ТекущийЭлемент(); Иначе Сообщить("ТМЦ с кодом "+КодТМЦ77+" ненайдено"); КонецЕсли; Ит = COM_77.CreateObject("БухгалтерскиеИтоги"); Ит.ИспользоватьПланСчетов(COM_77.ПланыСчетов.Вспомогательный); Ит.ИспользоватьРазделительУчета(Фирма); ВидыСубконто = COM_77.ВидыСубконто; Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ, ВыбСубконто1, 1); Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения,, 1); Ит.ВыполнитьЗапрос(НачПериода, КонПериода, "281",,, 1, "Операция", "СК"); Ит.ВыбратьСубконто(ВидыСубконто.МестаХранения); Пока Ит.ПолучитьСубконто(ВидыСубконто.МестаХранения) = 1 Цикл Ит.ВыбратьСубконто(ВидыСубконто.ТМЦ); Пока Ит.ПолучитьСубконто(ВидыСубконто.ТМЦ) = 1 Цикл Ит.ВыбратьПериоды(); Пока Ит.ПолучитьПериод() = 1 Цикл ТЗ.НоваяСтрока(); //Сообщить("Ит.Операция.Документ="+Ит.Операция.Документ); ДокСсылка = Ит.Операция.Документ; Док = COM_77.CreateObject("Документ"); Док.НайтиДокумент(ДокСсылка); ТЗ.Склад = СокрЛП(Ит.Субконто(ВидыСубконто.МестаХранения).Наименование); ТЗ.РегистраторВид = Док.ТекущийДокумент().Вид(); Ч="";М="";С=""; Док.ПолучитьВремя(Ч,М,С); ТЗ.ДатаДок = СокрЛП(Док.ДатаДок)+" "+Ч+":"+М+":"+С; ТЗ.НомерДок = Док.НомерДок; ТЗ.КвоПрих = Ит.ДО(3); ТЗ.КвоРасх = Ит.КО(3); ТЗ.СтоимостьПрих = Ит.ДО()*1.2; ТЗ.СтоимостьРасх = Ит.КО()*1.2; ДокСсылка = ""; КонецЦикла; КонецЦикла; КонецЦикла; Сообщить("ТЗ из 77 заполнена! "+ТЗ.КоличествоСтрок()+" строк"); ЭлементыФормы.ТабличноеПоле1.Значение = ТЗ; ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(); ЭлементыФормы.ТабличноеПоле1.ОбновитьСтроки(); |
|||
1
Snik_666
22.07.11
✎
22:32
|
Выдает ошибку
Ошибка при установке значения атрибута контекста (Вспомогательный): Типы не совпадают (0) Ит.ИспользоватьПланСчетов(COM_77.ПланыСчетов.Вспомогательный); |
|||
2
andrewks
22.07.11
✎
22:44
|
план счетов ч/з CreateObject и ЗначениеПоИдентификатору попробуй сделать
|
|||
3
Snik_666
22.07.11
✎
22:52
|
сделал
ПС = COM_77.ПланыСчетов; Вспомогательный = ПС.ЗначениеПоИдентификатору("Вспомогательный"); так теперь далее... {Форма.Форма(44)}: Ошибка при установке значения атрибута контекста (ТМЦ): Типы не совпадают (0) Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ, ВыбСубконто1, 1); |
|||
4
andrewks
22.07.11
✎
22:54
|
короче, юзай CreateObject и не ешь мозги
|
|||
5
Snik_666
22.07.11
✎
23:11
|
ВидыСубконто = COM_77.ВидыСубконто;
МестаХранения = ВидыСубконто.ЗначениеПоИдентификатору("МестаХранения"); ТМЦ = ВидыСубконто.ЗначениеПоИдентификатору("ТМЦ"); Ит = COM_77.CreateObject("БухгалтерскиеИтоги"); Ит.ИспользоватьПланСчетов(Вспомогательный); Ит.ИспользоватьРазделительУчета(Фирма); Ит.ИспользоватьСубконто(ТМЦ, ВыбСубконто1, 1); Ит.ИспользоватьСубконто(МестаХранения,, 1); Ит.ВыполнитьЗапрос(НачПериода, КонПериода, "281",,, 1, "Операция", "СК"); Ит.ВыбратьСубконто(МестаХранения); Форма.Форма(49)}: Ошибка при вызове метода контекста (ИспользоватьСубконто): Типы не совпадают (2) Ит.ИспользоватьСубконто(МестаХранения,, 1); непойму ну почему именно на Ит.ИспользоватьСубконто(МестаХранения,, 1); если Ит.ИспользоватьСубконто(ТМЦ, ВыбСубконто1, 1); стоит раньше идентиф МестаХранения в 77 точно |
|||
6
andrewks
22.07.11
✎
23:23
|
МестаХранения=COM_77.EvalExpr("ВидыСубконто.ЗначениеПоИдентификатору(""МестаХранения"")";
|
|||
7
Snik_666
22.07.11
✎
23:28
|
ВидыСубконто = COM_77.ВидыСубконто;
МестаХранения = COM_77.EvalExpr("ВидыСубконто.ЗначениеПоИдентификатору(""МестаХранения"")"); ТМЦ = ВидыСубконто.ЗначениеПоИдентификатору("ТМЦ"); Ит = COM_77.CreateObject("БухгалтерскиеИтоги"); Ит.ИспользоватьПланСчетов(Вспомогательный); Ит.ИспользоватьРазделительУчета(Фирма); Ит.ИспользоватьСубконто(ТМЦ, ВыбСубконто1, 1); тоже самое {Форма.Форма(48)}: Ошибка при вызове метода контекста (ИспользоватьСубконто): Типы не совпадают (2) Ит.ИспользоватьСубконто(МестаХранения,, 1); |
|||
8
andrewks
22.07.11
✎
23:31
|
ну блин, прояви смекалку! ТМЦ так же надо определить.
у тебя в методы v77 должны попадать только простые типы и объекты v77. всё, остальное - лесом |
|||
9
Snik_666
22.07.11
✎
23:35
|
Так ругается именно на строчке
Ит.ИспользоватьСубконто(МестаХранения,, 1); тмц подобно переписывал , тоже самое... |
|||
10
andrewks
22.07.11
✎
23:37
|
покажи, какой у тебя сейчас код
|
|||
11
Snik_666
22.07.11
✎
23:42
|
Вспомогательный = COM_77.EvalExpr("ПланыСчетов.ЗначениеПоИдентификатору(""Вспомогательный"")");
МестаХранения = COM_77.EvalExpr("ВидыСубконто.ЗначениеПоИдентификатору(""МестаХранения"")"); ТМЦ = COM_77.EvalExpr("ВидыСубконто.ЗначениеПоИдентификатору(""ТМЦ"")"); Сообщить("МестаХранения= "+МестаХранения.Идентификатор()); Сообщить("ТМЦ= "+ТМЦ.Идентификатор()); Ит = COM_77.CreateObject("БухгалтерскиеИтоги"); Ит.ИспользоватьПланСчетов(Вспомогательный); Ит.ИспользоватьРазделительУчета(Фирма); Ит.ИспользоватьСубконто(ТМЦ, ВыбСубконто1, 1); Ит.ИспользоватьСубконто(МестаХранения,, 1); Ит.ВыполнитьЗапрос(НачПериода, КонПериода, "281",,, 1, "Операция", "СК"); Ит.ВыбратьСубконто(МестаХранения); Пока Ит.ПолучитьСубконто(МестаХранения) = 1 Цикл Ит.ВыбратьСубконто(ТМЦ); Пока Ит.ПолучитьСубконто(ТМЦ) = 1 Цикл Ит.ВыбратьПериоды(); Пока Ит.ПолучитьПериод() = 1 Цикл рез: МестаХранения= МестаХранения ТМЦ= ТМЦ {Форма.Форма(50)}: Ошибка при вызове метода контекста (ИспользоватьСубконто): Типы не совпадают (2) Ит.ИспользоватьСубконто(МестаХранения,, 1); |
|||
12
andrewks
22.07.11
✎
23:45
|
Ит.ИспользоватьСубконто(МестаХранения,"", 1);
|
|||
13
Snik_666
22.07.11
✎
23:48
|
(12) точно бли , СПАСИБО! и уже когда-то натыкался... 100 лет назад что параметры незаполненые по оле пустыми надо.
СПАСИБО! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |