Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 19:43

Добрый вечер! Как получить данные из ТЗ в печатную форму?

Автор Лейсан, 07 июн 2012, 17:35

0 Пользователей и 1 гость просматривают эту тему.

Лейсан

 Добрый вечер!
Впервые создаю печатную форму,сильно не ругайте.Сделала запрос.Мне нужно получить данные из ТЗ Товары.КАК это можно сделать??


ТабДок = Новый ТабличныйДокумент;
    Макет =ПолучитьМакет("Накладная");   
    ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
    Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
        ВыводитьКоды    = Истина;
        Колонка         = "Артикул";
        ТекстКодАртикул = "Артикул";
    ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
        ВыводитьКоды    = Истина;
        Колонка         = "Код";
        ТекстКодАртикул = "Код";
    Иначе
        ВыводитьКоды    = Ложь;
        Колонка         = "";
        ТекстКодАртикул = "Код";
    КонецЕсли;

    Если ВыводитьКоды Тогда
        ОбластьШапки  = "ШапкаСКодом";
        ОбластьСтроки = "СтрокаСКодом";
    Иначе
        ОбластьШапки  = "ШапкаТаблицы";
        ОбластьСтроки = "Строка";
    Конецесли;

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

        ТЗ1 = Новый ТаблицаЗначений;
        ТЗ1 = Товары.Скопировать("Номенклатура,Цена");
       
       
    // Заголовок

    Область = Макет.ПолучитьОбласть("Заголовок");
    Область.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Расходный ордер на товары");
    ТабДок.Вывести(Область);

    ПредставлениеОрганизации = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,");
    ПредставлениеКонтрагента = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Контрагент, Шапка.Дата), "ПолноеНаименование,");

    //Поставщик

    ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеОрганизации;
    ОбластьМакета.Параметры.Поставщик = Шапка.Организация;
    ТабДок.Вывести(ОбластьМакета);

    //Покупатель

   
    ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
    ОбластьМакета.Параметры.ПредставлениеПолучателя = ПредставлениеКонтрагента;
    ОбластьМакета.Параметры.Получатель = Шапка.Контрагент;
    ТабДок.Вывести(ОбластьМакета);
   
    // Вывести табличную часть

        ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
        Если ВыводитьКоды Тогда
            ОбластьМакета.Параметры.Колонка = Колонка;
        КонецЕсли;
       
        ТабДок.Вывести(ОбластьМакета);
       
        ОбластьМакета = Макет.ПолучитьОбласть(ОбластьСтроки);
        Итого         = 0;
        Ном           = 0;
       
       
       
        // Товары

        Пока ВыборкаСтрокТовары.Следующий() Цикл
           
            Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
                Продолжить;
            КонецЕсли;
           
            НомерСтроки=1;           
            ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
            ОбластьМакета.Параметры.Товар = ВыборкаСтрокТовары.Номенклатура;
            ОбластьМакета.Параметры.НомерСтроки =ВыборкаСтрокТовары.НомерСтроки;
            ОбластьМакета.Параметры.Серия = ВыборкаСтрокТовары.СерияНоменклатуры;
            ОбластьМакета.Параметры.Срок = ВыборкаСтрокТовары.СрокГодности;
            //Для каждого Стр из ТЗ Цикл

            //ОбластьМакета.Параметры.Цена = ВыборкаСтрокРеализации.ТаблицаЗначений.Колонки("Цена");

            Если ВыводитьКоды Тогда
                ОбластьМакета.Параметры.КодАртикул = ВыборкаСтрокТовары.КодАртикул;
            КонецЕсли;
           
            ТабДок.Вывести(ОбластьМакета);
            НомерСтроки = НомерСтроки + 1;

           
           
        КонецЦикла;
       

       
    // Вывести Итого

        ОбластьМакета = Макет.ПолучитьОбласть("Итого");
        ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Итого);
        ТабДок.Вывести(ОбластьМакета);
     // Вывести подписи

        ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
        ОбластьМакета.Параметры.Заполнить(Шапка);
        ТабДок.Вывести(ОбластьМакета);

    //   

    //ТабДок.Вывести(ОбластьМакета);

           
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();

cska-fanat-kz

ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицы");
Для каждого СтрокаТЗ Из ТЗ Цикл
     ОбластьСтрокаТаблицы.Параметры.Заполнить(СтрокаТЗ);
     ТабДок.Вывести(ОбластьСтрокаТаблицы);
КонецЦикла;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск