Не работает "разобрать по копиям" 1С 8.2 + win 2008
Доброго дня. Проблема следующая:
У одного из пользователей 1С не работает функция "разобрать по копиям", печатает что с галкой, что без нее сначала первую страницу, затем вторую и так далее.
дано: УТ 10.3.18.3 1с 8.2.15.310 win2008 SP2
Принтер HP LaaserJet
У всех пользователей кроме одного, данный принтер без проблем разбивает документ на копии при печати. Драйвер принтера пробовали перестанавливать, пробовали отправлять на другой принтер, все то же самое. У всех работает, у одного не работает. В какую сторону советуете капать?
У одного из пользователей 1С не работает функция "разобрать по копиям", печатает что с галкой, что без нее сначала первую страницу, затем вторую и так далее.
дано: УТ 10.3.18.3 1с 8.2.15.310 win2008 SP2
Принтер HP LaaserJet
У всех пользователей кроме одного, данный принтер без проблем разбивает документ на копии при печати. Драйвер принтера пробовали перестанавливать, пробовали отправлять на другой принтер, все то же самое. У всех работает, у одного не работает. В какую сторону советуете капать?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Проблема решилась довольна просто.
заходим в предварительный просмотр, далее в настройки печати, меняем отступы от краев и печатаем документ. В этот момент, настройки пользователя перезаписываются и печатают в стандартном режиме. При след. печати отступы можно вернуть, как и были раньше.
заходим в предварительный просмотр, далее в настройки печати, меняем отступы от краев и печатаем документ. В этот момент, настройки пользователя перезаписываются и печатают в стандартном режиме. При след. печати отступы можно вернуть, как и были раньше.
(4) РЕШЕНО!
В моем случае проблема определилась непосредственно в профиле пользователя 1С, причем глюк не в кеше, а где-то хранится в базе 1С, так как с того-же рабочего места зайдя под другим пользователем 1С печать выполняется корректно с разбором по копиям, а под глючным пользователем разбор не работает хоть убейся, не помогает ни смена драйверов принтера, ни редактирование настроек печати. (программист 1С обещал посмотреть со своей стороны в чем разница между профилями).
(4)
В моем случае проблема определилась непосредственно в профиле пользователя 1С, причем глюк не в кеше, а где-то хранится в базе 1С, так как с того-же рабочего места зайдя под другим пользователем 1С печать выполняется корректно с разбором по копиям, а под глючным пользователем разбор не работает хоть убейся, не помогает ни смена драйверов принтера, ни редактирование настроек печати. (программист 1С обещал посмотреть со своей стороны в чем разница между профилями).
(4)
Ну что, есть еще пользователи 7.7? ))
Тоже столкнулся с тем, что при печати с 1С 7.7 в 64-битных ОС не разбирает по копиям.
Оказалось всё дело в окошке параметров печати 1С 7.7. Оно, судя по всему, что-то сбивает. Если отправлять на печать кодом, без вызова этого окна, то по копиям разбирает.
Во вложении обработка для проверки.
Всех с наступающим Новым Годом!
Тоже столкнулся с тем, что при печати с 1С 7.7 в 64-битных ОС не разбирает по копиям.
Оказалось всё дело в окошке параметров печати 1С 7.7. Оно, судя по всему, что-то сбивает. Если отправлять на печать кодом, без вызова этого окна, то по копиям разбирает.
Во вложении обработка для проверки.
Всех с наступающим Новым Годом!
Прикрепленные файлы:
Печать_РазборПоКопиям.ert
(13)
Есть))
Разрядность ни при чем. Проблема начиная с Win7 и выше.
Окошко печати устанавливает параметр "Collate" в 0. Но даже если и отправлять на печать по ктрл+шифт+Р, то все равно двусторонняя печать работает не правильно с нечетным количеством страниц - вторая копия наезжает на первую.
Для двусторонней печати сделал заглушку с Yoksel для печатной формы УПД. При открытии выдается запрос количества копий. При нажатии ОК указанное количество копий отправляется на принтер выбранный в параметрах страницы. Если принтер не найден, то улетит на принтер по умолчанию.
Клюшки знаю очень плохо, так что камнями не кидать)))
ПриОткрытии заменил на
Ну что, есть еще пользователи 7.7? ))
Есть))
Тоже столкнулся с тем, что при печати с 1С 7.7 в 64-битных ОС не разбирает по копиям.
Разрядность ни при чем. Проблема начиная с Win7 и выше.
Оказалось всё дело в окошке параметров печати 1С 7.7. Оно, судя по всему, что-то сбивает. Если отправлять на печать кодом, без вызова этого окна, то по копиям разбирает.
Окошко печати устанавливает параметр "Collate" в 0. Но даже если и отправлять на печать по ктрл+шифт+Р, то все равно двусторонняя печать работает не правильно с нечетным количеством страниц - вторая копия наезжает на первую.
Для двусторонней печати сделал заглушку с Yoksel для печатной формы УПД. При открытии выдается запрос количества копий. При нажатии ОК указанное количество копий отправляется на принтер выбранный в параметрах страницы. Если принтер не найден, то улетит на принтер по умолчанию.
Клюшки знаю очень плохо, так что камнями не кидать)))
ПриОткрытии заменил на
Функция ИмяТекущейИБ()
попытка
// Создаем объект Microsoft Script Control.
олеСкрипт = создатьобъект("MSScriptControl.ScriptControl");
// Устанавливаем в качестве языка для выполнения сценариев Visual Basic
олеСкрипт.Language = "VBScript";
// Формируем код на VB.
// В принципе он все делает. Создает объект
// Windows Management Instrumentation и уже через него
// получает значение ключи реестра преобразовывая данные
// в строку.
стрКод =
"function strGetListBase()
| const RootKey = &H80000001
| set Reg = GetObject(""winmgmts:{impersonationLevel=impersonate}!\\."" &_
| ""\root\default:StdRegProv"")
| PathKey = ""Software\1C\1Cv7\7.7\Titles""
| Reg.EnumValues RootKey, PathKey, Arr
| Answer = ""{""""СписокЗначений"""",{""
| for x = LBound(Arr) to UBound(Arr)
| call Reg.GetStringValue(RootKey, PathKey, Arr(x), Value)
| Answer = Answer & ""{{""""Строка"""","""""" &_
| Arr(x) & """"""},"""""" & replace(Value, """""""", """""""""""") &_
| """""",""""0""""}""
| if x <> UBound(Arr) then Answer = Answer & "",""
| next
| Answer = Answer & ""}}""
| strGetListBase = Answer
|end function";
// Добавляем наш код.
олеСкрипт.AddCode(стрКод);
// Вызываем его на выполнение, и пытаемся из полученного результата
// сформировать список значений.
сз = значениеизстроки(олеСкрипт.Run("strGetListBase"));
// Отсортируем список по Представлению баз
сз.СортироватьПоПредставлению();
исключение
// Если произошла ошибка. Значит вернем "Error".
Возврат "Error";
конецпопытки;
//возврат Ответ;
предст = "";
для к=1 по сз.РазмерСписка() цикл
зн=сз.ПолучитьЗначение(к, предст);
Если зн = КаталогИБ() Тогда
Возврат предст;
КонецЕсли;
конецЦикла;
Возврат "Error";
КонецФункции //ИмяТекущейИБ
//////////////////////////////////////////////////////////// ////////////////////
// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ
//
//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()
Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
Докум = Форма.Параметр.Получить("Контекст");
Устройство = Форма.Параметр.Получить("Устройство");
КолвоКопий = Форма.Параметр.Получить("КоличествоКопий");
Если Докум.Выбран() = 0 Тогда
Предупреждение("Не записан документ!", 60);
Статусвозврата(0);
Возврат;
Иначе
Докум = Докум.ТекущийДокумент();
КонецЕсли;
Таб=0;
ПечатьУПД(Докум, Устройство, КолвоКопий, Таб);
Статусвозврата(0);
//Возврат;
КонецЕсли;
КолвоКопий1 = 2;
Если ВвестиЗначение(КолвоКопий1, "Отправить на печать? Копий:", "Число", 2, 0) = 1 Тогда
Если ЗагрузитьВнешнююКомпоненту ("SpreadSheet.dll")=0 Тогда
Сообщить("SpreadSheet.dll не загружена.");
Возврат;
КонецЕсли;
Попытка
WSHShell = CreateObject("WScript.Shell");
ИмяПринтера = WSHShell.RegRead("HKCU\SOFTWARE\1C\1Cv7\7.7\" + ИмяТекущейИБ() + "\V7\"+ ИмяПользователя() +"\Moxel\ОпцииПечатиУПД\DefaultPrinter");
Исключение
ИмяПринтера = "";
КонецПопытки;
ТабДок = СоздатьОбъект ("ТабличныйДокумент");
ТабДок.ЗагрузитьИзТаблицы(Таб);
ПараметрыПечати=ТабДок.ПараметрыПечати;
ПараметрыПечати.АвтоМасштаб = 1;
ПараметрыПечати.Ориентация = 2;
ПараметрыПечати.ПолеСверху = 100;
ПараметрыПечати.ПолеСнизу = 100;
ПараметрыПечати.ПолеСлева = 100;
ПараметрыПечати.ПолеСправа = 100;
ПараметрыПечати.КоличествоКопий = КолвоКопий1;
ПараметрыПечати.ИмяПринтера = ИмяПринтера;
ПараметрыПечати.РежимПечатиКопий=1;
ПараметрыПечати.Дуплекс = 1;
ТабДок.Напечатать("ТестовыйДокумент");
КонецЕсли;
КонецПроцедуры // ПриОткрытии()
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот