Добавление команд печати в свой документ на БСП 3.0.2.264

 Добавление команд печати в данной версии БСП будет несколько отличаться от предыдущих версий.

 1. Для начала необходимо прописать наш документ в общем модуле

ПодключаемыеКомандыПереопределяемый.УниверсальнаяСтруктураОписанияОбъектовПодключаемыхКоманд()

в массив "ИменаДокументов"

        ...       
    ИменаДокументов.Добавить("ОстаткиЕГАИС");
	ИменаДокументов.Добавить("ТТНВходящаяЕГАИС");
	ИменаДокументов.Добавить("ТТНИсходящаяЕГАИС");
	//++ZAV RSSIB04.06.19
	ИменаДокументов.Добавить("бпфАктЗабоя");
	//++ZAV RSSIB04.06.19
	
	
	
	СтруктураОписания = Новый Структура;
	СтруктураОписания.Вставить("Справочники", ИменаСправочников);
	СтруктураОписания.Вставить("Документы", ИменаДокументов);
	
	Возврат СтруктураОписания;
        ...

Это надо будет сделать так же, чтоб подключать и другие команды к форме и форме списка нашего документа.

2. Для подключения команды печати к форме документа необходимо в процедуре  "ПриСозданииНаСервере" добавить:

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

И так же в модуль формы добавить следующий блок процедур:

   // СтандартныеПодсистемы.ПодключаемыеКоманды
   &НаКлиенте 
   Процедура Подключаемый_ВыполнитьКоманду(Команда)
             ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
   КонецПроцедуры 

   &НаСервере
   Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
          ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
   КонецПроцедуры 

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

3. Для подключения команды печати в форме списка документа добавить:

&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
         УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Элементы.Список)
КонецПроцедуры

&НаСервере
Процедура НастройкиДинамическогоСписка()
         Отчеты.РеестрДокументов.НастройкиДинамическогоСписка(ЭтотОбъект);
КонецПроцедуры

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте 
Процедура Подключаемый_ВыполнитьКоманду(Команда)
         Если Команда.Имя = "ПодменюПечатьОбычное_Реестр" Тогда 
             НастройкиДинамическогоСписка();
         КонецЕсли;
         ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
          ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
          ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

 4. Добавить само создание команды в модуле менеджера документа:

// ПРОЦЕДУРЫ И ФУНКЦИИ ПЕЧАТИ

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

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

5. Добавить процедуру Печать тоже в модуль менеджера:

// Сформировать печатные формы объектов
//
// ВХОДЯЩИЕ:
//   ИменаМакетов    - Строка    - Имена макетов, перечисленные через запятую.
//   МассивОбъектов  - Массив    - Массив ссылок на объекты которые нужно распечатать.
//   ПараметрыПечати - Структура - Структура дополнительных параметров печати.
//
// ИСХОДЯЩИЕ:
//   КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы.
//   ПараметрыВывода       - Структура        - Параметры сформированных табличных документов.
//
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

	ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;

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

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

6. Добавить процедуру формирования печатной формы в модуль менеджера:

Функция ПечатьАктаЗабоя(МассивОбъектов, ОбъектыПечати)

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

	Возврат ТабДокумент;

КонецФункции
 

 

Автоматизация хаоса

Контакты:

Телефон: +7 963 570 26 00

E-mail: al_zzz@mail.ru

Дизайн сайта:

Веб-дизайн и верстка: Зелёнкина Елена

8 963 578 05 35, lena_431@mail.ru