8.х Правильный перенос текста в макете печати

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

  1. TopicStarter Overlay
    Teghash
    Offline

    Teghash

    Регистрация:
    31 мар 2017
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Добрый день, прошу помочь с решением проблемы с переносом текста строки на следующую страницу.
    Конфигурация УНФ 1.6, Документ Заказ покупателя - печатная форма Коммерческое предложение
    В печатную форму выводится информация из описания номенклатуры - т.к. текста в описании много, часть текста не влазит на страницу и переносится на следующую. Но возникает проблема с тем что рвется текст пополам.
    Приложил файл тест в котором показан разрыв текста на печати
    и файл макета печатной формы

    В коде для вывода строки описание используются следующие параметры:
    ОписаниеНоменклатуры = ВыборкаСтрокПроверка.Комментарий;
    ОбластьМакетаСтрока.Параметры.ОписаниеНоменклатуры = ОписаниеНоменклатуры;

    Код формирования печатной формы:
    Код:
    ТабличныйДокумент = Новый ТабличныйДокумент;
        ТабличныйДокумент.ПолеСверху = 15;
        ТабличныйДокумент.ПолеСлева = 7;
        ТабличныйДокумент.ПолеСнизу = 0;
        ТабличныйДокумент.ПолеСправа = 7;
        ТабличныйДокумент.КлючПараметровПечати = "ПараметрыПечати_КоммерческоеПредложение";
    Пока ВыборкаСтрокПроверка.Следующий() Цикл
                ФайлКартинкиНоменклатуры = ВыборкаСтрокПроверка.ФайлКартинки;
                ОписаниеНоменклатуры = ВыборкаСтрокПроверка.Комментарий;
                Если ЗначениеЗаполнено(ОписаниеНоменклатуры) ИЛИ ЗначениеЗаполнено(ФайлКартинкиНоменклатуры) Тогда
                    ЕстьДанные = ЕстьДанные + 1;
                КонецЕсли;
            КонецЦикла;
    
            Если ЕстьДанные > 0 Тогда
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                ОбластьМакетаПоставщик = Макет.ПолучитьОбласть("ПоставщикНоменклатура");
                ОбластьМакетаПоставщик.Параметры.Заполнить(Шапка);
                ДанныеКартинки = ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(Шапка.Организация.ФайлЛоготип);
                ОбластьМакетаПоставщик.Рисунки.ЛоготипНоменклатура.Картинка = Новый Картинка(ДанныеКартинки);
                ОбластьМакетаПоставщик.Параметры.НаименованиеПоставщика = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "Представление,");
                ОбластьМакетаПоставщик.Параметры.АдресПоставщика = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "ЮридическийАдрес,");
                ОбластьМакетаПоставщик.Параметры.ТелефонПоставщика = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "Телефоны,");
                ОбластьМакетаПоставщик.Параметры.ЭлектроннаяПочтаПоставщика = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "ЭлектроннаяПочта,");
                Колонки = Справочники.Организации.ОсновнаяОрганизация.КонтактнаяИнформация.Выгрузить();
                Перечисление = Перечисления.ТипыКонтактнойИнформации.ВебСтраница;
                ОбластьМакетаПоставщик.Параметры.ВебСтраница = ВебСтраница;
                ОбластьМакетаПоставщик.Параметры.Отпустил = Шапка.Ответственный;
                ОбластьМакетаПоставщик.Параметры.ОтпустилТелефон = УправлениеНебольшойФирмойСервер.ПолучитьКонтактнуюИнформацию(Шапка.Ответственный.ФизЛицо, Справочники.ВидыКонтактнойИнформации.ТелефонФизЛица);
                ТабличныйДокумент.Вывести(ОбластьМакетаПоставщик);
                ОбластьМакетаЗаголовок = Макет.ПолучитьОбласть("ЗаголовокНоменклатуры");
                ОбластьМакетаЗаголовок.Параметры.ТекстЗаголовкаНоменклатуры = "Описание, фото и технические характеристики продукции.";
                ТабличныйДокумент.Вывести(ОбластьМакетаЗаголовок);
                ОбластьМакетаШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицыНоменклатуры");
                ТабличныйДокумент.Вывести(ОбластьМакетаШапкаТаблицы);
                Пока ВыборкаСтрокНоменклатура.Следующий() Цикл
                    ФайлКартинкиНоменклатуры = ВыборкаСтрокНоменклатура.ФайлКартинки;
                    Если ЗначениеЗаполнено(ФайлКартинкиНоменклатуры) Тогда
                        ОбластьМакетаСтрока = Макет.ПолучитьОбласть("СтрокаНоменклатуры");
                    Иначе
                        ОбластьМакетаСтрока = Макет.ПолучитьОбласть("СтрокаНоменклатурыБезФото");
                    КонецЕсли;
                        ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаСтрокНоменклатура);
                        ОписаниеНоменклатуры = ВыборкаСтрокНоменклатура.Комментарий;
                        ОбластьМакетаСтрока.Параметры.НаименованиеНоменклатуры = ВыборкаСтрокНоменклатура.Запас +":";
                        ОбластьМакетаСтрока.Параметры.ОписаниеНоменклатуры = ОписаниеНоменклатуры;
                        ЕстьДанныеНоменклатура = 0;
                        Если ЗначениеЗаполнено(ОписаниеНоменклатуры) ИЛИ ЗначениеЗаполнено(ФайлКартинкиНоменклатуры) Тогда
                            Если ЗначениеЗаполнено(ФайлКартинкиНоменклатуры) Тогда
                                ДанныеКартинки = ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(ВыборкаСтрокНоменклатура.ФайлКартинки);
                                КартинкаНоменклатуры = Новый Картинка(ДанныеКартинки);
                                ОбластьМакетаСтрока.Рисунки["ФотоНоменклатуры"].Картинка = КартинкаНоменклатуры;
                            КонецЕсли;
                            НомерСтрокиНоменклатура = НомерСтрокиНоменклатура + 1;
                            ОбластьМакетаСтрока.Параметры.НомерСтрокиНоменклатура = НомерСтрокиНоменклатура;
                            ЕстьДанныеНоменклатура = ЕстьДанныеНоменклатура + 1;
                        КонецЕсли;
                        Если ЕстьДанныеНоменклатура > 0 Тогда
                               ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);
                        КонецЕсли;
                КонецЦикла;
                    ОбластьМакетаПодвал = Макет.ПолучитьОбласть("ПодвалНомеклатура");
                    ТабличныйДокумент.Вывести(ОбластьМакетаПодвал)
            КонецЕсли;
    
            УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);
        КонецЦикла;
    
        ТабличныйДокумент.АвтоМасштаб = Истина;

    Вложения:

    Последнее редактирование: 31 мар 2017
  2. TopicStarter Overlay
    Teghash
    Offline

    Teghash

    Регистрация:
    31 мар 2017
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Нашел такую интересную особенность, если выставить не стандартные поля - например 7 слева, 7 справа, 7 снизу и 15 сверху то макет кривой
    если же вернуть все по 10 то все становится на место. теперь вопрос как заставить правильно масштабировать документ при нестандартных настройках

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