Не работает "разобрать по копиям" 1С 8.2 + win 2008

1. Bud78 8 02.06.12 17:24 Сейчас в теме
Доброго дня. Проблема следующая:

У одного из пользователей 1С не работает функция "разобрать по копиям", печатает что с галкой, что без нее сначала первую страницу, затем вторую и так далее.

дано: УТ 10.3.18.3 1с 8.2.15.310 win2008 SP2

Принтер HP LaaserJet

У всех пользователей кроме одного, данный принтер без проблем разбивает документ на копии при печати. Драйвер принтера пробовали перестанавливать, пробовали отправлять на другой принтер, все то же самое. У всех работает, у одного не работает. В какую сторону советуете капать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. eoego1 02.06.12 22:59 Сейчас в теме
Если пользователь работает в терминальном режиме попробуйте удалить профиль этого пользователя и дать ему снова войти, профиль создастся новый и все глюки исчезнут, бывает помогает.
3. alexstav 15 18.07.12 09:41 Сейчас в теме
Такая же проблема в 1С Торговля + Склад 7.7, в интернете нашел много таких вопросов а ответов нет
4. Bud78 8 18.07.12 10:07 Сейчас в теме
Проблема решилась довольна просто.
заходим в предварительный просмотр, далее в настройки печати, меняем отступы от краев и печатаем документ. В этот момент, настройки пользователя перезаписываются и печатают в стандартном режиме. При след. печати отступы можно вернуть, как и были раньше.
gayann; tda; +2 Ответить
14. o.mordovenko 28.02.18 17:21 Сейчас в теме
(4) РЕШЕНО!
В моем случае проблема определилась непосредственно в профиле пользователя 1С, причем глюк не в кеше, а где-то хранится в базе 1С, так как с того-же рабочего места зайдя под другим пользователем 1С печать выполняется корректно с разбором по копиям, а под глючным пользователем разбор не работает хоть убейся, не помогает ни смена драйверов принтера, ни редактирование настроек печати. (программист 1С обещал посмотреть со своей стороны в чем разница между профилями).
(4)
5. sp1406 1 22.01.13 09:54 Сейчас в теме
А в 7.7 проблему решили?
6. vithak 22.01.13 10:59 Сейчас в теме
для 7.7 подобное лечил удалением ветки реестра с названием "moxel". в этой ветке хранятся все настройки печати пользователя.
7. adamych8 9 15.03.13 12:05 Сейчас в теме
В 7.7 на 2008х64 эта проблема помоему вообще не лечится, я уже полинтернета прочитал, решений не нашел.
8. adamych8 9 15.03.13 12:06 Сейчас в теме
С moxel кстати сегодня попробую, потом отпишусь.
9. gayann 21.03.13 12:17 Сейчас в теме
(8) adamych8, Как успехи, получилось ?
10. adamych8 9 21.03.13 12:26 Сейчас в теме
Нет, не работает на 7.7 ((
11. nikanat 07.05.13 02:38 Сейчас в теме
Присоединяюсь к проблеме.. Помогите советом плз.. 7.7 + винда 2008 серв р2, в терминале..
12. nikanat 19.08.15 14:28 Сейчас в теме
неужели так и не решена проблема для 7.7 ???
arifulina; +1 Ответить
13. lokli 30.12.16 15:07 Сейчас в теме
Ну что, есть еще пользователи 7.7? ))
Тоже столкнулся с тем, что при печати с 1С 7.7 в 64-битных ОС не разбирает по копиям.
Оказалось всё дело в окошке параметров печати 1С 7.7. Оно, судя по всему, что-то сбивает. Если отправлять на печать кодом, без вызова этого окна, то по копиям разбирает.
Во вложении обработка для проверки.
Всех с наступающим Новым Годом!
Прикрепленные файлы:
Печать_РазборПоКопиям.ert
15. EVKash 16 13.01.21 15:15 Сейчас в теме
(13)
Ну что, есть еще пользователи 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;
	
		ТабДок.Напечатать("ТестовыйДокумент");
		
	КонецЕсли;
	
КонецПроцедуры // ПриОткрытии()
Показать
Оставьте свое сообщение

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