Распределение печатных форм при пакетной печати на различные лотки принтера

28.12.17

Задачи пользователя - Пакетная печать

Печать на различные лотки принтера при пакетной печати.

Скачать исходный код

Наименование Файл Версия Размер
Пример пакетной печати
.epf 9,45Kb
1
.epf 9,45Kb 1 Скачать
Обработка настройки лотков
.epf 8,17Kb
4
.epf 8,17Kb 4 Скачать

Доброго времени суток, Уважаемые Дамы и Господа.

Моя первая публикация, поэтому прошу строго не судить.

Итак, после создания пакетной печати документов реализации (в зависимости от вида покупателя - Физ. лицо/Юр. лицо) заказчик попросил распределить печатаемые листы на различные лотки принтера.

Вариант, который предлагают на многих ветках многих форумов, который заключается в подключении одного физического принтера несколько раз, настройки каждого экземпляра принтера на свой лоток, с последующим выбором того или иного экземпляра,  заказчик отмел сразу с логичным вопросом - "Зачем плодить принтеры на ПК? Разве 1С не умеет работать с настройками принтера?".

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

Покопавшись в интернете нашел интересную, и думаю, широко используемую системными администраторами команду работы с принтерами: rundll32 printui.dll,PrintUIEntry.

Этой командой я и решил воспользоваться.

Полный список ключей и флагов можно прочитать, если набрать rundll32 printui.dll,PrintUIEntry /?

Я же воспользовался только двумя командами:

1) rundll32 printui.dll,PrintUIEntry /Ss /n "Имя принтера" /a "Файл настроек" - сохраняет настройки принтера "Имя принтера" в файл, указанный в переменной "Файл настроек";

2) rundll32 printui.dll,PrintUIEntry /Sr /n "Имя принтера" /a "Файл настроек" - восстанавливает настройки принтера "Имя принтера" из файла, указанный в переменной "Файл настроек";

Вкратце принцип работы:

1) Были внесены изменения в конфигурацию в справочнике "Пользователи" (как не жаль, но без добавления доп реквизитов не обошлось)

Были добавлены следующие объекты:

Табличная часть справочника "НастройкиПринтеров"

Данная табличная часть содержит следующие реквизиты

  • РабочееМесто - Тип "Строка" - записывает имя ПК, так как пользователь может работать за несколькими ПК;
  • Принтер - Тип "Строка" - Наименование принтера в системе;
  • Лоток - Тип "Число" - у меня данный реквизит может иметь значения только либо "1", либо "2" по номеру лотков;
  • НастройкиПринтера - Тип - "Хранилище значения" - содержит в себе файл настроек принтера для последующего восстановления

2) Была создана обработка "Настройка лотков.epf", которая загружает файлы настроек в базу 1С. При запуске обработки будет получен список принтеров, зарегистрированных в системе, и список спозиционируется на принтере по умолчанию. Есть 2 объекта работы с первым и вторым лотком. Для сохранения настроек необходимо выполнить настройки под первый лоток в стандартном окне настроек принтера Windows (или драйвера принтера) и нажать кнопку "Сохранить настройки 1 лотка" произойдет выгрузка файла настроек во временную директорию и сохранение этого файла в базу 1С. То же самое и для второго лотка. При необходимости можно удалить настройки.

3) При пакетной печати, перед сменой лотков, 1С выгружает файл текущих настроек в файл, после этого выгружает из базы файл настроек (который храниться в базе в виде двоичных данных), например, для печати из лотка 1, восстанавливает настройки принтера из этого файла, отправляет на печать необходимую Печатную форму, повторяет то же самое (выгрузка файла настроек из базы, восстановление настроек из файла) для второго лотка, ну и так далее. У меня был жестко прописан алгоритм, какие документы на какой лоток печатать, так что доп хранилища информации о том, какие данные на какой лоток бросать не потребовалось.

4) Ну и после окончания печати 1С восстанавливает изначальные настройки из файла настроек, который был сформирован до печати.

Вот вкратце и все описание принципа работы данного механизма.

Не обошлось конечно без подводных камней.

Так на MS Server 2008 при выполнении данных команд появлялась ошибка 0x0000000C с отказом восстановления настроек. Лечиться установкой обновления по ссылке из оф. источника: MS

На ОС Windows XP восстановление настроек происходит, но после выполнения команды возникает ошибка "Невозможно завершение операции". Лечиться добавлением в команду флага "/q" - тихий режим.

Пример:

rundll32 printui.dll,PrintUIEntry /Sr /n "Имя принтера" /a "Файл настроек" /q

На ОС Windows 7, Windows 10 ошибок не наблюдается.

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

Данная обработка тестировалась на УТ версии 10.3.46.1.

В принципе все :)

Критика приветствуется, варианты альтернативных вариантов решения данного функционала приветствуется вдвойне.

Благодарю за прочтение публикации :)

P.S. Таким образом можно сохранять информацию не только о лотках, но и любые настройки, которые поддерживает принтер, например, цветная ч/б печать, качество печати и т. д.

Пакетная печать настройки принтера

См. также

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    8297    24    6    

45

Распознавание номеров автомашин с ip - камер, видео, фото

Распознавание документов и образов Периферийные устройства Автомобили, автосервисы Россия Платные (руб)

Программа считывает кадры с ip-камер (http - запрос к камере), видео, фото (источники кадров (нет ограничения на их количество) настраивается в конфигурационном файле), находит и распознает номера автомашин и сохраняет в базу db, с сохранением фото номера и автомашины, а также времени детекции.

20400 руб.

31.05.2023    4009    3    2    

5

Программа групповой печати чеков ККМ Атол и Штрих из текстового файла, поддержка 54-ФЗ от 01.07.19

Пакетная печать ККМ Кассовые операции Загрузка и выгрузка в Excel Россия Бухгалтерский учет Платные (руб)

Предназначена для групповой печати чеков. Что печатать в теле чека описано в текстовом файле с разделителем запятая (CSV) Подходит для любого языка программирования который умеет записывать в текстовый файл

2000 руб.

26.07.2019    25045    38    17    

23

Групповая печать чеков из банковской выписки с настройкой (БП 3.0)

Пакетная печать Банковские операции Кассовые операции Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Обработка для групповой печати чеков ККМ с настройкой, загруженных из банковской выписки. На основании документа Поступление на расчетный счет!

4800 руб.

21.08.2019    19844    70    10    

23

Журнал учета ТТН (исходящих и от поставщика) для Бухгалтерии предприятия, редакция 3.0

Пакетная печать Документооборот и делопроизводство (СЭД) Оптовая торговля Печатные формы Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обработка содержит новую форму Транспортной накладной с 01.01.2021 г. (в ред. Постановления Правительства РФ от 30.11.2021 № 2116) В отличие от внешних печатных форм, подключаемых к документу реализации, позволяет вести отдельный журнал документов. Дополнительным преимуществом является возможность формирования документов за поставщика.

2280 руб.

15.04.2014    52709    51    50    

39

Меркурий, групповая печать ЭВСД (электронных ветеринарных справок)

Пакетная печать Обмен с ГосИС Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Обработка для групповой печати ЭВСД из меркурия, для тех кто оформляет ЭВСД через WEB-интерфейс и кому надоело по одной распечатывать оформленные ЭВСД, нажимая по 10 кнопок, ради одной печатной формы, когда таких, надо распечатать еще 20-100 и более.

1200 руб.

13.09.2018    26318    7    6    

5

Групповая пакетная печать документов "Реализация товаров и услуг" и связанных с ними "Счетов-фактур"

Пакетная печать Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Работаете с сетями, у каждой из которых свои требования к оформлению документов? Клиент попросил перепечатать документы за год? Печатаете по 100-500 документов в день, тогда эта обработка Вам просто необходима. Данная обработка позволит Вам сэкономить время при больших объемах печати документов по отгрузке товаров и не только.

1000 руб.

29.09.2016    35862    20    5    

22

Тернистый путь к физической клавиатуре для программиста 1С

Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Долгое время я активно пользовался различными хоткеерами, шаблонами текста, специальными раскладками клавиатуры. Я из тех, кто очень долго верил в Снегопат... Так сложилось, что на моем текущем месте работы довольно строгая политика информационной безопасности, а потому со всем привычным софтом, который делал жизнь проще, мне пришлось расстаться. И даже шаблоны кода при каждом терминальном подключении требуется настраивать в конфигураторе заново. Как известно, если какую-то задачу нельзя решить на стороне софта, то стоит поискать железное решение.

1 стартмани

15.04.2024    5958    madonov    52    

33
Оставьте свое сообщение