Имя: Пароль:
1C
1С v8
Вывод Получателя в зависимости от типа складской операции в Отбор и размещение товаров
0 Valentus
 
04.06.18
11:09
Добрый день всем!
Прошу подсказать по такому вопросу: делаю внешнюю печатную форму для документа ОтборИРазмещениеТоваров для Комплекской автоматизации 2.

Задача почти выполнена, остался вопрос по выводу в поле Контрагент информации в зависимости от типа Складской операции, когда у расходного ордера на товары складская операция Отгрузка по перемещению в поле контрагент должен появляться склад и в поле адрес адрес склада (ЭТО НЕ ПОЛУЧАЕТСЯ), когда тип операции расходного ордера Отгрузка клиенту выводится наименование контрагента и его адрес (это работает),а при перемещении пустые поля Контрагент и Адрес.

Привожу код для наглядности:

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

        
        Если ВыборкаПоДокументам.ОтгрузкаПоЗаданиюНаПеревозку Тогда
            РеквизитыДокумента.Дата          = ВыборкаПоДокументам.ЗаданиеНаПеревозкуДата;
            РеквизитыДокумента.Номер         = ВыборкаПоДокументам.ЗаданиеНаПеревозкуНомер;
            РеквизитыДокумента.Префикс       = "";
            РеквизитыДокумента.Представление = ВыборкаПоДокументам.ЗаданиеНаПеревозкуПредставление;
                                                
            ОбластьЗаданиеНаПеревозку.Параметры.ЗаданиеНаПеревозкуПредставление    = ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(РеквизитыДокумента);
            ОбластьЗаданиеНаПеревозку.Параметры.ПорядокДоставки = ВыборкаПоДокументам.ПорядокДоставки;
            ТабличныйДокумент.Вывести(ОбластьЗаданиеНаПеревозку);
        КонецЕсли;
        
        Метка = Неопределено;
        
        ИтогоПоСтрокам = 0;
        Пока ВыборкаПоСтрокамТЧ.Следующий() Цикл
            
            Если Метка <> ВыборкаПоСтрокамТЧ.Метка Тогда
                Если ВыводитьПодзаголовок Тогда
                    
                    Если ВыборкаПоСтрокамТЧ.Метка = 0 Тогда
                        ТекстПозаголовка = НСтр("ru='Товары к отбору'");
                    Иначе
                        ТекстПозаголовка = НСтр("ru='Товары к размещению'");
                    КонецЕсли;
                    
                    Если Метка <> Неопределено Тогда
                        ТабличныйДокумент.Вывести(ОбластьПодвалТаблицыНачало);
                        Если ВыводитьКоды Тогда
                            ТабличныйДокумент.Присоединить(ОбластьПодвалТаблицыКолонкаКодов);
                        КонецЕсли;
                        ТабличныйДокумент.Присоединить(ОбластьПодвалТаблицыКолонкаТоваров);
                        ТабличныйДокумент.Присоединить(ОбластьПодвалТаблицыКонец);
                    КонецЕсли;
                
                    ОбластьПодзаголовок.Параметры.ТекстПозаголовка = ТекстПозаголовка;
                    ТабличныйДокумент.Вывести(ОбластьПодзаголовок);
                КонецЕсли;
                
                ТабличныйДокумент.Вывести(ОбластьШапкаТаблицыНачало);
                Если ВыводитьКоды Тогда
                    ТабличныйДокумент.Присоединить(ОбластьШапкаТаблицыКолонкаКодов);
                КонецЕсли;
                ТабличныйДокумент.Присоединить(ОбластьШапкаТаблицыКолонкаТоваров);
                ТабличныйДокумент.Присоединить(ОбластьШапкаТаблицыКонец);
            КонецЕсли;
            
            ОбластьСтрокаТаблицыНачало.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
            ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицыНачало);
            
            Если ВыводитьКоды Тогда
                ОбластьСтрокаТаблицыКолонкаКодов.Параметры.Артикул = ВыборкаПоСтрокамТЧ[КолонкаКодов];
                ТабличныйДокумент.Присоединить(ОбластьСтрокаТаблицыКолонкаКодов);
            КонецЕсли;
                
            ОбластьСтрокаТаблицыКолонкаТоваров.Параметры.Товар = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
                ВыборкаПоСтрокамТЧ.НоменклатураПредставление,
                ВыборкаПоСтрокамТЧ.ХарактеристикаПредставление,
                , // Упаковка
                ВыборкаПоСтрокамТЧ.СерияПредставление);
            
            ТабличныйДокумент.Присоединить(ОбластьСтрокаТаблицыКолонкаТоваров);
            
            ОбластьСтрокаТаблицыКонец.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
            ТабличныйДокумент.Присоединить(ОбластьСтрокаТаблицыКонец);    
            
            Метка = ВыборкаПоСтрокамТЧ.Метка;
            
            ИтогоПоСтрокам = ИтогоПоСтрокам + ВыборкаПоСтрокамТЧ.КоличествоПлан;
            
        КонецЦикла;
        
        ТабличныйДокумент.Вывести(ОбластьПодвалТаблицыНачало);
        Если ВыводитьКоды Тогда
            ТабличныйДокумент.Присоединить(ОбластьПодвалТаблицыКолонкаКодов);
        КонецЕсли;
        ТабличныйДокумент.Присоединить(ОбластьПодвалТаблицыКолонкаТоваров);
        ТабличныйДокумент.Присоединить(ОбластьПодвалТаблицыКонец);
        ОбластьИтого.Параметры.Итого = ИтогоПоСтрокам;
        ТабличныйДокумент.Вывести(ОбластьИтого);
        ТабличныйДокумент.Присоединить(ОбластьПодписи);
        
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаПоДокументам.Ссылка);
    КонецЦикла;
    
    ТабличныйДокумент.АвтоМасштаб = Истина;
    
    Возврат ТабличныйДокумент;    
