Имя: Пароль:
1C
1С v8
программно добавить свое подменю в команды печати
, ,
0 Новый1сник2
 
15.08.17
13:26
конфа УНФ 1.6, подскажите как программно добавить в меню печать, подменю со своими печ.формами. поиском не нашел.
1 DrShad
 
15.08.17
14:03
надеюсь искал по модулям конфы?
2 Новый1сник2
 
15.08.17
14:28
(1) по модулям то же.
команды печати добавляю в модуле менеджера,
в модуле формы можно сделать, а как из модуля менеджера добавить подменю не понятно
3 Fragster
 
гуру
15.08.17
14:31
https://its.1c.ru/db/bsp243doc#content:8058:hdoc ну, только по соответствующей версии БСП
4 AsadRoman
 
15.08.17
14:31
(2) БСП штудировал?
5 AsadRoman
 
15.08.17
14:33
По любому, чтобы команды появились на форме в форме тоже команду (ы) прописывать придется.
6 Новый1сник2
 
15.08.17
14:33
(4) не БСП, пока не смотрел
7 Новый1сник2
 
15.08.17
14:35
(5) в модуле формы, команды не прописаны
8 AsadRoman
 
15.08.17
14:46
(7) БСП:

в модуле менеджера:

// Заполняет список команд печати.
//
// Параметры:
//   КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    
    // Счет на оплату
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Идентификатор = "Счет";
    КомандаПечати.Представление = НСтр("ru = 'Счет на оплату'");
    КомандаПечати.ПроверкаПроведенияПередПечатью = Не Пользователи.РолиДоступны("_ДемоПечатьНепроведенныхДокументов");
    
    // Счет на оплату без платежных реквизитов.
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Идентификатор = "Счет";
    КомандаПечати.Представление = НСтр("ru = 'Счет на оплату без платежных реквизитов'");
    КомандаПечати.ПроверкаПроведенияПередПечатью = Не Пользователи.РолиДоступны("_ДемоПечатьНепроведенныхДокументов");
    КомандаПечати.ДополнительныеПараметры.Вставить("ВыводитьПлатежныеРеквизиты", Ложь);
....

КонецПроцедуры;

В модуле формы:

в событии ПриСозданииНаСервере:

// СтандартныеПодсистемы.ПодключаемыеКоманды
    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
    // Конец СтандартныеПодсистемы.ПодключаемыеКоманды

Ну и в общем модуле ПодключаемыеКоманды ....
Здесь текст приводить не буду.
9 Новый1сник2
 
16.08.17
15:02
видимо в основное меню печать, свое подменю не добавить
10 Новый1сник2
 
16.08.17
15:04
подскажите как из формы документа, обращаться к процедуре печать (в модуле менеджера).
делаю так:
Процедура ПечатьФиз()
    
    МассивОбъектов = Новый Массив();
    МассивОбъектов.Добавить(Объект.Ссылка);
    
    КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
    КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ");
    КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
    КоллекцияПечатныхФорм.Колонки.Добавить("Картинка");
    КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету");
    КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета");
    КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент");
    КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров");
    
    Стр = КоллекцияПечатныхФорм.Добавить();
    Стр.ИмяМакета = "ДоговорФиз";
    Стр.ПолныйПутьКМакету = "Документ.асЗаказНаряд.ДоговорФиз";

    Стр.Экземпляров = 1;
    
    ОбъектыПечати = Новый СписокЗначений;
    
    ПараметрыПечати = Новый Структура;
    ПараметрыПечати.Вставить("ДополнитьКомплектВнешнимиПечатнымиФормами", Ложь);

    
    ПараметрыОтправки = Новый Структура;
    ПараметрыОтправки.Вставить("Получатель", Неопределено);
    ПараметрыОтправки.Вставить("Текст", "");
    ПараметрыОтправки.Вставить("Тема", "");
    
    ПараметрыВывода = Новый Структура;
    ПараметрыВывода.Вставить("ДоступнаПечатьПоКомплектно", Истина);
    ПараметрыВывода.Вставить("ПараметрыОтправки", ПараметрыОтправки);

    Документы.асЗаказНаряд.Печать(МассивОбъектов,ПараметрыПечати,КоллекцияПечатныхФорм ,ОбъектыПечати,ПараметрыВывода);
    
