|
В таб.документе нет стандартных кнопок таких как "печать", кол-во копий и др. | ☑ | ||
---|---|---|---|---|
0
Сергей Роспатнюк
06.04.18
✎
16:59
|
Подскажите что я делаю не так, форма открывается из формы по команде открывается табличный документ но на нем нет стандартных кнопок таких как печать, кол-во копий и др. И почему-то название открывшегося окна (Таблица) а не (Печать Документа)
Платформа 1С:Предприятие 8.3 (8.3.10.2580) Конфигурация Зарплата и управление персоналом, редакция 3.1 (3.1.5.129) вот код на форме &НаКлиенте Процедура Печать(ИдентификаторКоманды, ОбъектыНазначения) Экспорт этаформа.Открыть(); СсылкаНаОбъект = этаформа.Объект.СсылкаНаОбъект; КонецПроцедуры &НаКлиенте Процедура Команда(Команда, СсылкаНаОбъект) СсылкаНаОбъект = этаформа.Объект.СсылкаНаОбъект; КакаяТо(СсылкаНаОбъект).Показать(); КонецПроцедуры &НаСервере функция КакаяТо(СсылкаНаОбъект) КоллекцияПечатныхФорм = ПодготовитьКоллекциюПечатныхФорм("ПисьмоОТрудовой"); СсылкаНаОбъект=этаформа.Объект.СсылкаНаОбъект; ОбъектОбработка = РеквизитФормыВЗначение("Объект"); ТаблДок = ОбъектОбработка.ДАПечатайУже(СсылкаНаОбъект); Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДоговорНов") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, "ПечатнаяФорма", НСтр("ru='ПисьмоОТрудовой'"), ТаблДок, , ,"ФайлПечати"); Иначе УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, "ПечатнаяФорма", НСтр("ru='ДоговорНовый'"), ТаблДок, , ,"ФайлПечати"); КонецЕсли; возврат ТаблДок; Конецфункции Функция ПодготовитьКоллекциюПечатныхФорм(ИменаМакетов) Экспорт Макеты = Новый ТаблицаЗначений; Макеты.Колонки.Добавить("ИмяМакета"); Макеты.Колонки.Добавить("ИмяВРЕГ"); Макеты.Колонки.Добавить("СинонимМакета"); Макеты.Колонки.Добавить("ТабличныйДокумент"); Макеты.Колонки.Добавить("Экземпляров"); Макеты.Колонки.Добавить("Картинка"); Макеты.Колонки.Добавить("ПолныйПутьКМакету"); Макеты.Колонки.Добавить("ИмяФайлаПечатнойФормы"); Если ТипЗнч(ИменаМакетов) = Тип("Строка") Тогда ИменаМакетов = СтрРазделить(ИменаМакетов, ","); КонецЕсли; Для Каждого ИмяМакета Из ИменаМакетов Цикл Макет = Макеты.Найти(ИмяМакета, "ИмяМакета"); Если Макет = Неопределено Тогда Макет = Макеты.Добавить(); Макет.ИмяМакета = ИмяМакета; Макет.ИмяВРЕГ = ВРег(ИмяМакета); Макет.Экземпляров = 1; Иначе Макет.Экземпляров = Макет.Экземпляров + 1; КонецЕсли; КонецЦикла; Возврат Макеты; КонецФункции Вот Код в модуле Объекта Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; МассивНазначений = Новый Массив; ТаблицаКоманд = ПолучитьТаблицуКоманд(); МассивНазначений.Добавить ("Справочник.Сотрудники"); //Документ.Отпуск ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'ПисьмоОТрудовой'")); ПараметрыРегистрации.Вставить("Версия", "1.0"); ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь); //Истина ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Дополнительная печатная форма для ПисьмоОТрудовой'")); //ДобавитьКоманду(ТаблицаКоманд, НСтр("ru = 'ПисьмоОНевыходах'"), "ПисьмоОНевыходах", "ВызовСерверногоМетода", Истина, "ПечатьMXL"); // процедуры печати в этом модуле ДобавитьКоманду(ТаблицаКоманд, НСтр("ru = 'ПисьмоОТрудовой'"), "ПисьмоОТрудовой", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL"); // процедуры печати в отдельной форме ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") функция ДАПечатайУже(СсылкаНаОбъект) Экспорт УстановитьПривилегированныйРежим(Истина); МассивОбъектов = СсылкаНаОбъект; _ТабДок = Новый ТабличныйДокумент; _ТабДок.АвтоМасштаб = Истина; _ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; _ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПисьмоОТрудовой"; _МакетДог = ПолучитьМакет("ПисьмоОТрудовой"); МассивПараметров = ПолучитьКоллекциюДанныхДляВсехМакетов2(СсылкаНаОбъект); // МассивОбъектов _ОбластьМакетаТаблица = _МакетДог.ПолучитьОбласть("Таблица"); _ОбластьМакетаТаблица.Параметры.Заполнить(МассивПараметров); _ТабДок.Вывести(_ОбластьМакетаТаблица); возврат _ТабДок; Конецфункции |
|||
1
b_ru
06.04.18
✎
17:07
|
Ну ты же Табличный документ открываешь, а не форму. А чтобы были кнопочки, нужно записать его на форму и показывать уже форму.
|
|||
2
Сергей Роспатнюк
06.04.18
✎
17:22
|
(1) Странно почему-то другие обработки с вызовом клиентского метода работаю без этого правда там вообще нет форм и немного проще по этому. у меня подозрение что я не правильно использую УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию.
ну если можно создать вторую форму и записать туда _ТабДок и все будет норм тогда попробую так сделать, Спасибо за подсказку. |
|||
3
b_ru
06.04.18
✎
17:33
|
(2) Если ты хочешь использовать БСП и ее форму - используй ее. В таком случае не нужно
короче не до конца докопипастил стандартные процедуры печати. Нужно прописать свою ПФ в функциях ДобавитьКомандыПечати(), Печать() и ПечатнаяФорма() модуля менеджера объекта |
|||
4
Сергей Роспатнюк
06.04.18
✎
17:37
|
(3) делема в том что в печати нужно открыть форму где задается вопрос Какой адрес? и в зависимости от ответа меняется заполнение ТабДока.
|
|||
5
b_ru
06.04.18
✎
17:43
|
(4) Правильнее сделать реквизит, который позволяет выбрать адрес, ну и печать по умолчанию с первым попавшимся. Это для потенциальной ситуации с печатью кучи объектов сразу в регламентном задании.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |