Запрос по Com из УТ 10.3 в Бух 2.0

1. rar_xxx 23 10.10.11 11:36 Сейчас в теме
Народ помогите пытаюсь сделать запрос из УТ 10.3 в Бух 2.0
этот же запрос в бух возвращает значение, в УТ пустой. Причем если убрать отбор по счету то в УТ запрос не пустой. Видимо надо счет как то по другому передавать в запрос, но код счета передаю строкой, запрос все равно пустой. Неохота в бух писать функцию с этим запросом, бухгалтерий потому что 3 и некрасиво чтоли как то.



ТекCOMПодключение = Новый COMОбъект("V82.COMConnector");
v8 = ТекCOMПодключение.Connect("File=""" + Путь1с + """;Usr="""+ User + """;Pwd=""" + Пароль+""";");
Запрос = v8.newObject("Запрос");
Текст ="
|ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1,
| ПРЕДСТАВЛЕНИЕ(ХозрасчетныйОстатки.Субконто1),
| ХозрасчетныйОстатки.СуммаОстаток,
| ХозрасчетныйОстатки.КоличествоОстаток
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет.Код = &Код, , ) КАК ХозрасчетныйОстатки";


ИЛИ так

//| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет, , ) КАК ХозрасчетныйОстатки";

Счет = v8.ПланыСчетов.Хозрасчетный.НайтиПоКоду("10.01");
Запрос.УстановитьПараметр("Счет",Счет);
Запрос.УстановитьПараметр("Период", КонецДня(Период));
Запрос.УстановитьПараметр("Код",СокрЛП(КодСчета));
Запрос.Текст = Текст;

Рез = Запрос.Выполнить().Выбрать();

так тоже пусто

Текст ="
|ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1,
| ПРЕДСТАВЛЕНИЕ(ХозрасчетныйОстатки.Субконто1),
| ХозрасчетныйОстатки.СуммаОстаток,
| ХозрасчетныйОстатки.КоличествоОстаток
|ИЗ
//| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет.Код = &Код, , ) КАК ХозрасчетныйОстатки";

| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, , , ) КАК ХозрасчетныйОстатки
|ГДЕ
| ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет)";

Счет = v8.ПланыСчетов.Хозрасчетный.НайтиПоКоду(КодСчета);
Запрос.УстановитьПараметр("Период", КонецДня(Период));
Запрос.УстановитьПараметр("Код",СокрЛП(КодСчета));

Запрос.УстановитьПараметр("Счет",Счет.Ссылка);
Запрос.Текст = Текст;



Рез = Запрос.Выполнить().Выбрать();

и так пусто причем в бух. этот код дает выборку.

|ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1,
| ПРЕДСТАВЛЕНИЕ(ХозрасчетныйОстатки.Субконто1),
| ХозрасчетныйОстатки.СуммаОстаток,
| ХозрасчетныйОстатки.КоличествоОстаток
|ИЗ
//| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет.Код = &Код, , ) КАК ХозрасчетныйОстатки";

| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, , , ) КАК ХозрасчетныйОстатки
|ГДЕ
| ХозрасчетныйОстатки.Счет.Код = &Код";

//Счет = v8.ПланыСчетов.Хозрасчетный.НайтиПоКоду(КодСчета);
Запрос.УстановитьПараметр("Период", КонецДня(Период));
Запрос.УстановитьПараметр("Код","10.01");
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alex_Japanese_Student 454 10.10.11 12:12 Сейчас в теме
(1) rar_xxx, А как ты бегаешь по итогам запроса и что ты пытаешься с ними сделать
У тебя же субконто - это объекты другой базы, в этой базе они будут пустыми у тебя - тебе надо результаты запроса простыми типами возвращать - числами, строками
volokitinac; +1
3. rar_xxx 23 10.10.11 12:44 Сейчас в теме
я прост количество() смотрю в результате оно 0.
и так возвращается обычный результат запроса. Вот проверил сейчас такой код. Там где стоит стрелка точка останова, табло
Рез.Субконто1.Метаданные().Имя "Контрагенты" Строка
проблема мне кажется либо в том что по такому типу регистров не построишь запрос либо надо как то по другому счет в него совать. Я подобными запросами несколько отчетов написал между 8.1 и 7.7. Вот теперь надо 8.2-8.2 освоить.


Запрос = v8.newObject("Запрос");
Текст ="
|ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1,
| ПРЕДСТАВЛЕНИЕ(ХозрасчетныйОстатки.Субконто1),
| ХозрасчетныйОстатки.СуммаОстаток,
| ХозрасчетныйОстатки.КоличествоОстаток
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, , , ) КАК ХозрасчетныйОстатки";


Запрос.УстановитьПараметр("Период", КонецДня(Период));
Запрос.Текст = Текст;


Рез = Запрос.Выполнить().Выбрать();
ТЗ = новый ТаблицаЗначений();
ТЗ.Колонки.Добавить("Наименование");
ТЗ.Колонки.Добавить("ID");
ТЗ.Колонки.Добавить("Кол");

Пока Рез.Следующий() цикл
стр = ТЗ.Добавить();
--------------->стр.Наименование = Рез.Субконто1.Наименование;
стр.ID = v8.ЗначениеВСтрокуВнутр(Рез.Субконто1);
стр.Кол = Рез.КоличествоОстаток;
КонецЦикла
+
4. rar_xxx 23 10.10.11 13:44 Сейчас в теме
Редкая глупость)) проверял на базе у которой по нужному счету нет остатков )). Запрос проверял на базе у которой есть остатки. А обработку запускал на базе у которой нет остатков по этому счету)))
+
Внимание! Тема сдана в архив

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