Имя: Пароль:
1C
 
Как создать кнопку печать в созданном в конфигураторе документе?
0 gabd_marat
 
07.07.17
10:55
Народ, подскажите как создать кнопку печать документе и подцепить функции печати?
1 h-sp
 
07.07.17
11:01
(0) продублировать всё, что есть по печати в других, типовых документах. В модуле менеджера и в модуле формы там что-то есть
2 Ёпрст
 
07.07.17
11:01
(0) Нанять кодера
нанять вминяемого спрашивальщика на форуме.
3 gabd_marat
 
07.07.17
14:22
(1) Продублировал функции печати из модуле менеджер документа, изменил под свою задачу, создал команду в конструкторе печати, но не работает, поэтому думал может есть стандартные методы создания такой же кнопки как и в стандартных документах (без использования конструктора печати , может надо кукую-либо обработку подключать )
4 Гипервизор
 
07.07.17
14:24
(3) А форма-то обычная или необычная?
5 gabd_marat
 
07.07.17
16:31
(4) управляемая
6 gabd_marat
 
07.07.17
16:31
8.3 платформа
7 Slypower
 
07.07.17
16:38
(3) а на кнопку повесили код?
8 Strogg
 
07.07.17
16:46
(3) Если создал команду, выбрал тип параметра команды, написал код в команде (путь к менеджеру объекта), то на форме ничего не надо вешать - достаточно определить ее положение в свойствах команды. (задается в группе). Эта кнопка потом автоматом появляется в командной панели.
9 gabd_marat
 
07.07.17
19:45
(8) Хорошо посмотрю, сейчас не за компьютером,просто посмотрев стандартные документы там не создана конструктором команда печати, думал может нужна подписка на событие или добавить в обработки
10 gabd_marat
 
07.07.17
20:43
(8) Вот функции и процедуры печати из модуля менеджера
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ПЕЧАТИ

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

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

    // Проверяем, нужно ли для макета Накладная формировать табличный документ.
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПеремещениеПечать") Тогда
        // Формируем табличный документ и добавляем его в коллекцию печатных форм.
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПеремещениеПечать", "Перемещение товаров",
            ПечатьПеремещениеТоваров(МассивОбъектов, ОбъектыПечати), , "Документ.ПеремещениеТовараСоСклада.Печать");
    КонецЕсли;
    
    ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);    

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

// Функция формирует табличный документ с печатной формой накладной,
// разработанной методистами
//
// Возвращаемое значение:
//  Табличный документ - печатная форма накладной
//
Функция ПечатьПеремещениеТоваров(МассивОбъектов, ОбъектыПечати)
    
    УстановитьПривилегированныйРежим(Истина);
    
    ТекстЗапроса =
    "ВЫБРАТЬ
    |    ПеремещениеТовараСоСклада.Ссылка КАК Ссылка,
    |    ПеремещениеТовараСоСклада.Дата КАК Дата,
    |    ПеремещениеТовараСоСклада.СкладОтправитель,
    |    ПеремещениеТовараСоСклада.СкладПолучатель,
    |    ПеремещениеТовараСоСклада.Ответственный,
    |    ПеремещениеТовараСоСклада.Товары.(
    |        Номенклатура,
    |        Количество
    |    ),
    |    ПеремещениеТовараСоСклада.Дата КАК ДатаНач,
    |    ПеремещениеТовараСоСклада.Дата КАК ДатаКон
    |ИЗ
    |    Документ.ПеремещениеТовараСоСклада КАК ПеремещениеТовараСоСклада
    |ГДЕ
    |    ПеремещениеТовараСоСклада.Ссылка В(&МассивОбъектов)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Дата,
    |    Ссылка
    |ИТОГИ
    |    МИНИМУМ(ДатаНач),
    |    МАКСИМУМ(ДатаКон)
    |ПО
    |    ОБЩИЕ";
    
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    Запрос.Текст = ТекстЗапроса;

    ШапкаИтоги = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.АвтоМасштаб            = Истина;
    ТабличныйДокумент.ОриентацияСтраницы    = ОриентацияСтраницы.Портрет;
    ТабличныйДокумент.ИмяПараметровПечати    = "ПАРАМЕТРЫ_ПЕЧАТИ_ПеремещениеТоваров";

    Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ПеремещениеТовараСоСклада.Печать");

    Если ШапкаИтоги.Следующий() Тогда

        ДатаНач = ?(ЗначениеЗаполнено(ШапкаИтоги.ДатаНач), ШапкаИтоги.ДатаНач, '00010101');
        ДатаКон = ?(ЗначениеЗаполнено(ШапкаИтоги.ДатаКон), ШапкаИтоги.ДатаКон, '00010101');

        СтруктураПоиска = Новый Структура("Регистратор, Номенклатура");

        ПервыйДокумент = Истина;
        Шапка = ШапкаИтоги.Выбрать();
        Пока Шапка.Следующий() Цикл
            ВыборкаСтрокТовары = Шапка.Товары.Выбрать();
            
            Если Не ПервыйДокумент Тогда
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЕсли;
            
            ПервыйДокумент = Ложь;
            // Запомним номер строки, с которой начали выводить текущий документ.
            НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
            
            ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
            ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначенияБПВызовСервера.СформироватьЗаголовокДокумента(Шапка, "Пернемещение товаров");
            ТабличныйДокумент.Вывести(ОбластьМакета);

            ОбластьМакета = Макет.ПолучитьОбласть("ШапкаРеквизиты");
            ОбластьМакета.Параметры.Заполнить(Шапка);
            СведенияОбОрганизации    = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
            ПредставлениеОрганизации = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,");
            ОбластьМакета.Параметры.ПредставлениеОрганизации = ПредставлениеОрганизации;
            ТабличныйДокумент.Вывести(ОбластьМакета);


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


            ТабличныйДокумент.Вывести(ОбластьШапкаТовары);

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

            Ном = 0;
            
            Пока ВыборкаСтрокТовары.Следующий() Цикл

                Ном = Ном + 1;
                ОбластьТовары.Параметры.Заполнить(ВыборкаСтрокТовары);
                ОбластьТовары.Параметры.НомерСтроки = Ном;
                ОбластьТовары.Параметры.Номенклатура =  ВыборкаСтрокТовары.Номенклатура;
                ОбластьТовары.Параметры.Количество = ВыборкаСтрокТовары.Количество;


                ТабличныйДокумент.Присоединить(ОбластьТовары);
            КонецЦикла;
            
            // Вывести подписи
            ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
            ТабличныйДокумент.Вывести(ОбластьМакета);
                
            // В табличном документе зададим имя области, в которую был
            // выведен объект. Нужно для возможности печати покомплектно.
            УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент,
                НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);
            
        КонецЦикла;
    
    КонецЕсли;

    Возврат ТабличныйДокумент;
КонецФункции
11 gabd_marat
 
08.07.17
00:03
Вроде разобрался как формировать печать документа через конструктор печати, но все же интересно как можно вывести кнопку печати и сформировать печать документа программно без конструктора печати с теми же возможностями? Подскажите литературу
12 Мимохожий Однако
 
08.07.17
06:51
(11) БСП