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

Вывод информации: если поле не заполнено, то вывод иной информации. Новичок

Автор kiksi, 10 окт 2017, 11:14

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

kiksi

Подскажите, пожалуйста, во внешней печатной форме ТОРГ-12 в поле "Основание" сейчас выходит ссылка на номер заказа покупателя, на основании которого создана реализация товаров и услуг. Мне нужно, чтобы если в документе Реализация товаров и услуг заполнено поле Комментарий, то вместо номера заказа покупателя выводить поле Комментарий. Я вывод комментария настроила, НО если комментарий пустой, то номер заказа покупателя не встает. Не могу додуматься как написать запрос. Я только учусь пока.

Грубо говоря, нужно это условие включать только тогда, когда поле Комментарий в РТУ не заполнен:

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

oleg-x


Если Значениезаполнено(ЭтотОбъект.Комментарий) Тогда
    ОбластьМакета.Параметры.Основание = ЭтотОбъект.Комментарий;
Иначе
    //Как было раньше.
КонецЕсли;
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

kiksi

Цитата: oleg-x от 10 окт 2017, 11:24

Если Значениезаполнено(ЭтотОбъект.Комментарий) Тогда
    ОбластьМакета.Параметры.Основание = ЭтотОбъект.Комментарий;
Иначе
    //Как было раньше.
КонецЕсли;



Я пробовала нечто подобное, но пишет "Поле объекта не обнаружено (Комментарий)"

oleg-x

Как конкретно писал?
Это ошибка говорит о том что либо не правильный путь (может не объект, а выборка или еще что то), либо в том месте где формируется печатная форма нет данных по данному полю.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

kiksi

Цитата: oleg-x от 10 окт 2017, 11:39
Как конкретно писал?
Это ошибка говорит о том что либо не правильный путь (может не объект, а выборка или еще что то), либо в том месте где формируется печатная форма нет данных по данному полю.

Вы про это?:

Запрос.Текст =
      "ВЫБРАТЬ
      |   Номер,
      |   Дата КАК ДатаДокумента,
      |   РеализацияТоваровУслуг.Организация,
      |   РеализацияТоваровУслуг.Организация КАК ЮрФизЛицо,
      |   РеализацияТоваровУслуг.Организация КАК Поставщик,
      |   РеализацияТоваровУслуг.Организация КАК Контрагент,
      |   РеализацияТоваровУслуг.Организация КАК Руководители,
      |   РеализацияТоваровУслуг.Комментарий КАК Основание,

oleg-x

Возможно, это всего маленький кусок кода, выложи полностью, только заключи в теги
//Здесь код
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

kiksi

