УНФ для Грузии 1.6.10.44
Создал свой документ. Поскольку действий никаких он не делает, создал не копированием, а просто новый. Теперь хочу добавить печатную форму. Что сделал:
1. В форме ПриСозданииНаСервере добавил
ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере(ЭтаФорма);
УправлениеПечатью.ПриСозданииНаСервере(ЭтотОбъект, Элементы.ГруппаКомандПечати);
2. В модуле менеджера добавил Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода). Указал свою печатную форму в
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию
3. В модуле менеджера добавил ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, ИмяМакета), где вызываю свой СформироватьМакет
4. Добавлил СформироватьМакет с полезным алгоритмом
5. Добавил в форму Подключаемый_ВыполнитьКомандуПечати. Не могу найти, к чему этот метод должен привзяываться.
Что еще я упустил?
Если используется БСП - можно проверить версию
&НаСервереБезКонтекста
Функция ВерсияБСПНаСервере()
Возврат СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
КонецФункции
// СтандартныеПодсистемы.Печать
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма,
Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Печать
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результа
т);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область Печать
// Заполняет список команд печати.
//
// Параметры:
// КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.С
оздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КонецПроцедуры
// Сформировать печатные формы объектов
//
// ВХОДЯЩИЕ:
// ИменаМакетов - Строка - Имена макетов, перечисленные через запятую
// МассивОбъектов - Массив - Массив ссылок на объекты которые нужно распечатать
// ПараметрыПечати - Структура - Структура дополнительных параметров печати
//
// ИСХОДЯЩИЕ:
// КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
// ПараметрыВывода - Структура - Параметры сформированных табличных до
кументов
//
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечат
и, ПараметрыВывода) Экспорт
ФормированиеПечатныхФорм.ЗаполнитьПараметрыОтправки(ПараметрыВывода.Параметры
Отправки, МассивОбъектов, КоллекцияПечатныхФорм);
КонецПроцедуры
Функция ДоступныеДляШаблоновПечатныеФормы() Экспорт
МассивДоступныхПечатныхФорм = Новый Массив;
Возврат МассивДоступныхПечатныхФорм
КонецФункции
#КонецОбласти
#КонецЕсли
Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
СписокОбъектов.Добавить(Документы.НовыйДокумент);
КонецПроцедуры
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Функция СведенияОВнешнейОбработке() Экспорт
СведенияОВнешнейОбработке = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОб
работке("2.3.1.73");
СведенияОВнешнейОбработке.Вставить("Вид", ДополнительныеОтчетыИОбработкиКлиен
тСервер.ВидОбработкиПечатнаяФорма());
СведенияОВнешнейОбработке.Вставить("Назначение", ПолучитьНазначениеОбработки
());
СведенияОВнешнейОбработке.Вставить("Наименование", "Новый документ");
СведенияОВнешнейОбработке.Вставить("Версия", "1.0");
СведенияОВнешнейОбработке.Вставить("Информация", "Новый документ");
СведенияОВнешнейОбработке.Вставить("БезопасныйРежим", Ложь);
СформироватьСписокКоманд(СведенияОВнешнейОбработке.Команды);
Возврат СведенияОВнешнейОбработке;
КонецФункции
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывод
а) Экспорт
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФор
м, "НовыйДокумент");
Если ПечатнаяФорма <> Неопределено Тогда
ПечатнаяФорма.ТабличныйДокумент = СформироватьПечатнуюФорму(МассивОбъ
ектов);
ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Новый документ'");
КонецЕсли;
КонецПроцедуры
#КонецОбласти
Функция СформироватьПечатнуюФорму(МассивОбъектов) Экспорт
Док = МассивОбъектов[0];
//Тут заполняем печатную форму
//Макет = ПолучитьМакет("Макет");
//ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
//ТабличныйДокумент.Вывести(ОбластьЗаголовок);
ТабличныйДокумент = Новый ТабличныйДокумент;
Возврат ТабличныйДокумент;
КонецФункции
#Область СлужебныеПроцедурыИФункции
Функция ПолучитьНазначениеОбработки()
Результат = Новый Массив;
Результат.Добавить("Документ.НовыйДокумент");
Возврат Результат;
КонецФункции
Функция ПолучитьСтруктуруТаблицыКоманд()
Результат = Новый ТаблицаЗначений;
Результат.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Результат.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Результат.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Результат.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булев
о"));
Результат.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Результат;
КонецФункции
Процедура ДобавитьКоманду(Команды, Идентификатор, Представление, Использование, Показ
ыватьОповещение = Ложь, Модификатор = Неопределено)
НоваяКоманда = Команды.Добавить();
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Представление = Представление;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура СформироватьСписокКоманд(Команды)
ДобавитьКоманду(Команды, "НовыйДокумент", "Новый документ", ДополнительныеОтч
етыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Истина);
КонецПроцедуры
#КонецОбласти
#КонецЕсли
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.Печать
УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма, Элементы.ПодменюПечать);
// Конец СтандартныеПодсистемы.Печать
КонецПроцедуры
#Область ОбработчикиКомандФормы
// СтандартныеПодсистемы.Печать
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма,
Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Печать
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
#КонецОбласти
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Спис
ок);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Р
езультат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
Ещё скорее всего нужно посмотреть какой-то типовой документ и на самой форме повставлять аналогичные служебные группы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua