Ошибка хитрого метода ПроверитьВывод() табличного документа
Столкнулся с такой ошибкой, при выводе информации на печатную форму, платформа выдает следующее сообщение:
Ошибка при вызове метода контекста (ПроверитьВывод)...
ПроверитьВывод() - это метод табличного документа, который проверяет, умещаются ли переданные табличные документы на страницу при печати. В примечании у этого метода разработчики платформы 1С сразу написали, что при возникновении проблем с получением информации о текущем принтере (например, в системе не установлено ни одного принтера), будет вызвано исключение.
Проверил установленные принтеры, все исправно и работает. Эмпирическим путем выяснил, что данная ошибка возникает только у конкретной печатной формы и только под одним пользователем.
Ошибка решилась следующими действиями (выполнять под пользователем, у которого возникла ошибка):
1) Создал пустой документ, что бы при формировании печатной формы не был задействован метод ПроверитьВывод(). Если же этот метод в любом случае вызывается, то придется его найти в конфигурации и закомментировать, или же поместить в конструкцию Попытка-Исключение-КонецПопытки.
2) Сформировал печатную форму.
3) Для текущей печатной формы открыл параметры страницы и установил правильные параметры.
Ошибка возникала из-за неправильных параметров страницы, которые платформа сохранила ранее при выводе на печать печатной формы, например: платформа сохранила в параметрах страницы принтер, который в дальнейшем удалили и установили новый. Параметры страницы печатной формы хранятся в свойстве табличного документа КлючПараметровПечати. Это свойство содержит ключ значения, в котором сохраняются параметры печати таблицы. Параметры печати, настроенные и сохраненные с данным ключом, впоследствии восстанавливаются при следующем показе таблицы.
Что бы данная ошибка не возникала из-за неправильных параметров страницы, свойство КлючПараметровПечати следует устанавливать не в начале процедуры вывода на печать, а в конце, так как при установке данного свойства параметры печати тут же восстанавливаются.
UPD 04/10/2015: Если устанавливать свойство КлючПараметровПечати в конце формирования табличного документа, то метод ПроверитьВывод будет использовать параметры печати установленные по-умолчанию, а не пользовательские. Что бы избежать данной ситуации, необходимо устанавливать свойство КлючПараметровСистемы в начале формирования табличного документа, а метод ПроверитьВывод поместить в конструкцию Попытка-Исключение-КонецПопытки.
Ошибка при вызове метода контекста (ПроверитьВывод)...
ПроверитьВывод() - это метод табличного документа, который проверяет, умещаются ли переданные табличные документы на страницу при печати. В примечании у этого метода разработчики платформы 1С сразу написали, что при возникновении проблем с получением информации о текущем принтере (например, в системе не установлено ни одного принтера), будет вызвано исключение.
Проверил установленные принтеры, все исправно и работает. Эмпирическим путем выяснил, что данная ошибка возникает только у конкретной печатной формы и только под одним пользователем.
Ошибка решилась следующими действиями (выполнять под пользователем, у которого возникла ошибка):
1) Создал пустой документ, что бы при формировании печатной формы не был задействован метод ПроверитьВывод(). Если же этот метод в любом случае вызывается, то придется его найти в конфигурации и закомментировать, или же поместить в конструкцию Попытка-Исключение-КонецПопытки.
1. Помещение ПроверитьВывод в попытку |
2) Сформировал печатную форму.
2. Пустая печатная форма (кол-во товаров = 0) |
3. Параметры страницы |
Что бы данная ошибка не возникала из-за неправильных параметров страницы, свойство КлючПараметровПечати следует устанавливать не в начале процедуры вывода на печать, а в конце, так как при установке данного свойства параметры печати тут же восстанавливаются.
UPD 04/10/2015: Если устанавливать свойство КлючПараметровПечати в конце формирования табличного документа, то метод ПроверитьВывод будет использовать параметры печати установленные по-умолчанию, а не пользовательские. Что бы избежать данной ситуации, необходимо устанавливать свойство КлючПараметровСистемы в начале формирования табличного документа, а метод ПроверитьВывод поместить в конструкцию Попытка-Исключение-КонецПопытки.
Спасибо большое. Нам помогло Ваше решение.
ОтветитьУдалитьмда. надо было на програмиста учитса))))))) у меня такая проблема тока я не разбираюс в програмированиии. купил печатную форму с накладная с долгом в подвале. выдает ошибку. незнаю что делать
ОтветитьУдалитьесли бы знал как открыть код тогда я бы как ни как докопалса бы с методом проб и ошибок. а так этот конструктор говорят нужно купить
ОтветитьУдалитьЕсли внешняя обработка/отчет не защищена паролем, то можно внести изменения в ее код. Запускайте платформу в режиме конфигуратора и открывайте свою печатную форму.
УдалитьКлюч параметров печати задает размер страницы. Если ключ параметров печати будет установлен в конце процедуры, а перед этим будет выполняться деление на страницы при помощи ПроверитьВывод, то может внезапно оказаться, что из-за размеров полей или колонтитулов документ не умещается на странице. В таком случае часть каждого листа, сформированного программно, будет переноситься на новый лист, сформированный платформой. Так что это скорее вредный совет, чем полезный.
ОтветитьУдалитьПопытка-Исключение тоже не вариант, если возникнет Исключение, то блок не выведется в табличный документ... Выхода нет?!
ОтветитьУдалитьКак сделать чтоб метод ПроверитьВывод() корректно делил если в ящейках текста в свойстве Резмещение текста поставить "Перенос"?
ОтветитьУдалить