Цитата: oleg-x от 10 окт 2017, 12:10
Возможно, это всего маленький кусок кода, выложи полностью, только заключи в теги
//Здесь код

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

      
      ЗапросТовары = Запрос.Выполнить().Выгрузить();
      ТабДокумент  = Новый ТабличныйДокумент;
      
      // Зададим параметры макета
      ТабДокумент.ПолеСверху              = 0;
      ТабДокумент.ПолеСлева               = 0;
      ТабДокумент.ПолеСнизу               = 10;
      ТабДокумент.ПолеСправа              = 0;
      ТабДокумент.РазмерКолонтитулаСверху = 0;
      ТабДокумент.РазмерКолонтитулаСнизу  = 10;
      ТабДокумент.АвтоМасштаб             = Истина;
      ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
      
      ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_ТОРГ12";
      Торг12КСЦ=Ложь;   //бнт 31-03-2016

      //А.С. Ожгибесов
      //Если КСЦ=Истина Тогда
      //   Если Факторинг=Истина и Факторинг2=Ложь Тогда                       //Пермякова Ю.М.
      //      Макет = ПолучитьОбщийМакет("ТОРГ12_ПоФакторингу");
      //   ИначеЕсли Факторинг2=Истина И Факторинг=Истина Тогда                //Ожгибесов А.С.
      //      Макет = ПолучитьОбщийМакет("ТОРГ12_ПоФакторингу_новый");
      //   Иначе
            Макет = ПолучитьМакет("ТОРГ12_ВН");
            Торг12КСЦ=истина;
      //   КонецЕсли;
      //Иначе
      //   Макет = ПолучитьОбщийМакет("ТОРГ12");
      //КонецЕсли;
      //-
      
      // Выводим общие реквизиты шапки
      СведенияОПоставщике       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо,        Шапка.ДатаДокумента,, Шапка.БанковскийСчет);
      СведенияОПокупателе       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель,       Шапка.ДатаДокумента);
      СведенияОГрузополучателе  = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель,  Шапка.ДатаДокумента);
      СведенияОГрузоотправитель = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента);
      
      ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
      ОбластьМакета.Параметры.Заполнить(Шапка);
      ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка);
      ОбластьМакета.Параметры.ДатаДокумента  = Шапка.ДатаДокумента;
      //бнт+
      Если КСЦ=Истина Тогда
         СФ=УчетНДС.НайтиПодчиненныйСчетФактуру(СсылкаНаОбъект.ссылка, "СчетФактураВыданный");
         если сф=неопределено тогда
            номерСФ="";
            ДатаСФ="";
         иначе
            ДатаСФ =формат(СФ.дата,"ДФ='дд ММММ гггг'");
            номерСФ=СФ.Номер;
         конецесли;
         
         
         Если Факторинг=Истина и Факторинг2=Ложь Тогда                       
            //Макет = ПолучитьОбщийМакет("ТОРГ12_ПоФакторингу");
         ИначеЕсли Факторинг2=Истина И Факторинг=Истина Тогда               
            //Макет = ПолучитьОбщийМакет("ТОРГ12_ПоФакторингу_новый");
         Иначе
            //Макет = ПолучитьОбщийМакет("ТОРГ12_КСЦ");
            ОбластьМакета.Параметры.номерСФ  = номерСФ;
            ОбластьМакета.Параметры.ДатаСФ  = ДатаСФ;
            
         КонецЕсли;
      Иначе
         //Макет = ПолучитьОбщийМакет("ТОРГ12");
      КонецЕсли;
      //бнт-
      
      // Автоматизация учета: ТВВ 2011-09-26 было
      //Если Шапка.ЮрФизЛицо = Шапка.Грузоотправитель Тогда
      //   ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике);
      //Иначе
      //   ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета")+", "+Шапка.БанковскийСчет.Наименование+","+ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "БИК,КоррСчет");
      //КонецЕсли;
      // Автоматизация учета: ТВВ 2011-09-26 стало
      #Если Клиент Тогда
         Если Шапка.ЮрФизЛицо <> Шапка.Грузоотправитель Тогда
            ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");
         Иначе
            ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета")+", "+Шапка.БанковскийСчет.Наименование+","+ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "БИК,КоррСчет");
         КонецЕсли;
         
         ОбластьМакета.Параметры.ПредставлениеПодразделения = Шапка.Подразделение;
         
         ОбластьМакета.Параметры.ПредставлениеГрузополучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");
         
         Если СокрЛП(Шапка.АдресДоставки) <> "" Тогда
            ОбластьМакета.Параметры.АдресДоставки = УправлениеКонтактнойИнформацией.ПолучитьПредставлениеАдресаПоСтрока(Шапка.АдресДоставки);
         Иначе
            ОбластьМакета.Параметры.АдресДоставки = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ФактическийАдрес");
         КонецЕсли;
         
         ОбластьМакета.Параметры.ПредставлениеПоставщика  = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике);
         ОбластьМакета.Параметры.ПредставлениеПлательщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе);
      #Иначе
         Если Шапка.ЮрФизЛицо <> Шапка.Грузоотправитель Тогда
            ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");
         Иначе
            ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета")+", "+Шапка.БанковскийСчет.Наименование+","+ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузоотправитель, "БИК,КоррСчет");
         КонецЕсли;
         
         ОбластьМакета.Параметры.ПредставлениеПодразделения = Шапка.Подразделение;
         
         ОбластьМакета.Параметры.ПредставлениеГрузополучателя = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");
         
         Если СокрЛП(Шапка.АдресДоставки) <> "" Тогда
            ОбластьМакета.Параметры.АдресДоставки = УправлениеКонтактнойИнформацией.ПолучитьПредставлениеАдресаПоСтрока(Шапка.АдресДоставки);
         Иначе
            ОбластьМакета.Параметры.АдресДоставки = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузополучателе, "ФактическийАдрес");
         КонецЕсли;
         
         ОбластьМакета.Параметры.ПредставлениеПоставщика  = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике);
         ОбластьМакета.Параметры.ПредставлениеПлательщика = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПокупателе);
      #КонецЕсли
      // nc lebedev end
      // "Комментарий"
      
      Если Значениезаполнено(ЭтотОбъект.РеализацияТоваровУслуг.Комментарий) Тогда
    ОбластьМакета.Параметры.Основание = ЭтотОбъект.РеализацияТоваровУслуг.Комментарий;
Иначе
    //Как было раньше.
      
      
      Если Шапка.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам
      И Шапка.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоСчетам Тогда
      ОбластьМакета.Параметры.Основание = Шапка.Основание;
      Иначе
      Если ЗначениеЗаполнено(Шапка.Сделка) Тогда
      ОбластьМакета.Параметры.Основание = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка.Сделка, Строка(Шапка.Сделка.Метаданные().Синоним));
      КонецЕсли;
      КонецЕсли;
КонецЕсли;





      // Выводим всевозможные коды
      ОбластьМакета.Параметры.ОрганизацияПоОКПО     = СведенияОГрузоотправитель.КодПоОКПО;
      ОбластьМакета.Параметры.ВидДеятельностиПоОКДП = "";
      ОбластьМакета.Параметры.ГрузополучательПоОКПО = СведенияОГрузополучателе.КодПоОКПО;
      ОбластьМакета.Параметры.ПоставщикПоОКПО       = СведенияОПоставщике.КодПоОКПО;
      ОбластьМакета.Параметры.ПлательщикПоОКПО      = СведенияОПокупателе.КодПоОКПО;
      ОбластьМакета.Параметры.ОснованиеНомер        = "";
      ОбластьМакета.Параметры.ОснованиеДата         = "";
      ОбластьМакета.Параметры.ТранспортнаяНакладнаяНомер = "";
      ОбластьМакета.Параметры.ТранспортнаяНакладнаяДата  = "";
      
            
      ТабДокумент.Вывести(ОбластьМакета);
      
      НомерСтраницы   = 1;
      
      КоличествоСтрок = ЗапросТовары.Количество();
      
      // инициализация итогов по странице
      ИтогоМассаБруттоНаСтранице = 0;
      ИтогоМестНаСтранице        = 0;
      ИтогоКоличествоНаСтранице  = 0;
      ИтогоСуммаНаСтранице       = 0;
      ИтогоНДСНаСтранице         = 0;
      ИтогоСуммаСНДСНаСтранице   = 0;
      
      // инициализация итогов по документу
      ИтогоМассаБрутто = 0;
      ИтогоМест        = 0;
      ИтогоКоличество  = 0;
      ИтогоСуммаСНДС   = 0;
      ИтогоСумма       = 0;
      ИтогоНДС         = 0;
      НомерСтроки      = 0;
      
      // Создаем массив для проверки вывода
      МассивВыводимыхОбластей = Новый Массив;
      
      // Выводим многострочную часть докмента
      ЗаголовокТаблицы        = Макет.ПолучитьОбласть("ЗаголовокТаб");
      ОбластьМакета           = Макет.ПолучитьОбласть("Строка");
      ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
      ОбластьПодвала          = Макет.ПолучитьОбласть("Подвал");
      ОбластьМакетаВсего      = Макет.ПолучитьОбласть("Всего");
      КоличествоСтрокВывели=0;
      Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл
         Если ВыборкаСтрок.Номенклатура.ВидНоменклатуры.Код="000000006" тогда//тара считаем , даже с 0 ценой
         ИтогоМестНаСтранице        = ИтогоМестНаСтранице        + ВыборкаСтрок.количество;
         ИтогоМест        = ИтогоМест        + ВыборкаСтрок.количество;
         конецесли;
         
         Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
            Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
            Продолжить;
         КонецЕсли;
         
         //А.С. Ожгибесов; убирает позиции с нулевой ценой для КСЦ
         Если (КСЦ=Истина)и(ВыборкаСТрок.Цена=0) Тогда
            Продолжить;
         КонецЕсли;
         //Конец изменений
         
         НомерСтроки = НомерСтроки + 1;
         
         ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
         //А.С. Ожгибесов
         //ОбластьМакета.Параметры.Номер             = ЗапросТовары.Индекс(ВыборкаСтрок) + 1;
         ОбластьМакета.Параметры.Номер             = НомерСтроки;
         //-
         // nc lebedev begin
         #Если Клиент Тогда
            ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ВыборкаСтрок.ТоварНаименование)
            + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрок)
            + ?(ВыборкаСтрок.Метка = 2, " (возвратная тара)", "");
         #Иначе
            ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ВыборкаСтрок.ТоварНаименование)
            + ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаСтрок)
            + ?(ВыборкаСтрок.Метка = 2, " (возвратная тара)", "");
         #КонецЕсли
         // nc lebedev end
         
         
         Если НЕ ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) Тогда
            МассаБрутто = 0;
         Иначе
            //бнт 31-03-2016
            Если  Торг12КСЦ тогда
               Если НачалоДня(СсылкаНаОбъект.дата) <Дата ("20160924") тогда
                  МассаБрутто = ВыборкаСтрок.МассаБрутто+ПодсчитатьВесТары1(ВыборкаСтрок);
               иначе
                  МассаБрутто = ВыборкаСтрок.МассаБрутто+ПодсчитатьВесТары2(ВыборкаСтрок);
               КонецЕсли;
               МассаБрутто = ?(МассаБрутто <> Неопределено И МассаБрутто <> NULL, МассаБрутто, 0);
            иначе
               МассаБрутто = 0;
            Конецесли;
         КонецЕсли;
         
         //Мест        = ВыборкаСтрок.КоличествоМест;
         //Мест        = ?(Мест <> Неопределено И Мест <> NULL, Мест, 0);
         
         Количество  = ВыборкаСтрок.Количество;
         СуммаСНДС   = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
         СуммаНДС    = Окр(ВыборкаСтрок.СуммаНДС, 2);
         СуммаБезНДС = СуммаСНДС  - СуммаНДС;
         
         ОбластьМакета.Параметры.МассаБрутто = МассаБрутто;
         ОбластьМакета.Параметры.СуммаСНДС   = СуммаСНДС;
         ОбластьМакета.Параметры.СуммаНДС    = СуммаНДС;
         ОбластьМакета.Параметры.СтавкаНДС   = ВыборкаСтрок.СтавкаНДС;
         ОбластьМакета.Параметры.СуммаБезНДС = СуммаБезНДС;
         
         Если Шапка.СуммаВключаетНДС Тогда
            ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество);
            //ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаСНДС / Количество);
         Иначе
            //ОбластьМакета.Параметры.Цена = ВыборкаСтрок.Цена;
            //ЭР_АВВ_2015_0218
            ОбластьМакета.Параметры.Цена = ВыборкаСтрок.ЦенаПоПрайсу;
         КонецЕсли;
         КоличествоСтрокВывели=КоличествоСтрокВывели+1;
         
         Если НомерСтроки = 1 Тогда // первая срока
            
            ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
            ТабДокумент.Вывести(ЗаголовокТаблицы);
            
         Иначе
            
            МассивВыводимыхОбластей.Очистить();
            МассивВыводимыхОбластей.Добавить(ОбластьМакета);
            МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице);
            Если НомерСтроки = КоличествоСтрок Тогда
               МассивВыводимыхОбластей.Добавить(ОбластьПодвала);
               МассивВыводимыхОбластей.Добавить(ОбластьМакетаВсего);
            КонецЕсли;      
            
            // nc lebedev begin
            #Если Клиент Тогда
            Если НомерСтроки <> 1 И НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, МассивВыводимыхОбластей) Тогда
            #Иначе
            Если НомерСтроки <> 1 И НЕ ФормированиеПечатныхФормСервер.ПроверитьВыводТабличногоДокумента(ТабДокумент, МассивВыводимыхОбластей) Тогда
            #КонецЕсли
            // nc lebedev end
            
               ОбластьИтоговПоСтранице.Параметры.ИтогМассаБруттоПоСтранице = ИтогоМассаБруттоНаСтранице;
               ОбластьИтоговПоСтранице.Параметры.ИтогМестПоСтранице        = ИтогоМестНаСтранице;
               ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице  = ИтогоКоличествоНаСтранице;
               ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице       = ИтогоСуммаНаСтранице;
               ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице         = ИтогоНДСНаСтранице;
               ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице   = ИтогоСуммаСНДСНаСтранице;
               
               ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
               
               // очистим итоги по странице
               ИтогоМассаБруттоНаСтранице = 0;
               ИтогоМестНаСтранице        = 0;
               ИтогоКоличествоНаСтранице  = 0;
               ИтогоСуммаНаСтранице       = 0;
               ИтогоНДСНаСтранице         = 0;
               ИтогоСуммаСНДСНаСтранице   = 0;
               
               НомерСтраницы = НомерСтраницы + 1;
               ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
               ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
               ТабДокумент.Вывести(ЗаголовокТаблицы);
               
            #Если Клиент Тогда
            КонецЕсли;
            #Иначе
            КонецЕсли
            #КонецЕсли
            
         КонецЕсли;
         
         ТабДокумент.Вывести(ОбластьМакета);
         
         // увеличим итоги по странице
         ИтогоМассаБруттоНаСтранице = ИтогоМассаБруттоНаСтранице + МассаБрутто;
         //ИтогоМестНаСтранице        = ИтогоМестНаСтранице        + Мест;
         ИтогоКоличествоНаСтранице  = ИтогоКоличествоНаСтранице  + Количество;
         ИтогоСуммаНаСтранице       = ИтогоСуммаНаСтранице       + СуммаБезНДС;
         ИтогоНДСНаСтранице         = ИтогоНДСНаСтранице         + СуммаНДС;
         ИтогоСуммаСНДСНаСтранице   = ИтогоСуммаСНДСНаСтранице   + СуммаСНДС;
         
         // увеличим итоги по документу
         ИтогоМассаБрутто = ИтогоМассаБрутто + МассаБрутто;
         //ИтогоМест        = ИтогоМест        + Мест;
         ИтогоКоличество  = ИтогоКоличество  + Количество;
         ИтогоСумма       = ИтогоСумма       + СуммаБезНДС;
         ИтогоНДС         = ИтогоНДС         + СуммаНДС;
         ИтогоСуммаСНДС   = ИтогоСуммаСНДС   + СуммаСНДС;
         
      КонецЦикла;
      
      // Выводим итоги по последней странице
      ОбластьИтоговПоСтранице.Параметры.ИтогМассаБруттоПоСтранице = ИтогоМассаБруттоНаСтранице;
      ОбластьИтоговПоСтранице.Параметры.ИтогМестПоСтранице        = ИтогоМестНаСтранице;
      ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице  = ИтогоКоличествоНаСтранице;
      ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице       = ИтогоСуммаНаСтранице;
      ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице         = ИтогоНДСНаСтранице;
      ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице   = ИтогоСуммаСНДСНаСтранице;
      
      ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
      
      // Выводим итоги по документу в целом
      ОбластьМакетаВсего.Параметры.ИтогМассаБрутто = ИтогоМассаБрутто;
      ОбластьМакетаВсего.Параметры.ИтогМест        = ИтогоМест;
      ОбластьМакетаВсего.Параметры.ИтогКоличество  = ИтогоКоличество;
      ОбластьМакетаВсего.Параметры.ИтогСуммы       = ИтогоСумма;
      ОбластьМакетаВсего.Параметры.ИтогНДС         = ИтогоНДС;
      ОбластьМакетаВсего.Параметры.ИтогСуммыСНДС   = ИтогоСуммаСНДС;
      
      ТабДокумент.Вывести(ОбластьМакетаВсего);
      
      // Выводим подвал документа
      ПолнаяДатаДокумента = Формат(Шапка.ДатаДокумента, "ДФ=""дд ММММ гггг """"года""""""");
      ДлинаСтроки = СтрДлина(ПолнаяДатаДокумента);
      ПервыйРазделитель = Найти(ПолнаяДатаДокумента," ");
      ВторойРазделитель = Найти(Прав(ПолнаяДатаДокумента,ДлинаСтроки-ПервыйРазделитель)," ")+ПервыйРазделитель;
      ОбластьПодвала.Параметры.ДатаДокументаДень     = """"+Лев(ПолнаяДатаДокумента,ПервыйРазделитель-1)+"""";
      ОбластьПодвала.Параметры.ДатаДокументаМесяц    = Сред(ПолнаяДатаДокумента,ПервыйРазделитель+1,ВторойРазделитель-ПервыйРазделитель-1);
      ОбластьПодвала.Параметры.ДатаДокументаГод      = Прав(ПолнаяДатаДокумента,ДлинаСтроки-ВторойРазделитель);   
      
      Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Руководители, Шапка.ДатаДокумента,);
      Руководитель = Руководители.Руководитель;
      Бухгалтер    = Руководители.ГлавныйБухгалтер;
      
      // Главный бухгалтер
      ОбластьПодвала.Параметры.ФИОГлавБухгалтера = Бухгалтер;
      
      // Отпуск товара разрешил
      Если НЕ ЗначениеЗаполнено(Шапка.ОтпускРазрешил) Тогда
         ФИООтпускРазрешил       = Руководитель;
         ДолжностьОтпускРазрешил = Руководители.РуководительДолжность;
      Иначе
         // nc lebedev begin
         #Если Клиент Тогда
            ФамилияИмяОтчествоФизЛица        = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтпускРазрешил, Шапка.ДатаДокумента);
         #Иначе
            ФамилияИмяОтчествоФизЛица        = ФормированиеПечатныхФормСервер.ФамилияИмяОтчество(Шапка.ОтпускРазрешил, Шапка.ДатаДокумента);
         #КонецЕсли
         // nc lebedev end
         ПодразделениеДолжностьФизЛица    = ПолныеПрава.СведенияОСотруднике(Шапка.ОтпускРазрешил, Шапка.ДатаДокумента, Шапка.Организация);
         ФамилияИмяОтчествоОтпускРазрешил = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
         ФИООтпускРазрешил                = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускРазрешил);
         ДолжностьОтпускРазрешил          = ПодразделениеДолжностьФизЛица.Должность;
      КонецЕсли;
      
      ОбластьПодвала.Параметры.ФИОРуководителя       = ФИООтпускРазрешил;
      ОбластьПодвала.Параметры.ДолжностьРуководителя = ДолжностьОтпускРазрешил;
      
      // nc lebedev begin
      #Если Клиент Тогда
         Если НЕ ЗначениеЗаполнено(Шапка.ОтпускПроизвел) Тогда
            ФамилияИмяОтчествоФизЛица     = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента);
            ПодразделениеДолжностьФизЛица = ПолныеПрава.СведенияОСотруднике(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента, Шапка.Организация);
         Иначе
            ФамилияИмяОтчествоФизЛица     = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтпускПроизвел, Шапка.ДатаДокумента);
            ПодразделениеДолжностьФизЛица = ПолныеПрава.СведенияОСотруднике(Шапка.ОтпускПроизвел, Шапка.ДатаДокумента, Шапка.Организация);
         КонецЕсли;
      #Иначе
         Если НЕ ЗначениеЗаполнено(Шапка.ОтпускПроизвел) Тогда
            ФамилияИмяОтчествоФизЛица     = ФормированиеПечатныхФормСервер.ФамилияИмяОтчество(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента);
            ПодразделениеДолжностьФизЛица = ПолныеПрава.СведенияОСотруднике(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента, Шапка.Организация);
         Иначе
            ФамилияИмяОтчествоФизЛица     = ФормированиеПечатныхФормСервер.ФамилияИмяОтчество(Шапка.ОтпускПроизвел, Шапка.ДатаДокумента);
            ПодразделениеДолжностьФизЛица = ПолныеПрава.СведенияОСотруднике(Шапка.ОтпускПроизвел, Шапка.ДатаДокумента, Шапка.Организация);
         КонецЕсли;
      #КонецЕсли
      // nc lebedev end
      
      ФамилияИмяОтчествоОтпускПроизвел = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
      ФИООтпускПроизвел                = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускПроизвел);
      ДолжностьОтпускПроизвел          = ПодразделениеДолжностьФизЛица.Должность;
      
      ОбластьПодвала.Параметры.ФИОКладовщика       = ФИООтпускПроизвел;
      ОбластьПодвала.Параметры.ДолжностьКладовщика = ДолжностьОтпускПроизвел;
      
      // Доверенность
      ОбластьПодвала.Параметры.ДоверенностьНомер     = Шапка.ДоверенностьНомер;
      ОбластьПодвала.Параметры.ДоверенностьДата      = Формат(Шапка.ДоверенностьДата, "ДФ='дд ММММ гггг'");
      ОбластьПодвала.Параметры.ДоверенностьВыдана    = Шапка.ДоверенностьВыдана;
      ОбластьПодвала.Параметры.ДоверенностьЧерезКого = Шапка.ДоверенностьЧерезКого;
      
      Если ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) И ИтогоМассаБрутто > 0 Тогда
         ОбластьПодвала.Параметры.МассаГрузаПрописью = ЧислоПрописью(ИтогоМассаБрутто, ,",,,,,,,,0")+ " " +ЕдиницаИзмеренияВеса.Наименование + ".";
      КонецЕсли;
      
      Если ИтогоМест > 0 Тогда
         ОбластьПодвала.Параметры.ВсегоМестПрописью = ЧислоПрописью(ИтогоМест, ,",,,,,,,,0");
      КонецЕсли;
      
      ОбластьПодвала.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(КоличествоСтрокВывели, ,",,,,,,,,0");
      ОбластьПодвала.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(ИтогоСуммаСНДС, мВалютаРегламентированногоУчета);
      
      //бнт+
      //смотрим св-ва
      СвойствоД=планывидовхарактеристик.СвойстваОбъектов.НайтиПоКоду("00000000077");
      СвойствоГ=планывидовхарактеристик.СвойстваОбъектов.НайтиПоКоду("00000000079");
      запрос=новый запрос;
      запрос.Текст=
      "ВЫБРАТЬ
      |   ЗначенияСвойствОбъектов.Объект,
      |   ЗначенияСвойствОбъектов.Свойство КАК Свойство,
      |   ЗначенияСвойствОбъектов.Значение КАК ЗначениеД,
      |   0 КАК ЗначениеГ
      |ИЗ
      |   РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
      |ГДЕ
      |   ЗначенияСвойствОбъектов.Объект = &Объект
      |   И ЗначенияСвойствОбъектов.Свойство = &СвойствоД
      |
      |ОБЪЕДИНИТЬ ВСЕ
      |
      |ВЫБРАТЬ
      |   ЗначенияСвойствОбъектов.Объект,
      |   ЗначенияСвойствОбъектов.Свойство,
      |   0,
      |   ЗначенияСвойствОбъектов.Значение
      |ИЗ
      |   РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
      |ГДЕ
      |   ЗначенияСвойствОбъектов.Объект = &Объект
      |   И ЗначенияСвойствОбъектов.Свойство = &СвойствоГ"
      ;
      запрос.УстановитьПараметр("объект", СсылкаНаОбъект); 
      запрос.УстановитьПараметр("свойствоД", СвойствоД  );
      запрос.УстановитьПараметр("свойствоГ", СвойствоГ  );
      //ОбластьМакетаПодвал.Параметры.приказД="";
      //ОбластьМакетаПодвал.Параметры.приказГ="";
      что=запрос.Выполнить().Выгрузить();
      СловаПриказаД=ФИООтпускРазрешил;  СловаПриказаГ=Бухгалтер;
      
      для каждого стр из что цикл       
         если стр.Свойство= СвойствоД  тогда
            СловаПриказаД= ОбщегоНазначения.ФамилияИнициалыФизЛица(стр.ЗначениеД.КтоЗаДиректора)+ ?(стр.ЗначениеД.НомерПриказа="","", " по приказу"+ стр.ЗначениеД.НомерПриказа);
         конецесли;
         если стр.Свойство= СвойствоГ  тогда
            СловаПриказаГ= ОбщегоНазначения.ФамилияИнициалыФизЛица(стр.Значениег.КтоЗаГлБуха)+?(стр.ЗначениеГ.НомерПриказа="","", " по приказу"+стр.ЗначениеГ.НомерПриказа);
         конецесли;
         
      конеццикла;
      ОбластьПодвала.Параметры. ФИОРуководителя=СловаПриказаД;
      ОбластьПодвала.Параметры.ФИОГлавБухгалтера=СловаПриказаГ;
      //бнт-
      
      ТабДокумент.Вывести(ОбластьПодвала);
      ТабДокумент.НижнийКолонтитул.НачальнаяСтраница = 1;
      ТабДокумент.НижнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
      //ТабДок.НижнийКолонтитул.ТекстВЦентре= строка(ИмяПользователя())+"  [&Дата] - [&Время]";
      ТабДокумент.НижнийКолонтитул.ТекстСправа="Товарная-накладная № "+ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка) +" от "+формат(ссылкаНаОбъект.дата,"ДФ='дд.ММ.гггг'")+" Страница [&НомерСтраницы]";;
      ТабДокумент.НижнийКолонтитул.Выводить = Истина;

      Возврат ТабДокумент;
      
   КонецФункции // ПечатьТОРГ12()
      

Функция ПодсчитатьВесТары2(ВыборкаСтрок)
   вестары=0;
   отборВес=Новый Структура;
   отборВес.Вставить("ХарактеристикаНоменклатуры",ВыборкаСтрок.Серия.ХарактеристикаБарабана);
   отборВес.Вставить("Номенклатура",ВыборкаСтрок.Серия.ТипБарабана);
   СтрокаТабличнойЧастиТара = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(СсылкаНаОбъект.Товары, отборВес);
   Если СтрокаТабличнойЧастиТара <> Неопределено и СтрокаТабличнойЧастиТара.цена=0  Тогда
      вестары=  СтрокаТабличнойЧастиТара.Номенклатура.ЕдиницаХраненияОстатков.Вес;
   Конецесли;

      
   Возврат вестары;
КонецФункции
   


Функция ПодсчитатьВесТары1(ВыборкаСтрок)
   вестары=0;
   
   Для каждого стр из СсылкаНаОбъект.Товары цикл
      Если стр.Номенклатура.ВидНоменклатуры.код="000000006" //тара
         и стр.Цена=0 //если уена не 0, тогда выведется отдельно строкой
         и СокрЛП(стр.СерияНоменклатуры.Наименование)=СокрЛП(ВыборкаСтрок.серия.наименование)  //стыковка по имени серии
         тогда
         вестары=вестары+стр.Количество * стр.Номенклатура.ЕдиницаХраненияОстатков.Вес
      Конецесли;
   Конеццикла;
   
   Возврат вестары;
КонецФункции

   

мВалютаРегламентированногоУчета   = Константы.ВалютаРегламентированногоУчета.Получить();//

Теги:

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

Рейтинг@Mail.ru

Поиск