8.х Как через COM соединение передать в запрос группу счетов

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Imv, 29 ноя 2013.

  1. TopicStarter Overlay
    Imv
    Offline

    Imv

    Регистрация:
    11 сен 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Платформа: 8.2.19.68
    Конфигурация: УПП 1.3.45.3
    Хочу сравнить обороты по счетам в двух базах.
    Подключаюсь через COM соединение.
    1. Если запрашиваю обороты по одному счету или по всем, то все проходит на УРА...
    2. Если передаю в запрос Список значений то пишет ошибку...

    Код:
    Запрос2 = Подключение.NewObject("Запрос");
    Запрос2.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | ХозрасчетныйОстаткиИОбороты.Счет.Код КАК СчетКод,
    | ХозрасчетныйОстаткиИОбороты.Счет.Родитель.Код,
    | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    | ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
    | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
    | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , Счет В ИЕРАРХИИ (&ГруппаСчетов), , Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты
    |ИТОГИ
    | СУММА(СуммаНачальныйОстаток),
    | СУММА(СуммаОборотДт),
    | СУММА(СуммаОборотКт),
    | СУММА(СуммаКонечныйОстаток)
    |ПО
    | ХозрасчетныйОстаткиИОбороты.Счет ИЕРАРХИЯ
    |АВТОУПОРЯДОЧИВАНИЕ";
    // Так работает
    // СтрокаСчета = Подключение.ПланыСчетов.Хозрасчетный.НайтиПоНаименованию(ГруппаСчетов[0].Значение.Наименование);
    // Запрос2.УстановитьПараметр("ГруппаСчетов", СтрокаСчета);

    // Так не работает. Список значений берется с формы
    Запрос2.УстановитьПараметр("ГруппаСчетов", ГруппаСчетов2);

    // И так не работает. Список значений формирую сам, на основании списка из первого запроса.
    ГруппаСчетов2 = Новый СписокЗначений;
    ГруппаСчетов2.Добавить(Подключение.ПланыСчетов.Хозрасчетный.НайтиПоНаименованию(ГруппаСчетов[0].Значение.Наименование));
    Запрос2.УстановитьПараметр("ГруппаСчетов", ГруппаСчетов2);

    Запрос2.УстановитьПараметр("ДатаНач", НачалоДня(ДатаНач));
    Запрос2.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
    Запрос2.УстановитьПараметр("Организация", Подключение.Справочники.Организации.НайтиПоНаименованию(Организация.Наименование));
    ТЗ_2 = Запрос2.Выполнить().Выгрузить();
  2. saha25
    Offline

    saha25 Опытный в 1С

    Регистрация:
    30 окт 2007
    Сообщения:
    95
    Симпатии:
    3
    Баллы:
    29
    СписокЗначений надо создавать в удаленной базе.
    Что-то типа Спис=Подключение.new("СписокЗначений");
    Ну а потом

    СтрокаСчета = Подключение.ПланыСчетов.Хозрасчетный.НайтиПоНаименованию(ГруппаСчетов[0].Значение.Наименование);
    Спис.Добавить(СтрокаСчета)
    и т.д.
  3. TopicStarter Overlay
    Imv
    Offline

    Imv

    Регистрация:
    11 сен 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Оооо... :)
    Спасибо !!! убил на это почти два часа времени ... А решение в 2 минуты :)


    ГруппаСчетов2 = Подключение.NewObject("СписокЗначений");
    Для каждого Запись Из ГруппаСчетов Цикл
    СтрокаСчета = Подключение.ПланыСчетов.Хозрасчетный.НайтиПоНаименованию(Запись.Значение.Наименование);
    ГруппаСчетов2.Добавить(СтрокаСчета);
    КонецЦикла;

Поделиться этой страницей