Имя: Пароль:
1C
1С v8
Заполнение СтрокаТЧ макета.
0 Сергей333
 
20.09.17
09:21
Здравствуйте. Подскажите пожалуйста что не так?
        Пока ВыборкаНоменклатура.Следующий() Цикл
            //СтрокаТЧ
            ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТЧ|Наименование");
            ОбластьСтрока.Параметры.Номенклатура = ВыборкаНоменклатура.Номенклатура;
            Запрос = Новый Запрос;
            Запрос.Текст =
            "ВЫБРАТЬ
            |    Номенклатура.КодИгма
            |ИЗ
            |    Справочник.Номенклатура КАК Номенклатура";
            РезультатЗапроса = Запрос.Выполнить();
            Выборка = РезультатЗапроса.Выбрать();
            СтруктураОтбора = Новый Структура();
            Пока Выборка.Следующий() Цикл
                ОбластьСтрока.Параметры.Код = Выборка.КодИгма;
                ТабДок.Вывести(ОбластьСтрока);
            КонецЦикла;    
            
            ТабДок.Вывести(ОбластьСтрока);
            
            ВыборкаХарактеристика = ВыборкаНоменклатура.Выбрать();
            
            ТаблицаХарактеристик.ЗаполнитьЗначения(0, "Количество");
            
            Пока ВыборкаХарактеристика.Следующий() Цикл
                Для каждого СтрокаТаблицы Из ТаблицаХарактеристик Цикл
                    Если ВыборкаХарактеристика.ХарактеристикаНоменклатурыНаименование = СтрокаТаблицы.ХарактеристикаНоменклатурыНаименование Тогда
                        СтрокаТаблицы.Количество = ВыборкаХарактеристика.КоличествоЗаказано;
                    КонецЕсли;
                КонецЦикла;
            КонецЦикла;
            
            ОбластьСтрокаУпаковка = Макет.ПолучитьОбласть("СтрокаТЧ|Упаковка");
            
            Для каждого СтрокаТаблицы Из ТаблицаХарактеристик Цикл
                ОбластьСтрокаУпаковка.Параметры.КоличествоЗаказано = СтрокаТаблицы.Количество;
                ТабДок.Присоединить(ОбластьСтрокаУпаковка);
            КонецЦикла;
                
        КонецЦикла;

В запросе нужно вытащить "КодИгма" и соответственно заполнить в макете Параметр "Код". Этим кодом чего то не выходит, задваивает номенклатуру.
1 Lexey_
 
20.09.17
09:33
(0) так "не выходит" или "задваивает"?
2 catena
 
20.09.17
09:35
А запрос принципиально по всему справочнику делать?
3 Сергей333
 
20.09.17
09:43
(2) Мне просто и спр. Номенклатура нужно вытащить в макет КодИгма и все.
4 Ёпрст
 
20.09.17
09:44
(0) всё в топку
5 Ёпрст
 
20.09.17
09:45
запрос в цикле, да еще и по всему справочнику.
Тут просится стальная линейка по пальчикам.

ЗЫ: Показывай, откуда ВыборкаНоменклатура взялась
6 Сергей333
 
20.09.17
09:50
(5) Функция ПечатьПогрузочныйЛист(ИмяМакета)
    
    ТабДок = новый ТабличныйДокумент;
    //Макет = ПолучитьМакет("Печать");
    Макет = ПолучитьМакет("ПогрузочныйЛист");
    
    ОбластьШапки            = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрокаТЧ         = Макет.ПолучитьОбласть("СтрокаТЧ");
    ОбластьПодвал           = Макет.ПолучитьОбласть("Подвал");
    
    ОбластьЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы|Наименование");
    ОбластьУпаковка = Макет.ПолучитьОбласть("ЗаголовокТаблицы|Упаковка");

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЗаказПокупателяСводныйТовары.Маршрут КАК Маршрут,
    |    ЗаказПокупателяСводныйТовары.Номенклатура КАК Номенклатура,
    |    ЗаказПокупателяСводныйТовары.ХарактеристикаНоменклатуры,
    |    ЗаказПокупателяСводныйТовары.КоличествоЗаказано,
    |    ЗаказПокупателяСводныйТовары.ХарактеристикаНоменклатуры.Наименование КАК ХарактеристикаНоменклатурыНаименование
    |ИЗ
    |    Документ.ЗаказПокупателяСводный.Товары КАК ЗаказПокупателяСводныйТовары
    |ГДЕ
    |    ЗаказПокупателяСводныйТовары.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    |    ЗаказПокупателяСводныйТовары.Маршрут,
    |    ЗаказПокупателяСводныйТовары.Номенклатура,
    |    ЗаказПокупателяСводныйТовары.ХарактеристикаНоменклатуры,
    |    ЗаказПокупателяСводныйТовары.КоличествоЗаказано,
    |    ЗаказПокупателяСводныйТовары.ХарактеристикаНоменклатуры.Наименование
    |ИТОГИ ПО
    |    Маршрут,
    |    Номенклатура";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ТаблицаХарактеристик = РезультатЗапроса.Выгрузить();
    ТаблицаХарактеристик.Свернуть("ХарактеристикаНоменклатурыНаименование",);
    ТаблицаХарактеристик.Колонки.Добавить("Количество");
    
    ВыборкаМаршрут = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        
    Пока ВыборкаМаршрут.Следующий() Цикл
        //Шапка
        Шапка = Макет.ПолучитьОбласть("Шапка");
        Шапка.Параметры.Дата = Формат(Дата, "ДЛФ=DD");
        Шапка.Параметры.ДатаВремя = ТекущаяДата();
        Шапка.Параметры.Маршрут = ВыборкаМаршрут.Маршрут;
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ТранспортныеСредства.Водитель,
        |    ТранспортныеСредства.ГосНомерТранспортногоСредства
        |ИЗ
        |    Справочник.ТранспортныеСредства КАК ТранспортныеСредства";
        
        РезультатЗапроса = Запрос.Выполнить();
        Выборка = РезультатЗапроса.Выбрать();
        СтруктураОтбора = Новый Структура();
        Пока Выборка.Следующий() Цикл
            Шапка.Параметры.Имя = Выборка.Водитель;
            Шапка.Параметры.ГосНомер = Выборка.ГосНомерТранспортногоСредства;
        КонецЦикла;    
        ТабДок.Вывести(Шапка);
        
        ТабДок.Вывести(ОбластьЗаголовокТаблицы);
        Для каждого СтрокаТаблицы Из ТаблицаХарактеристик Цикл
            Если ПустаяСтрока(СтрокаТаблицы.ХарактеристикаНоменклатурыНаименование) Тогда
                ОбластьУпаковка.Параметры.ИмяКолонка =     "Без упаковки";
            Иначе
                ОбластьУпаковка.Параметры.ИмяКолонка = СтрокаТаблицы.ХарактеристикаНоменклатурыНаименование;
            КонецЕсли;
            ТабДок.Присоединить(ОбластьУпаковка);
        КонецЦикла;
        
        ВыборкаНоменклатура = ВыборкаМаршрут.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                
        Пока ВыборкаНоменклатура.Следующий() Цикл
            //СтрокаТЧ
            ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТЧ|Наименование");
            ОбластьСтрока.Параметры.Номенклатура = ВыборкаНоменклатура.Номенклатура;
            Запрос = Новый Запрос;
            Запрос.Текст =
            "ВЫБРАТЬ
            |    Номенклатура.КодИгма
            |ИЗ
            |    Справочник.Номенклатура КАК Номенклатура";
            РезультатЗапроса = Запрос.Выполнить();
            Выборка = РезультатЗапроса.Выбрать();
            СтруктураОтбора = Новый Структура();
            Пока Выборка.Следующий() Цикл
                ОбластьСтрока.Параметры.Код = Выборка.КодИгма;
                ТабДок.Вывести(ОбластьСтрока);
            КонецЦикла;    
            
            ТабДок.Вывести(ОбластьСтрока);
            
            ВыборкаХарактеристика = ВыборкаНоменклатура.Выбрать();
            
            ТаблицаХарактеристик.ЗаполнитьЗначения(0, "Количество");
            
            Пока ВыборкаХарактеристика.Следующий() Цикл
                Для каждого СтрокаТаблицы Из ТаблицаХарактеристик Цикл
                    Если ВыборкаХарактеристика.ХарактеристикаНоменклатурыНаименование = СтрокаТаблицы.ХарактеристикаНоменклатурыНаименование Тогда
                        СтрокаТаблицы.Количество = ВыборкаХарактеристика.КоличествоЗаказано;
                    КонецЕсли;
                КонецЦикла;
            КонецЦикла;
            
            ОбластьСтрокаУпаковка = Макет.ПолучитьОбласть("СтрокаТЧ|Упаковка");
            
            Для каждого СтрокаТаблицы Из ТаблицаХарактеристик Цикл
                ОбластьСтрокаУпаковка.Параметры.КоличествоЗаказано = СтрокаТаблицы.Количество;
                ТабДок.Присоединить(ОбластьСтрокаУпаковка);
            КонецЦикла;
                
        КонецЦикла;
        //Подвал
        Подвал = Макет.ПолучитьОбласть("Подвал");
        Подвал.Параметры.Заполнить(ЭтотОбъект);
        Подвал.Параметры.Кладовщик = Ответственный;
        ТабДок.Вывести(Подвал);
    ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЦикла;

    ТабДок.Показать();
    Возврат 0;
    
КонецФункции
7 Ёпрст
 
20.09.17
09:52
(6) вот туда добавь

|    ЗаказПокупателяСводныйТовары.Номенклатура.КодИгма КАК КодИгма ,

и выкинь свой нелепый запрос по номенклатуре из кода.
8 Сергей333
 
20.09.17
10:06
(7) Спасибо большое) Извини за такие глупые темы. Просто начинаю осваивать 1С.