77.Application и ВыполнитьЗапрос на позицию документа

1. GrafB 10 21.04.21 14:12 Сейчас в теме
Добрый день, пытаюсь в 1С 8.3 получить долг по клиенту на момент перед документом из 1С7.7
...
    СчетОЛЕ = V77.CreateObject("Счет");
    СчетОЛЕ.НайтиПоКоду("62");
	
	БИДолги = V77.CreateObject("БухгалтерскиеИтоги"); 
	БИДолги.ИспользоватьСубконто(СчетОЛЕ.ВидСубконто(1), ВыбКонтрагент);
	БИДолги.ИспользоватьСубконто(СчетОЛЕ.ВидСубконто(2));
	КонецПериода = V77.СформироватьПозициюДокумента( ПКОСОМ.ТекущийДокумент().ПолучитьПозицию(), -1);
	БИДолги.ВыполнитьЗапрос( , КонецПериода, СчетОЛЕ);
Показать


Ошибка "Типы не совпадают"

КонецПериода имеет строковой тип вида "#20210414 651240000 2149236ЯЯЯ". То же самое вижу при написании кода в 7.7 и там всё отрабатывает.

ПКОСОМ это тот самый документ, на момент перед которым нужны данные. Строка БИДолги.ВыполнитьЗапрос( , ПКОСОМ.ДатаДок, СчетОЛЕ) срабатывает без проблем, но данные соответственно не те, а на конец дня.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DenisCh 21.04.21 14:45 Сейчас в теме
В ОЛЕ-вызовах никогда нельзя использовать значения по умолчанию,

Т.е. в
 БИДолги.ВыполнитьЗапрос( , КонецПериода, СчетОЛЕ);

нужно первый параметр указать обязательно. А желательно - и все остальные.
3. GrafB 10 21.04.21 14:59 Сейчас в теме
(2) Я попробую сейчас заполнить все параметры, но как уже писал выше, если вместо КонецПериода передам ПКОСОМ.ДатаДок и больше ничего не буду менять, то всё работает как надо.
4. GrafB 10 21.04.21 15:32 Сейчас в теме
Не стал заполнять все параметры, добавил только начало периода и взлетело
БИДолги.ВыполнитьЗапрос( КонецПериода, КонецПериода, СчетОЛЕ);
5. VladimirB 16 23.04.21 06:55 Сейчас в теме
(1) ВыбКонтрагент тоже должен быть из OLE
6. GrafB 10 27.04.21 16:20 Сейчас в теме
(5) с этим всё норм, он OLE, не стал писать весь код. выборка данных работает корректно
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот