Тип: Строка, Неопределено. Имя принтера, на котором нужно напечатать. Неопределено - значение определяется родительским пакетом. Если родительского пакета нет, то печать выполняется на принтер по умолчанию.
Полное описание, параметры и ограничения
ПакетОтображаемыхДокументов.ИмяПринтера (RepresentableDocumentBatch.PrinterName)
ПакетОтображаемыхДокументов (RepresentableDocumentBatch)
ИмяПринтера (PrinterName)
Доступен, начиная с версии 8.3.3.
Использование:
Чтение и запись.
Описание:
Тип: Строка, Неопределено.
Имя принтера, на котором нужно напечатать.
Неопределено - значение определяется родительским пакетом. Если родительского пакета нет, то печать выполняется на принтер по умолчанию.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.3.
Методическая информация
Практические примеры
Настроить состав пакета и копии отдельного документа
В памяти две собственные формы. Для двух копий Книги создаём вложенный пакет; количество 7 у исходного табличного документа пакет игнорирует.
Где и как запускать
Полный модуль собственной управляемой формы; толстый клиент Windows. Временные документы принадлежат только этой форме.
Подготовка
Собственная отдельная конфигурация УчебнаяКонфигурацияСинтаксиса, платформа 8.5.1.1343. Создайте внешнюю обработку с пустой управляемой формой, командой Выполнить и её кнопкой.
Откройте обработку в толстом клиенте Windows. Вставьте полный модуль одного урока. При наличии Асинх используйте асинхронную процедуру из примера, не убирайте Ждать.
Серверная функция создаёт только две собственные формы: Книга / 3 и Ручка / 1. Временное хранилище привязано к УникальныйИдентификатор этой формы, адреса сохраняются в собственном массиве.
Пока выполняется запись, форму не закрывайте. После завершения очищаются только адреса, созданные этим модулем. Файл оставляется для ручной проверки и удаления пользователем.
Запись выбирает новое временное имя на машине клиента. Существующий файл не перезаписывается. Для файла печати используется расширение print: это внутренний файл печати, не PDF и не текстовый отчёт.
Урок печати требует строковые реквизиты УчебныйПринтер и Подтверждение. Введите точное имя собственного тестового устройства и фразу ПЕЧАТАЮ ТОЛЬКО УЧЕБНЫЕ ДАННЫЕ.
При создании руководства печать, сохранение и запуск 1С не выполнялись. Для PDF вручную проверьте обе учебные формы; ненулевой размер файла сам по себе не доказывает содержимое.
Перем УчебныйПакет;
Перем УчебныеАдреса;
Перем Занято;
&НаКлиенте
Процедура Выполнить(Команда)
Если Занято = Истина Тогда
ВызватьИсключение "Дождитесь завершения собственной предыдущей операции";
КонецЕсли;
Если УчебныеАдреса <> Неопределено Тогда
ВызватьИсключение "Предыдущие учебные данные ещё не освобождены; закройте только учебную форму и откройте заново";
КонецЕсли;
Созданные = СоздатьСобственныйПакет();
УчебныйПакет = Созданные.Пакет;
УчебныеАдреса = Созданные.Адреса;
Попытка
УчебныйПакет.Вывод = ИспользованиеВывода.Запретить;
УчебныйПакет.ИмяПринтера = Неопределено;
УчебныйПакет.ДвусторонняяПечать = ТипДвустороннейПечати.Нет;
УчебныйПакет.РазборПоКопиям = Истина;
УчебныйПакет.ТочностьПечати = ТочностьПечати.Авто;
Состав = УчебныйПакет.Состав;
Сообщить(Состав.Количество() = 2);
Книга = Состав.Получить(0);
Сообщить(Книга.Наименование = "Книга");
Сообщить(Книга.Данные = УчебныеАдреса[0]);
Проба = Состав.Вставить(1, УчебныеАдреса[0]);
Проба.Наименование = "Удаляемая собственная копия";
Сообщить(Состав.Индекс(Проба) = 1);
Состав.Сдвинуть(Проба, 1);
Сообщить(Состав.Индекс(Проба) = 2);
Состав.Удалить(Проба);
Сообщить(Состав.Количество() = 2);
Вложенный = Новый ПакетОтображаемыхДокументов;
Вложенный.КоличествоЭкземпляров = 2;
Вложенный.ИмяПринтера = Неопределено;
Вложенный.ДвусторонняяПечать = Неопределено;
Вложенный.РазборПоКопиям = Неопределено;
Вложенный.Состав.Добавить(УчебныеАдреса[0]);
Книга.Данные = Вложенный;
Сообщить(УчебныйПакет.КоличествоЭкземпляров = 1);
Сообщить(Вложенный.КоличествоЭкземпляров = 2);
Сообщить(УчебныйПакет.ДвусторонняяПечать = ТипДвустороннейПечати.Нет);
Сообщить(УчебныйПакет.РазборПоКопиям);
Состав.Очистить();
Сообщить(Состав.Количество() = 0);
Исключение
ОшибкаОперации = ОписаниеОшибки();
ОсвободитьСобственныйПакет();
ВызватьИсключение ОшибкаОперации;
КонецПопытки;
ОсвободитьСобственныйПакет();
КонецПроцедуры
&НаСервере
Функция СоздатьСобственныйПакет()
Адреса = Новый Массив;
Пакет = Новый ПакетОтображаемыхДокументов;
Пакет.Заголовок = "guide-owned: Книга и Ручка";
Пакет.Вывод = ИспользованиеВывода.Разрешить;
Пакет.КоличествоЭкземпляров = 1;
Для Номер = 1 По 2 Цикл
Документ = Новый ТабличныйДокумент;
Если Номер = 1 Тогда
Название = "Книга";
Количество = "3";
Иначе
Название = "Ручка";
Количество = "1";
КонецЕсли;
Документ.Область(1, 1).Текст = "Только собственный учебный товар";
Документ.Область(2, 1).Текст = Название;
Документ.Область(2, 2).Текст = Количество;
Документ.Область(, 1, , 1).ШиринаКолонки = 30;
Документ.КоличествоЭкземпляров = 7;
Адрес = ПоместитьВоВременноеХранилище(Документ, ЭтаФорма.УникальныйИдентификатор);
Адреса.Добавить(Адрес);
Элемент = Пакет.Состав.Добавить(Адрес);
Элемент.Наименование = Название;
КонецЦикла;
Возврат Новый Структура("Пакет,Адреса", Пакет, Адреса);
КонецФункции
&НаСервере
Процедура УдалитьСобственныеАдреса(Адреса)
Для Каждого Адрес Из Адреса Цикл
УдалитьИзВременногоХранилища(Адрес);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОсвободитьСобственныйПакет()
Если УчебныеАдреса <> Неопределено Тогда
УдалитьСобственныеАдреса(УчебныеАдреса);
УчебныеАдреса = Неопределено;
КонецЕсли;
УчебныйПакет = Неопределено;
КонецПроцедурыРазбор по шагам
Сервер создаёт документы и два собственных адреса, привязанных к форме. Состав содержит элементы, а Данные элемента — адрес или вложенный пакет, не ТабличныйДокумент.
Вставить собственную пробную копию, найти индекс, сдвинуть и удалить. Исходные документы во временном хранилище остаются.
Поместить Книгу во вложенный пакет с двумя экземплярами. Неопределено у его принтера/двусторонности/разбора означает наследование от родительского пакета.
Запретить вывод корневого пакета: этот урок ничего не печатает и не сохраняет. Затем очистить собственный состав и удалить только свои два адреса.
Как проверить результат
Одиннадцать булевых проверок дают Истина.
Вложенный пакет имеет 2 экземпляра, корневой 1. Это проверка настроек, не подсчёт реально напечатанной бумаги.
Ожидаемый результат
Полный образец коллекции пакета и настройки копий без печати.
На что обратить внимание
Состав только для чтения, но его коллекцию можно изменять.
В Вывод и ТочностьПечати учитывается корневой пакет, ограничения вложенного пакета не являются самостоятельной защитой.
Не удаляйте чужие адреса временного хранилища: массив этого урока создаётся только вместе с его собственными документами.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Открыть печать пакета с ручным подтверждением
Две собственные формы, одна копия каждого документа и обязательный диалог выбора устройства.
Где и как запускать
Полный модуль собственной управляемой формы; толстый клиент Windows. Временные документы принадлежат только этой форме.
Подготовка
Собственная отдельная конфигурация УчебнаяКонфигурацияСинтаксиса, платформа 8.5.1.1343. Создайте внешнюю обработку с пустой управляемой формой, командой Выполнить и её кнопкой.
Откройте обработку в толстом клиенте Windows. Вставьте полный модуль одного урока. При наличии Асинх используйте асинхронную процедуру из примера, не убирайте Ждать.
Серверная функция создаёт только две собственные формы: Книга / 3 и Ручка / 1. Временное хранилище привязано к УникальныйИдентификатор этой формы, адреса сохраняются в собственном массиве.
Пока выполняется запись, форму не закрывайте. После завершения очищаются только адреса, созданные этим модулем. Файл оставляется для ручной проверки и удаления пользователем.
Запись выбирает новое временное имя на машине клиента. Существующий файл не перезаписывается. Для файла печати используется расширение print: это внутренний файл печати, не PDF и не текстовый отчёт.
Урок печати требует строковые реквизиты УчебныйПринтер и Подтверждение. Введите точное имя собственного тестового устройства и фразу ПЕЧАТАЮ ТОЛЬКО УЧЕБНЫЕ ДАННЫЕ.
При создании руководства печать, сохранение и запуск 1С не выполнялись. Для PDF вручную проверьте обе учебные формы; ненулевой размер файла сам по себе не доказывает содержимое.
Перем УчебныйПакет;
Перем УчебныеАдреса;
Перем Занято;
&НаКлиенте
Процедура Выполнить(Команда)
Если ПустаяСтрока(УчебныйПринтер)
ИЛИ Подтверждение <> "ПЕЧАТАЮ ТОЛЬКО УЧЕБНЫЕ ДАННЫЕ" Тогда
ВызватьИсключение "Нужны точное имя собственного принтера и подтверждение";
КонецЕсли;
Подтверждение = "";
Если Занято = Истина Тогда
ВызватьИсключение "Дождитесь завершения собственной предыдущей операции";
КонецЕсли;
Если УчебныеАдреса <> Неопределено Тогда
ВызватьИсключение "Предыдущие учебные данные ещё не освобождены; закройте только учебную форму и откройте заново";
КонецЕсли;
Созданные = СоздатьСобственныйПакет();
УчебныйПакет = Созданные.Пакет;
УчебныеАдреса = Созданные.Адреса;
Попытка
УчебныйПакет.ИмяПринтера = УчебныйПринтер;
УчебныйПакет.КоличествоЭкземпляров = 1;
Сообщить(УчебныйПакет.Состав.Количество() = 2);
Сообщить(УчебныйПакет.КоличествоЭкземпляров = 1);
УчебныйПакет.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
Исключение
ОшибкаОперации = ОписаниеОшибки();
ОсвободитьСобственныйПакет();
ВызватьИсключение ОшибкаОперации;
КонецПопытки;
ОсвободитьСобственныйПакет();
КонецПроцедуры
&НаСервере
Функция СоздатьСобственныйПакет()
Адреса = Новый Массив;
Пакет = Новый ПакетОтображаемыхДокументов;
Пакет.Заголовок = "guide-owned: Книга и Ручка";
Пакет.Вывод = ИспользованиеВывода.Разрешить;
Пакет.КоличествоЭкземпляров = 1;
Для Номер = 1 По 2 Цикл
Документ = Новый ТабличныйДокумент;
Если Номер = 1 Тогда
Название = "Книга";
Количество = "3";
Иначе
Название = "Ручка";
Количество = "1";
КонецЕсли;
Документ.Область(1, 1).Текст = "Только собственный учебный товар";
Документ.Область(2, 1).Текст = Название;
Документ.Область(2, 2).Текст = Количество;
Документ.Область(, 1, , 1).ШиринаКолонки = 30;
Документ.КоличествоЭкземпляров = 7;
Адрес = ПоместитьВоВременноеХранилище(Документ, ЭтаФорма.УникальныйИдентификатор);
Адреса.Добавить(Адрес);
Элемент = Пакет.Состав.Добавить(Адрес);
Элемент.Наименование = Название;
КонецЦикла;
Возврат Новый Структура("Пакет,Адреса", Пакет, Адреса);
КонецФункции
&НаСервере
Процедура УдалитьСобственныеАдреса(Адреса)
Для Каждого Адрес Из Адреса Цикл
УдалитьИзВременногоХранилища(Адрес);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОсвободитьСобственныйПакет()
Если УчебныеАдреса <> Неопределено Тогда
УдалитьСобственныеАдреса(УчебныеАдреса);
УчебныеАдреса = Неопределено;
КонецЕсли;
УчебныйПакет = Неопределено;
КонецПроцедурыРазбор по шагам
Указать точный собственный тестовый принтер и фразу подтверждения. Она очищается до создания/печати пакета.
Проверить два элемента и одну копию пакета. КоличествоЭкземпляров = 7 у исходных документов игнорируется по контракту пакета.
Вызвать Напечатать с Использовать, вручную проверить устройство и диапазон.
В первом тесте нажать Отмена. После возврата освободить только свои временные адреса.
Как проверить результат
Две проверки дают Истина. Без фразы и имени устройства вызова печати нет.
Отмена не считается успешной печатью. Для подтверждения реального результата нужно проверить очередь/выход собственного устройства вручную.
Ожидаемый результат
Полный ограниченный пример ручного запуска печати пакета.
На что обратить внимание
Возврат управления от Напечатать не доказывает появление бумаги.
Пользователь может изменить принтер в диалоге; обязательно проверить его перед подтверждением.
Не использовать этот код с адресами рабочих печатных форм.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.