|
Бесконечный цикл метода табличного документа ПроверитьВывод() в клиент-серверном режиме | ☑ | ||
---|---|---|---|---|
0
Svetlana_Kazan
21.03.24
✎
11:39
|
Вдруг кто-то встречался с данной проблемой: В наличии стенд - платформа 1С:Предприятие 8.3 (8.3.13.1751)(s), клиент-серверный режим, в качестве сервера баз данных используется PostgreSQL, ОС «Astra Linux Special Edition» версии 1.6. При формировании табличного документа используется метод ПроверитьВывод(). В результате - бесконечный цикл. Клиентское приложение стоит на одном виртуальном сервере, сервер 1с:Предприятия на другом виртуальном сервере. Принтер установлен и на клиенте и на сервере. Но как будто сервер 1с:предприятия не видит(не может считать параметры страницы) принтера и от этого добавляет бесконечное количество строк после проверки вывода. Принтер установлен и доступ к нему для пользователей с любой мандатной меткой. Естественно на файловой базе подобной проблемы нет.
|
|||
1
Волшебник
21.03.24
✎
11:48
|
Ну показывайте Ваш бесконечный цикл...
|
|||
2
Garykom
гуру
21.03.24
✎
11:52
|
Надеюсь КлючПараметровПечати (или устаревшее ИмяПараметровПечати) в конце ставите, уже после цикла?
|
|||
3
Garykom
гуру
21.03.24
✎
11:53
|
Проблема старая linux и ПроверитьВывод()
Как минимум надо на сервере установленный CUPS и принтер по умолчанию, с правильным форматом бумаги |
|||
4
DJ Anthon
21.03.24
✎
12:00
|
У меня никогда проверить вывод не работал (особенно с сетевыми принтерами), то наврет, то зависнет. Поэтому я формировал два табдока, в один добавлял строку, если количество страниц увеличивалось, то во втором добавлял разделитель и его выводил. Но это давно было. Неужели ничего не изменилось с тех пор? )
|
|||
5
Волшебник
21.03.24
✎
12:24
|
(4) 👍 Интересное решение
|
|||
6
Garykom
гуру
21.03.24
✎
12:31
|
(4) Не уверен что прокатит
КоличествоСтраниц() так же серверный метод и должен по идее работать как и ПроверитьВывод() А надо решение для клиента фактически Имхо неправильно использовал ПроверитьВывод() вот и были проблемы |
|||
7
Svetlana_Kazan
21.03.24
✎
13:15
|
(1) ,
ТабДок.Вывести(ОбластьШапка); Пока ТабДок.ПроверитьВывод(ОбластьСтроки) Цикл ТабДок.Вывести(ОбластьСтроки); КонецЦикла; |
|||
8
Garykom
гуру
21.03.24
✎
13:20
|
(7) А перед этим параметры страницы установлены?
Какой формат бумаги, ориентация и т.д. |
|||
9
Злопчинский
21.03.24
✎
13:24
|
(5) этому решению тыщу лет в обед. еще на клюшках так делалось.
|
|||
10
Svetlana_Kazan
21.03.24
✎
13:42
|
(8),
ТабДок = Новый ТабличныйДокумент; ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТабДок.РазмерСтраницы = "A4"; |
|||
11
Волшебник
21.03.24
✎
20:47
|
(7) Может в источнике бумаги принтера выбран лоток с бесконечной лентой? Добавьте разумное число-ограничитель
МаксимумСтрокНаСтраницу = 30; ТабДок.Вывести(ОбластьШапка); ВыведеноСтрок = 0; Пока Выборка.Следующий() Цикл Если НЕ ТабДок.ПроверитьВывод(ОбластьСтроки) ИЛИ ВыведеноСтрок >= МаксимумСтрокНаСтраницу Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); ВыыведеноСтрок = 0; КонецЕсли; ТабДок.Вывести(ОбластьСтроки); ВыведеноСтрок = ВыведеноСтрок + 1; КонецЦикла; // по данным |
|||
12
Garykom
гуру
21.03.24
✎
13:48
|
(10) Прекрасно, главное (2) сразу после не делать
Сначала цикл с ПроверитьВывод() и уже затем можно |
|||
13
Garykom
гуру
21.03.24
✎
13:54
|
(10) Еще ЭкземпляровНаСтранице = 1 установить и ИмяПринтера
Для проверки можно РазмерСтраницы = "Custom" с заданием ВысотаСтраницы/ШиринаСтраницы Ну и не забыть про АвтоМасштаб - если начать выводить сильно широко то строк может стать дофига |
|||
14
Svetlana_Kazan
21.03.24
✎
14:48
|
(11) , решение получается с ПроверитьВывод() вообще не связано. Отрабатывает ВыведеноСтрок >= МаксимумСтрокНаСтраницу. Просто подсчет строк не подходит, так как имеется перенос строк и точно не подсчитать количество выводимых строк.
|
|||
15
Svetlana_Kazan
21.03.24
✎
14:49
|
(13) , не помогло.
|
|||
16
Волшебник
21.03.24
✎
14:49
|
(14) по крайней мере нет бесконечного цикла, программа работает
|
|||
17
Svetlana_Kazan
21.03.24
✎
14:50
|
(16) , но моя задача не решается. Так как если есть перенос, то строки все равно переносятся на следующую страницу.
|
|||
18
Волшебник
21.03.24
✎
14:52
|
(17) Уменьшите МаксимумСтрокНаСтраницу, чтобы снять срочность по задаче. Затем примените пункт (4). Параллельно пытайте ПроверитьВывод()
|
|||
19
Garykom
гуру
21.03.24
✎
15:01
|
Может начать с "8.3.13.1751" ?
|
|||
20
Svetlana_Kazan
21.03.24
✎
15:08
|
(19) , Вы считаете, что проблема именно в платформе может быть?
|
|||
21
Волшебник
21.03.24
✎
15:17
|
(19) там спецрелиз, защищённый, для хранения гос.тайны
|
|||
22
Волшебник
21.03.24
✎
20:48
|
(14) переменная ВыведеноСтрок содержит истинное количество выведенных строк с данными, а не занятое количество строк печатной формы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |