Имя: Пароль:
1C
1С v8
Настройка Командной панели в управляемой форме - кнопка Печать
,
0 Tornadius
 
21.10.14
11:22
Конфигурация 1с 8.3 КОРП
Задача: На автозаполняемую коммандную панель формы документа вывести кнопку "Печать" с подключенными внешними печатными формами. Внешние формы подключаются стандартно. Необходимо организовать все в документе.
Кнопка "Печать" исчезла и не хочет возвращаться на свое место.
Что делать?
1 Kamas
 
21.10.14
11:24
(0) вы модуль менеджера не трогали))??
2 Fish
 
21.10.14
11:26
(0) "Что делать?" - разобраться в механизме, который отображает кнопку "печать". А дальше всё просто.
3 Tornadius
 
21.10.14
11:36
(1) (2) Помогите разобраться. Галочку "Автозаполнение командной панели" снимать нельзя.
4 Tornadius
 
21.10.14
11:39
(1)В модуле менеджера пусто. Я стараюсь получить стандартную кнопку "Печать" которая автоматически ставится на документ. Пока не выходит.
5 Любопытная
 
21.10.14
11:39
(3) в общих командах есть команда ДополнительныеПечатныеФормыОбъекта. Посмотрите в списке ее типов включен ли ваш документ.
6 Tornadius
 
21.10.14
11:52
(5) Спасибо. Кнопка "Печать" появилась. Но немного не правильно. Вместо того, что бы по боковой стрелочке "вниз" открывать список присоедененных внешних печатных форм, там только одна строка "Внешние печатные формы" и при нажатии открывается дополнительное окно со списком присоедененных внешних печатных форм и нужно выбирать из него. Как сделать список не в дополнительном окне а сразу под кнопкой "Печать"?
7 Любопытная
 
21.10.14
11:55
Ну так уж в БСП сделано
8 Tornadius
 
21.10.14
12:02
Тогда почему в 1С:Предприятие 8.3 (8.3.4.437) Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.36.13) это возможно? Там как раз внешние печатные формы выбираются из списка а не из дополнительной формы выбора.
9 Любопытная
 
21.10.14
12:03
Да, вот смотрю, что в зупе у меня тоже в общем списке они.
10 Tornadius
 
21.10.14
12:06
Я пытался скопировать подсистему Печати из типовой в свою конфигурацию, - не получилось. Так и не нашел где и как список у кнопки печать формируется.
11 Любопытная
 
21.10.14
12:14
(10) // Размещает команды печати на форме.
//
// Параметры:
//   Форма                            - УправляемаяФорма - форма, в которой необходимо разместить подменю Печать.
//   МестоРазмещенияКомандПоУмолчанию - ЭлементФормы - группа, в которую необходимо разместить подменю Печать,
//                                                     по умолчанию размещается в командную панель формы.
//   ОбъектыПечати                    - Массив - список объектов метаданных, для которых необходимо сформировать
//                                               объединенное подменю Печать.
Процедура ПриСозданииНаСервере(Форма, МестоРазмещенияКомандПоУмолчанию = Неопределено, ОбъектыПечати = Неопределено) Экспорт
    
    КомандыПечати = КомандыПечатиФормы(Форма, ОбъектыПечати);
    Если МестоРазмещенияКомандПоУмолчанию <> Неопределено Тогда
        Для Каждого КомандаПечати Из КомандыПечати Цикл
            Если ПустаяСтрока(КомандаПечати.МестоРазмещения) Тогда
                КомандаПечати.МестоРазмещения = МестоРазмещенияКомандПоУмолчанию.Имя;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    
    КомандыПечати.Колонки.Добавить("ИмяКомандыНаФорме", Новый ОписаниеТипов("Строка"));
    
    ТаблицаКоманд = КомандыПечати.Скопировать(,"МестоРазмещения");
    ТаблицаКоманд.Свернуть("МестоРазмещения");
    МестаРазмещения = ТаблицаКоманд.ВыгрузитьКолонку("МестоРазмещения");
    
    Для Каждого МестоРазмещения Из МестаРазмещения Цикл
        НайденныеКоманды = КомандыПечати.НайтиСтроки(Новый Структура("МестоРазмещения,СкрытаФункциональнымиОпциями", МестоРазмещения, Ложь));
        
        ЭлементФормыДляРазмещения = Форма.Элементы.Найти(МестоРазмещения);
        Если ЭлементФормыДляРазмещения = Неопределено Тогда
            ЭлементФормыДляРазмещения = МестоРазмещенияКомандПоУмолчанию;
        КонецЕсли;
        
        Если НайденныеКоманды.Количество() > 0 Тогда
            ДобавитьКомандыПечати(Форма, НайденныеКоманды, ЭлементФормыДляРазмещения);
        КонецЕсли;
    КонецЦикла;
    
    АдресКомандПечатиВоВременномХранилище = "АдресКомандПечатиВоВременномХранилище";
    КомандаФормы = Форма.Команды.Найти(АдресКомандПечатиВоВременномХранилище);
    Если КомандаФормы = Неопределено Тогда
        КомандаФормы = Форма.Команды.Добавить(АдресКомандПечатиВоВременномХранилище);
        КомандаФормы.Действие = ПоместитьВоВременноеХранилище(КомандыПечати, Форма.УникальныйИдентификатор);
    Иначе
        ОбщийСписокКомандПечатиФормы = ПолучитьИзВременногоХранилища(КомандаФормы.Действие);
        Для Каждого КомандаПечати Из КомандыПечати Цикл
            ЗаполнитьЗначенияСвойств(ОбщийСписокКомандПечатиФормы.Добавить(), КомандаПечати);
        КонецЦикла;
        КомандаФормы.Действие = ПоместитьВоВременноеХранилище(ОбщийСписокКомандПечатиФормы, Форма.УникальныйИдентификатор);
    КонецЕсли;
    
КонецПроцедуры

В общем модуле УправлениеПечатью
12 Tornadius
 
21.10.14
12:21
(11) А в модуле формы документа есть:
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // СтандартныеПодсистемы.Печать
    УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма, Элементы.ГруппаВажныеКоманды);
    // Конец СтандартныеПодсистемы.Печать
    
    // ДополнительныеОтчетыИОбработки
    ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере(ЭтаФорма);
    // Конец ДополнительныеОтчетыИОбработки
    
КонецПроцедуры
13 Любопытная
 
21.10.14
12:26
Ну вот там и смотри.
14 Любопытная
 
21.10.14
12:33
Там дальше есть ДобавитьКомандыПечати тоже в модуле УправлениеПечатью.
А, так собственно. Тебе надо в ПриСозданииНаСервере вызвать сначала
ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере(ЭтаФорма);
а потом уже
УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма, Элементы.ГруппаВажныеКоманды);

Сначала надо дополнительную команду получить, а потом прорисовывать
15 Tornadius
 
21.10.14
12:44
Поменял местами. Фокус не удался. Я так думаю надо сперва список доп форм получить , а потом его в УправлениеПечатью передавать.
16 Любопытная
 
21.10.14
12:47
Каких доп форм?
17 Tornadius
 
21.10.14
13:12
Подключенных к документу. Их же может быть неколько
18 Любопытная
 
21.10.14
13:13
ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере(ЭтаФорма);
А вот здесь разве не оно самое происходит?