Запрос по Com из УТ 10.3 в Бух 2.0
Народ помогите пытаюсь сделать запрос из УТ 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");
этот же запрос в бух возвращает значение, в УТ пустой. Причем если убрать отбор по счету то в УТ запрос не пустой. Видимо надо счет как то по другому передавать в запрос, но код счета передаю строкой, запрос все равно пустой. Неохота в бух писать функцию с этим запросом, бухгалтерий потому что 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");
По теме из базы знаний
- Выгрузка-загрузка любых данных (и измененных) между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Обработка для сравнения данных документов между базами УТ 10.3 и Розницы 1.0
- Бонусная система для УТ 10.3
- Универсальная загрузка остатков и цен поставщиков в 1С (УТ 11, КА 2, ERP 2.0) из файлов Excel, CSV, XML (YML и CML)
- Простое ценообразование (установка цен номенклатуры) для 1С 8.3 (УТ 11 / ERP 2 / КА 2 / Розница 2) + (УТ 10.3 / УПП / КА 1 / Розница 1)
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
я прост количество() смотрю в результате оно 0.
и так возвращается обычный результат запроса. Вот проверил сейчас такой код. Там где стоит стрелка точка останова, табло
Рез.Субконто1.Метаданные().Имя "Контрагенты" Строка
проблема мне кажется либо в том что по такому типу регистров не построишь запрос либо надо как то по другому счет в него совать. Я подобными запросами несколько отчетов написал между 8.1 и 7.7. Вот теперь надо 8.2-8.2 освоить.
Запрос = v8.newObject("Запрос");
Текст ="
|ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1,
| ПРЕДСТАВЛЕНИЕ(ХозрасчетныйОстатки.Субконто1),
| ХозрасчетныйОстатки.СуммаОстаток,
| ХозрасчетныйОстатки.КоличествоОстаток
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, , , ) КАК ХозрасчетныйОстатки";
Запрос.УстановитьПараметр("Период", КонецДня(Период));
Запрос.Текст = Текст;
Рез = Запрос.Выполнить().Выбрать();
ТЗ = новый ТаблицаЗначений();
ТЗ.Колонки.Добавить("Наименование");
ТЗ.Колонки.Добавить("ID");
ТЗ.Колонки.Добавить("Кол");
Пока Рез.Следующий() цикл
стр = ТЗ.Добавить();
--------------->стр.Наименование = Рез.Субконто1.Наименование;
стр.ID = v8.ЗначениеВСтрокуВнутр(Рез.Субконто1);
стр.Кол = Рез.КоличествоОстаток;
КонецЦикла
и так возвращается обычный результат запроса. Вот проверил сейчас такой код. Там где стоит стрелка точка останова, табло
Рез.Субконто1.Метаданные().Имя "Контрагенты" Строка
проблема мне кажется либо в том что по такому типу регистров не построишь запрос либо надо как то по другому счет в него совать. Я подобными запросами несколько отчетов написал между 8.1 и 7.7. Вот теперь надо 8.2-8.2 освоить.
Запрос = v8.newObject("Запрос");
Текст ="
|ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1,
| ПРЕДСТАВЛЕНИЕ(ХозрасчетныйОстатки.Субконто1),
| ХозрасчетныйОстатки.СуммаОстаток,
| ХозрасчетныйОстатки.КоличествоОстаток
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, , , ) КАК ХозрасчетныйОстатки";
Запрос.УстановитьПараметр("Период", КонецДня(Период));
Запрос.Текст = Текст;
Рез = Запрос.Выполнить().Выбрать();
ТЗ = новый ТаблицаЗначений();
ТЗ.Колонки.Добавить("Наименование");
ТЗ.Колонки.Добавить("ID");
ТЗ.Колонки.Добавить("Кол");
Пока Рез.Следующий() цикл
стр = ТЗ.Добавить();
--------------->стр.Наименование = Рез.Субконто1.Наименование;
стр.ID = v8.ЗначениеВСтрокуВнутр(Рез.Субконто1);
стр.Кол = Рез.КоличествоОстаток;
КонецЦикла
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)