Конференция

Фильтр
Пометить все
Отобразить только
 
 

КНИГИ БУКЛЕТЫ:
Книга «1С:Программирование для начинающих. Детям и родителям, менеджерам и руководителям. Разработка в системе "1С:Предприятие 8.3"»
Книга «Облачные технологии «1С:Предприятия»»
Комплексная автоматизация организаций дополнительного образования
Книга «Настольная книга 1С:Эксперта по технологическим вопросам. 2 издание (артикул 4601546118530)»
Книга «Книга "101 совет начинающим разработчикам в системе "1С:Предприятие 8" (артикул 4601546117618)»
Книга «1С:Предприятие 8.3. Версия для обучения программированию (артикул 4601546109996)»
Книга «Hello, 1C. Пример быстрой разработки приложений на платформе "1С:Предприятие 8.3". Мастер-класс (+CD). Версия 3 (артикул 4601546109774)»
Книга «1C:Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы (артикул 4601546108722)»
Книга «Язык запросов "1С:Предприятия 8" (+диск) (артикул 4601546108029)»
Книга «Профессиональная разработка в системе 1С:Предприятие 8" (+DVD-ROM). Издание 2 (артикул 4601546101853)»
Книга «Разработка сложных отчетов в "1С:Предприятии 8.2". Система компоновки данных". Издание 2 (+ CD) (артикул 4601546097569)»
Книга «Решение специальных прикладных задач в "1С:Предприятии 8.2". Серия "1С:Профессиональная разработка" (артикул 4601546092694)»
Книга «Архитектура и работа с данными "1С:Предприятия 8.2". Серия "1С:Профессиональная разработка" (артикул 4601546090690)»
Книга «Инструменты для создания тиражируемых приложений "1С:Предприятия 8.2". Серия "1С:Профессиональная разработка" (артикул 4601546090706)»
Книга «Реализация прикладных задач в системе "1С:Предприятие 8.2" (+CD). Серия "1С:Профессиональная разработка" (артикул 4601546080479)»
Книга «Технологии интеграции 1С:Предприятия (+CD). Серия "1С:Профессиональная разработка" (артикул 4601546087195)»
Книга «Разработка управляемого интерфейса (+CD). Серия "1С:Профессиональная разработка" (артикул 4601546069634)»
Книга «Как настраивать 1С:Предприятие 8.2 при внедрении (+CD) (артикул 4601546069641)»
Книга «1С:Предприятие 8.2. Версия для обучения программированию (артикул 4601546070821)»
Книга «1С:Предприятие 8.2. Практическое пособие разработчика. Примеры и типовые приемы (артикул 4601546069627). Электронная версия»
Книга «1С:Предприятие 8.2. Коротко о главном. Новые возможности версии 8.2 (артикул 4601546069610)»
Книга «Hello, 1C. Пример быстрой разработки приложений на платформе 1С:Предприятие 8.2. Мастер-класс (+CD). Версия 2 (артикул 4601546071576)»
Книга «1С:Предприятие 8.1. Простые примеры разработки (артикул 4601546047045)»
Книга «Разработка сложных отчетов в 1С:Предприятии 8. Система компоновки данных (+CD) (артикул 4601546053091)»
Книга «1C:Enterprise 8.0. A Practical Developer's Guide. Examples and Standard Techniques (с приложением на CD-ROM) (артикул 4601546027368)»
Книга «Комплект вопросов сертификационного экзамена на знание основных механизмов платформы "1С:Предприятие 8" с примерами решений (февраль 2014) (артикул 4601546110077)»
Платформа «1С:Предприятие» как средство разработки бизнес-приложений [С.Нуралиев / "PC Magazine/RE", №11, 2006]



© ЗАО "1С"

 Практическое пособие разработчика  Внешняя печатная форма

«« Платформа 8.2: Запрос к регистру... Практ. пособие: Не могу исправить ошибку. »»
Сортировка: Более поздние сообщения отображаются ниже  /  выше
Внешняя печатная форма
28.08.2017 13:35
Иванов Николай Васильевич
652827
Добрый день. Помогите найти ошибку.
Вот код.
Функция ПечатьТТН() Экспорт

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

      Запрос = Новый Запрос;
      Запрос.УстановитьПараметр("ДатаСреза",          Документ.Дата);
      Запрос.УстановитьПараметр("СтруктурнаяЕдиница", Документ.Склад);
      Запрос.УстановитьПараметр("ТекущийДокумент",  Документ);
      Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка());

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

      Шапка = Запрос.Выполнить().Выбрать();
      Шапка.Следующий();

      Запрос = Новый Запрос;
      Запрос.УстановитьПараметр("ТекущийДокумент", Документ);

      Если Документ.ВалютаДокумента = Документ.ДоговорКонтрагента.ВалютаВзаиморасчетов Тогда
            // Документ оформлен в валюте взаиморасчетов
            Запрос.УстановитьПараметр("Курс", Документ.КурсВзаиморасчетов);
            Запрос.УстановитьПараметр("Кратность", Документ.КратностьВзаиморасчетов);
      Иначе
            // Документ оформлен в валюте регламентированного учета
            Запрос.УстановитьПараметр("Курс", 1);
            Запрос.УстановитьПараметр("Кратность", 1);
      КонецЕсли;

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

      ЗапросТовары = Запрос.Выполнить().Выгрузить();

      ТабДокумент = Новый ТабличныйДокумент;

      // Зададим параметры макета
      ТабДокумент.ПолеСверху              = 0;
      ТабДокумент.ПолеСлева              = 5;
      ТабДокумент.ПолеСнизу              = 0;
      ТабДокумент.ПолеСправа              = 5;
      ТабДокумент.АвтоМасштаб            = Истина;
      ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;

      Макет      = ПолучитьМакет("ТТН");

      // Выводим общие реквизиты шапки
      СведенияОПоставщике      = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо,        Шапка.ДатаДокумента,, Шапка.БанковскийСчет);
      СведенияОПродавец        = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Продавец,        Шапка.ДатаДокумента);
      СведенияОПокупателе      = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель,      Шапка.ДатаДокумента);
      СведенияОГрузополучателе  = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель,  Шапка.ДатаДокумента);
      СведенияОГрузоотправитель = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента);

      ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
      ОбластьМакета.Параметры.НомерДокумента                = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка);
      ОбластьМакета.Параметры.ДатаДокумента                = Шапка.ДатаДокумента;
      ОбластьМакета.Параметры.Продавец                      = Шапка.Продавец;
      ОбластьМакета.Параметры.Грузоотправитель              = Шапка.Грузоотправитель;
      ОбластьМакета.Параметры.Грузополучатель              = Шапка.Грузополучатель;
      ОбластьМакета.Параметры.Плательщик                    = Шапка.Покупатель;
      //ОбластьМакета.Параметры.ГрузоотправительПредставление = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");
      //ОбластьМакета.Параметры.ГрузополучательПредставление  = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе,  "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");
      ОбластьМакета.Параметры.ПродавецПредставление        = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПродавец,        "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны");
      ОбластьМакета.Параметры.ГрузоотправительПредставление = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны");
      ОбластьМакета.Параметры.ГрузополучательПредставление  = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе,  "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны");
      ОбластьМакета.Параметры.ПлательщикПредставление      = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе);
      ОбластьМакета.Параметры.ПродавецПоОКПО                = СведенияОПродавец.КодПоОКПО;
      ОбластьМакета.Параметры.ГрузоотправительПоОКПО        = СведенияОПоставщике.КодПоОКПО;
      ОбластьМакета.Параметры.ГрузополучательПоОКПО        = СведенияОГрузополучателе.КодПоОКПО;
      ОбластьМакета.Параметры.ПлательщикПоОКПО              = СведенияОПокупателе.КодПоОКПО;

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

      СтрокНаСтранице = 23;
      СтрокШапки      = 10;
      СтрокПодвала    = 9;
      НомерСтраницы  = 1;

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

      КоличествоСтрок = ЗапросТовары.Количество();

      Если КоличествоСтрок = 1 Тогда
            ПереноситьПоследнююСтроку = 0;
      Иначе
            ЦелыхСтраницСПодвалом    = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице);
            ЦелыхСтраницБезПодвала    = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице);
            ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала;
      КонецЕсли;

      // инициализация итогов по странице
      ИтогоКоличествоНаСтранице = 0;
      ЛитрыИтогПоСтранице = 0;
      ИтогоСуммаСНДСНаСтранице  = 0;
      ИтогоЛитров = 0;

      // инициализация итогов по документу
     
      ИтогоМест      = 0;
      ИтогоКоличество = 0;
      ИтогоСуммаСНДС  = 0;
      Ном            = 0;

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

            Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
                  Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
                  Продолжить;
            КонецЕсли;

            Ном          = Ном + 1;
            ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице;

            Если (ЦелаяСтраница = Цел(ЦелаяСтраница))
             или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда

                  ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");

                  ОбластьИтоговПоСтранице.Параметры.ИтогоКоличествоНаСтранице = ИтогоКоличествоНаСтранице;
                  ОбластьИтоговПоСтранице.Параметры.ЛитрыИтогПоСтранице = ЛитрыИтогПоСтранице;
                  ОбластьИтоговПоСтранице.Параметры.ИтогоСуммаСНДСНаСтранице  = ИтогоСуммаСНДСНаСтранице;
                  ОбластьИтоговПоСтранице.параметры.массаИтогПоСтранице = ИтогоКоличествоНаСтранице; //+boy - 100915

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

                  НомерСтраницы = НомерСтраницы + 1;
                  ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                  ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
                  ТабДокумент.Вывести(ЗаголовокТаблицы);

            КонецЕсли;

            ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
            ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрок.ТоварНаименование
                                                     + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрок)
                                                     + ?(ВыборкаСтрок.Метка = 2, " (возвратная тара)", "");

            Мест        = ВыборкаСтрок.КоличествоМест;
            Количество  = ВыборкаСтрок.Количество;
            Литры             = ВыборкаСтрок.Литры;
            СуммаСНДС  = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
            СуммаНДС    = Окр(ВыборкаСтрок.СуммаНДС, 2);
            СуммаБезНДС = СуммаСНДС - СуммаНДС;
            ОбластьМакета.Параметры.Сумма = СуммаСНДС;

            Если Шапка.СуммаВключаетНДС
             Или ВыборкаСтрок.ЕстьСкидкиПоСтроке Тогда
                  ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество);
            Иначе
                  ОбластьМакета.Параметры.Цена = ВыборкаСтрок.Цена;
            КонецЕсли;
        ОбластьМакета.Параметры.Литры = Литры;
            ОбластьМакета.параметры.масса = Количество; //+boy - 100915
           
            ТабДокумент.Вывести(ОбластьМакета);

            // увеличим итоги по странице
            ИтогоКоличествоНаСтранице = ИтогоКоличествоНаСтранице + Количество;
            ЛитрыИтогПоСтранице             = ЛитрыИтогПоСтранице + Литры;
            ИтогоСуммаСНДСНаСтранице  = ИтогоСуммаСНДСНаСтранице  + СуммаСНДС;

            // увеличим итоги по дукументу
            ИтогоЛитров       = ИтогоЛитров        +      Литры;
            ИтогоМест      = ИтогоМест      + Мест;
            ИтогоКоличество = ИтогоКоличество + Количество;
            ИтогоСуммаСНДС  = ИтогоСуммаСНДС  + СуммаСНДС;

      КонецЦикла;

      // Выводим итоги по последней странице
      ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
      ОбластьИтоговПоСтранице.Параметры.ИтогоКоличествоНаСтранице = ИтогоКоличествоНаСтранице;
      ОбластьИтоговПоСтранице.Параметры.ИтогоСуммаСНДСНаСтранице  = ИтогоСуммаСНДСНаСтранице;
      ОбластьИтоговПоСтранице.Параметры.ЛитрыИтогПоСтранице  = ЛитрыИтогПоСтранице;
      ОбластьИтоговПоСтранице.параметры.массаИтогПоСтранице = ИтогоКоличествоНаСтранице; //+boy - 100915

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

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

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

      Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизации(Шапка.Руководители, Шапка.ДатаДокумента,);
      Руководитель = Руководители.Руководитель;
      Бухгалтер    = Руководители.ГлавныйБухгалтер;
      ОбластьМакета.Параметры.ФИОГлавногоБухгалтера = Бухгалтер;
     
      // Отпуск товара разрешил
      Если НЕ ЗначениеЗаполнено(Шапка.ОтпускРазрешил) Тогда
            ФИООтпускРазрешил      = Руководитель;
            ДолжностьОтпускРазрешил = Руководители.РуководительДолжность;
      Иначе
            ФамилияИмяОтчествоФизЛица        = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтпускРазрешил, Шапка.ДатаДокумента);
            ПодразделениеДолжностьФизЛица    = ФормированиеПечатныхФорм.ДолжностьОтветственногоЛицаОрганизации(Шапка.ОтпускРазрешил, Шапка.ДатаДокумента, Шапка.Организация);
            ФамилияИмяОтчествоОтпускРазрешил = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
            ФИООтпускРазрешил                = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускРазрешил);
            ДолжностьОтпускРазрешил          = ПодразделениеДолжностьФизЛица.Должность;
      КонецЕсли;
     
      ОбластьМакета.Параметры.ФИООтпускРазрешил      = ФИООтпускРазрешил;
      ОбластьМакета.Параметры.ОтпускРазрешилДолжность = ДолжностьОтпускРазрешил;
     
      // Отпуск товара произвел
      Если НЕ ЗначениеЗаполнено(Шапка.ОтпускПроизвел) Тогда
            ФамилияИмяОтчествоФизЛица    = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента);
            ПодразделениеДолжностьФизЛица = ФормированиеПечатныхФорм.ДолжностьОтветственногоЛицаОрганизации(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента, Шапка.Организация);
      Иначе
            ФамилияИмяОтчествоФизЛица    = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтпускПроизвел, Шапка.ДатаДокумента);
            ПодразделениеДолжностьФизЛица = ФормированиеПечатныхФорм.ДолжностьОтветственногоЛицаОрганизации(Шапка.ОтпускПроизвел, Шапка.ДатаДокумента, Шапка.Организация);
      КонецЕсли;
     
      ФамилияИмяОтчествоОтпускПроизвел = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
      ФИООтпускПроизвел                = ""+Руководитель+ВернутьДоверенность(Шапка.ОтпускПроизвел.Наименование);
      НомерСкобки = Найти(ФИООтпускПроизвел, "По ");
      Если НомерСкобки <> 0 Тогда
            ФИООтпускПроизвел = Лев(ФИООтпускПроизвел, НомерСкобки-1);
      КонецЕсли;
      ДолжностьОтпускПроизвел          = ПодразделениеДолжностьФизЛица.Должность;
     
      ОбластьМакета.Параметры.ФИООтпускПроизвел      = ФИООтпускПроизвел;
      ОбластьМакета.Параметры.ОтпускПроизвелДолжность = ДолжностьОтпускПроизвел;
     
      ОбластьМакета.Параметры.НомерДоверенности = Шапка.ДоверенностьНомер;
      ОбластьМакета.Параметры.ДатаДоверенности = Формат(Шапка.ДоверенностьДата, "ДФ = ""дд.ММ.гггг""");
      ОбластьМакета.Параметры.ДоверенностьВыдана = Шапка.ДоверенностьВыдана;

      ОбластьМакета.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(КоличествоСтрок, ,",,,,,,,,0");
      ОбластьМакета.Параметры.КоличествоСтрок        = КоличествоСтрок;
      ОбластьМакета.Параметры.ОтпущеноНаСуммуПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(ИтогоСуммаСНДС, глЗначениеПеременной("ВалютаРегламентированногоУчета"));
      ОбластьМакета.Параметры.ВсегоМестПрописью      = ЧислоПрописью(ИтогоМест, ,",,,,,,,,0");
      ОбластьМакета.Параметры.ВсегоНаименований      = ЧислоПрописью(КоличествоСтрок, ,",,,,,,,,0");
      ОбластьМакета.Параметры.МассаГрузаНетто                  = ЧислоПрописью(ИтогоКоличество, "FS=true","тонна,тонны,тонн,ж,килограмм,килограмма,килограммов,м,3");//+boy - 100915
     
      ОбластьМакета.Параметры.ГрузПринялДолжность = "Водитель";
      ОбластьМакета.Параметры.ФИОГрузПринял = сокрЛП(Водитель.Наименование);
      ОбластьМакета.Параметры.ДатаПечать = формат(Документ.Дата,"ДЛФ=DD; ДП='""____""  _____________________  20_____ г.'");
           
      ТабДокумент.Вывести(ОбластьМакета);
     
      ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();

      ОбластьМакета  = Макет.ПолучитьОбласть("ТранспортныйРаздел");
      ШрифтСтандарт  = Новый Шрифт(ОбластьМакета.Области.Стандарт.Шрифт, , , , , , НЕ ЛицензионнаяКарточка);
      ШрифтОграничено = Новый Шрифт(ОбластьМакета.Области.Стандарт.Шрифт, , , , , , ЛицензионнаяКарточка);

      ОбластьМакета.Области.Стандарт.Шрифт  = ШрифтСтандарт;
      ОбластьМакета.Области.Ограничено.Шрифт = ШрифтОграничено;

      ОбластьМакета.Параметры.СрокДоставки              = СрокДоставки;
      ОбластьМакета.Параметры.Номер                    = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка);
      СведенияОГрузоперевозчике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Перевозчик, Шапка.ДатаДокумента); //+boy - 100915
      ОбластьМакета.Параметры.ОрганизацияПеревозчик    = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоперевозчике,  "ПолноеНаименование,ЮридическийАдрес"); //*boy - 100915
      ОбластьМакета.Параметры.МаркаАвтомобиля          = МаркаАвтомобиля;
      ОбластьМакета.Параметры.ГосНомерАвтомобиля        = ГосНомерАвтомобиля;
      ОбластьМакета.Параметры.ОрганизацияЗаказчик      = Заказчик;
      ОбластьМакета.Параметры.ФИОВодителя              = Водитель;
      ОбластьМакета.Параметры.ВодительскоеУдостоверение = ВодительскоеУдостоверение;
      ОбластьМакета.Параметры.ВидПеревозки              = ВидПеревозки;
      ОбластьМакета.Параметры.ПунктПогрузки            = ПунктПогрузки;
      ОбластьМакета.Параметры.ПунктРазгрузки            = ПунктРазгрузки;
      ОбластьМакета.Параметры.Прицеп                    = МаркаПрицепа;
      ОбластьМакета.Параметры.ГосНомерПрицепа          = ГосНомерПрицепа;

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

      ОбластьМакета = Макет.ПолучитьОбласть("СведенияОГрузе");
      ТабДокумент.Вывести(ОбластьМакета);
     
      ОбластьМакета = Макет.ПолучитьОбласть("СведенияОГрузеСтрока");
     
      Ном            = 0;
      Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл
            Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
                  Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
                  Продолжить;
            КонецЕсли;
            Ном          = Ном + 1;
           
            если ВыборкаСтрок.Метка = 2 тогда
                  ОбластьМакета.Параметры.ТоварНаименование = ""+ном+" "+ВыборкаСтрок.ТоварНаименование
                                                           + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрок)+" (возвратная тара)";
                  //
            иначе
                  ОбластьМакета.Параметры.ТоварНаименование = ""+ном+" "+ВыборкаСтрок.ТоварНаименование
                                                           + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрок)
                                                                               + ", P="+ВыборкаСтрок.плотность+", T="+ВыборкаСтрок.температура;
                  //
            конецесли;
     
            ТабДокумент.Вывести(ОбластьМакета);
      конеццикла;
      ОбластьМакета = Макет.ПолучитьОбласть("СведенияОГрузеПодвал");
      ТабДокумент.Вывести(ОбластьМакета);
      ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСведенийОГрузе");
      ОбластьМакета.Параметры.ФИООтпускПроизвел = Руководитель;
      ТабДокумент.Вывести(ОбластьМакета);
      ОбластьМакета = Макет.ПолучитьОбласть("ПогрузочныеОперации");
      ОбластьМакета.Параметры.ИнфоОПогрузчике = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование");
      ОбластьМакета.Параметры.ИнфоОРазгрузчике = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе,"ПолноеНаименование");
      ТабДокумент.Вывести(ОбластьМакета);
      ОбластьМакета = Макет.ПолучитьОбласть("ПрочиеСведения");
      ТабДокумент.Вывести(ОбластьМакета);
      Возврат ТабДокумент;

