Имя: Пароль:
1C
1С v8
Разное количество полей в объединяемых запросах
0 NovichokAlena
 
23.09.14
09:02
Здравствуйте,помогите разобраться,пожалуйста. Пишу печатную форму, выдает такую ошибку: {Форма.Форма.Форма(296)}: Ошибка при вызове метода контекста (Выполнить)
    ЗапросПоНоменклатуре = Запрос.Выполнить();
по причине:
Разное количество полей в объединяемых запросах

Вот сам код

Функция ПечатьМ11СписаниеМатериаловИзЭксплуатации()
    
    Запрос = Новый Запрос;
    
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
    
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номер                    КАК Номер,
    | Дата                     КАК ДатаДокумента,
    | Дата                     КАК ДатаСоставления,
    | Организация              КАК Организация
//    | Склад                    КАК Склад,
//    | Местонахождение          КАК Подразделение
    |ИЗ
    | Документ.СписаниеМатериаловИзЭксплуатации КАК СписаниеМатериаловИзЭксплуатации
    |
    |ГДЕ
    | СписаниеМатериаловИзЭксплуатации.Ссылка = &ТекущийДокумент";
    
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    
    Запрос = Новый Запрос;
    
    Запрос.УстановитьПараметр("Ссылка",                                                      СсылкаНаОбъект.Ссылка);
    Запрос.УстановитьПараметр("ДатаДок",                                                     Шапка.ДатаДокумента);
    Запрос.УстановитьПараметр("СчетПередачиСпецодеждыЗабалансовый",                             ПланыСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный);
    Запрос.УстановитьПараметр("СчетПередачиСпецоснасткиЗабалансовый",                           ПланыСчетов.Хозрасчетный.СпецоснасткаВЭксплуатацииВспомогательный);
    Запрос.УстановитьПараметр("СчетПередачиИнвентаряИХозяйственныхПринадлежностейЗабалансовый", ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации);
    
    Запрос.Текст =
    "ВЫБРАТЬ
    | ВложенныйЗапрос.ID КАК ID,
    | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
    | ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    | ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК МатериалНаименование,
    | ВложенныйЗапрос.Номенклатура.Код КАК НоменклатурныйНомер,
    | ВложенныйЗапрос.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
    | ВложенныйЗапрос.Номенклатура.БазоваяЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
    | ВложенныйЗапрос.СчетПередачи КАК Счет,
    | ЕСТЬNULL(ВложенныйЗапрос.Количество, 0) КАК Количество,
    | СУММА(ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.Сумма, 0)) КАК Сумма
    |ИЗ
    | (ВЫБРАТЬ
    | 1 КАК ID,
    | МИНИМУМ(Спецодежда.НомерСтроки) КАК НомерСтроки,
    | Спецодежда.Номенклатура КАК Номенклатура,
    | Спецодежда.СчетПередачи КАК СчетПередачи,
    | СУММА(Спецодежда.Количество) КАК Количество
    | ИЗ
    | Документ.СписаниеМатериаловИзЭксплуатации.Спецодежда КАК Спецодежда
    | ГДЕ
    | Спецодежда.Ссылка = &Ссылка
    |
    | СГРУППИРОВАТЬ ПО
    | Спецодежда.Номенклатура,
    | Спецодежда.СчетПередачи
    |
    | ОБЪЕДИНИТЬ ВСЕ
    |
    | ВЫБРАТЬ
    | 2,
    | МИНИМУМ(Спецоснастка.НомерСтроки),
    | Спецоснастка.Номенклатура,
    | Спецоснастка.СчетПередачи,
    | СУММА(Спецоснастка.Количество)
    | ИЗ
    | Документ.СписаниеМатериаловИзЭксплуатации.Спецоснастка КАК Спецоснастка
    | ГДЕ
    | Спецоснастка.Ссылка = &Ссылка
    |
    | СГРУППИРОВАТЬ ПО
    | Спецоснастка.Номенклатура,
    | Спецоснастка.СчетПередачи
    |
    | ОБЪЕДИНИТЬ ВСЕ
    |
    | ВЫБРАТЬ
    | 3 КАК ID,
    | МИНИМУМ(ИнвентарьИХозяйственныеПринадлежности.НомерСтроки) КАК НомерСтроки,
    | ИнвентарьИХозяйственныеПринадлежности.Номенклатура КАК Номенклатура,
//    | ИнвентарьИХозяйственныеПринадлежности.СчетПередачи КАК СчетПередачи,
    | СУММА(ИнвентарьИХозяйственныеПринадлежности.Количество) КАК Количество
    | ИЗ
    | Документ.СписаниеМатериаловИзЭксплуатации.ИнвентарьИХозяйственныеПринадлежности КАК ИнвентарьИХозяйственныеПринадлежности
    | ГДЕ
    | ИнвентарьИХозяйственныеПринадлежности.Ссылка = &Ссылка
    |
    | СГРУППИРОВАТЬ ПО
    | ИнвентарьИХозяйственныеПринадлежности.Номенклатура) КАК ВложенныйЗапрос
//    | ИнвентарьИХозяйственныеПринадлежности.СчетПередачи) КАК ВложенныйЗапрос
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
    | &ДатаДок,
    | &ДатаДок,
    | Регистратор = &Ссылка
    |     И (НЕ СчетДт = &СчетПередачиСпецодеждыЗабалансовый)
    |     И (НЕ СчетДт = &СчетПередачиСпецоснасткиЗабалансовый)
    |     И (НЕ СчетДт = &СчетПередачиИнвентаряИХозяйственныхПринадлежностейЗабалансовый)) КАК ХозрасчетныйДвиженияССубконто
    | ПО ВложенныйЗапрос.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1
    | И ВложенныйЗапрос.СчетПередачи = ХозрасчетныйДвиженияССубконто.СчетКт
    |
    |СГРУППИРОВАТЬ ПО
    | ВложенныйЗапрос.ID,
    | ВложенныйЗапрос.НомерСтроки,
    | ВложенныйЗапрос.Номенклатура,
    | ВложенныйЗапрос.Номенклатура.Код,
    | ВложенныйЗапрос.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
    | ВложенныйЗапрос.Номенклатура.БазоваяЕдиницаИзмерения.Код,
//    | ВложенныйЗапрос.СчетПередачи,
    | ВложенныйЗапрос.Количество,
    | ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |
    |УПОРЯДОЧИТЬ ПО
    | ID,
    | НомерСтроки";
    
    Если Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить() = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
        Запрос.Текст = СтрЗаменить(Запрос.Текст, "Номенклатура.Код", "Номенклатура.Артикул");
    КонецЕсли;
    
    ЗапросПоНоменклатуре = Запрос.Выполнить();
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДокумент.ИмяПараметровПечати = "ПараметрыПечати_СписаниеМатериаловИзЭксплуатации_М11";
    
    // Вывод заголовка
    Макет = ПолучитьМакет("М11");
    
    Область = Макет.ПолучитьОбласть("Шапка");
    
    Область.Параметры.Заголовок = "ТРЕБОВАНИЕ-НАКЛАДНАЯ № " + ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка);
    
    Область.Параметры.Заполнить(Шапка);
    
    СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента);
    
    Область.Параметры.ПредставлениеОрганизации   = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации);
    Область.Параметры.ПредставлениеПодразделения = Шапка.Подразделение;
    Область.Параметры.КодОКПО                    = СведенияОбОрганизации.КодПоОКПО;
    
    Область.Параметры.ЧерезКого = ЧерезКого;
    Область.Параметры.Затребовал = Затребовал;
    Область.Параметры.Разрешил = Разрешил;
    
    ТабДокумент.Вывести(Область);
    
    ВыборкаПоСтрокам = ЗапросПоНоменклатуре.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаПоСтрокам.Следующий() Цикл
        
        Область = Макет.ПолучитьОбласть("Строка");
        Область.Параметры.Заполнить(ВыборкаПоСтрокам);
        
        Область.Параметры.МатериалНаименование = СокрЛП(ВыборкаПоСтрокам.МатериалНаименование);
        Область.Параметры.Цена =                 ?(ВыборкаПоСтрокам.Количество = 0, 0, ВыборкаПоСтрокам.Сумма / ВыборкаПоСтрокам.Количество);
        
        ТабДокумент.Вывести(Область);
        
    КонецЦикла;
    
    Область = Макет.ПолучитьОбласть("Подвал");
    
    Область.Параметры.Отпустил = Отпустил;
    Область.Параметры.ДолжностьОтпустил = ДолжностьОтпустил;
    Область.Параметры.Получил = Получил;
    Область.Параметры.ДолжностьПолучил = ДолжностьПолучил;
    
    ТабДокумент.Вывести(Область);
    
    Возврат ТабДокумент;
    
КонецФункции
1 piter3
 
23.09.14
09:07
сделать одинаковое
//    | ИнвентарьИХозяйственныеПринадлежности.СчетПередачи КАК СчетПередачи,
2 NovichokAlena
 
23.09.14
09:10
Просто эта строка мне не нужна,да ее такой  в принципе нет, просто я делаю форму на основе готовой, соответственно, что не нужно,закомментировала. Как тогда сделать одинаковое количество?
3 piter3
 
23.09.14
09:12
(2) самое банальное 1 КАК СчетПередачи.
если не нужна убирайте во всх запросах
4 NovichokAlena
 
23.09.14
09:16
но для спецодежды и спецоснастки это нужно
5 piter3
 
23.09.14
09:17
(4)девушка давайте не ломать друг другу голову-количество полей в объединяемых запросах должно быть одинаково.или перепишите запрос
6 NovichokAlena
 
23.09.14
09:24
(5)ну вот если бы я знала как его переписать,чтоб все нужные мне поля были, я бы сюда не обратилась
7 Килограмм
 
23.09.14
09:26
там где не нужно заменить на null цифру 0 или всё что душе угодно
8 piter3
 
23.09.14
09:27
я уже в (3) написал