Имя: Пароль:
1C
1С v8
COM Объект и выборка из запроса
0 rosveta
 
27.10.14
13:38
Недавно столкнулась с такой проблемой. Я создаю ком-соединение, на стороне внешней базы я выполняю запрос. Если я использую метод Выгрузить(), то все работает, если же пытаюсь обойти по группировкам, то возникает ошибка.

РезультатОбходаПоНоменклатуре = ЗапросУТ.Выполнить().Select(QueryResultIteration.ByGroups);
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.4.408): Несоответствие типов (параметр номер '1').

Можно ли как-то обойти по группировкам?



ЗапросУТ = БазаУТ.NewObject("Запрос");
        
    ЗапросУТ.Текст =
    "ВЫБРАТЬ
    |    ВЫРАЗИТЬ(ТаблицаДляПеремещенияУТ.ГУИДОрганизация КАК СТРОКА(36)) КАК ГУИДОрганизация,
    |    ВЫРАЗИТЬ(ТаблицаДляПеремещенияУТ.ГУИДНоменклатура КАК СТРОКА(36)) КАК ГУИДНоменклатура,
    |    ВЫРАЗИТЬ(ТаблицаДляПеремещенияУТ.ГУИДСклад КАК СТРОКА(36)) КАК ГУИДСклад,
    |    ТаблицаДляПеремещенияУТ.Количество КАК Количество
    |ПОМЕСТИТЬ ВТ_ТаблицаДляПеремещенияУТ
    |ИЗ
    |    &ТаблицаДляПеремещенияУТ КАК ТаблицаДляПеремещенияУТ
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВТ_ТаблицаДляПеремещенияУТ.Количество,
    |    ВЫРАЗИТЬ(ЕСТЬNULL(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК Справочник.Номенклатура) КАК Номенклатура,
    |    ВТ_ТаблицаДляПеремещенияУТ.ГУИДСклад,
    |    ВТ_ТаблицаДляПеремещенияУТ.ГУИДОрганизация,
    |    ПРЕДСТАВЛЕНИЕ(ВЫРАЗИТЬ(ЕСТЬNULL(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК Справочник.Номенклатура)) КАК НоменклатураСтрока
    |ПОМЕСТИТЬ ВТ_ПолучениеСсылокНоменклатура
    |ИЗ
    |    ВТ_ТаблицаДляПеремещенияУТ КАК ВТ_ТаблицаДляПеремещенияУТ
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз
    |        ПО ВТ_ТаблицаДляПеремещенияУТ.ГУИДНоменклатура = СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточникаСтрокой
    |            И (СоответствияОбъектовИнформационныхБаз.УзелИнформационнойБазы = &УзелРозница)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВТ_ПолучениеСсылокНоменклатура.Количество,
    |    ВТ_ПолучениеСсылокНоменклатура.Номенклатура,
    |    ВЫРАЗИТЬ(ЕСТЬNULL(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Справочник.Склады) КАК Склад,
    |    ВТ_ПолучениеСсылокНоменклатура.ГУИДОрганизация,
    |    ПРЕДСТАВЛЕНИЕ(ВЫРАЗИТЬ(ЕСТЬNULL(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Справочник.Склады)) КАК СкладСтрока,
    |    ВТ_ПолучениеСсылокНоменклатура.НоменклатураСтрока
    |ПОМЕСТИТЬ ВТ_ПолучениеСсылокСклад
    |ИЗ
    |    ВТ_ПолучениеСсылокНоменклатура КАК ВТ_ПолучениеСсылокНоменклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз
    |        ПО (СоответствияОбъектовИнформационныхБаз.УзелИнформационнойБазы = &УзелРозница)
    |            И ВТ_ПолучениеСсылокНоменклатура.ГУИДСклад = СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточникаСтрокой
    |            И (СоответствияОбъектовИнформационныхБаз.ТипИсточника = ""СправочникСсылка.Склады"")
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВТ_ПолучениеСсылокСклад.Номенклатура,
    |    ВТ_ПолучениеСсылокСклад.Склад,
    |    ВТ_ПолучениеСсылокСклад.Количество,
    |    ВЫРАЗИТЬ(ЕСТЬNULL(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника, ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)) КАК Справочник.Организации) КАК Организация,
    |    ПРЕДСТАВЛЕНИЕ(ВЫРАЗИТЬ(ЕСТЬNULL(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника, ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)) КАК Справочник.Организации)) КАК ОрганизацияСтрока,
    |    ВТ_ПолучениеСсылокСклад.СкладСтрока,
    |    ВТ_ПолучениеСсылокСклад.НоменклатураСтрока
    |ПОМЕСТИТЬ ВТ_ПолучениеСсылокОрганизация
    |ИЗ
    |    ВТ_ПолучениеСсылокСклад КАК ВТ_ПолучениеСсылокСклад
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз
    |        ПО ВТ_ПолучениеСсылокСклад.ГУИДОрганизация = СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточникаСтрокой
    |            И (СоответствияОбъектовИнформационныхБаз.УзелИнформационнойБазы = &УзелРозница)
    |            И (СоответствияОбъектовИнформационныхБаз.ТипИсточника = ""СправочникСсылка.Организации"")
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВТ_ПолучениеСсылокОрганизация.Номенклатура КАК Номенклатура,
    |    ВТ_ПолучениеСсылокОрганизация.НоменклатураСтрока,
    |    ВТ_ПолучениеСсылокОрганизация.Склад КАК Склад,
    |    ВТ_ПолучениеСсылокОрганизация.СкладСтрока,
    |    ВТ_ПолучениеСсылокОрганизация.Организация КАК ОрганизацияПродажи,
    |    ВТ_ПолучениеСсылокОрганизация.ОрганизацияСтрока КАК ОрганизацияПродажиСтрока,
    |    ВТ_ПолучениеСсылокОрганизация.Количество КАК Переместить,
    |    ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) КАК ОстатокОрганизации,
    |    ТоварыОрганизацийОстатки.Организация КАК Организация,
    |    ПРЕДСТАВЛЕНИЕ(ТоварыОрганизацийОстатки.Организация),
    |    ВЫБОР
    |        КОГДА ВТ_ПолучениеСсылокОрганизация.Организация = ТоварыОрганизацийОстатки.Организация
    |            ТОГДА 1
    |        ИНАЧЕ ВЫБОР
    |                КОГДА ТоварыОрганизацийОстатки.Организация.Наименование ПОДОБНО ""%Люмис УТ%""
    |                    ТОГДА 2
    |                ИНАЧЕ ВЫБОР
    |                        КОГДА ТоварыОрганизацийОстатки.Организация.Наименование ПОДОБНО ""%ООО """"Люмис""""%""
    |                            ТОГДА 3
    |                        ИНАЧЕ 4
    |                    КОНЕЦ
    |            КОНЕЦ
    |    КОНЕЦ КАК Приоритет
    |ИЗ
    |    ВТ_ПолучениеСсылокОрганизация КАК ВТ_ПолучениеСсылокОрганизация
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(&ТекущаяДата, ) КАК ТоварыОрганизацийОстатки
    |        ПО ВТ_ПолучениеСсылокОрганизация.Номенклатура = ТоварыОрганизацийОстатки.Номенклатура
    |            И ВТ_ПолучениеСсылокОрганизация.Склад = ТоварыОрганизацийОстатки.Склад
    |
    |УПОРЯДОЧИТЬ ПО
    |    Приоритет
    |ИТОГИ
    |    СУММА(Переместить)
    |ПО
    |    Номенклатура,
    |    Организация,
    |    Склад";
    
    ЗапросУТ.УСтановитьПараметр("ТаблицаДляПеремещенияУТ",ТаблицаДляПередачиВУТ);
    ЗапросУТ.УСтановитьПараметр("ТекущаяДата",ТекущаяДата());
    ЗапросУТ.УстановитьПараметр("УзелРозница", БазаУТ.ПланыОбмена.ОбменУправлениеТорговлейРозница.НайтиПоКоду("ЦР"));
    
    РезультатОбходаПоНоменклатуре = ЗапросУТ.Выполнить().Select(QueryResultIteration.ByGroups);
1 Looser-1c
 
27.10.14
13:40
РезультатОбходаПоНоменклатуре = ЗапросУТ.Выполнить().Select(БазаУТ.QueryResultIteration.ByGroups);
2 rosveta
 
27.10.14
13:48
Looser-1c, большое спасибо. Так работает.
3 чувак
 
27.10.14
13:52
(1) фотка твоя?
4 чувак
 
27.10.14
13:52
т.е. к (0)
5 rosveta
 
27.10.14
14:06
(3), да.
6 Looser-1c
 
27.10.14
14:07
(5) Света, а может, ну её нафиг, эту 1с? Переезжайте в Питер.... ))
7 чувак
 
27.10.14
14:09
(5) Красивая баба. Зачем тебе 1с? Могла бы удачно работать манагером в любой компании
Программист всегда исправляет последнюю ошибку.