ОбластьПечати Табличного документа, Очередной глюк?

1. ger_kar 25.11.17 20:48 Сейчас в теме
Итак. Исходные данные:
Конфигурация Розница для Кыргызстана (Адаптированна версия Розницы 2.1.5.1)
Версия платформы 8.3.10.2561.
Варианты запуска: Режим совместимости - Версия 8.3.5, без режима совместимости.

Для печати этикеток на принтере этикеток, подключенном, как Windows принтер внес в конфигурацию небольшую доработку в модуль менеджера Обработки ПечатьЭтикетокИЦенников. А конкретно в Процедуру Печать.

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

Суть изменений в том, что-бы после получения шаблона из хранилища, в режиме печати этикеток, убрать штриховую линию обрамляющую область печати, так как при печати на принтере этикеток она сильно мешает. Обрамляющая линия убирается без проблем, но вместе с ней исчезают и все другие линии, которые имелись до этой операции в шаблоне. Причем если например убрать верхнюю линию, то убираются все верхние линии по всему шаблону, ну и так далее...
Документация в лице синтаксис помощника на это счет говорит следующее:
ГраницаСлева (LeftBorder)
Использование:

Чтение и запись.
Описание:

Тип: Линия.
Содержит рамку слева области.

Т.е. говориться именно об области, а не всех ячейках ее составляющих, но результат получается таковым, что граница применяется не к области, а ко всем ячейкам ее составляющим. Я думаю, что вряд ли это фича, скорее очередной глюк. И возникает вопрос, как этот глюк обходить?
Найденные решения
2. spacecraft 25.11.17 22:29 Сейчас в теме
(1) бывают не точности в СП.
Для обрамления области есть метод Обвести
ОбластьПечати = СтруктураШаблона.МакетЭтикетки.ОбластьПечати;
ОбластьПечати.Обвести(ЛинияОбрамленияШаблона, ЛинияОбрамленияШаблона, ЛинияОбрамленияШаблона, ЛинияОбрамленияШаблона);
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 25.11.17 22:29 Сейчас в теме
(1) бывают не точности в СП.
Для обрамления области есть метод Обвести
ОбластьПечати = СтруктураШаблона.МакетЭтикетки.ОбластьПечати;
ОбластьПечати.Обвести(ЛинияОбрамленияШаблона, ЛинияОбрамленияШаблона, ЛинияОбрамленияШаблона, ЛинияОбрамленияШаблона);
3. ger_kar 26.11.17 06:52 Сейчас в теме
(2)
ОбластьПечати = СтруктураШаблона.МакетЭтикетки.ОбластьПечати;
ОбластьПечати.Обвести(ЛинияОбрамленияШаблона, ЛинияОбрамленияШаблона, ЛинияОбрамленияШаблона, ЛинияОбрамленияШаблона);


Попробовал, предложенный метод и действительно он помог. Метод отрабатывает таким образом, что делает обводку только вокруг области, как единого целого. Я кстати про этот метод знал, так как пользуюсь им в графическом режиме, но почему то думал, что он является простой оберткой над свойствами ГраницаСверху, ГраницаСлева, ГраницаСправа, ГраницаСнизу. И его применение будет эквивалентно моему коду с отдельным присвоением свойств, но казалось, что это не так.
А не точности в документации и в частности в СП, мягко сказать уже задолбали :).
Спасибо за совет.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот