8.х из запроса в переменную

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем dantist433, 28 янв 2016.

  1. TopicStarter Overlay
    dantist433
    Offline

    dantist433

    Регистрация:
    24 дек 2015
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    добрый день,
    в 1с новичек
    есть запрос

    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Код.КонтИнфо(Представление)
    | ИЗ Документ.РеализацияТоваров
    |ГДЕ  Документ.РеализацияТоваров.Ссылка=& ТекущийДокумент"
    
    Теперь мне необходимо записать это в переменную
    Результат запроса строка
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.988
    Симпатии:
    398
    Баллы:
    104
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |РеализацияТоваров.КонтИнфо(Представление) КАК Представление
    |ИЗ Документ.РеализацияТоваров КАК РеализацияТоваров
    |ГДЕ Документ.РеализацияТоваров.Ссылка = &ТекущийДокумент";
    Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
    РезультатЗапроса = Запрос.Выполнить();
    Если НЕ РезультатЗапроса.Пустой() Тогда
        ВыборкаЗапроса = РезультатЗапроса.Выбрать();
        ВыборкаЗапроса.Следующий();
        НеобходимаяПеременная = ВыборкаЗапроса.Представление;
    Иначе
        НеобходимаяПеременная = "";
    КонецЕсли;
  3. TopicStarter Overlay
    dantist433
    Offline

    dantist433

    Регистрация:
    24 дек 2015
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Добрый день, при подстановке выходит ошибка: просто тупо закрывается 1с
    вот часть запроса
    Код:
    #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
    функция такая то
    функция такая то
    Функция ПолучитьДанныеОснования(СведенияПоДокументу, ПорядокРасчетов, НаименованиеТипаДок, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс)
     
        СтруктураОснование = Новый Структура("Основание, ОснованиеПредставление, ОснованиеНомер, ОснованиеДата");
     
        Если Не ЗначениеЗаполнено(ПорядокРасчетов) Тогда
            Возврат СтруктураОснование;
        КонецЕсли;
     
        Если ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоЗаказамНакладным Тогда
         
            ЗапросЗаказ = Новый Запрос;
            ЗапросЗаказ.УстановитьПараметр("ТекущийДокумент", СведенияПоДокументу.Ссылка);
            ТекстЗапросЗаказ =
            "ВЫБРАТЬ
            |    РеализацияТоваровУслуг.ЗаказКлиента.Номер КАК Номер,
            |    РеализацияТоваровУслуг.ЗаказКлиента.Дата КАК Дата,
            |    РеализацияТоваровУслуг.ЗаказКлиента КАК Ссылка
            |ИЗ
            |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
            |ГДЕ
            |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
            ТекстЗапросЗаказ  = СтрЗаменить(ТекстЗапросЗаказ, "РеализацияТоваровУслуг", НаименованиеТипаДок);
            ЗапросЗаказ.Текст = ТекстЗапросЗаказ;
            ШапкаЗаказ = ЗапросЗаказ.Выполнить().Выбрать();
            ШапкаЗаказ.Следующий();
         
            СтруктураОснование.Основание = ШапкаЗаказ.Ссылка;
            СтруктураОснование.ОснованиеПредставление = Строка(ШапкаЗаказ.Ссылка);
            Если ЗначениеЗаполнено(ШапкаЗаказ.Ссылка) Тогда
                СтруктураОснование.ОснованиеНомер = алкОбщегоНазначенияСервер.ПолучитьНомерНаПечать(ШапкаЗаказ.Ссылка, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс);
                СтруктураОснование.ОснованиеДата = ШапкаЗаказ.Дата;
            КонецЕсли;
    
        Иначе
         
            СтруктураОснование.Основание = СведенияПоДокументу.ДоговорКонтрагента;
            Если ЗначениеЗаполнено(СведенияПоДокументу.ДоговорКонтрагентаНаименованиеДляПечати) Тогда
                СтруктураОснование.ОснованиеПредставление = СведенияПоДокументу.ДоговорКонтрагентаНаименованиеДляПечати;
            Иначе
                СтруктураОснование.ОснованиеПредставление = СведенияПоДокументу.ДоговорКонтрагента;
            КонецЕсли;
         
            Если ЗначениеЗаполнено(СтруктураОснование.Основание) Тогда
                ДанныеДоговора = алкОбщегоНазначенияКлиентСервер.ЗначенияРеквизитовОбъекта(СведенияПоДокументу.ДоговорКонтрагента, "Номер,Дата");
                СтруктураОснование.ОснованиеНомер = ДанныеДоговора.Номер;
                СтруктураОснование.ОснованиеДата = ДанныеДоговора.Дата;
            КонецЕсли;
         
        КонецЕсли;
     
     
        Возврат СтруктураОснование;
     
    КонецФункции
    
    Функция ПечатьТОРГ12(ВыбДокумент)
    
        СведенияПоДокументу = алкРаботаСДиалогамиСервер.алкПолучитьСведенияПоШапкеДокументаНаСервере(ВыбДокумент);
               УстановитьПривилегированныйРежим(Истина);
    
        //Подготовим данные табличной части
        СведенияПоТабличнойЧасти =  алкРаботаСДиалогамиСервер.алкПолучитьСведенияПоТабличнойЧастиДокументаНаСервере(ВыбДокумент, ВыводитьСерии); 
     
        Если СведенияПоДокументу = Неопределено Или СведенияПоТабличнойЧасти = Неопределено Тогда
            Возврат Новый ТабличныйДокумент; 
        КонецЕсли;
     
        МетаданныеОбъекта = ВыбДокумент.Метаданные();
    
        НаименованиеТипаДок = МетаданныеОбъекта.Имя;
    
        ТабДокумент = Новый ТабличныйДокумент;
        ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
        ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_алкТорг12";
        Макет = ПолучитьМакет("ОсновнойМакет");
         
        ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
       
          Если РежимВыводаПрефиксыДокументов = 0 Тогда
            УдалитьПрефиксИнформационнойБазы = Ложь;
            УдалитьПользовательскийПрефикс = Ложь;
        ИначеЕсли РежимВыводаПрефиксыДокументов = 1 Тогда
            УдалитьПрефиксИнформационнойБазы = Истина;
            УдалитьПользовательскийПрефикс = Ложь;
        ИначеЕсли РежимВыводаПрефиксыДокументов = 2 Тогда
            УдалитьПрефиксИнформационнойБазы = Ложь;
            УдалитьПользовательскийПрефикс = Истина;
        Иначе
            УдалитьПрефиксИнформационнойБазы = Истина;
            УдалитьПользовательскийПрефикс = Истина;
        КонецЕсли;
     
        СведенияПоДокументу.Вставить("НомерДокумента", алкОбщегоНазначенияСервер.ПолучитьНомерНаПечать(ВыбДокумент, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс));
        СведенияПоДокументу.Вставить("ОрганизацияПредставление", алкОписаниеОбъектаЛокально("Организация", СведенияПоДокументу, "ПолноеНаименование,ИНН" + ?(ВыводитьКПП = ложь, ",КПП", "") + ",ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет,"));
        СведенияПоДокументу.Вставить("ПодразделениеПредставление", алкОписаниеОбъектаЛокально(, СведенияПоДокументу, "Склад,ГрузоотправительПунктПогрузкиАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет,"));
        Если АдресГрузополучателяИзПунктаРазгрузкиКонтрагента = Истина Тогда
            СведенияПоДокументу.Вставить("ГрузополучательПредставление" ,алкОписаниеОбъектаЛокально("Грузополучатель", СведенияПоДокументу, "ПолноеНаименование,ИНН" + ?(ВыводитьКПП = ложь, ",КПП", "") + ",ПунктРазгрузкиАдрес,ПунктРазгрузкиТелефоны,НомерСчета,Банк,БИК,КоррСчет,"));
        Иначе
            СведенияПоДокументу.Вставить("ГрузополучательПредставление", алкОписаниеОбъектаЛокально("Грузополучатель", СведенияПоДокументу, "ПолноеНаименование,ИНН" + ?(ВыводитьКПП = ложь, ",КПП", "") + ",ПунктРазгрузкиАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет,"));
        КонецЕсли;
           //Мой запрос для вставки
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СведенияПоДокументу.Ссылка);
    Запрос.Текст =
    "ВЫБРАТЬ
    |РеализацияТоваровУслуг.алкПунктРазгрузки.КонтактнаяИнформация.(Представление) КАК Представление
    |ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
    РезультатЗапроса = Запрос.Выполнить();
    Если НЕ РезультатЗапроса.Пустой() Тогда
        ВыборкаЗапроса = РезультатЗапроса.Выбрать();
        ВыборкаЗапроса.Следующий();
        НеобходимаяПеременная = ВыборкаЗапроса.Представление;
    Иначе
        НеобходимаяПеременная = "";
    КонецЕсли;
           
                    //  ОбластьМакета.Параметры.Адресдоставки=НеобходимаяПеременная;
    
        СведенияПоДокументу.Вставить("Адресдоставки", НеобходимаяПеременная);
        //вот нужно вставить сюда
        СведенияПоДокументу.Вставить("ПоставщикПредставление", алкОписаниеОбъектаЛокально("Организация", СведенияПоДокументу, "ПолноеНаименование,ИНН" + ?(ВыводитьКПП = ложь, ",КПП", "") + ",ЮридическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет,"));
        СведенияПоДокументу.Вставить("ПлательщикПредставление", алкОписаниеОбъектаЛокально("Контрагент", СведенияПоДокументу, "ПолноеНаименование,ИНН" + ?(ВыводитьКПП = ложь, ",КПП", "") + ",ЮридическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет,"));
     
        Если ПорядокЗаполненияОснованияДокумента = 0 Тогда
            ОсновнойПорядокРасчетов = СведенияПоДокументу.ДоговорКонтрагентаВедениеВзаиморасчетов;
            ДополнительныйПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоЗаказамНакладным;
        ИначеЕсли ПорядокЗаполненияОснованияДокумента = 1 Тогда
            ОсновнойПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоЗаказамНакладным;
            ДополнительныйПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов;
        ИначеЕсли ПорядокЗаполненияОснованияДокумента = 2 Тогда
            ОсновнойПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов;
            ДополнительныйПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоЗаказамНакладным;
        КонецЕсли;
     
        СтруктураОснования = ПолучитьДанныеОснования(СведенияПоДокументу, ОсновнойПорядокРасчетов, НаименованиеТипаДок, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс);
        Если Не ЗначениеЗаполнено(СтруктураОснования.Основание) Тогда
            СтруктураОснования = ПолучитьДанныеОснования(СведенияПоДокументу, ДополнительныйПорядокРасчетов, НаименованиеТипаДок, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс);
        КонецЕсли;
    
        ОбластьМакета.Параметры.Заполнить(СведенияПоДокументу);
        ОбластьМакета.Параметры.Заполнить(СтруктураОснования);
     
        ОбластьМакета.Параметры.ВидДеятельностиПоОКДП = "71100";
        ОбластьМакета.Параметры.ТранспортнаяНакладнаяНомер = ОбластьМакета.Параметры.НомерДокумента;
        ОбластьМакета.Параметры.ТранспортнаяНакладнаяДата  = ОбластьМакета.Параметры.ДатаДокумента;
    
        // Заполним переменные макет данными из Дополнительных параметров
        Если ДополнительныеПараметры <> Неопределено И ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
            ОбластьМакета.Параметры.Заполнить(ДополнительныеПараметры);
        КонецЕсли;
    
        ТабДокумент.Вывести(ОбластьМакета);
     
     
        ЦенаВключаетНДС = Ложь;
        Попытка
            Запрос = Новый Запрос;
            Запрос.Текст =
            "ВЫБРАТЬ
            |    Документ.ЦенаВключаетНДС
            |ИЗ
            |    Документ." + МетаданныеОбъекта.Имя + " КАК Документ
            |ГДЕ
            |    Документ.Ссылка = &Ссылка";
            Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
            Выборка = Запрос.Выполнить().Выбрать();
            Если Выборка.Следующий() Тогда
                ЦенаВключаетНДС = Выборка.ЦенаВключаетНДС;
            КонецЕсли;
        Исключение
        КонецПопытки;
     
    
        НомерСтраницы   = 1;
    
        // Выводим заголовок таблицы
        ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаб");
        ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
        Если ВыводитьКодВидаАлкогольнойПродукцииВместоКода Тогда
            ЗаголовокТаблицы.Параметры.КолонкаКодов = "Код вида" + Символы.ПС + "алк. прод.";
        Иначе
            ЗаголовокТаблицы.Параметры.КолонкаКодов = "код";
        КонецЕсли;
        ТабДокумент.Вывести(ЗаголовокТаблицы);
    
        КоличествоСтрок = СведенияПоТабличнойЧасти.Количество();
    
        // Инициализация итогов по странице.
        ИтогоКоличествоНаСтранице = 0;
        ИтогоСуммаНаСтранице      = 0;
        ИтогоНДСНаСтранице        = 0;
        ИтогоСуммаСНДСНаСтранице  = 0;
        ИтогоВесНаСтранице          = 0;
        ИтогоВесНеттоНаСтранице     = 0;
        ИтогоКоличествоМестНаСтранице = 0;
    
        // Инициализация итогов по документу.
        ИтогоКоличество = 0;
        ИтогоСуммаСНДС  = 0;
        ИтогоСумма = 0;
        ИтогоНДС   = 0;
        ИтогоВес        = 0;
        ИтогоВесНетто   = 0;
        ИтогоКоличествоМест = 0;
     
        Ном = 0;
     
        // Выводим многострочную часть докмента
        ОбластьМакета = Макет.ПолучитьОбласть("Строка");
        ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
        ОбластьВсего = Макет.ПолучитьОбласть("Всего");
        ОбластьПодвала = Макет.ПолучитьОбласть("Подвал");
     
        МассивВыводимыхОбластей = Новый Массив;
     
        Для НомерСтрокиВыборки = 1 По КоличествоСтрок Цикл
         
            ВыборкаСтрок =  СведенияПоТабличнойЧасти[НомерСтрокиВыборки];
    
            Если Не ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
                Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
                Продолжить;
            КонецЕсли;
    
            Ном           = ВыборкаСтрок.НомерСтроки;
           
            ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
            Если ЦенаВключаетНДС = Истина Тогда
                ОбластьМакета.Параметры.Цена = ?(ВыборкаСтрок.Количество = 0, 0, ВыборкаСтрок.СуммаБезНДС / ВыборкаСтрок.Количество);
            Иначе
                ОбластьМакета.Параметры.Цена = ВыборкаСтрок.Цена;
            КонецЕсли;
         
            ОбластьМакета.Параметры.Номер = Ном;
            Если ВыводитьКодВидаАлкогольнойПродукцииВместоКода Тогда
                ОбластьМакета.Параметры.Код = ВыборкаСтрок.КодВидаАлкогольнойПродукции;
            КонецЕсли;
         
            // Количество мест и количество в однои месте округлим до целого
            КоличествоМест = ОкруглитьДоЦелого(ВыборкаСтрок.КоличествоМест);
            КоличествоВОдномМесте = ОкруглитьДоЦелого(ВыборкаСтрок.КоличествоВОдномМесте);
            ОбластьМакета.Параметры.КоличествоМест = КоличествоМест;
            ОбластьМакета.Параметры.КоличествоВОдномМесте = КоличествоВОдномМесте;
         
            // Увеличим итоги по документу.
            ИтогоКоличество = ИтогоКоличество + ВыборкаСтрок.Количество;
            ИтогоСумма      = ИтогоСумма      + ВыборкаСтрок.СуммаБезНДС;
            ИтогоНДС        = ИтогоНДС        + ВыборкаСтрок.СуммаНДС;
            ИтогоСуммаСНДС  = ИтогоСуммаСНДС  + ВыборкаСтрок.СуммаСНДС;
            ИтогоВес        = ИтогоВес            + ВыборкаСтрок.МассаБрутто;
            ИтогоВесНетто   = ИтогоВесНетто        + ВыборкаСтрок.МассаНетто;
            ИтогоКоличествоМест = ИтогоКоличествоМест + КоличествоМест;
         
            МассивВыводимыхОбластей.Очистить();
            МассивВыводимыхОбластей.Добавить(ОбластьМакета);
            МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице);
         
            // Увеличим количество, чтобы проверка проводилась по реальному количеству с возможными переносами.
            ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице = ИтогоКоличествоНаСтранице + ВыборкаСтрок.Количество;
            ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице      = ИтогоСуммаНаСтранице      + ВыборкаСтрок.СуммаБезНДС;
            ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице        = ИтогоНДСНаСтранице        + ВыборкаСтрок.СуммаНДС;
            ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице  = ИтогоСуммаСНДСНаСтранице  + ВыборкаСтрок.СуммаСНДС;
            ОбластьИтоговПоСтранице.Параметры.ИтогоВесНаСтранице       = ИтогоВесНаСтранице        + ВыборкаСтрок.МассаБрутто;
            ОбластьИтоговПоСтранице.Параметры.ИтогоКоличествоМестНаСтранице = ИтогоКоличествоМестНаСтранице + КоличествоМест;
         
            Если НомерСтрокиВыборки = КоличествоСтрок Тогда
             
                // Проверку вывода осуществляем по реальным данным с учётом переносов.
                МассивВыводимыхОбластей.Добавить(ОбластьВсего);
                МассивВыводимыхОбластей.Добавить(ОбластьПодвала);
             
                // Область всего.
                ОбластьВсего.Параметры.ИтогКоличество = ИтогоКоличество;
                ОбластьВсего.Параметры.ИтогСуммы      = ИтогоСумма;
                ОбластьВсего.Параметры.ИтогНДС        = ИтогоНДС;
                ОбластьВсего.Параметры.ИтогСуммыСНДС  = ИтогоСуммаСНДС;
                ОбластьВсего.Параметры.ИтогоВес       = ИтогоВес;
                ОбластьВсего.Параметры.ИтогоКоличествоМест = ИтогоКоличествоМест;
             
                // Область подвала.
                ОбластьПодвала.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(КоличествоСтрок, ,",,,,,,,,0");
                // Формируем строку для вывода количества листов накладной.
                // Слово лист склоняется.
                КоличествоЛистовВПриложении = НомерСтраницы + 1; //Плюс транспортный раздел
                Если (КоличествоЛистовВПриложении > 10) И (КоличествоЛистовВПриложении < 20) Тогда
                    Слово = " листах";
                Иначе
                    ПоследняяЦифра    = КоличествоЛистовВПриложении % 10;
                    Если ПоследняяЦифра = 1 Тогда
                        Слово = " листе";
                    Иначе
                        Слово = " листах";
                    КонецЕсли;
                КонецЕсли;
                ОбластьПодвала.Параметры.КоличествоЛистовВПриложении    = Строка(КоличествоЛистовВПриложении) + Слово;
                ОбластьПодвала.Параметры.ВсегоМестПрописью    = ЧислоПрописью(ИтогоКоличествоМест, ,",,,,,,,,0");
             
                ЕдиницаИзмеренияВеса = алкОбщегоНазначенияПовтИсп.ПолучитьЗначениеКонстанты("ЕдиницаИзмеренияВеса");
                Если ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) И ИтогоВес > 0 Тогда
                    ОбластьПодвала.Параметры.ИтогоВесПрописью = ЧислоПрописью(ИтогоВес, ,",,,,,,,,0")+ " " + СокрЛП(ЕдиницаИзмеренияВеса) + ".";
                    ОбластьПодвала.Параметры.ИтогоВес = Формат(ИтогоВес, "ЧДЦ=0");
                КонецЕсли;
             
                Если ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) И ИтогоВесНетто > 0 Тогда
                    ОбластьПодвала.Параметры.ИтогоВесНеттоПрописью = ЧислоПрописью(ИтогоВесНетто, ,",,,,,,,,0")+ " " + СокрЛП(ЕдиницаИзмеренияВеса) + ".";
                    ОбластьПодвала.Параметры.ИтогоВесНетто = Формат(ИтогоВесНетто, "ЧДЦ=0");
                КонецЕсли;
             
                ОбластьПодвала.Параметры.СуммаПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(ИтогоСуммаСНДС, СведенияПоДокументу.ВалютаДокумента);
             
                ОбластьПодвала.Параметры.Заполнить(СведенияПоДокументу);
             
                ОбластьПодвала.Параметры.ГрузПринялДолжность = "";
                ОбластьПодвала.Параметры.ГрузПринялФамилия = "";
                ОбластьПодвала.Параметры.ГрузПолучилДолжность = "";
                ОбластьПодвала.Параметры.ГрузПолучилФамилия = "";
             
                // Заполним переменные макет данными из Дополнительных параметров.
                Если ДополнительныеПараметры <> Неопределено И ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
                    ОбластьПодвала.Параметры.Заполнить(ДополнительныеПараметры);
                КонецЕсли;
             
            КонецЕсли;
         
            Если Не ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
    
                ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице = ИтогоКоличествоНаСтранице;
                ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице      = ИтогоСуммаНаСтранице;
                ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице        = ИтогоНДСНаСтранице;
                ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице  = ИтогоСуммаСНДСНаСтранице;
                ОбластьИтоговПоСтранице.Параметры.ИтогоВесНаСтранице       = ИтогоВесНаСтранице;
                ОбластьИтоговПоСтранице.Параметры.ИтогоКоличествоМестНаСтранице = ИтогоКоличествоМестНаСтранице;
                ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
             
                // Очистим итоги по странице.
                ИтогоКоличествоНаСтранице = 0;
                ИтогоСуммаНаСтранице      = 0;
                ИтогоНДСНаСтранице        = 0;
                ИтогоСуммаСНДСНаСтранице  = 0;
                ИтогоВесНаСтранице          = 0;
                ИтогоВесНеттоНаСтранице     = 0;
                ИтогоКоличествоМестНаСтранице = 0;
             
                НомерСтраницы = НомерСтраницы + 1;
            //    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    
                ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
                Если НомерСтраницы > 1 Тогда
                  ЗаголовокТаблицы.Параметры.НомерСтраницы = "К накладной № " + СведенияПоДокументу.НомерДокумента + " от " + СведенияПоДокументу.ДатаДокумента +
                    "        Страница " + НомерСтраницы;
                Иначе
                    ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
                КонецЕсли; 
             
                ТабДокумент.Вывести(ЗаголовокТаблицы);
    
            КонецЕсли;     
         
            ТабДокумент.Вывести(ОбластьМакета);
    
            // Увеличим итоги по странице.
            ИтогоКоличествоНаСтранице = ИтогоКоличествоНаСтранице + ВыборкаСтрок.Количество;
            ИтогоСуммаНаСтранице      = ИтогоСуммаНаСтранице      + ВыборкаСтрок.СуммаБезНДС;
            ИтогоНДСНаСтранице        = ИтогоНДСНаСтранице        + ВыборкаСтрок.СуммаНДС;
            ИтогоСуммаСНДСНаСтранице  = ИтогоСуммаСНДСНаСтранице  + ВыборкаСтрок.СуммаСНДС;
            ИтогоВесНаСтранице        = ИтогоВесНаСтранице        + ВыборкаСтрок.МассаБрутто;
            ИтогоВесНеттоНаСтранице   = ИтогоВесНеттоНаСтранице + ВыборкаСтрок.МассаНетто;
            ИтогоКоличествоМестНаСтранице = ИтогоКоличествоМестНаСтранице + КоличествоМест;
             
        КонецЦикла;
    
        // Выводим итоги по последней странице.
        ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице = ИтогоКоличествоНаСтранице;
        ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице      = ИтогоСуммаНаСтранице;
        ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице        = ИтогоНДСНаСтранице;
        ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице  = ИтогоСуммаСНДСНаСтранице;
        ОбластьИтоговПоСтранице.Параметры.ИтогоВесНаСтранице       = ИтогоВесНаСтранице;
        ОбластьИтоговПоСтранице.Параметры.ИтогоКоличествоМестНаСтранице = ИтогоКоличествоМестНаСтранице;
        ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
     
        // Выводим итоги по документу в целом.
        ТабДокумент.Вывести(ОбластьВсего);
     
        // Формируем строку для вывода количества листов накладной.
        // Слово лист склоняется.
        КоличествоЛистовВПриложении = НомерСтраницы + 1; //Плюс транспортный раздел
        Если (КоличествоЛистовВПриложении > 10) И (КоличествоЛистовВПриложении < 20) Тогда
            Слово = " листах";
        Иначе
            ПоследняяЦифра    = КоличествоЛистовВПриложении % 10;
            Если ПоследняяЦифра = 1 Тогда
                Слово = " листе";
            Иначе
                Слово = " листах";
            КонецЕсли;
        КонецЕсли;
        ОбластьПодвала.Параметры.КоличествоЛистовВПриложении    = Строка(КоличествоЛистовВПриложении) + Слово;
     
        // Выводим подвал документа.
        ТабДокумент.Вывести(ОбластьПодвала);
    
        // Зададим параметры макета.
        ТабДокумент.ПолеСверху = 0;
        ТабДокумент.ПолеСлева  = 0;
        ТабДокумент.ПолеСнизу  = 0;
        ТабДокумент.ПолеСправа = 0;
        ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    
        Возврат ТабДокумент;
    КонецФункции // ПечатьТОРГ12()
    ВыводитьСерии = Истина;
    
    #КонецЕсли
    
    

Поделиться этой страницей