Печатная форма Торг-12

1. Ruslan-Proff 3 27.08.13 14:25 Сейчас в теме
Доброго времени суток Уважаемые коллеги. Значит вопрос в следующем. Работаем на УТ 11.1.1.17. При распечатке Торг-12 если в накладной больше 18 позиций, печатается так: 18позиций выводиться на первом листе, 19 позиция на втором с итогом, а остальные на 3-ем. Изображение в прикрепленных файлах. При предварительном просмотре и последующей настройки вроде бы все настраивается, но это не сохраняется и печатается 3 листа вместо положенных двух.
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
16. nafa 661 29.08.13 21:49 Сейчас в теме
Это проблема всех типовых конфигураций на управляемом интерфейсе. А связана она со следующим:
Дла разбивки на страницы естественно используется метод табличного документа "ПроверитьВывод" .который в ТИПОВЫХ работает на сервере. А для печати используется метод "Напечатать()" (или просто печать интерактивная) которое работает только на клиенте. (Понятно что разработчики типовых такими подробностями заморачиваться нужным не считают).
И тут возникает следующее:
Во-первых имя одного и того же принтера на сервере и клиента может быть разное, и в этом случае проверка вывода осуществится в контексте не того принтера на который на клиенте идет печать, а произвольно попавшегося на сервере (который соответственно имеет другие границы печати) и несколько миллиметров разницы и дает подвисшие строки.
Во-вторых даже если имя принтера одинакова, то проблема остается, так как могут быть разные версии драйвера и т.п.
Вышесказанное не значит что она возникнет всегда, но говорит о том, что она может возникнуть в любой момент. (обновилась винда - обновился драйвер - вот оно и вылезло). Ну типа как если ремонт делают таджики это не значит что завтра гарантированно будет короткое замыкание или трубу прорвет, но надо понимать что это может произойти в любой момент.
Соответственно для радикального решения надо или выполнять ПроверитьВывод на клиенте, или печать на сервере (но это не просто т.к. Напечатать в 8.2 на сервере не работает) или в печатную форму добавлять запас на возможную потерю этих миллиметров. (т.е. при "проверить вывод" добавить в список тестируемых областей область из пары строк табличного документа, которые реально потом печататься не будут.).
R2D2; NataLisa; xomyag; motorkuzbassa.it; +4 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. IT_PROGRAMMIST 118 27.08.13 14:50 Сейчас в теме
(1)надо код смотреть. Так не скажешь. Выложи код формирования печатной формы.
4. Ruslan-Proff 3 27.08.13 14:55 Сейчас в теме
(2) IT_PROGRAMMIST, Не вопрос.
Функция СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати, КомплектыПечати = Неопределено) Экспорт

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

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

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

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

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

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

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

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

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

КонецФункции
5. m_gin 46 27.08.13 16:11 Сейчас в теме
(4) Ruslan-Proff, забавный ты )))
у табличного документа сделай по нулям верхнее и нижнее поле, тогда поместится.
наши бухи тоже хотят, чтобы все на лист влезало,
однако разработчики печатных форм часто делают проверку вывода до того как заполнят области макета
Поэтому, если какое-нибудь наименование займет раздвинет строку, т.е. сделает её высоту больше,
то и получается така бяка.
6. Ruslan-Proff 3 27.08.13 16:23 Сейчас в теме
(5) _qqq, интересно где эти поля можно прописать. Я же выложил скриншот настройки.
7. m_gin 46 27.08.13 16:27 Сейчас в теме
(6) Ruslan-Proff, если с нулевыми полями все равно не помещается, можно что-нибудь подсократить.
если печатная форма не внешняя, то можно только пытаться редактировать табличный документ.
8. Ruslan-Proff 3 27.08.13 16:32 Сейчас в теме
(7) _qqq, Ну вы же сами понимаете что это не рационально редактировать каждый документ.
3. Lehha 7 27.08.13 14:50 Сейчас в теме
Макет-то посмотри. Чего там написано? Вангую, что проблема в "ПроверитьВывод"
9. m_gin 46 27.08.13 16:38 Сейчас в теме
Тогда попробуйте найти или создать хорошую ВПФ.
10. Ruslan-Proff 3 27.08.13 16:59 Сейчас в теме
(9) _qqq, Если бы умел создал бы. А вот найти не могу. Мож кто поделиться.
11. mesfet 27.08.13 17:06 Сейчас в теме
параметры печати настраиваются и сохраняются на вкладке администрирование -> Макеты печатных форм. После этого они будут печататься с нужными параметрами. включая выбор принтеров и т.д. Сам одно время мучался пока случайно не натолкнутся
12. Ruslan-Proff 3 27.08.13 17:16 Сейчас в теме
(11)Уважаемый mesfet. Как я понимаю нужно войти в макет торг-12 и поменять параметры печати???
13. mesfet 27.08.13 17:17 Сейчас в теме
14. Ruslan-Proff 3 27.08.13 17:23 Сейчас в теме
(13) mesfet, Попробую. но как то сомневаюсь. У Вас тоже самое было???
15. mesfet 27.08.13 17:24 Сейчас в теме
да. Постоянно сбивались настройки печати. Не в торг - 12 но не суть. Потом случайно залез в макеты и там сохранил параметры. После этого печать стала нормальной
16. nafa 661 29.08.13 21:49 Сейчас в теме
Это проблема всех типовых конфигураций на управляемом интерфейсе. А связана она со следующим:
Дла разбивки на страницы естественно используется метод табличного документа "ПроверитьВывод" .который в ТИПОВЫХ работает на сервере. А для печати используется метод "Напечатать()" (или просто печать интерактивная) которое работает только на клиенте. (Понятно что разработчики типовых такими подробностями заморачиваться нужным не считают).
И тут возникает следующее:
Во-первых имя одного и того же принтера на сервере и клиента может быть разное, и в этом случае проверка вывода осуществится в контексте не того принтера на который на клиенте идет печать, а произвольно попавшегося на сервере (который соответственно имеет другие границы печати) и несколько миллиметров разницы и дает подвисшие строки.
Во-вторых даже если имя принтера одинакова, то проблема остается, так как могут быть разные версии драйвера и т.п.
Вышесказанное не значит что она возникнет всегда, но говорит о том, что она может возникнуть в любой момент. (обновилась винда - обновился драйвер - вот оно и вылезло). Ну типа как если ремонт делают таджики это не значит что завтра гарантированно будет короткое замыкание или трубу прорвет, но надо понимать что это может произойти в любой момент.
Соответственно для радикального решения надо или выполнять ПроверитьВывод на клиенте, или печать на сервере (но это не просто т.к. Напечатать в 8.2 на сервере не работает) или в печатную форму добавлять запас на возможную потерю этих миллиметров. (т.е. при "проверить вывод" добавить в список тестируемых областей область из пары строк табличного документа, которые реально потом печататься не будут.).
R2D2; NataLisa; xomyag; motorkuzbassa.it; +4 Ответить
Оставьте свое сообщение

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