Задача - связать остатки в 2х базах. Утп и бух.
1С:Предприятие 8.3 (8.3.9.2033), утп (1.2.32.1)
бух той же версии, последняя.
Связь по артикулу!
Не взлетает такая хрень:
В8 = Новый COMОбъект("V83.Application");
Попытка
Открытие = В8.Connect("File=""" + СокрЛП(Путь));
Сообщить("Все чьотко!");
Исключение
Предупреждение("База данных не открыта!!!");
Возврат;
КонецПопытки;
ЗапрВсеАртикулы = Новый Запрос;
ЗапрВсеАртикулы.Текст = "ВЫБРАТЬ
| Номенклатура.Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Артикул <> """"";
МассАртикулыУпр = ЗапрВсеАртикулы.Выполнить().Выгрузить().ВыгрузитьКолонку("Артикул");
СписВсехАртикулов = Новый СписокЗначений;
СписВсехАртикулов.ЗагрузитьЗначения(МассАртикулыУпр);
СписЗначВ8 = В8.NewObject("СписокЗначений");
Для Каждого ЗапСписЗн из СписВсехАртикулов Цикл
СписЗначВ8.Добавить(ЗапСписЗн);
КонецЦикла;
ЗапрВ8 = В8.NewObject("Запрос");
ЗапрВ8.Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.КоличествоОстаток,
| ХозрасчетныйОстатки.Субконто1.Артикул КАК Артикул
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет = &Счет, , Субконто1.Артикул В (&Артикулы)) КАК ХозрасчетныйОстатки";
Счет281В8 = В8.ПланыСчетов.Хозрасчетный.НайтиПоКоду("281");
ЗапрВ8.УстановитьПараметр("Счет",Счет281В8);
ЗапрВ8.УстановитьПараметр("Артикулы",СписЗначВ8);
РезПоБух = ЗапрВ8.Выполнить().Выгрузить();
Если РезПоБух.Количество() > 0 Тогда
Сообщить("Есть!!!");
КонецЕсли;
В отладчике объект СписЗначВ8 имеет такое же количество элементов как и в УТП.
Но ругается:
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(49)}: Ошибка при вызове метода контекста (Выполнить)
РезПоБух = ЗапрВ8.Выполнить().Выгрузить();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.9.2033): {(5, 81)}: Неверные параметры
РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет = &Счет, , Субконто1.Артикул В (<<?>>&Артикулы)) КАК ХозрасчетныйОстатки
Спасибо!