КонецФункции // ПечатьТТН()
 1.jpg (407kB),    2.jpg (240kB),    3.jpg (216kB),    4.jpg (260kB)
Свернуть ответы Re: Внешняя печатная форма
28.08.2017 17:15
Полетаев Александр
Свернуть ответы Re: Внешняя печатная форма
28.08.2017 17:26
Иванов Николай Васильевич
Свернуть ответы Re: Внешняя печатная форма
28.08.2017 18:38
Полетаев Александр
Свернуть ответы Re: Внешняя печатная форма
29.08.2017 08:46
Иванов Николай Васильевич
Свернуть ответы Re: Внешняя печатная форма
29.08.2017 11:59
Полетаев Александр
Re: Внешняя печатная форма
29.08.2017 12:28
Иванов Николай Васильевич
Свернуть ответы Re: Внешняя печатная форма
29.08.2017 11:54
Сахипов Данил
Свернуть ответы Re: Внешняя печатная форма
29.08.2017 12:41
Иванов Николай Васильевич
Свернуть ответы Re: Внешняя печатная форма
29.08.2017 14:44
Сахипов Данил
Re: Внешняя печатная форма
30.08.2017 13:33
Иванов Николай Васильевич
Re: Внешняя печатная форма
28.08.2017 17:41
Толокнов Алексей

«« Платформа 8.2: Запрос к регистру... Практ. пособие: Не могу исправить ошибку. »»