🔥 Горящие вакансии
Все статьи

Подключение Подключаемых Команд и Печати к новому документу в 1С УХ с БСП

Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в Neti

Рассмотрим подключение к новому документу ПодключаемыхКоманд и Печати на примере конфигурации Управление холдингом 3.0.6.8 с номером версии Библиотеки стандартных подсистем 3.0.1.428.

Для того чтобы подключить печатную форму к новому документу конфигурации, нужно (*код, который нужно добавить в процедуры, можно посмотреть в формах типовых документов конфигурации):

1. Добавить механизм ПодключаемыхКоманд к форме документа ФормаДокумента:

1.1. Добавить код в процедуру ПриСозданииНаСервере.

1.2. Добавить код в процедуру ПриЧтенииНаСервере.

1.3. Добавить код в процедуру ПриОткрытии.

1.4. Добавить три процедуры: Подключаемый_ВыполнитьКоманду, Подключаемый_ВыполнитьКомандуНаСервере, Подключаемый_ОбновитьКоманды.

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

2.1. Добавить код в процедуру ПриСозданииНаСервере.

2.2. Добавить код в процедуру СписокПриАктивизацииСтроки ([ИмяТаблицыНаФорме]ПриАктивизацииСтроки).

2.3. Добавить три процедуры: Подключаемый_ВыполнитьКоманду, Подключаемый_ВыполнитьКомандуНаСервере, Подключаемый_ОбновитьКоманды.

3. Прописать процедуры печати в Модуле менеджера документа:

3.1. Добавить экспортную процедуру ДобавитьКомандыПечати (название и параметр должны быть именно такими).

Предположим, что хотим добавить печатную форму Предложения по лизингу с идентификатором ПредложенияПоЛизингу:

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "ПредложенияПоЛизингу";
	КомандаПечати.Представление = НСтр("ru = 'Предложения по лизингу'");
	КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
	КомандаПечати.СписокФорм = "ФормаСписка,ФормаДокумента";
	КомандаПечати.Порядок = 10;	
КонецПроцедуры

3.2. Добавить экспортную процедуру Печать (название и параметры должны быть именно такими):

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

3.3. Добавить функцию ПечатьДокумента (имя процедуры и параметры, как прописано в процедуре Печать):

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

	ПервыйДокумент = Истина;

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

4. В Общем модуле УправлениеПечатьюПереопределяемый в процедуру ПриОпределенииОбъектовСКомандамиПечати добавить новый документ, например,

СписокОбъектов.Добавить(Документы.ИмяНовогоДокумента);

В итоге на форме списка и на форме документа появится кнопка печати Предложения по лизингу (рис. 1–2):

Подключение Подключаемых Команд и Печати к новому документу в 1С УХ с БСП

Рис. 1. Кнопка печати на форме списка

Подключение Подключаемых Команд и Печати к новому документу в 1С УХ с БСП

Рис. 2. Кнопка печати на форме документа

Стас

хорошая статья

14.11.2023


Оставить коментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Раз в квартал — дайджест достойный внимания

Вести с полей 1С, кейсы работы с заказчиками и вакансии на удалёнке

Image

Отправить резюме

    Я согласен на обработку персональных данных в соответствии
    со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

    Отправить резюме

      Я согласен на обработку персональных данных в соответствии
      со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

      Pекомендовать друга

        Отправьте контактные данные вашего друга и предупредите его, что мы с ним свяжемся. Когда друг успешно отработает 3 месяца, вы получите 20 000 ₽.


        Выбрать вакансию
        • Ведущий аналитик 1С
        • Программист 1С
        • Консультант-аналитик 1С
        • Проекты для команды специалистов 1С
        • Проекты для специалистов 1С
        • Стажёр-программист 1С
        • Bitrix-разработчик
        Я согласен на обработку персональных данных в соответствии
        со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

        Pекомендовать друга

          Отправьте контактные данные вашего друга и предупредите его, что мы с ним свяжемся. Когда друг успешно отработает 3 месяца, вы получите 20 000 ₽.


          Выбрать вакансию
          • Ведущий аналитик 1С
          • Программист 1С
          • Консультант-аналитик 1С
          • Проекты для команды специалистов 1С
          • Проекты для специалистов 1С
          • Стажёр-программист 1С
          • Bitrix-разработчик
          Я согласен на обработку персональных данных в соответствии
          со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

          Спасибо!

          Мы получили ваше резюме. Менеджер свяжется с вами в течение трех дней

          Горящие вакансии