КонецФункции


Заранее спасибо за помощь.
1 DrShad
 
04.06.18
11:12
и кто будет читать эту простыню?
2 Cyberhawk
 
04.06.18
11:14
"делаю внешнюю печатную форму" // Сколько платят?
3 Valentus
 
04.06.18
11:16
Делаю для себя, подозреваю что проблема в запросе:

//|    ВЫБОР

    //|        КОГДА ТИПЗНАЧЕНИЯ(ОтборРазмещениеТоваров.Распоряжение.СкладскаяОперация) = ТИП(ОтгрузкаПоПеремещению)

    //|            ТОГДА ПРЕДСТАВЛЕНИЕ(ОтборРазмещениеТоваров.Распоряжение.Получатель)

    //|        ИНАЧЕ ВЫБОР

    //|                КОГДА ТИПЗНАЧЕНИЯ(ОтборРазмещениеТоваров.Распоряжение.СкладскаяОперация) = ТИП(ОтгрузкаКлиенту)

    //|                    ТОГДА ПРЕДСТАВЛЕНИЕ(ОтборРазмещениеТоваров.Распоряжение.Получатель)

    //|        КОНЕЦ

    //|    КОНЕЦ КАК Адрес,
4 Valentus
 
04.06.18
11:18
Раньше в УТ 11 была аналогичная задача, там было так:

|    ВЫБОР
    |        КОГДА ТИПЗНАЧЕНИЯ(ОтборРазмещениеТоваров.Распоряжение.Распоряжение) = ТИП(Документ.ПеремещениеТоваров)
    |            ТОГДА ПРЕДСТАВЛЕНИЕ(ОтборРазмещениеТоваров.Распоряжение.Распоряжение.СкладПолучатель)
    |        ИНАЧЕ ВЫБОР
    |                КОГДА ТИПЗНАЧЕНИЯ(ОтборРазмещениеТоваров.Распоряжение.Распоряжение) = ТИП(Документ.РеализацияТоваровУслуг)
    |                    ТОГДА ПРЕДСТАВЛЕНИЕ(ОтборРазмещениеТоваров.Распоряжение.Распоряжение.АдресДоставки)
    |        КОНЕЦ
    |    КОНЕЦ КАК АдресДоставки,

В комплексной так не получается, поэтому и прошу совета.