8.х Торг-12: не выдает Основание

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем duncan, 29 июл 2013.

  1. TopicStarter Overlay
    duncan
    Offline

    duncan

    Регистрация:
    29 июл 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Осталась по наследству ПФ Торг-12 с настройками, при определённом контрагенте (Ашан, Метро и т.д.) всё формируется нормально, но вот если "обычный покупатель поле Основание пустое...
  2. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Скорее всего, у вас внешняя обработка. Телепатов нет, никто вам не скажет сходу, что там у вас не работает, поэтому... берите отладчик и смотрите по коду.
    Или вы не программер?
  3. TopicStarter Overlay
    duncan
    Offline

    duncan

    Регистрация:
    29 июл 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Вот код...
    [CODE1C]Функция ПечатьНакладной(БезУслуг = Ложь)
    ПоказатьСтавкиНДС = 0;
    ЕдиницаИзмеренияВеса = мЕдиницаИзмеренияВеса;

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

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

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

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


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

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

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

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

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

    ЗапросТовары = Запрос.Выполнить().Выгрузить();
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_УниверсалТОРГ12Доверенность";

    ОбщийМакет = Ложь;ИмяМакета = "";
    ЕдиницаБахетле = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("_08");
    ЕдиницаКрокус = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("_09");

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

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

    ПечататьКодыИзНоменклатуры = Ложь;
    Если Не ОбщийМакет Тогда
    СтруктураОтбора = Новый Структура;
    СтруктураОтбора.Вставить("Объект",Документ.Грузополучатель);
    СтруктураОтбора.Вставить("Свойство",ПланыВидовХарактеристик.СвойстваОбъектов.НомерМагазина);
    НомерМагазина = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(СтруктураОтбора);

    СтруктураОтбора = Новый Структура;
    СтруктураОтбора.Вставить("Объект",Документ.Контрагент);
    СтруктураОтбора.Вставить("Свойство",ПланыВидовХарактеристик.СвойстваОбъектов.НомерПоставщика);
    НомерПоставщика = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(СтруктураОтбора);

    ОбластьМакета.Параметры.НомерМагазина = НомерМагазина.Значение;
    ОбластьМакета.Параметры.НомерПоставщика = НомерПоставщика.Значение;
    ОбластьМакета.Параметры.НомерЗаказа = Сред(СокрЛП(Документ.Комментарий),3);
    Если ИмяМакета = "Бахетле" Тогда
    ОбластьМакета.Параметры.НомерЗаказа = СокрЛП(Документ.Комментарий);
    КонецЕсли;
    ПланСвойства = ПланыВидовХарактеристик.СвойстваОбъектов;
    КодыИзНоменклатурыСвойство = ПланСвойства.НайтиПоНаименованию("В Торг-12 печатать коды из номенклатуры");

    Если Не ЗначениеНеЗаполнено(КодыИзНоменклатурыСвойство) Тогда

    СтруктураОтбора = Новый Структура;
    СтруктураОтбора.Вставить("Объект",Документ.Контрагент);
    СтруктураОтбора.Вставить("Свойство",КодыИзНоменклатурыСвойство);
    Результат = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(СтруктураОтбора);

    Если Не (ЗначениеНеЗаполнено(Результат) Или ЗначениеНеЗаполнено(Результат.Значение)) Тогда
    ПечататьКодыИзНоменклатуры = Результат.Значение;
    КонецЕсли;

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

    КонецЕсли;

    КонецЕсли;

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

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

    Если ИмяМакета = "Метро" Тогда
    СтрокаФилиал = ?(Лев(ОбластьМакета.Параметры.НомерМагазина,1) <> "1", "Филиал ", "");
    Иначе
    СтрокаФилиал = "";
    КонецЕсли;
    Если ИмяМакета = "Ашан" Тогда
    ОбластьМакета.Параметры.НомерПоставщика = ?(ЗначениеЗаполнено(СсылкаНаОбъект.ДоговорКонтрагента.Комментарий),СсылкаНаОбъект.ДоговорКонтрагента.Комментарий,"3287");
    КонецЕсли;

    ОбластьМакета.Параметры.ПредставлениеГрузополучателя = СтрокаФилиал + ПредставлениеГрузополучателя;

    ОбластьМакета.Параметры.ПредставлениеПоставщика = ОписаниеОрганизации(СведенияОПоставщике);
    ОбластьМакета.Параметры.ПредставлениеПлательщика = ОписаниеОрганизации(СведенияОПокупателе);
    //[art1] Для крокуса грузополучателя вставляем в плательщика
    Если Признак = ЕдиницаКрокус Тогда
    ОбластьМакета.Параметры.ПредставлениеПлательщика = ОписаниеОрганизации(СведенияОГрузополучателе);
    КонецЕсли;

    СтруктураОтбора = Новый Структура;
    Попытка
    СтруктураОтбора.Вставить("Объект",Документ.Контрагент);
    СтруктураОтбора.Вставить("Свойство",ПланыВидовХарактеристик.СвойстваОбъектов.ОснованиеТорг12);
    ТекстОснования = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(СтруктураОтбора);
    ОбластьМакета.Параметры.Основание = ТекстОснования.Значение;
    Исключение
    ОбластьМакета.Параметры.Основание = "";
    КонецПопытки;

    СтруктураОтбора = Новый Структура;
    Попытка
    СтруктураОтбора.Вставить("Объект",Документ.Контрагент);
    СтруктураОтбора.Вставить("Свойство",ПланыВидовХарактеристик.СвойстваОбъектов.ДатаНомерДоговораВОснованииТорг12);
    ДатаНомерИзДоговора = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(СтруктураОтбора);
    Если ЗначениеЗаполнено(ДатаНомерИзДоговора.Значение) Тогда
    Если ДатаНомерИзДоговора.Значение Тогда
    НомерДоговора = Документ.ДоговорКонтрагента.Номер;
    ДатаДоговора = Документ.ДоговорКонтрагента.Дата;
    ОбластьМакета.Параметры.Основание = "Договор " +
    ?(ЗначениеЗаполнено(НомерДоговора),"№ " + НомерДоговора," ") +
    ?(ЗначениеЗаполнено(ДатаДоговора)," от " + Формат(ДатаДоговора,"ДФ=dd.MM.yy"),"");
    КонецЕсли;
    КонецЕсли;
    Исключение // Если флажок не обнаружен или Ложь - ничего не меняем
    //ОбластьМакета.Параметры.Основание = "";
    КонецПопытки;

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

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

    НомерСтраницы = 1;

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

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

    // инициализация итогов по странице
    ИтогоМассаБруттоНаСтранице = 0;
    ИтогоМестНаСтранице = 0;
    ИтогоКоличествоНаСтранице = 0;
    ИтогоСуммаНаСтранице = 0;
    ИтогоНДСНаСтранице = 0;
    ИтогоСуммаСНДСНаСтранице = 0;
    ИтогоМестМЕНаСтранице = 0;
    ИтогоКоличествоМЕНаСтранице = 0;
    // инициализация итогов по документу
    ИтогоМассаБрутто = 0;
    ИтогоМест = 0;
    ИтогоКоличество = 0;
    ИтогоМассаГруза = 0;
    ИтогоСуммаСНДС = 0;
    ИтогоСумма = 0;
    ИтогоНДС = 0;
    Ном = 0;
    ИтогоМестМЕ = 0;
    ИтогоКоличествоМЕ = 0;
    // Создаем массив для проверки вывода
    МассивВыводимыхОбластей = Новый Массив;

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

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

    мСтруктура = Новый Структура;
    мСтруктура.Вставить("Объект",Шапка.Покупатель);
    мСтруктура.Вставить("Свойство",ПланыВидовХарактеристик.СвойстваОбъектов.НеОтображатьСрокиГодностиТорг12);
    мРезультат = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(мСтруктура);
    НеПечататьСрокиГодности = мРезультат.Значение;

    МассаГрузаПоСтроке = 0;
    Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл

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

    Ном = Ном + 1;

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

    Если (Не ОбщийМакет) И ПечататьКодыИзНоменклатуры Тогда
    ОбластьМакета.Параметры.АртикулМЕ = ВыборкаСтрок.Номенклатура.Код;
    КонецЕсли;
    //Попытка
    // Если ОбщийМакет Тогда
    // Если ЗначениеНеЗаполнено(НеПечататьСрокиГодности) Тогда
    // ОбластьМакета.Параметры.СрокГодности = ВыборкаСтрок.Характеристика;
    // Иначе
    // Если НеПечататьСрокиГодности Тогда
    // ОбластьМакета.Параметры.СрокГодности = "";
    // Иначе
    // ОбластьМакета.Параметры.СрокГодности = ВыборкаСтрок.Характеристика;
    // КонецЕсли;
    // КонецЕсли;
    // КонецЕсли;
    //Исключение
    //КонецПопытки;
    Если ЗначениеНеЗаполнено(ЕдиницаИзмеренияВеса) Тогда
    МассаБрутто = 0;
    Иначе
    МассаБрутто = ВыборкаСтрок.МассаБрутто;
    МассаБрутто = ?(МассаБрутто <> Неопределено И МассаБрутто <> NULL, МассаБрутто, 0);
    Если Признак = Справочники.КлассификаторЕдиницИзмерения.Экспорт Тогда
    Количество = МассаБрутто;
    МассаБрутто = Цел(МассаБрутто * 1.098)+?(МассаБрутто * 1.098 - Цел(МассаБрутто * 1.098) >0,1,0);
    КонецЕсли;
    КонецЕсли;
    // Дополнительно для метро
    СпрДопЕдиницы = Справочники.ДополнительныеЕдиницыИзмерения;
    ПустаяДопЕдиница = СпрДопЕдиницы.ПустаяСсылка();
    ДопМетро = СпрДопЕдиницы.НайтиПоРеквизиту("ЕдиницаНоменклатуры",ВыборкаСтрок.ЕдиницаИзмерения,,ВыборкаСтрок.Номенклатура);

    Если ДопМетро <> ПустаяДопЕдиница Тогда
    Если (Не ОбщийМакет) И Не ПечататьКодыИзНоменклатуры и ДопМетро.ЕдиницаПоКлассификатору = Признак Тогда
    ОбластьМакета.Параметры.АртикулМЕ = ДопМетро.Артикул;
    ОбластьМакета.Параметры.ПредставлениеМЕ = ДопМетро.Наименование;
    МестМЕ = ДопМетро.Мест;
    ОбластьМакета.Параметры.МестМЕ = МестМЕ;
    КоэффициентМЕ = ДопМетро.Коэффициент;
    ОбластьМакета.Параметры.КоэффициентМЕ = КоэффициентМЕ;
    Если ВыборкаСтрок.Количество > 0
    И ВыборкаСтрок.Коэффициент > 0
    И ДопМетро.Коэффициент > 0 Тогда
    КоличествоМЕ = ВыборкаСтрок.Количество * ВыборкаСтрок.Коэффициент / ДопМетро.Коэффициент
    Иначе
    КоличествоМЕ = 0;
    КонецЕсли;
    ОбластьМакета.Параметры.КоличествоМЕ = КоличествоМЕ;
    Если ВыборкаСтрок.Количество > 0
    И ВыборкаСтрок.Коэффициент > 0
    И ДопМетро.Коэффициент > 0
    И ДопМетро.Мест > 0
    ТОГДА
    КоличествоМестМЕ = ВыборкаСтрок.Количество * ВыборкаСтрок.Коэффициент / ДопМетро.Коэффициент / ДопМетро.Мест;
    ИНАЧЕ
    КоличествоМестМЕ = 0;
    КОНЕЦЕсли;
    ОбластьМакета.Параметры.КоличествоМестМЕ = КоличествоМестМЕ;
    Мест = ВыборкаСтрок.КоличествоМест;
    Мест = ?(Мест <> Неопределено И Мест <> NULL, Мест, 0);
    КонецЕсли;
    Иначе
    Мест = ВыборкаСтрок.КоличествоМест;
    Мест = ?(Мест <> Неопределено И Мест <> NULL, Мест, 0);
    МестМЕ = ВыборкаСтрок.КоличествоМестМЕ;
    МестМЕ = ?(МестМЕ <> Неопределено И МестМЕ <> NULL, МестМЕ, 0);
    КоличествоМЕ = ВыборкаСтрок.КоличествоМЕ;
    КонецЕсли;

    Если Признак <> Справочники.КлассификаторЕдиницИзмерения.Экспорт Тогда
    Количество = ВыборкаСтрок.Количество;
    КонецЕсли;
    СуммаСНДС = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
    СуммаНДС = Окр(ВыборкаСтрок.СуммаНДС, 2);
    СуммаБезНДС = СуммаСНДС - СуммаНДС;

    ТаблицаДанных.Очистить();
    СтрокаТаблицы = ТаблицаДанных.Добавить();

    СтрокаТаблицы.ТоварКод = СокрЛП(ВыборкаСтрок.ТоварКод);
    СтрокаТаблицы.МассаБрутто = МассаБрутто;
    СтрокаТаблицы.Количество = Количество;
    СтрокаТаблицы.СуммаСНДС = СуммаСНДС;
    СтрокаТаблицы.СуммаНДС = СуммаНДС;
    СтрокаТаблицы.СтавкаНДС = ВыборкаСтрок.СтавкаНДС;
    СтрокаТаблицы.СуммаБезНДС = СуммаБезНДС;

    Если ИмяМакета = "Метро" Тогда
    ОбластьМакета.Параметры.ЦенаМЕ = ?(Количество = 0, 0, СуммаБезНДС / КоличествоМЕ);
    КонецЕсли;

    Если Признак = Справочники.КлассификаторЕдиницИзмерения.Экспорт Тогда
    СтрокаТаблицы.Цена = СуммаСНДС / ?(Мест <> 0, Мест, 1);
    ИначеЕсли Шапка.СуммаВключаетНДС
    Или ВыборкаСтрок.ЕстьСкидкиПоСтроке Тогда
    СтрокаТаблицы.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество);
    Иначе
    СтрокаТаблицы.Цена = ВыборкаСтрок.Цена;
    КонецЕсли;

    ЕдиницаИзмеренияПоСтроке = ВыборкаСтрок.ЕдиницаИзмерения;
    МассаЕдиницы = ПолучитьВесЕдиницыИзмерения(ЕдиницаИзмеренияПоСтроке);
    Если ЗначениеЗаполнено(МассаЕдиницы) Тогда
    МассаГрузаПоСтроке = МассаЕдиницы * Количество;
    Иначе
    МассаГрузаПоСтроке = 0;
    Сообщить("Для " + ВыборкаСтрок.Номенклатура + " масса не рассчитана.");
    КонецЕсли;

    ОбластьМакета.Параметры.Заполнить(СтрокаТаблицы);

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

    Если НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда

    ТаблицаДанных.Очистить();
    СтрокаТаблицы = ТаблицаДанных.Добавить();

    // Строка с итогом не вмещается
    СтрокаТаблицы.ИтогМассаБруттоПоСтранице = ИтогоМассаБруттоНаСтранице;
    СтрокаТаблицы.ИтогМестПоСтранице = ИтогоМестНаСтранице;
    СтрокаТаблицы.ИтогКоличествоПоСтранице = ИтогоКоличествоНаСтранице;
    СтрокаТаблицы.ИтогСуммыПоСтранице = ИтогоСуммаНаСтранице;
    СтрокаТаблицы.ИтогНДСПоСтранице = ИтогоНДСНаСтранице;
    СтрокаТаблицы.ИтогСуммыСНДСПоСтранице = ИтогоСуммаСНДСНаСтранице;
    СтрокаТаблицы.ИтогМестМЕПоСтранице = ИтогоМестМЕНаСтранице;
    СтрокаТаблицы.ИтогКоличествоМЕПоСтранице = ИтогоКоличествоМЕНаСтранице;

    ОбластьИтоговПоСтранице.Параметры.Заполнить(СтрокаТаблицы);

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

    // очистим итоги по странице
    ИтогоМассаБруттоНаСтранице = 0;
    ИтогоМестНаСтранице = 0;
    ИтогоКоличествоНаСтранице = 0;
    ИтогоСуммаНаСтранице = 0;
    ИтогоНДСНаСтранице = 0;
    ИтогоСуммаСНДСНаСтранице = 0;
    ИтогоМестМЕНаСтранице = 0;
    ИтогоКоличествоМЕНаСтранице = 0;

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

    КонецЕсли;

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

    // увеличим итоги по странице
    ИтогоМассаБруттоНаСтранице = ИтогоМассаБруттоНаСтранице + МассаБрутто;
    ИтогоМестНаСтранице = ИтогоМестНаСтранице + Мест;
    ИтогоКоличествоНаСтранице = ИтогоКоличествоНаСтранице + Количество;
    ИтогоСуммаНаСтранице = ИтогоСуммаНаСтранице + СуммаБезНДС;
    ИтогоНДСНаСтранице = ИтогоНДСНаСтранице + СуммаНДС;
    ИтогоСуммаСНДСНаСтранице = ИтогоСуммаСНДСНаСтранице + СуммаСНДС;
    ИтогоМестМЕНаСтранице = ИтогоМестМЕНаСтранице + МестМЕ;
    ИтогоКоличествоМЕНаСтранице = ИтогоКоличествоМЕНаСтранице + КоличествоМЕ;

    // увеличим итоги по дукументу
    ИтогоМассаБрутто = ИтогоМассаБрутто + МассаБрутто;
    ИтогоМест = ИтогоМест + Мест;
    ИтогоКоличество = ИтогоКоличество + Количество;
    ИтогоСумма = ИтогоСумма + СуммаБезНДС;
    ИтогоНДС = ИтогоНДС + СуммаНДС;
    ИтогоСуммаСНДС = ИтогоСуммаСНДС + СуммаСНДС;
    ИтогоМестМЕ = ИтогоМестМЕ + МестМЕ;
    ИтогоКоличествоМЕ = ИтогоКоличествоМЕ + КоличествоМЕ;
    ИтогоМассаГруза = ИтогоМассаГруза + МассаГрузаПоСтроке;

    КонецЦикла;

    // Выводим итоги по последней странице
    ТаблицаДанных.Очистить();
    СтрокаТаблицы = ТаблицаДанных.Добавить();

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

    ОбластьИтоговПоСтранице.Параметры.Заполнить(СтрокаТаблицы);


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

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

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

    ОбластьМакета.Параметры.Заполнить(СтрокаТаблицы);

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

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

    ТабДокумент.Вывести(ОбластьСтавкиНДС);
    КонецЦикла;
    КонецЕсли;


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

    ТаблицаДанных.Очистить();
    СтрокаТаблицы = ТаблицаДанных.Добавить();

    Руководители = ОтветственныеЛицаОрганизации(Шапка.Руководители, Шапка.ДатаДокумента,);
    Руководитель = Руководители.Руководитель;
    Бухгалтер = Руководители.ГлавныйБухгалтер;
    СтрокаТаблицы.ФИОРуководителя = Руководитель;
    СтрокаТаблицы.ФИОГлавБухгалтера = Бухгалтер;

    СтрокаТаблицы.ДолжностьРуководителя = Руководители.РуководительДолжность;
    ФамилияИмяОтчествоФизЛица = ФамилияИмяОтчество(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента);
    ФамилияИмяОтчествоКладовщика = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
    СтрокаТаблицы.ФИОКладовщика = ФамилияИнициалыФизЛица(ФамилияИмяОтчествоКладовщика);

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

    Если мОтражатьМассуГрузаПрописью Тогда
    Если мМассаГрузаВЕдиницахИзмеренияВеса Тогда
    ЕдВеса=мЕдиницаИзмеренияВеса.Наименование;
    ПараметрыПредментаИсчисления = ЕдВеса+","+ЕдВеса+","+ЕдВеса+",,"+",гр,гр,гр,3";
    СтрокаТаблицы.МассаГрузаПрописью = ЧислоПрописью(ИтогоМассаГруза, ,ПараметрыПредментаИсчисления);
    Иначе
    СтрокаТаблицы.МассаГрузаПрописью = ЧислоПрописью(ИтогоКоличество, ,",,,,,,,,3")
    КонецЕсли;
    КонецЕсли;



    Если ИтогоМест > 0 Тогда
    СтрокаТаблицы.ВсегоМестПрописью = ЧислоПрописью(ИтогоМест, ,",,,,,,,,0");
    КонецЕсли;

    СтрокаТаблицы.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(КоличествоСтрок, ,",,,,,,,,0");
    СтрокаТаблицы.СуммаПрописью = СформироватьСуммуПрописью(ИтогоСуммаСНДС, мВалютаРегламентированногоУчета);

    ОбластьМакета.Параметры.Заполнить(СтрокаТаблицы);

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

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

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

    Если ПечататьДополнительныеФормы Тогда
    ИмяФайла = КаталогВременныхФайлов()+"PrnForm.epf";
    Если Признак = Справочники.КлассификаторЕдиницИзмерения.Ашан Тогда
    ОбъектВнешнейФормы = Справочники.ДополнительныеПечатныеФормы.ЭтикеткаНаПоддон.ПолучитьОбъект();
    Если ОбъектВнешнейФормы = Неопределено Тогда
    Сообщить("Ошибка получения внешней формы документа. Возможно форма была удалена", СтатусСообщения.Важное);
    КонецЕсли;

    ДвоичныеДанные = ОбъектВнешнейФормы.ХранилищеВнешнейОбработки.Получить();
    ДвоичныеДанные.Записать(ИмяФайла);
    Обработка = ВнешниеОбработки.Создать(ИмяФайла);
    Обработка.СсылкаНаОбъект = ЭтотОбъект.СсылкаНаОбъект;
    _ТабДокумент = Обработка.Печать("АШАН");
    НапечататьДокумент(_ТабДокумент);
    Иначе
    ОбъектВнешнейФормы = Справочники.ДополнительныеПечатныеФормы.ЗаявкаВРЦ.ПолучитьОбъект();
    Если ОбъектВнешнейФормы = Неопределено Тогда
    Сообщить("Ошибка получения внешней формы документа. Возможно форма была удалена", СтатусСообщения.Важное);
    КонецЕсли;

    ДвоичныеДанные = ОбъектВнешнейФормы.ХранилищеВнешнейОбработки.Получить();
    ДвоичныеДанные.Записать(ИмяФайла);
    Обработка = ВнешниеОбработки.Создать(ИмяФайла);
    Обработка.СсылкаНаОбъект = ЭтотОбъект.СсылкаНаОбъект;
    _ТабДокумент = Обработка.Печать();
    НапечататьДокумент(_ТабДокумент);

    ОбъектВнешнейФормы = Справочники.ДополнительныеПечатныеФормы.ЭтикеткаНаПоддон.ПолучитьОбъект();
    Если ОбъектВнешнейФормы = Неопределено Тогда
    Сообщить("Ошибка получения внешней формы документа. Возможно форма была удалена", СтатусСообщения.Важное);
    КонецЕсли;

    ДвоичныеДанные = ОбъектВнешнейФормы.ХранилищеВнешнейОбработки.Получить();
    ДвоичныеДанные.Записать(ИмяФайла);
    Обработка = ВнешниеОбработки.Создать(ИмяФайла);
    Обработка.СсылкаНаОбъект = ЭтотОбъект.СсылкаНаОбъект;
    _ТабДокумент = Обработка.Печать();
    НапечататьДокумент(_ТабДокумент);
    КонецЕсли;
    КонецЕсли;

    Возврат ТабДокумент;

    КонецФункции // Печать()
    [/CODE1C]
  4. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    duncan, смотрите в этом блоке... Скорее всего, данные из регистра не подтягиваются. Отладчиком пользоваться умеете?
    Код:
     СтруктураОтбора = Новый Структура;
    Попытка
    СтруктураОтбора.Вставить("Объект",Документ.Контрагент);
    СтруктураОтбора.Вставить("Свойство",ПланыВидовХарактеристик.СвойстваОбъектов.ДатаНомерДоговораВОснованииТорг12);
    ДатаНомерИзДоговора = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(СтруктураОтбора);
    Если ЗначениеЗаполнено(ДатаНомерИзДоговора.Значение) Тогда
    Если ДатаНомерИзДоговора.Значение Тогда
    НомерДоговора = Документ.ДоговорКонтрагента.Номер;
    ДатаДоговора = Документ.ДоговорКонтрагента.Дата;
    ОбластьМакета.Параметры.Основание = "Договор " +
    ?(ЗначениеЗаполнено(НомерДоговора),"№ " + НомерДоговора," ") +
    ?(ЗначениеЗаполнено(ДатаДоговора)," от " + Формат(ДатаДоговора,"ДФ=dd.MM.yy"),"");
    КонецЕсли;
    КонецЕсли;
    Исключение // Если флажок не обнаружен или Ложь - ничего не меняем
    //ОбластьМакета.Параметры.Основание = "";
    КонецПопытки;
    
    P.S.: жжете, целую простыню кода выкатили ))
  5. TopicStarter Overlay
    duncan
    Offline

    duncan

    Регистрация:
    29 июл 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Сам заУлыбался когда увидел её размер)))
    На какой строке точку останова поставить?
  6. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Ггг, поищете у себя этот блок )
  7. TopicStarter Overlay
    duncan
    Offline

    duncan

    Регистрация:
    29 июл 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Спасибо, направление работы есть, завтра продолжу изыскания... ))
  8. TopicStarter Overlay
    duncan
    Offline

    duncan

    Регистрация:
    29 июл 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1

    Annie, к сожалению определённый вами фрагмент кода не участвует в работе((( до него не доходит очередь....
  9. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    А вы посмотрите, может у вас в регистре сведений "ЗначенияСвойствОбъектов" для контрагента из определенной реализации (кроме Ашан, Метро...) нет никаких записей
    И да... вам бы лучше уточнить у своих коллег, действительно ли должно проставляться основание ) У вас в коде комментарий есть на эту тему )
  10. TopicStarter Overlay
    duncan
    Offline

    duncan

    Регистрация:
    29 июл 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Ну так коллеги и просят.....
  11. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Ну а вы в регистре смотрели, есть там записи? Информация тянется оттуда, если нет там ничего, то все логично, значит, надо инфу внести в регистр.
    Если инфа есть, то это более интересный момент )
  12. TopicStarter Overlay
    duncan
    Offline

    duncan

    Регистрация:
    29 июл 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Как посмотреть, есть ли там инфа?
  13. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    В режиме 1С:Предприятия, Операции - > Регистр сведений - > ЗначенияСвойствОбъектов
    Установите отбор по контрагенту для которого не выводится Основание... Если при установленном отборе, список окажется пустым, то все ясно )
    А при отладке в Попытку вообще не заходит?
  14. TopicStarter Overlay
    duncan
    Offline

    duncan

    Регистрация:
    29 июл 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    список не пуст, и в попытку не заходит((
  15. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Покажите скрин списка с отбором по контрагенту
  16. TopicStarter Overlay
    duncan
    Offline

    duncan

    Регистрация:
    29 июл 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1

    Вложения:

  17. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    ЧТД. Ну и где вы там видите свойства ОснованиеТорг12 или ДатаНомерДоговораВОснованииТорг12 (во 2-ой колонке). Я лично не вижу.
    А по коду у вас отбираются значения именно этих свойств...
    А теперь посмотрите, есть ли эти свойства для контрагента "Ашан"
  18. TopicStarter Overlay
    duncan
    Offline

    duncan

    Регистрация:
    29 июл 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Согласен!) Для Ашана есть ОснованиеТорг12....... и что мне нужно дописать?
  19. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Кто ж знает )) Вам надо у сведущих коллег поинтересоваться. Это же определенные данные по вашим контрагентам )
  20. TopicStarter Overlay
    duncan
    Offline

    duncan

    Регистрация:
    29 июл 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Мне нужно чтоб из документа реализации, поле договор выводилось в Основание печатной формы...
Похожие темы
  1. qazibum
    Ответов:
    3
    Просмотров:
    406
Загрузка...

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