Непослушный автомасштаб во внешней печатной форме

Клиент жалуется, что в печатной форме не выставляется автомасштаб.

Ну я подумал, что там проблема в том, что программист не дописал в конце кода установку Автомасштаб в Истина. И оценил в 500 рублей (10 минут).

В итоге там стояла установка этого поля.

Я подумал, что механизм печати БСП где-то сбрасывает признак табличного документа.

Но полазив, понял, что все же проблема в самой обработке.

Сделал для нее форму, чтобы поотлаживать:

С кодом:

&НаКлиенте
Процедура Печать(Команда)                                             
	ТД = ПечатьНаСервере();
	ТД.Показать();
КонецПроцедуры

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

В итоге действительно оказалось странное — после вывода строк Автомасштаб и поля сбрасываются, поэтому эти свойства табличного документа нужно устанавливать не в начале кода а в конце. Фича 1С, скорее ее недостаток.

Перенес код по полям и масштабу в конец процедуры формирования печатной формы:

Ну а я также извлек урок, что не бывает задач на 10 минут (500 рублей), минимум полчаса (1250 рублей).

Объем: 0.8 час. Среда: 3.0.128.15

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *