Решение проблем с печатью, предварительным просмотром печати, пакетной печатью 1С: 7.7 в терминале

Периодически сталкивался со следующими проблемами при печати в 1С: 7.7 работающей под терминалом:
1) После замены принтера на клиентской машине 1С пытается печатать на старый принтер.
2) Отсутствует предварительный просмотр при печати.
3) Не работает печать без предварительного просмотра (пакетная печать документов).
4) В некоторых формах печатает, в некоторых нет.

В результате попыток решения проблемы выяснилось, что все вышеперечисленные проблемы возникают из-за того, что 1С хранит настройки печати в реестре, а именно:

HKEY_CURRENT_USERSoftware1C1Cv77.7НазваниеБазыV7ИмяПользователяMoxel

Обычно проблема решается администратором, который заходит в реестр и удаляет эту ветку реестра, но если пользователей много, а в моем случае пользователей очень много, это не вариант. Решил автоматизировать процесс и написал код, который поставил в процедуру ПриНачалеРаботыСистемы() в глобальном модуле конфигурации (если используется несколько конфигураций, как в моем случае, то это необходимо сделать для каждой конфигурации).

Код внутри тестовой обработки, функцию из обработки необходимо разместить в глобальном модуле в произвольном месте, текст из процедуры сформировать разместить в процедуре ПриНачалеРаботыСистемы().

Обработка при нажатии кнопки Сформировать с помощью функции «ПолучитьТекущуюБазу(КаталогИБ())», которая возвращает имя БД, удаляет из HKEY_CURRENT_USERSoftware1C1Cv77.7НазваниеБазыV7ИмяПользователяMoxel настройки принтера по умолчанию, по сути можно очистить всю ветку MOXEL, если необходимо выполнить сброс всех настроек печати для данного пользователя данной БД.

3 Comments

  1. mszsuz

    А опции печати (направление, масштаб) на месте остаются?

    Вообще для 7.7 имя принтера должно быть не более 8 символов и не содержать пробелов.

    И тогда все будет работать как надо.

    Reply
  2. tux

    (1) mszsuz, да опции печати остаются как прежде если удалять только раздел default если удалить все в разделе moxel то удаляются и настройки печати, количество символов имени принтера не всегда удается контролировать так как клиентов много, принтера меняются (филиалы находятся в разных регионах и обслуживаются разными компаниями и требовать от каждого длину имени принтера не вижу смысла)

    Reply
  3. Vladimir87

    Автору спасибо, помогло! В моем случае было такое: в 1С-ке при нажатии кнопки «Печать» отображался нужный сетевой принтер, при нажатии «ОК» печать шла на другой сетевой принтер (его ранее удалили из настроек пользователя).

    Сначала грешил на ветку реестра HKEY_CRRENT_USERSoftwareMicrosoftWindows NTDevice. Удалял старые, ненужные принтеры, но не помогало. Удаленные записи появлялись вновь. Потом прочитал вашу статью, посмотрел в HKEY_CURRENT_USERSoftware1C1Cv77.7НазваниеБазыV7ИмяПользователяMoxel и действительно увидел те самые старые записи, которые дублировались в ветку Device, при запуске 1С. В общем удалять ничего не стал, просто подправил сетевые имена принтеров и все заработало. Еще раз спасибо за статью!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *