Доброго времени суток Уважаемые коллеги. Значит вопрос в следующем. Работаем на УТ 11.1.1.17. При распечатке Торг-12 если в накладной больше 18 позиций, печатается так: 18позиций выводиться на первом листе, 19 позиция на втором с итогом, а остальные на 3-ем. Изображение в прикрепленных файлах. При предварительном просмотре и последующей настройки вроде бы все настраивается, но это не сохраняется и печатается 3 листа вместо положенных двух.
---
Это проблема всех типовых конфигураций на управляемом интерфейсе. А связана она со следующим:
Дла разбивки на страницы естественно используется метод табличного документа "ПроверитьВывод" .который в ТИПОВЫХ работает на сервере. А для печати используется метод "Напечатать()" (или просто печать интерактивная) которое работает только на клиенте. (Понятно что разработчики типовых такими подробностями заморачиваться нужным не считают).
И тут возникает следующее:
Во-первых имя одного и того же принтера на сервере и клиента может быть разное, и в этом случае проверка вывода осуществится в контексте не того принтера на который на клиенте идет печать, а произвольно попавшегося на сервере (который соответственно имеет другие границы печати) и несколько миллиметров разницы и дает подвисшие строки.
Во-вторых даже если имя принтера одинакова, то проблема остается, так как могут быть разные версии драйвера и т.п.
Вышесказанное не значит что она возникнет всегда, но говорит о том, что она может возникнуть в любой момент. (обновилась винда - обновился драйвер - вот оно и вылезло). Ну типа как если ремонт делают таджики это не значит что завтра гарантированно будет короткое замыкание или трубу прорвет, но надо понимать что это может произойти в любой момент.
Соответственно для радикального решения надо или выполнять ПроверитьВывод на клиенте, или печать на сервере (но это не просто т.к. Напечатать в 8.2 на сервере не работает) или в печатную форму добавлять запас на возможную потерю этих миллиметров. (т.е. при "проверить вывод" добавить в список тестируемых областей область из пары строк табличного документа, которые реально потом печататься не будут.).
---
надо код смотреть. Так не скажешь. Выложи код формирования печатной формы.
---
IT_PROGRAMMIST, Не вопрос.
Функция СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати, КомплектыПечати = Неопределено) Экспорт

 УстановитьПривилегированныйРежим(Истина);

 ТабличныйДокумент = Новый ТабличныйДокумент;
 ТабличныйДокумент.ПолеСлева = 5;
 ТабличныйДокумент.ПолеСправа = 5;
 ТабличныйДокумент.РазмерКолонтитулаСверху = 0;
 ТабличныйДокумент.РазмерКолонтитулаСнизу = 0;
 ТабличныйДокумент.АвтоМасштаб = Истина;
 ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

 ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТОРГ12";

 НомерТипаДокумента = 0;

 Для Каждого СтруктураОбъектов Из СтруктураТипов Цикл

  НомерТипаДокумента = НомерТипаДокумента + 1;
  Если НомерТипаДокумента > 1 Тогда
   ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
  КонецЕсли;

  МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(СтруктураОбъектов.Ключ);

  ДанныеДляПечати = МенеджерОбъекта.ПолучитьДанныеДляПечатнойФормыТОРГ12(ПараметрыПечати, СтруктураОбъектов.Значение);

  ЗаполнитьТабличныйДокументТОРГ12(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати, ПараметрыПечати, КомплектыПечати);
 КонецЦикла;
 Возврат ТабличныйДокумент;

КонецФункции
---
Ruslan-Proff, забавный ты )))
у табличного документа сделай по нулям верхнее и нижнее поле, тогда поместится.
наши бухи тоже хотят, чтобы все на лист влезало,
однако разработчики печатных форм часто делают проверку вывода до того как заполнят области макета
Поэтому, если какое-нибудь наименование займет раздвинет строку, т.е. сделает её высоту больше,
то и получается така бяка.
---
_qqq, интересно где эти поля можно прописать. Я же выложил скриншот настройки.
---
Ruslan-Proff, если с нулевыми полями все равно не помещается, можно что-нибудь подсократить.
если печатная форма не внешняя, то можно только пытаться редактировать табличный документ.
---
_qqq, Ну вы же сами понимаете что это не рационально редактировать каждый документ.
---
Макет-то посмотри. Чего там написано? Вангую, что проблема в "ПроверитьВывод"
---
Тогда попробуйте найти или создать хорошую ВПФ.
---
_qqq, Если бы умел создал бы. А вот найти не могу. Мож кто поделиться.
---
параметры печати настраиваются и сохраняются на вкладке администрирование -> Макеты печатных форм. После этого они будут печататься с нужными параметрами. включая выбор принтеров и т.д. Сам одно время мучался пока случайно не натолкнутся
---
Уважаемый mesfet. Как я понимаю нужно войти в макет торг-12 и поменять параметры печати???
---
аха
---
mesfet, Попробую. но как то сомневаюсь. У Вас тоже самое было???
---
да. Постоянно сбивались настройки печати. Не в торг - 12 но не суть. Потом случайно залез в макеты и там сохранил параметры. После этого печать стала нормальной
---
Это проблема всех типовых конфигураций на управляемом интерфейсе. А связана она со следующим:
Дла разбивки на страницы естественно используется метод табличного документа "ПроверитьВывод" .который в ТИПОВЫХ работает на сервере. А для печати используется метод "Напечатать()" (или просто печать интерактивная) которое работает только на клиенте. (Понятно что разработчики типовых такими подробностями заморачиваться нужным не считают).
И тут возникает следующее:
Во-первых имя одного и того же принтера на сервере и клиента может быть разное, и в этом случае проверка вывода осуществится в контексте не того принтера на который на клиенте идет печать, а произвольно попавшегося на сервере (который соответственно имеет другие границы печати) и несколько миллиметров разницы и дает подвисшие строки.
Во-вторых даже если имя принтера одинакова, то проблема остается, так как могут быть разные версии драйвера и т.п.
Вышесказанное не значит что она возникнет всегда, но говорит о том, что она может возникнуть в любой момент. (обновилась винда - обновился драйвер - вот оно и вылезло). Ну типа как если ремонт делают таджики это не значит что завтра гарантированно будет короткое замыкание или трубу прорвет, но надо понимать что это может произойти в любой момент.
Соответственно для радикального решения надо или выполнять ПроверитьВывод на клиенте, или печать на сервере (но это не просто т.к. Напечатать в 8.2 на сервере не работает) или в печатную форму добавлять запас на возможную потерю этих миллиметров. (т.е. при "проверить вывод" добавить в список тестируемых областей область из пары строк табличного документа, которые реально потом печататься не будут.).