Разобрать по копиям 1с

Обновлено: 04.07.2024

Осуществили миграцию 1cv77 (SQL и dbf) с W2003+2x на терминальный сервер Windows 2008.
Естественно, при переходе встретили все много раз описанные проблемы, связанные с установкой 1cv77 на Vista(Win2008), то есть с кодировкой, в SQL версии с непринятием эской новых одибиси драйверов 6-й версии (откат на более раннюю версию ODBC драйверов путем замены файлов из win2003). Но главные проблемы обрисовались уже после перехода. Как уже все догадались по названию темы -проблемы с печатью.

Поясню, что пользователям включено перенаправление их локально установленных принтеров.
Вот модели самих принтеров:

HP4350(tn) (с драйвером PCL5 60.xx (дальше не помню) от 22.06.2005 года, позже опишу почему)
HP2410 и 2420 (драйвер PCL5)
HP1320 (драйвер PCL5)
HP1150 (драйве HP Universal PCL5 (родной никак не хотел перенаправляться, хотя на сервере устанавливался))
Xerox 3428 (PCL6, так как PCL5 не было)
Xerox3125 (PCL6)
Xerox3117
HP1505

Везде, где возможно ставил PCL5 драйверы, где не возможно - PCL6, особый случай Xerox 3117 и HP1505(как затесался к нам этот принтер ) со своими "печатными" языками.
Драйверы устанавливал по правилам (в разделе "Принтеры" правая кнопка "Свойства сервера"). Все драйверы качал самые свежие с сайтов производителей.

Итак, всем пользователям перенаправляются их принтеры (с некоторыми оговорками в том смысле, что HP1150 никак не хотел перенаправляться и пришлось заменить его родной драйвер на HP universal Print Driver PCL5) и они печатают.

Вскоре выясняется следующая проблема:
HP4350 (не сетевой) делает непонятные паузы в районе 3-5 секунд между заданиями печати. Это в корне не нравится бухгалтерам, которые ежедневно печатают хитрое пакетное задание на печать (100-150 одно-двухлистовых заданий), которое безбожно тормозит.
Причем, проблема наблюдается только на принтерах HP4350, а сетевая версия HP4350tn отрабатывает задания без пауз. Долгие мытарства в течение нескольких дней (работа в терминальном сервере идет круглосуточно, а удалить драйвер почему-то получалось только после перезагрузки сервера, простого дисконнекта всех пользователей и рестарта спулера не хватало) привели к старому драйверу 2005 года, на котором паузы не происходят. Перед откатом на старый драйвер все возможные комбинации настроек принтера, драйвера и приложений ни к чему не привели.

На данный момент столкнулся со следующей проблемой: в терминальном режиме не работает пункт "разобрать по копиям" при печати из 1С, печатает просто последовательно все первые страницы, вторые и т. д. Если же в терминальном режиме запустить, например Word - все работает прекрасно. Уже перепробовали все комбинации в настройках драйверов, да и не в них дело, так как это происходит при печати на любых имеющихся моделях принтеров.

Привет всем! В данной статье предлагаю рассмотреть методы вывода макета на печать любых документов (собственных или типовых) с помощью актуальной библиотеки стандартных подсистем (БСП). Данный небольшой обзор поможет снять вам вопросы типа "как прицепить макет печати к собственному документу или справочника?" или "как разместить кнопку печать на форме списка и форме документа или справочника". На момент написания статьи - середина февраля 2021 года - точка актуальности - это БСП версии 3.1.4.148.

Для кого-то этот материал не новшество, но отмечу, что данная статья будет полезна специалистам, желающим использовать последние возможности библиотеки стандартных подсистем в методах вывода на печать. Хорошо известно, что подсистема БСП постоянно меняется и усовершенствуется, и я могу сказать определенно, что старые методы и алгоритмы вывода на печать макетов печатных форм документов и справочников уже будут вряд ли применимы в современных конфигурациях на последних БСП.

Подготовка и настройка собственного документа конфигурации для использования в подсистеме печати в системе БСП.

Начнем с простого создания документа ТестоваяПечатьДокументов в конфигурации на БСП. В качестве конфигурации я беру чистую библиотеку стандартных подсистем версии 3.1.4.148. Разработка ведется на Платформе 1с 8.3.18.1208.

Основным и главным моментом после создания собственного документа будет необходимость прописать данный документ в общем модуле - процедуре УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт

выглядит это вот так:

ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт

Далее, что нам потребуется. Создаем 2 формы в документе ТестоваяПечатьДокументов - это "ФормаСписка" и "ФормаДокумента". В каждой из этих форм создаем и привязываем процедуру ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

выглядит она вот так:

Далее, для "формы списка" добавляем внутренние БСП подключаемые процедуры:

"ФормаСписка" в документе "ТестовыйДокумент"

А для "формы документа" добавляем вот такие внутренние БСП подключаемые процедуры:

"ФормаДокумента" в документе "ТестовыйДокумент"

Хочу отметить, что данные процедуры я копирую из типовых документов БСП - их будет достаточно, чтобы активировать кнопку системы печати на формах документа. Ничего лишнего добавлять не нужно.

Далее, заполним модуль менеджера нашего документа. Напишем в нем такой код:

Здесь функция - ПечатнаяФормаТестовогоДокумента(МассивОбъектов, ОбъектыПечати) - формирует заполненный макет печатной формы и возвращает пользователю.

Процедура - Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт - типовая процедура печати БСП.

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

Открываем код БСП и смотрим какие возможности предоставляет нам функция УправлениеПечатью.СоздатьКоллекциюКомандПечати() - она используется для "наполнения" объекта КомандыПечати(). Возможности широчайшие:

Как мы видим, основные параметры - Идентификатор, Представление. Остальные являются необязательными.

Правильно разместив вышеуказанный код в конфигурации вы получите необходимый результат - вывод кнопки "Печать" для формы документа и формы списка для документа ТестоваяПечатьДокументов.
Перейдем к разделу заключений и выводов по данной статье.

Заключение и выводы

В данной статье мы рассмотрели основной алгоритм БСП для размещения команд печати на любых документах конфигурации, в основе которой лежит современная библиотека стандартных подсистем. Напомню, что разработка примера велась на "чистой" библиотеке стандартных подсистем версии 3.1.4.148 и Платформе 1с 8.3.18.1208.

Ну и конечно, знание данных методов позволит вам ускорить разработку и доработку любых типовых конфигураций 1с (БУХ, ЗУП, Розница, УНФ и т.п. ), основой которых является библиотека стандартных подсистем. И самое главное - это правильно и по стандарту профессиональных разработчиков.

Другие мои материалы по БСП

Так же прошу ознакомиться с другими моими статьями по функционалу библиотеки стандартных подсистем и типовым конфигурациям:

У одного из пользователей 1С не работает функция "разобрать по копиям", печатает что с галкой, что без нее сначала первую страницу, затем вторую и так далее.

дано: УТ 10.3.18.3 1с 8.2.15.310 win2008 SP2

Принтер HP LaaserJet

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

Если пользователь работает в терминальном режиме попробуйте удалить профиль этого пользователя и дать ему снова войти, профиль создастся новый и все глюки исчезнут, бывает помогает. Проблема решилась довольна просто.
заходим в предварительный просмотр, далее в настройки печати, меняем отступы от краев и печатаем документ. В этот момент, настройки пользователя перезаписываются и печатают в стандартном режиме. При след. печати отступы можно вернуть, как и были раньше. (4) РЕШЕНО!
В моем случае проблема определилась непосредственно в профиле пользователя 1С, причем глюк не в кеше, а где-то хранится в базе 1С, так как с того-же рабочего места зайдя под другим пользователем 1С печать выполняется корректно с разбором по копиям, а под глючным пользователем разбор не работает хоть убейся, не помогает ни смена драйверов принтера, ни редактирование настроек печати. (программист 1С обещал посмотреть со своей стороны в чем разница между профилями).
(4) для 7.7 подобное лечил удалением ветки реестра с названием "moxel". в этой ветке хранятся все настройки печати пользователя. В 7.7 на 2008х64 эта проблема помоему вообще не лечится, я уже полинтернета прочитал, решений не нашел. Присоединяюсь к проблеме.. Помогите советом плз.. 7.7 + винда 2008 серв р2, в терминале.. Ну что, есть еще пользователи 7.7? ))
Тоже столкнулся с тем, что при печати с 1С 7.7 в 64-битных ОС не разбирает по копиям.
Оказалось всё дело в окошке параметров печати 1С 7.7. Оно, судя по всему, что-то сбивает. Если отправлять на печать кодом, без вызова этого окна, то по копиям разбирает.
Во вложении обработка для проверки.
Всех с наступающим Новым Годом!
Тоже столкнулся с тем, что при печати с 1С 7.7 в 64-битных ОС не разбирает по копиям.
Разрядность ни при чем. Проблема начиная с Win7 и выше.
Оказалось всё дело в окошке параметров печати 1С 7.7. Оно, судя по всему, что-то сбивает. Если отправлять на печать кодом, без вызова этого окна, то по копиям разбирает.

Окошко печати устанавливает параметр "Collate" в 0. Но даже если и отправлять на печать по ктрл+шифт+Р, то все равно двусторонняя печать работает не правильно с нечетным количеством страниц - вторая копия наезжает на первую.

Для двусторонней печати сделал заглушку с Yoksel для печатной формы УПД. При открытии выдается запрос количества копий. При нажатии ОК указанное количество копий отправляется на принтер выбранный в параметрах страницы. Если принтер не найден, то улетит на принтер по умолчанию.
Клюшки знаю очень плохо, так что камнями не кидать)))
ПриОткрытии заменил на

Читайте также: