Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 02:27
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Вызов диалога выбора принтера перед печатью для пакета документов  (Прочитано 13013 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн fokas

  • *
  • Сообщений: 28
  • РЕПУТАЦИЯ: 1
  • КПД: 4%
  • Регистрация: 2011-08-31
  • Сайт: 
  • Профессия: Программист 8.1
Есть несколько документов, которые печатаются пачкой, каждый в определенном количестве экземпляров. Каждый документ формируется отдельным табличным документом. Сначала я пробовал создать единственный табличный документ с разных макетов, но тогда летели размеры ячеек. Хоть это и решил, но не полностью, некоторые макеты всё равно сбивали друг друга. По интернету полазил, там тоже варианты через колено, использовать для склейки что нибудь внешнее - Word, Excel...
В задании обязательным требованием было вывести диалог выбора принтера для печати. Нашёл такое решение для формирования списка доступных принтеров:
Функция ПолучитьСписокДоступныхПринтеров()
   
    Список = Новый СписокЗначений;
    #Если Клиент Тогда
        Попытка
            КОМОбъект = Новый COMОбъект("WScript.Network");
            Принтеры = КОМОбъект.EnumPrinterConnections();
            Сч = 0;
            Пока Сч <  Принтеры.Count()-1 Цикл
                Список.Добавить(Принтеры.Item(Сч+1), Принтеры.Item(Сч+1));
                Сч = Сч+2;
            КонецЦикла;
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
    #КонецЕсли
    Возврат Список;
   
КонецФункции
Но она находит в локалке левые устройства. Может это беда админов, сетевых драйверов и т.д. В принципе с этим смирились. А мне не нравится :) Стукнуло в голову! Может получится так?
Документ1.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
ВыбранныйПринтер = Документ1.ИмяПринтера;
КоличествоКопийПакетаДокументов = Документ1.КоличествоЭкземпляров;

Документ2.ИмяПринтера = ВыбранныйПринтер;
Документ2.КоличествоЭкземпляров = КоличествоКопийПакетаДокументов;
Документ2.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
Количество копий я получил, а вот принтер - нет, переменная ВыбранныйПринтер пустая. И хотя печать всё равно происходит, меня отсутствие самого принтера смущает. А вдруг при его отсутствии документы отправляются на принтер по умолчанию? Возможности проверить нет, доступен только один.

Всё ли правильно я делаю?


Оффлайн fokas

  • *
  • Сообщений: 28
  • РЕПУТАЦИЯ: 1
  • КПД: 4%
  • Регистрация: 2011-08-31
  • Сайт: 
  • Профессия: Программист 8.1

Оффлайн Vit1501

  • ****
  • Сообщений: 360
  • РЕПУТАЦИЯ: 60
  • КПД: 17%
  • Регистрация: 2010-06-05
  • Сайт: 
  • Профессия: Программист 1С
А если установить параметр ДиалогПечати в состояние "использовать"?


ТабличныйДокумент (SpreadsheetDocument)
Напечатать (Print)
Синтаксис:

Напечатать(<ДиалогПечати>)
Параметры:

<ДиалогПечати> (необязательный)

Тип: РежимИспользованияДиалогаПечати.
Определяет необходимость показа диалога печати перед печатью.
Значение по умолчанию: НеИспользовать
Описание:

Выводит табличный документ на печать.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
Пример:

ТабДок.Напечатать();
 

Оффлайн fokas

  • *
  • Сообщений: 28
  • РЕПУТАЦИЯ: 1
  • КПД: 4%
  • Регистрация: 2011-08-31
  • Сайт: 
  • Профессия: Программист 8.1
Если установить, перед печатью у тебя появится несколько диалогов. Бардак же

Оффлайн Vit1501

  • ****
  • Сообщений: 360
  • РЕПУТАЦИЯ: 60
  • КПД: 17%
  • Регистрация: 2010-06-05
  • Сайт: 
  • Профессия: Программист 1С
можно поставить счетчик и в первый раз вызывать метод  с параметром ДиалогПечати в состояние "использовать", а потом  в переменную сохранить свойство табличного докуемнта "имяПринтера" и в следующих итерациях цикла использовать уже это имя без диалога

Оффлайн fokas

  • *
  • Сообщений: 28
  • РЕПУТАЦИЯ: 1
  • КПД: 4%
  • Регистрация: 2011-08-31
  • Сайт: 
  • Профессия: Программист 8.1
Vit, я это и делаю. Выше код. И именно с этим проблема. Не выходит получить название принтера. Ладно оно-то всё равно печатает. Но:
1. Не известно, используется ли выбранный принтер. Он в сети сейчас 1. Может ведь просто отправляет на принтер по умолчанию, раз нет имени. Это и интересно
2. Как тогда остановить печать остальных документов, если пользователь откажется от печати? Вроде единственным способом было проверить, было ли передано имя принтера через диалог.


Теги:
 

Как создать нескольких документов "расчет при увольнении" на основании кадрового документа "увольнение" как Отпуска

Автор cozuРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 3202
Последний ответ 21 Мар 2015, 20:24
от дфтын
Не работает структура подчиненности документов "Требование-накладная" и "Передач

Автор sv_stas_svРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 4107
Последний ответ 10 Мар 2011, 07:36
от sv_stas_sv
готовая компонента сканирования/загрузки / распознавания бумажных документов (счетов, налоговых накладных, приходных накладных) из бумажного документа в 1с

Автор Св ЧРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 185
Последний ответ 14 Ноя 2017, 10:43
от oleg-x
Реквизит "Ссылка" у справочников и документов

Автор leklerkРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 3034
Последний ответ 29 Май 2013, 16:24
от leklerk
"Дубляж" документов реализации в ВзаиморасчетыКомпанииОстаткиИОбороты

Автор mspuzРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 1793
Последний ответ 24 Янв 2014, 13:55
от mspuz

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
61 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 154
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal