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

28.12.17

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример пакетной печати
.epf 9,45Kb
3
3 Скачать (1 SM) Купить за 1 850 руб.
Обработка настройки лотков
.epf 8,17Kb
6
6 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

Вариант, который предлагают на многих ветках многих форумов, который заключается в подключении одного физического принтера несколько раз, настройки каждого экземпляра принтера на свой лоток, с последующим выбором того или иного экземпляра,  заказчик отмел сразу с логичным вопросом - "Зачем плодить принтеры на ПК? Разве 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. Таким образом можно сохранять информацию не только о лотках, но и любые настройки, которые поддерживает принтер, например, цветная ч/б печать, качество печати и т. д.

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

См. также

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

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

22200 руб.

06.10.2023    20263    51    19    

86

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

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

20400 руб.

31.05.2023    5574    4    4    

9

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

Мастер пакетной печати отгрузочных и товаросопроводительных документов. Продукт оптимизирован для алкогольной продукции. Поддерживает печатные формы ТОРГ-12, счет-фактура, разделы А и Б справки к ТТН, копии сертификатов, ТТН (1-Т), а также ТН (Приложение4). Все формы заполняются автоматически, а данные в полях формы (актуально для ТН и ТТН) сохраняются для каждого документа и не требуют заполнения при повторных открытиях. Предназначена для конфигурации "1С:Управление торговлей" , ред. 10.3, ред. 11.1, "1С:Бухгалтерия предприятия, ред. 3.0". Не требует изменений конфигурации. Печать суммы акциза в с/ф, УПД и справке А. Поддержка требований торговых сетей "Метро" и "Ашан".

8400 руб.

04.04.2013    130094    143    188    

112

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

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

3600 руб.

26.07.2019    26006    39    17    

24

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

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

4800 руб.

21.08.2019    20768    78    11    

25

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

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

2280 руб.

15.04.2014    53963    54    51    

42

Пакетная печать Печатные формы Программист Пользователь Руководитель проекта 1С:Управление торговлей 10 Абонемент ($m)

Внешние печатные формы УПД, УКД (Универсальный передаточный/корректировочный документ) в редакции по постановлению №1096 начиная с 2024.10.01, поддерживающая вывод данных прослеживаемости для УТ 10.3

1 стартмани

30.09.2024    9528    680    zhuravlev_as    54    

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