Параметры для дополнительных отчетов и обработок БСП

18.10.17

Разработка - БСП (Библиотека стандартных подсистем)

Еще один вариант передачи параметров во внешние обработки БСП. Параметры привязываются к командам дополнительной обработки и хранятся в элементе справочника.

Данный подход подойдет для конфигураций с БСП. Реализацию разделим на три этапа.

Этап 1.  Внесение изменений в конфигурацию (неприятный этап). Добавление табличной части в справочник  "ДополнительныеОтчетыИОбработки"

Этап 2. Добавление табличной части на форму Дополнительной обработки с настройкой обработчиков событий для связки параметров с командами. Для этого можно использовать механизм расширений конфигурации и выглядеть например как на картинке.

Этап 3. Использование параметров непосредственно во внешней обработке. Рассмотрю на примере внешней печатной формы.

  1.  Добавим в обработку табличную часть аналогично созданной на  Этапе 1 за исключением реквизита "Идентификатор" (можно скопировать и удалить лишний реквизит)   
  2.   Получение параметров. В ВПФ их можно получить в  экспортной процедуре ПЕЧАТЬ.. Для этого нам нужна ссылка на  дополнительную обработку и имя команды. Ссылку получим из   ПараметрыВывода.ДополнительнаяОбработкаСсылка, а имя команды из КоллекцияПечатныхФорм. Полученные параметры добавим в созданную Табличную часть.. Пример процедуры ПЕЧАТЬ.      
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	
	ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
	ДополнительнаяОбработкаСсылка = ПараметрыВывода.ДополнительнаяОбработкаСсылка;
	ПараметрыОтбора = Новый Структура;
	
	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактураТ") Тогда
		ПараметрыОтбора.Вставить("Идентификатор", "СчетФактураТ");
        НайденныеСтроки = ДополнительнаяОбработкаСсылка.Сити_Параметры.НайтиСтроки(ПараметрыОтбора);
		Если НайденныеСтроки.Количество() > 0 Тогда
			Для Каждого Строка Из НайденныеСтроки Цикл
				НовыйПараметр = Сити_Параметры.Добавить();
				НовыйПараметр.Имя      = Строка.Имя;
				НовыйПараметр.Значение = Строка.Значение;
			КонецЦикла;
		КонецЕсли;	
		
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"СчетФактураТ", "Счет-фактура",
		ПечатьСчетовФактур981(МассивОбъектов, ОбъектыПечати, "ТекстЗапроса"));
	ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактураД") Тогда
		//
	ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактура981") Тогда
		//
	КонецЕсли;
	
КонецПроцедуры
  1. Использование параметров в печатной форме.
Процедура ВывестиСчетФактуруВТабличныйДокумент(ТабДокумент, Макет, ВыборкаСФ, ЭтоУниверсальныйПередаточныйДокумент = Ложь)
	
    //.....
    //..... 
	
	ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
	
    //Передача параметров в Табличный документ 
	СтрутураПараметровВПФ = Новый Структура;	
	Для Каждого Строка Из Сити_Параметры Цикл
		СтрутураПараметровВПФ.Вставить(строка.Имя, Строка.Значение);
	КонецЦикла;	
    ОбластьМакета.Параметры.Заполнить(СтрутураПараметровВПФ);
	
	ТабДокумент.Вывести(ОбластьМакета);
	
КонецПроцедуры

 

См. также

БСП. Добавляем отчет в меню Отчеты

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Добавим новый отчет в меню нового документа средствами БСП.

02.04.2024    3136    John_d    10    

89

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1690    dimanich70    8    

14

Заполнение поля адреса в своей обработке [БСП]

Механизмы платформы 1С БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Небольшая шпаргалка по функциям БСП касательно адреса. Так скажем, еще один способ помимо https://infostart.ru/1c/articles/1060970/

12.02.2024    785    FilippovRI    0    

15

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2610    YA_418728146    11    

43

1С:БСП Дополнительные реквизиты и сведения

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

В этой статье расскажем об архитектуре, использовании и особенностях реализации подсистемы «Свойства» из инструментария разработчика «1С:Библиотека стандартных подсистем» (1С: БСП).

19.01.2024    6292    PROSTO-1C    5    

46

Бесплатный митап 9 февраля «Библиотеки и фреймворки на 1С и всё, что с этим связано»

БСП (Библиотека стандартных подсистем) Мероприятия Бесплатно (free)

Митап посвящен вопросам создания, использования и поддержке переиспользуемого кода при разработке решений на платформе 1С:Предприятие 8.

15.01.2024    3885    0    Infostart    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Bassgood 1428 18.10.17 19:30 Сейчас в теме
(0) Вот здесь это реализовано без изменения конфигурации: https://infostart.ru/public/627824/
2. duhh 236 19.10.17 12:19 Сейчас в теме
(1) И правда, надо было сначала поискать, а потом выкладывать статью.
4. Bassgood 1428 19.10.17 12:55 Сейчас в теме
(2) Да, все верно, указанная мною обработка заточена на установку параметров выполнения регл. задания (как наиболее наболевшее), но в целом ее можно довести до более универсального варианта - реализовать привязку параметров обработки к ее командам (например, в виде табличной части) и использовать ее не только для выполнения серверных команд.
Просто во внешних обработках, предназначенных для выполнения регл. заданий, редко используется несколько команд запуска этих самых заданий, обычно под каждое регл. задание создается отдельная внешняя обработка с одной командной запуска (но в целом, никто не мешает создать в обработке нужное количество параметров под каждую команду, а визуально разграничить их между собой уже в форме установки параметров).
3. duhh 236 19.10.17 12:32 Сейчас в теме
(1)Вот только, судя по описанию, в вашем подходе параметры не привязываются к командам, а мне нужно было, именно для каждой команды обработки свои параметры. Но скорей всего при вашем подходе это тоже можно реализовать, добавив к параметрам еще и идентификатор команды.
5. user705393_den 06.10.23 13:19 Сейчас в теме
(1) У вас платная обработка. А здесь бесплатно. Вот вам и разница существенная.
6. Bassgood 1428 06.10.23 13:32 Сейчас в теме
(5) Во-первых, она условно-платная (за стартмани, а не за рубли, то бишь для авторов публикаций на ИС практически даром), во-вторых, если для Вас 100 руб. это существенная сумма, ради которой Вы готовы вносить в типовую конфигурацию свои изменения (а если она стоит на поддержке, то снимать с нее) с реализацией своего собственного механизма, вместо того, чтобы воспользоваться уже готовым и понятным шаблоном для этого дела, использующий типовые механизмы конфигурации (а не добавляет в нее новый "велосипед"), то этот вариант, конечно, для Вас :)
7. user705393_den 06.10.23 14:15 Сейчас в теме
(6) да это все не важно. Факт есть факт. Здесь бесплатная, у вас платная. Хоть за 5 руб. И вы сюда вставили свою обработку, чтобы за счет этой статьи продать ее. Вот и все.
8. Bassgood 1428 06.10.23 14:43 Сейчас в теме
(7) У вас всегда есть выбор - приобретать что-то "платное" и более качественное, или бесплатно изобретать свой очередной "велосипед", это уж кому как нравится.
p.s. От автора данной публикации возражений я не увидел, но Вас это почему-то очень сильно волнует? ;)
Не вижу от Вас каких-то бесплатных и качественных разработок на ИС, почему не делитесь ими, или нет желания бесплатно тратить на это время? ;)
Оставьте свое сообщение