КонецПроцедуры
11 Новый1сник2
 
16.08.17
15:05
и на клиенте

&НаКлиенте
Процедура ПечатьФизКнопка(Команда)
    ПечатьФиз();    
    
КонецПроцедуры
12 Любопытная
 
16.08.17
15:06
(11) Экспорт добавь
13 Новый1сник2
 
16.08.17
15:11
(12) экспорт у печать() есть в модуле менеджера
14 Любопытная
 
16.08.17
15:14
(13) не вижу)
15 Любопытная
 
16.08.17
15:15
(13) ну и как бы надо обозначить чей метод ты вызываешь. Раз уж метод в модуле менеджера, то обратись к менеджеру
16 Новый1сник2
 
16.08.17
15:16
Процедура Печать(МассивОбъектов,
                 ПараметрыПечати,
                 КоллекцияПечатныхФорм,
                 ОбъектыПечати,
                 ПараметрыВывода) Экспорт
17 Любопытная
 
16.08.17
15:18
(16) теперь про менеджера вспомни)
18 Новый1сник2
 
16.08.17
15:21
как к менеджеру обратиться?
19 Любопытная
 
16.08.17
15:23
(18) По имени-отчеству
Например Документы.ПоступлениеТМЦ ...
20 Новый1сник2
 
16.08.17
15:26
Документы.асЗаказНаряд.Печать(МассивОбъектов,ПараметрыПечати,КоллекцияПечатныхФорм ,ОбъектыПечати,ПараметрыВывода); ?
21 Новый1сник2
 
16.08.17
16:32
может еще варианты есть по теме?
22 Любопытная
 
16.08.17
16:33
(21) а что, не получилось?
23 Новый1сник2
 
16.08.17
16:38
нет, при нажатии кнопки ничего не происходит.
в отладке в строку попадает
Документы.асЗаказНаряд.Печать(МассивОбъектов,ПараметрыПечати,КоллекцияПечатныхФорм ,ОбъектыПечати,ПараметрыВывода);
24 Любопытная
 
16.08.17
16:42
(23) Так в модуле менеджера Печать или ПечатьФиз? Где что формируется-то?
25 Новый1сник2
 
16.08.17
16:45
(24) в модуле менеджера типовая процедура Печать()
нужно из модуля формы распечатать документ
для этого сделал в модуле формы процедуру ПечатьФиз()
26 Любопытная
 
16.08.17
16:46
(25) а параметры печати заполнил? в типовой уже давно же посмотреть можно было
27 Новый1сник2
 
16.08.17
16:53
(26) в типовой и смотрел, видимо еще какие то параметры нужны)
28 Любопытная
 
16.08.17
16:56
(27) Плохо смотрел.
Тебе надо достучаться вот до этой процедуры
// Формирует и выводит на экран печатные формы.
//
// Параметры:
//  ИмяМенеджераПечати - Строка - менеджер печати для печатаемых объектов;
//  ИменаМакетов       - Строка - идентификаторы печатных форм;
//  МассивОбъектов     - Ссылка, Массив - объекты печати;
//  ВладелецФормы      - УправляемаяФорма - форма, из которой выполняется печать;
//  ПараметрыПечати    - Структура - произвольные параметры для передачи в менеджер печати.
//
Процедура ВыполнитьКомандуПечати(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ВладелецФормы, ПараметрыПечати = Неопределено) Экспорт
    
    // Проверим количество объектов.
    Если НЕ ПроверитьКоличествоПереданныхОбъектов(МассивОбъектов) Тогда
        Возврат;
    КонецЕсли;
    
    // Получим ключ уникальности открываемой формы.
    КлючУникальности = Строка(Новый УникальныйИдентификатор);
    
    ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати");
    ПараметрыОткрытия.ИмяМенеджераПечати = ИмяМенеджераПечати;
    ПараметрыОткрытия.ИменаМакетов         = ИменаМакетов;
    ПараметрыОткрытия.ПараметрКоманды     = МассивОбъектов;
    ПараметрыОткрытия.ПараметрыПечати     = ПараметрыПечати;
    
    // Откроем форму печати документов.
    ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, КлючУникальности);
    
КонецПроцедуры