Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Заполнение СтрокаТЧ макета.

Заполнение СтрокаТЧ макета.
Я
   Сергей333
 
20.09.17 - 09:21
Здравствуйте. Подскажите пожалуйста что не так?
        Пока ВыборкаНоменклатура.Следующий() Цикл
            //СтрокаТЧ

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

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

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

    Макет = ПолучитьМакет("ПогрузочныйЛист");
    
    ОбластьШапки            = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрокаТЧ         = Макет.ПолучитьОбласть("СтрокаТЧ");
    ОбластьПодвал           = Макет.ПолучитьОбласть("Подвал");
    
    ОбластьЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы|Наименование"); 
    ОбластьУпаковка = Макет.ПолучитьОбласть("ЗаголовокТаблицы|Упаковка"); 

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

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

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

        Подвал = Макет.ПолучитьОбласть("Подвал");
        Подвал.Параметры.Заполнить(ЭтотОбъект);
        Подвал.Параметры.Кладовщик = Ответственный;
        ТабДок.Вывести(Подвал);
    ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЦикла;

    ТабДок.Показать();
    Возврат 0;
    
КонецФункции
   Ёпрст
 
7 - 20.09.17 - 09:52
(6) вот туда добавь
 |    ЗаказПокупателяСводныйТовары.Номенклатура.КодИгма КАК КодИгма ,

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует