Часто в работе администратора или опытного пользователя 1С возникает ситуация, когда при попытке вывести печатную форму на принтер система ведет себя странно: количество копий самопроизвольно сбрасывается в «0», а нажатие кнопки «Печать» не приводит ни к отправке документа в очередь, ни к каким-либо ошибкам. При этом под другими учетными записями та же самая операция проходит успешно.
Такая проблема обычно сигнализирует о том, что платформа 1С «запомнила» некорректные параметры устройства вывода (принтера) именно для текущего пользователя. Это может произойти из-за смены принтера в системе, изменения его сетевого пути или некорректного сохранения пользовательских настроек в ХранилищеСистемныхНастроек. Рассмотрим по шагам, как выявить и устранить эту неисправность.
Первым делом попробуем воспользоваться штатными средствами конфигурации. В современных типовых конфигурациях (таких как «Розница», «Управление торговлей», «Бухгалтерия») разработчики предусмотрели механизмы сброса настроек пользователей.
После этой процедуры 1С принудительно перечитает настройки принтера при следующей попытке вывода на печать, что чаще всего решает проблему.
Если штатные пункты меню отсутствуют или очистка не принесла результата, мы можем воспользоваться встроенным языком программирования 1С. Этот метод позволяет точечно удалить поврежденные настройки печати конкретного пользователя из ХранилищеСистемныхНастроек.
Для этого можно создать внешнюю обработку и выполнить следующий фрагмент кода:
Процедура УдалитьВсеНастройкиПечатиТекущегоПользователя()
ИмяПользователяИБ = ПользователиИнформационнойБазы.ТекущийПользователь.Имя;
МассивНастроекНаУдаление = Новый Массив;
// Получаем выборку всех настроек текущего пользователя
Настройки = ХранилищеСистемныхНастроек.Выбрать(Новый Структура("Пользователь", ИмяПользователяИБ));
Пока Настройки.Следующий() Цикл
// Ищем записи, относящиеся к печати табличного документа
Если СтрНачинаетсяС(Настройки.КлючОбъекта, "Общее/НастройкиПечатиТабличногоДокумента") Тогда
МассивНастроекНаУдаление.Добавить(Настройки.КлючОбъекта);
КонецЕсли;
КонецЦикла;
// Удаляем найденные записи из хранилища
Для Каждого КлючНастройки Из МассивНастроекНаУдаление Цикл
ХранилищеСистемныхНастроек.Удалить(КлючНастройки, Неопределено, ИмяПользователяИБ);
КонецЦикла;
КонецПроцедуры
После выполнения этого кода все сохраненные параметры принтера для данного пользователя будут сброшены, и система начнет использовать параметры по умолчанию (системный принтер Windows).
Если вы не хотите сбрасывать все настройки «в ноль», можно воспользоваться методом копирования параметров. В 1С существует функционал переноса персональных настроек между пользователями. Это помогает, когда у одного пользователя печать настроена корректно, а у другого — нет.
Рассмотрим порядок действий:
Этот метод эффективен, так как он фактически «затирает» поврежденную ссылку на неактуальный принтер, заменяя её на рабочий профиль.
Если программная очистка настроек внутри 1С не помогает, стоит проанализировать системное окружение пользователя:
HKEY_CURRENT_USER\Printers.ХранилищеСистемныхНастроек, описанный выше, является самым надежным решением.Важное примечание: Всегда проверяйте, не установлены ли в персональных настройках пользователя принудительные параметры печати, которые могут конфликтовать с драйвером конкретного принтера (например, формат бумаги, не поддерживаемый устройством).