28 апреля, 2024

Имя принтера в табличном документе

В 1С восьмой версии, при формировании табличного документа, есть возможность программно указать имя принтера, на который будет отправлено задание для печати. Это удобно для случаев печати на специальные принтеры, например печать чека на чековый принтер, печать чеков на разные принтеры — на склад или на кухню, печать на принтер этикеток. Такое программное указание принтера не переопределяет принтер, используемый по умолчанию и если пользователь потом печатает отчет или другой документ, то печать отправляется на обычно используемый принтер.

Чтобы указать программно нужный принтер, необходимо в свойство табличного документа ИмяПринтера установить строковое имя, которое видно в панели управления, в списке принтеров, например:

ZDesigner TLS 2824

Но в случае работы через удаленный рабочий стол есть нюансы. При подключении пользователя, имя принтера, который сервер автоматически перенаправляет в сеанс принимает наименование, к которому добавлена строка примерно так «… (перенаправлено …)». Имя принтера теперь выглядит как

ZDesigner TLS 2824 (перенаправлено 62)

При этом если в коде программно указать такое имя, то оно сработает, но проблема в том, что при следующем входе на сервер число может измениться и будет уже 69 или что-то другое.

Выходом из такой ситуации может стать установка сетевого принтера на сервере, это нужно сделать сначала от имени администратора, а потом у пользователя в сеансе. Тогда в списке принтеров будет принтер с именем вроде такого:

ZDesigner TLS 2824 на KOMP2

Это имя не будет изменяться, но использовать его не получится. Для указания в свойствах документа, в случае с сетевым принтером, нужно использовать не его имя в системе, а его сетевой адрес. Для принтера в моем примере это будет

\\KOMP2\ZDesigner TLS 2824

В таком варианте задание на печать сработает без ошибок.