1с 7.7 не печатает принтер

💖 Нравится? Поделись с друзьями ссылкой

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

Ошибка двусторонней печати 1С

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

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

  1. Нет (будет только односторонняя печать, независимо от окна принтера);
  2. Переворот вверх;
  3. Переворот влево;
  4. Использовать настройки принтера.

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

Принтеры по умолчанию и ошибки связанные с этим

Очень часто ошибки содержащие фразу «получение информации о принтере», происходят из-за того, что установленные по умолчанию для 1С принтеры не видятся программой. Это может происходить в следующих случаях:

  1. Используется терминальный режим работы;
  2. Сменилось сетевое имя принтера;
  3. Ранее выполнялась печать на принтер, который в данный момент не доступен.

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

Ошибки при печати связанные с недочетами в коде

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

К подобным ошибкам можно отнести:

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

Ошибки при настройке принтера для печати этикеток

Даже специалистам, давно работающим с приложением 1С, порой бывает очень сложно настроить специальные принтеры, печатающие наклеиваемые этикетки определенных размеров.

Переустановка драйверов устройства и прочие танцы с бубнами, как правило, успеха не имеют.

Последовательность действий, которая поможет максимально сократить время настройки принтера в 1С и сберечь нервы специалисту может выглядеть следующим образом:


Ошибки при печати штрих-кодов

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

  1. Не установлен компонент программы, ответственный за формирование штрих-кода;
  2. Неправильно установлен тип штрих-кода, либо переданная в качестве кода строка имеет неверный формат;
  3. Ошибки в соответствии размеров картинки и области макета, в которой она должна быть размещена.

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

В завершении статьи хотелось бы отметить, что ошибки, возникающие при печати в 1С, никоим образом не влияют на исходные данные в программе и не являются критическими.

Столкнулся со странной проблемой - 1С не выбирает принтер по умолчанию

Точнее, не совсем так - 1С не использует выбранный по умолчанию принтер для отдельной печатной формы только на конкретном компьютере. На остальных - эти же формы печатаются верно, с использованием “дефолтного” принтера. Причём, забегая вперёд, форма может быть любой - счёт фактура, расходное расписание и тд.

Принтер по умолчанию установлен корректно, настройки печати в 1С и в других программах не отличаются - при печати из Word, Excel всё работает.

“открыть печатную форму и изменить жестко прописанный принтер”

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

Решение проблемы принтера по умолчанию в 1С

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

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

Как сделать печатную форму – уже понятно. Как разбить ее на блоки – тоже. Но как происходит печать в 1С всего этого дела? А особенно – как вывести не просто текст макета, а содержимое электронного документа?

Вот это мы и посмотрит прямо сейчас.

Подготовка макета для печати в 1С

Для начала придется начать с самого простого и заполнить макет для печати в 1С статическим текстом и линиями таблиц. Ведь кто-то должен сделать эту скучную работу?

Размещаем статический текст для печати в 1С

Для начала неплохо было бы разместить название нашей печатной формы. Выделим несколько ячеек в строке, и выберем пункт меню Таблица/Объединить. В результате несколько ячеек будут объединены в одну.

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

Размещаем оформление макета для печати в 1С

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

Для этого выберем ячейки строки и на панели выберем кнопку Границы. Мы выбрали вариант Граница везде – она рисует границы ячеек сразу со всех сторон. Если необходимо ограничиться только одной стороной, то нужно выбрать соответствующую кнопку.

Для того, чтобы линии, которыми рисуются границы были не такие, как стандартные, выделите ячейки и нажмите правой кнопкой мыши. В появившемся меню выберите пункт Свойства.

В привычном окне свойств можно выбрать вид и цвет линий для отрисовки границ.

Размещаем картинки и прочую мишуру для печати в 1С

Многие спрашивают – а как разместить на печатной форме 1С что-то кроме текста? Например – картинку.

А очень просто. Мало того, скажу сразу, что штрих-код (если Вам нужно его распечатать) тоже является картинкой.

Поставим курсор на любую ячейку. Выберем меню Таблица/Рисунки. Это целое подменю, которое позволяет вставить на макет для печати в 1С не только картинку или рисованный объект – но и объекты извне 1С, зарегистрированные на компьютере с помощью COM класса (например, элемент управления выпадающий список).

Для тех, кто интересуется созданием на макете сложных конструкций для печати в 1С, загляните также в выпадающее меню Таблица/Настройка печати. Здесь можно задать повторение области на каждой странице, колонтитулы и область печати.

Как разместить содержимое электронного документа при печати в 1С

Для размещения на макете при печати в 1С содержимого электронного документа – используется метод подстановки. Состоит он из двух частей.

Часть первая . Необходимо на макете разместить параметры, в которые Вы будете подставлять значения при печати в 1С.

Поставим курсор в ячейку. Впишем название параметра (одним словом, без пробелов и прочего мусора). Далее войдем в свойства этой ячейки (как — уже говорилось выше) и выберем Заполнение = Параметр.

Часть вторая . Подстановка значений производится не в когда Вы программируете в конфигураторе, а в момент печати документа в 1С. Соответственно с помощью программирования нужно указать 1С что нужно подставить в этот параметр.

Производится это следующим образом:

Макет = ПолучитьМакет("НазваниеМакета");
облКакаято = Макет.ПолучитьОбласть("НазваниеОбласти");
облКакаято.Параметры.НазваниеПараметра = "То что я хочу подставить из базы";

Как Вы видите мы просто получаем по имени сначала сам макет, потом одну из его областей, а потом просто обращаемся к параметру по его названию.

Естественно, значение может быть как строкой или цифрой, так и значением указанным в документе.

Как производится печать макета в 1С

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

Печать в 1С обычно программируется несколькими процедурами, которые находятся в модуле объекта документа. .

Процедура Печать() обычно имеет пометку Экспорт и управляет печатью документа в 1С с помощью параметра ИмяМакета, в котором передается что хотелось бы распечатать.

Для каждого варианта макета делается процедура ПечатьИмяМакета(), в которой прописана печать конкретного макета. Вот ее мы сейчас и посмотрим.

Программирование печати в 1С состоит из трех пунктов.

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

Однако это считается некрасиво, не универсально и т.п. Например, вдруг будет использована обработка массовой печати документов (часто ли такой пользуются?). Поэтому принято в процедуре печати делать запрос к базе данных, который запрашивает данные документа. Например, так:

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
Дата,
Номер,
Организация
ИЗ
Документ.ИмяДокумента
ГДЕ
Ссылка = &ДокументДляПечати";
Запрос.УстановитьПараметр("ДокументДляПечати", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();

Пункт 2. Заполнение макета для печати в 1С

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

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

ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("ИмяМакета"); //или ПолучитьОбщийМакет("")

облШапка = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(облШапка);

облСтрока = Макет.ПолучитьОбласть("Строка");
Пока ВыборкаСтрокДокумента.Следующий() Цикл
облСтрока.Параметры.Товар = ВыборкаСтрокДокумента.Товар;
ТабДок.Вывести(облСтрока);
КонецЦикла;

облШапка = Макет.ПолучитьОбласть("Подвал");
ТабДок.Вывести(облПодвал);

Пункт 2. Вывод документа на печать в 1С

Последним пунктом является вывод полученного документа на экран или принтер. В типовых конфигурациях для этого используется типовая процедура (в каждой может быть своя), например, УниверсальныеМеханизмы.НапечататьДокумент().

В других случаях можно просто использовать типовые функции объекта ТабличныйДокумент: ТабДок.Показать() или ТабДок.Напечатать() .

Рассказать друзьям