1) После замены принтера на клиентской машине 1С пытается печатать на старый принтер.
2) Отсутствует предварительный просмотр при печати.
3) Не работает печать без предварительного просмотра (пакетная печать документов).
4) В некоторых формах печатает, в некоторых нет.
В результате попыток решения проблемы выяснилось, что все вышеперечисленные проблемы возникают из-за того, что 1С хранит настройки печати в реестре, а именно:
HKEY_CURRENT_USERSoftware1C1Cv77.7НазваниеБазыV7ИмяПользователяMoxel
Обычно проблема решается администратором, который заходит в реестр и удаляет эту ветку реестра, но если пользователей много, а в моем случае пользователей очень много, это не вариант. Решил автоматизировать процесс и написал код, который поставил в процедуру ПриНачалеРаботыСистемы() в глобальном модуле конфигурации (если используется несколько конфигураций, как в моем случае, то это необходимо сделать для каждой конфигурации).
Код внутри тестовой обработки, функцию из обработки необходимо разместить в глобальном модуле в произвольном месте, текст из процедуры сформировать разместить в процедуре ПриНачалеРаботыСистемы().
Обработка при нажатии кнопки Сформировать с помощью функции «ПолучитьТекущуюБазу(КаталогИБ())», которая возвращает имя БД, удаляет из HKEY_CURRENT_USERSoftware1C1Cv77.7НазваниеБазыV7ИмяПользователяMoxel настройки принтера по умолчанию, по сути можно очистить всю ветку MOXEL, если необходимо выполнить сброс всех настроек печати для данного пользователя данной БД.
А опции печати (направление, масштаб) на месте остаются?
Вообще для 7.7 имя принтера должно быть не более 8 символов и не содержать пробелов.
И тогда все будет работать как надо.
(1) mszsuz, да опции печати остаются как прежде если удалять только раздел default если удалить все в разделе moxel то удаляются и настройки печати, количество символов имени принтера не всегда удается контролировать так как клиентов много, принтера меняются (филиалы находятся в разных регионах и обслуживаются разными компаниями и требовать от каждого длину имени принтера не вижу смысла)
Автору спасибо, помогло! В моем случае было такое: в 1С-ке при нажатии кнопки «Печать» отображался нужный сетевой принтер, при нажатии «ОК» печать шла на другой сетевой принтер (его ранее удалили из настроек пользователя).
Сначала грешил на ветку реестра HKEY_CRRENT_USERSoftwareMicrosoftWindows NTDevice. Удалял старые, ненужные принтеры, но не помогало. Удаленные записи появлялись вновь. Потом прочитал вашу статью, посмотрел в HKEY_CURRENT_USERSoftware1C1Cv77.7НазваниеБазыV7ИмяПользователяMoxel и действительно увидел те самые старые записи, которые дублировались в ветку Device, при запуске 1С. В общем удалять ничего не стал, просто подправил сетевые имена принтеров и все заработало. Еще раз спасибо за статью!