Имя: Пароль:
1C
1С v8
Автоподбор ширины строки по количеству текста
0 sergqwert
 
28.10.18
21:35
Как в печатной форме откорректировать автоподбор ширины строки по количеству текста? Не вмещается текст в ячейке(обрезается). Поставил галочку Автовысота, все также.
Код ниже:
Процедура ПриОткрытии()
    Если ЭтотОбъект.ЭтоНовый() Тогда
        ФотоВысота = 35;
        ФотоШирина = 23;
    Конецесли;
    Если ЭтотОбъект.ЭтоНовый() ИЛИ Спецификации.Количество()=0 Тогда
        ЗаполнитьНоменклатуруСпецификации();
    КонецЕсли;
КонецПроцедуры

Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
    Если ЭтотОбъект.ЭтоНовый() Тогда
        Предупреждение("Документ можно распечатать только после его записи");
        Возврат;
    ИначеЕсли Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Проведен) Тогда
        Предупреждение("Недостаточно полномочий для печати непроведенного документа!");
        Возврат;
    КонецЕсли;

    Если Не РаботаСДиалогами.ПроверитьМодифицированность(ЭтотОбъект) Тогда
        Возврат;
    КонецЕсли;
    
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_БрифЛист";

    Макет = ПолучитьМакет(ИмяМакета);
    
    КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "РежимФормированияПечатныхФорм"));
    Макет.КодЯзыкаМакета = КодЯзыкаПечать;
    
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрока= Макет.ПолучитьОбласть("Строка");
    ОбластьДно = Макет.ПолучитьОбласть("Дно");
    
    ОбластьШапка.Область(1,3,,3).ШиринаКолонки = ФотоШирина*13.3/23+1;
    ОбластьСтрока.Область(1,3,1,3).ШиринаКолонки= ФотоШирина*13.3/23+1;
    ОбластьДно.Область(1,3,,3).ШиринаКолонки=ФотоШирина*13.3/23+1;
    //ОбластьСтрока.Область(1,,1).ВысотаСтроки = ФотоВысота*70/23+1;
    ВысотаСтроки = ФотоВысота*70/23+1;
    
    ОбластьШапка.Параметры.БЛ = "Заказ на продукцию TM BERSERK SPORT ""BRIEF LIST"" № "+ОбщегоНазначения.ПолучитьНомерНаПечать(ЭтотОбъект);
    докПокупателя = ДокументОснование.Товары[0].Заказ;
    ОбластьШапка.Параметры.ЗаказПокупателя = ?(ЗначениеЗаполнено(докПокупателя),ОбщегоНазначения.ПолучитьНомерНаПечать(докПокупателя)+НСтр("ru=' от ';uk=' від '",КодЯзыкаПечать)+
                                            Формат(докПокупателя.Дата, "ДФ='дд ММММ гггг';Л="+ Локализация.ОпределитьКодЯзыкаДляФормат(КодЯзыкаПечать)),"");
    ОбластьШапка.Параметры.ЗаказПоставщику = ОбщегоНазначения.ПолучитьНомерНаПечать(ДокументОснование)+НСтр("ru=' от ';uk=' від '",КодЯзыкаПечать)+
                                            Формат(ДокументОснование.Дата, "ДФ='дд ММММ гггг';Л="+ Локализация.ОпределитьКодЯзыкаДляФормат(КодЯзыкаПечать));
    //ОбластьШапка.Параметры.ЗаказПокупателя = ДокументОснование.Товары[0].Заказ;
    //ОбластьШапка.Параметры.ЗаказПоставщику = ДокументОснование;
    табДокумент.Вывести(ОбластьШапка);
    //ОбластьКартинка = ОбластьСтрока.ПолучитьОбласть(1,3,1,3);
    Нпп=1;
    Для каждого текСтрока из Спецификации Цикл
        ОбластьСтрока.Параметры.Нпп = Нпп;
        ОбластьСтрока.Параметры.Наименование = текСтрока.Номенклатура.Наименование +?(ЗначениеЗаполнено(текСтрока.Номенклатура.Артикул),"(артикул "+текСтрока.Номенклатура.Артикул+")","");
        ОбластьСтрока.Параметры.НаименованиеРасшифровка = текСтрока.Номенклатура;        
        ОбластьСтрока.Параметры.КодМодели = текСтрока.Номенклатура.КодМодели;
        
        тмпСтрока="";
        Для каждого текСпецСтрока ИЗ текСтрока.Спецификация.ИсходныеКомплектующие Цикл
            Если НЕ текСпецСтрока.фБрифЛист Тогда Продолжить; КонецЕсли;
            
            тмпСтрока = тмпСтрока + СокрЛП(текСпецСтрока.Номенклатура.НаименованиеПолное)
                                  +" "+текСпецСтрока.ХарактеристикаНоменклатуры+" "
                                  +?(ЗначениеЗаполнено(текСпецСтрока.Комментарий),"( "+текСпецСтрока.Комментарий+"); ","; ");
        КонецЦикла;
        ОбластьСтрока.Параметры.Спецификация = тмпСтрока;
        
        ОбластьСтрока.Область(1,,1).АвтоВысотаСтроки=Истина;
        
        Если НЕ текСтрока.Номенклатура.ОсновноеИзображение.Пустая() Тогда
            Если ВысотаСтроки>ОбластьСтрока.Область(1,,1).ВысотаСтроки Тогда
                 ОбластьСтрока.Область(1,,1).АвтоВысотаСтроки=Ложь;
                 ОбластьСтрока.Область(1,,1).ВысотаСтроки = ВысотаСтроки;
            КонецЕсли;
            
            ОбластьСтрока.Рисунки.Изображение.Картинка = текСтрока.Номенклатура.ОсновноеИзображение.Хранилище.Получить();
            Рисунок = ОбластьСтрока.Рисунки.Изображение;
            Рисунок.Верх = 1;
            //Рисунок.Лево = 1;
            Рисунок.Ширина = ФотоШирина;
            Рисунок.Высота = ФотоВысота;
            Рисунок.ГраницаСверху = 0;
            Рисунок.ГраницаСлева = 0;
            Рисунок.ГраницаСнизу = 0;
            Рисунок.ГраницаСправа = 0;
            Рисунок.РазмерКартинки = РазмерКартинки.Пропорционально;
        Иначе
            ОбластьСтрока.Рисунки.Изображение.Картинка = Новый Картинка;
        КонецЕсли;
        
        табДокумент.Вывести(ОбластьСтрока);
        текНоменклатура=текСтрока.Номенклатура;
        Нпп=Нпп+1;
    КонецЦикла;
    
    ОбластьДно.Параметры.ПечатьБирокИсполнитель1 = ПечатьБирокИсполнитель1.НаименованиеПолное;
    ОбластьДно.Параметры.ПечатьБирокИсполнитель2 = ПечатьБирокИсполнитель2.НаименованиеПолное;
    ОбластьДно.Параметры.ПечатьБирокИсполнитель3 = ПечатьБирокИсполнитель3.НаименованиеПолное;
    ОбластьДно.Параметры.Цена1 = ПолучитьЦенуПоКонтрагенту(ПечатьБирокИсполнитель1);
    ОбластьДно.Параметры.Цена2 = ПолучитьЦенуПоКонтрагенту(ПечатьБирокИсполнитель2);
    ОбластьДно.Параметры.Цена3 = ПолучитьЦенуПоКонтрагенту(ПечатьБирокИсполнитель3);
    
    ОбластьДно.Параметры.НанесениеПечатьИсполнитель1 = НанесениеПечатьИсполнитель1.НаименованиеПолное;
    ОбластьДно.Параметры.УслугаПечатиБиркиИсполнитель1=УслугаПечатиБиркиИсполнитель1.НаименованиеПолное;
    ОбластьДно.Параметры.УслугаПечатиБиркиИсполнитель2=УслугаПечатиБиркиИсполнитель2.НаименованиеПолное;
    ОбластьДно.Параметры.УслугаПечатиБиркиИсполнитель3=УслугаПечатиБиркиИсполнитель3.НаименованиеПолное;
    ОбластьДно.Параметры.ПошивИсполнитель = ДокументОснование.Контрагент.НаименованиеПолное;
    табДокумент.Вывести(ОбластьДно);
    
    УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект, ЭтотОбъект.Метаданные().Представление()), ЭтотОбъект);
КонецПроцедуры