Тест прямой печати для Штрих-600 в управляемом приложении


Появилась необходимость настроить Штрих-600 на Windows-7. Драйверов под эту ОС не существует. Зато у принтера есть возможность печатать без драйвера Windows напрямую, используя ESC последовательности. Эта обработка была написана для тестирования данного метода.

Когда первый раз я столкнулся с этим принтером (около 2 лет назад), передо мной стояла задача печати заказов на кухню из конфигурации на платформе 7.7. Прочитав про метод ESC последовательностей и попробовав, я быстро переключился на стандартную печать с помощью макета. С прямой печатью тогда, видимо, не хватило опыта, а где-то элементарного внимания. Задачу реализовать удалось, хотя она оказалась невостребованной. Принтер попросту простаивал.

Недавно руководство снова вернулось к этой задаче. Правда, продажи уже происходят из РМК Розницы 2.1 (РМК вынесено во внешнюю обработку и порядком переделано). У себя в отделе достаточно быстро переписал семерочный код в РМК, протестировал — все ОК. Принесли на место продаж — и тут неприятный сюрприз. В отделе отлаживался на Windows XP, а на месте — Windows 7. Поиск на сайте разработчика и в интернете показал, что драйверов для Windows 7 у Штрих-600 не существует. Принтер подключен по TCP/IP. Из тестовой утилиты удалось напечатать текст. Выход виделся один — разбираться с прямой печатью.

Использовалась ActiveX компонента Microsoft Winsock. Чтобы обойти ограничение на использование в управляемых формах, использовалось поле HTML документа. Отсюда некоторые нюансы с безопасностью (о них чуть ниже).

В сети нашлось не слишком много примеров. В основном это были вопросы на форумах. Хочется отметить некоторые страницы, которые помогли:

Работа с Windows Sockets в 1С Предприятие.

Как вставить и использовать компонент activex на форме в 1с предприятие 8.2. например WMP

В архив помещены компонента Winsock и обработка. Для установки компоненты, вероятно, потребуются права администратора.

После установки компоненты нужно изменить параметры безопасности в свойствах браузера. В результате тестирования разных настроек пришел к такому решению (на мой взгляд, безопасному). Для зоны надежные узлы добавляем пустую страницу (about:blank). Для этого потребуется снять флаг проверки серверов.

Настройки безопасности 1

Далее для этой зоны («Надежные узлы») включаем «Использование элементов ActiveX, не помеченных как безопасные для использования». После этих настроек должны пропасть все сообщения при открытии обработки в 1С:Предприятии.

Настройки безопасности 2

После открытия на закладке «Настройки подключения» необходимо указать ip адрес принтера в сети и порт. Ip адрес можно узнать либо с помощью утилиты, которая идет вместе с принтером, либо распечатав на принтере текущие настройки. Порт использовал 9100.

Настройки подключения

Вот, собственно, и все. Далее можно «играться» разными настройками печати на форме и, при желании, увидеть текст в виде управляющих последовательностей.

Форма обработки

Добавлю, что у меня не получилось управлять отрезчиком с помощью последовательностей. Некоторые настройки все же нужно делать из формы утилиты принтера.

Буду рад, если кому-то пригодится.

Leave a Comment

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