Базовое понимание внедрения механизма печати в любом документе конфигурации на БСП

22.03.22

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

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

 

Введение

Привет всем! В данной статье предлагаю рассмотреть методы вывода макета на печать любых документов (собственных или типовых) с помощью актуальной библиотеки стандартных подсистем (БСП). Данный небольшой обзор поможет снять вам вопросы типа "как прицепить макет печати к собственному документу или справочника?" или "как разместить кнопку печать на форме списка и форме документа или справочника". На момент написания статьи - середина февраля 2021 года - точка актуальности - это БСП версии 3.1.4.148.

Для кого-то этот материал не новшество, но отмечу, что данная статья будет полезна специалистам, желающим использовать последние возможности библиотеки стандартных подсистем в методах вывода на печать. Хорошо известно, что подсистема  БСП постоянно меняется и усовершенствуется, и я могу сказать определенно, что старые методы и алгоритмы вывода на печать макетов печатных форм документов и справочников уже будут вряд ли применимы в современных конфигурациях на последних БСП.

 

Подготовка и настройка собственного документа конфигурации для использования в подсистеме печати в системе БСП.

Начнем с простого создания документа ТестоваяПечатьДокументов в конфигурации на БСП. В качестве конфигурации я беру чистую библиотеку стандартных подсистем версии 3.1.4.148. Разработка ведется на Платформе 1с 8.3.18.1208.

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

выглядит это вот так:

 
 ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт

 

Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
	
	// _Демо начало примера
	СписокОбъектов.Добавить(Справочники._ДемоКонтактныеЛицаПартнеров);
	СписокОбъектов.Добавить(Справочники._ДемоКонтрагенты);
	СписокОбъектов.Добавить(Справочники._ДемоОрганизации);
	СписокОбъектов.Добавить(Справочники._ДемоПартнеры);
	СписокОбъектов.Добавить(Справочники._ДемоФизическиеЛица);
	СписокОбъектов.Добавить(Документы._ДемоОприходованиеТоваров);
	СписокОбъектов.Добавить(Документы._ДемоПеремещениеТоваров);
	СписокОбъектов.Добавить(Документы._ДемоРеализацияТоваров);
	СписокОбъектов.Добавить(Документы._ДемоСписаниеТоваров);
	СписокОбъектов.Добавить(Документы._ДемоСчетНаОплатуПокупателю);
	СписокОбъектов.Добавить(Документы._ДемоРасходныйКассовыйОрдер);
	
	//****
	СписокОбъектов.Добавить(Документы.ТестоваяПечатьДокументов);
        //****
	
        // _Демо конец примера
	
КонецПроцедуры

 

Далее, что нам потребуется. Создаем 2 формы в документе ТестоваяПечатьДокументов - это "ФормаСписка" и "ФормаДокумента". В каждой из этих форм создаем и привязываем процедуру ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

выглядит она вот так:

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

Далее, для "формы списка" добавляем внутренние БСП подключаемые процедуры:

 
  "ФормаСписка" в документе "ТестовыйДокумент"

 

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

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

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

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

 

А для "формы документа" добавляем вот такие внутренние БСП подключаемые процедуры:

 
 "ФормаДокумента" в документе "ТестовыйДокумент"

 

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

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

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

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

Хочу отметить, что данные процедуры я копирую из типовых документов БСП - их будет достаточно, чтобы активировать кнопку системы печати на формах документа. Ничего лишнего добавлять не нужно.

Далее, заполним модуль менеджера нашего документа. Напишем в нем такой код:

 
 модуль менеджера документа "ТестовыйДокумент"

 


Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	// Перемещение товаров
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "ТестовыйМакетПечати";
	КомандаПечати.Представление = НСтр("ru = 'Тестовый макет печати'");
	
КонецПроцедуры

// Формирует печатные формы.
//
// Параметры:
//  МассивОбъектов - см. УправлениеПечатьюПереопределяемый.ПриПечати.МассивОбъектов
//  ПараметрыПечати - см. УправлениеПечатьюПереопределяемый.ПриПечати.ПараметрыПечати
//  КоллекцияПечатныхФорм - см. УправлениеПечатьюПереопределяемый.ПриПечати.КоллекцияПечатныхФорм
//  ОбъектыПечати - см. УправлениеПечатьюПереопределяемый.ПриПечати.ОбъектыПечати
//  ПараметрыВывода - см. УправлениеПечатьюПереопределяемый.ПриПечати.ПараметрыВывода
//
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

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

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

Здесь функция - ПечатнаяФормаТестовогоДокумента(МассивОбъектов, ОбъектыПечати) - формирует заполненный макет печатной формы и возвращает пользователю.

Процедура - Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт - типовая процедура печати БСП.

Тут нет ничего сложного, но особое внимание хочу обратить на вот эту процедуру добавления команд

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	// Перемещение товаров
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "ТестовыйМакетПечати";
	КомандаПечати.Представление = НСтр("ru = 'Тестовый макет печати'");
	
КонецПроцедуры

Открываем код БСП и смотрим какие возможности предоставляет нам функция УправлениеПечатью.СоздатьКоллекциюКомандПечати() - она используется для "наполнения" объекта КомандыПечати(). Возможности широчайшие:

 
 СоздатьКоллекциюКомандПечати()

 

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

Как мы видим, основные параметры - Идентификатор, Представление. Остальные являются необязательными.

Правильно разместив вышеуказанный код в конфигурации вы получите необходимый результат - вывод кнопки "Печать" для формы документа и формы списка для документа ТестоваяПечатьДокументов.
Перейдем к  разделу заключений и выводов по данной статье.

 

Заключение и выводы

В данной статье мы рассмотрели основной алгоритм БСП для размещения команд печати на любых документах конфигурации, в основе которой лежит современная библиотека стандартных подсистем. Напомню, что разработка примера велась на "чистой" библиотеке стандартных подсистем версии 3.1.4.148 и Платформе 1с 8.3.18.1208.

Ну и конечно, знание данных методов позволит вам ускорить разработку и доработку любых типовых конфигураций 1с (БУХ, ЗУП, Розница, УНФ и т.п....), основой которых является библиотека стандартных подсистем. И самое главное - это правильно и по стандарту профессиональных разработчиков.

 

Другие мои материалы по БСП

 

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

 

Так же прошу ознакомиться с другими моими статьями по функционалу библиотеки стандартных подсистем и типовым конфигурациям:

Полезные встроенные функции для работы с печатными формами и не только на УТ 11.4 и БП 3.0 (сравнение)

Работаем с контактной информацией в конфигурациях на БСП

Генерация штрихкодов с помощью БСП для программистов

Типовые методы конфигурации "Зарплата и управление персоналом", которые пригодятся каждому ЗУП программисту и не только

Базовые вещи БСП, которые облегчат жизнь программисту 1С

Возможности работы со строками при помощи БСП, которые должен знать каждый программист

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

См. также

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

Синтакс-помощник БСП - cправочник по библиотеке стандартных подсистем. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП.

1800 руб.

21.11.2024    523    1    0    

3

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

Некоторые нюансы, если вы захотите создавать свои расширения. Доработка отчета "Связанные документы" для отражения документов расширения. Печатные формы с шаблоном Word.

20.11.2024    2546    milkers    3    

8

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

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1241    PROSTO-1C    0    

14

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

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

08.10.2024    1081    PROSTO-1C    4    

13

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

В статье рассмотрим пошаговую инструкцию создания дополнительного отчета с фоновым формированием результата.

04.10.2024    1950    MadRave    11    

24

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

Пример отслеживания прогресса фонового выполнения дополнительной обработки с использованием программного интерфейса длительных операций БСП.

10.09.2024    1972    MadRave    1    

17

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

А что, если долгожданная реализация Паузы в 1С смутно напоминает старую, проверенную? А?!

06.09.2024    1359    n_mezentsev    10    

8

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

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

02.09.2024    4221    John_d    10    

52
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Nubsdale 17.02.21 13:11 Сейчас в теме
Без скринов вывода ПФ не совсем понятно что и как должно выводиться.
Но плюс однозначно
2. Hatson 536 17.02.21 17:36 Сейчас в теме
В нормальных тру-фреймворках целый вэб-сервер может создаваться одной строчкой. А тут кнопка для печати - это танец с бубном и выкуриванием огромного пакета каннабиоидов, а всё потому, что Конфигуратор про БСП ничего не знает и ничем вам не поможет, всё нужно делать ручками самому, предварительно прочитав ИТС, инфостарт и Радченко.
"У" - удобство.
chrnv; baranchikov; адуырщдв; kabantus; milana5; Lacoste4life; wolfsoft; karkokole; vampo; Oldsad; Dmitrii_VVV; user700705; alek-sand-er; orfos; kida1; serg-gld; newvideo; mart-sha; zaic; pm74; Award; Serega-artem; frkbvfnjh; user925427; shalupov61; +25 2 Ответить
3. Xershi 1557 17.02.21 18:00 Сейчас в теме
(2) установка бсп тоже может 1 строчкой установиться только что толку?
Риник; +1 Ответить
4. chg 18.02.21 04:06 Сейчас в теме
(2)зато не скучно и до гробовой доски обеспечены работой)))))
baranchikov; адуырщдв; Lacoste4life; insurgut; orfos; serg-gld; mart-sha; SuhoffGV; +8 Ответить
5. bugagashenka 203 18.02.21 06:41 Сейчас в теме
(2) а в нормальных тру-фреймворках так же можно сделать автоматизацию чего-угодно буквально на коленке? А еще и сделать двумя кликами браузерную версию? Так что вот не надо тут тру не тру.
В данном случае все логично:
1. Инициализируем список объектов
2. Выводим на форму
3. Добавляем подключаемые команды в модуль формы
4. Описываем команды и их код.

Так сложно?

И можно пример тру, которое сделает то же самое или хотя бы алгоритм, мне правда очень интересно, как это реализовано
baranchikov; Lacoste4life; JohnyDeath; cleaner_it; starponyx; Deslime; Summer_13; user1209553; Риник; Batman; +10 Ответить
6. Hatson 536 18.02.21 09:22 Сейчас в теме
(5)Spring для Java, и почти все продукты jetbrains
7. bugagashenka 203 18.02.21 09:50 Сейчас в теме
(6)
jetbrains

Ну, а дальше? Начнем с малого. Допустим уже есть какая то учетная система с идентичной структурой, типа документы, справочники. По какому алгоритму вышеуказанные fw должны добавить на произвольную форму произвольного документа команду печати? И в какие документы? И какие именно команды?
cleaner_it; Summer_13; user1209553; Риник; +4 Ответить
10. vasilev2015 2725 18.02.21 15:21 Сейчас в теме
(2) Комментарий важнее статьи. Всем отделом читали.
Привет от Дениса, Михаила, Светланы, Николая !
8. NoRazum 29 18.02.21 10:16 Сейчас в теме
На форму нужно вывести. Нужные группу.
Почему не написано?
Вроде все в документации по БСП есть.
BackinSoda; +1 Ответить
9. kostik_love 317 18.02.21 13:23 Сейчас в теме
baranchikov; prizrak37; fuser; Алексей777; Ks_83; +5 Ответить
11. Hatson 536 18.02.21 19:01 Сейчас в теме
(9) попробуйте воспользоваться встроенным (родным) поиском на сайте ИТС по любому разделу :))) - это же испанский стыд )) По ИТС работает хоть как-нибудь приемлемо только поиск Гугл или Яндекс. Ну а если вам нужен поиск по конкретной версии БСП , то это делается так:
Находите гуглом то, что вам нужно хотя бы в каком-нибудь релизе БСП,
Запоминаете раздел
, потом совершая множество неочевидных телодвижений на сайте ИТС наконец-то находите документацию нужного релиза БСП и переходите нужный раздел. Бинго! Вам сильно повезло, если раздел не переехал.
dolkin; user700705; kida1; naumkin.s; sys1c; denmax; SergArmy; ccapt; +8 Ответить
13. Риник 15 19.02.21 08:51 Сейчас в теме
(11) Постоянно пользуюсь поиском на ИТС, нормальный поиск. Конечно есть куда развиваться, но может дело все-таки не в поиске?
12. kostik_love 317 19.02.21 07:24 Сейчас в теме
(11)
пользуюсь каждый день- и скажу вам откровенно- поиск на ИТС стал в разы лучше и находит то- что нужно)
14. RustIG 1749 21.02.21 20:11 Сейчас в теме
(0)
Ну и конечно, знание данных методов позволит вам ускорить разработку и доработку любых типовых конфигураций 1с (БУХ, ЗУП, Розница, УНФ и т.п....), основой которых является библиотека стандартных подсистем. И самое главное - это правильно и по стандарту профессиональных разработчиков.


У кого как? На УФ типовые конфиги внутри конфигуратора дорабатываете или все-таки через расширения?
Какой процент превалирует?
Просто описанная технология для расширений не подходит, если я правильно понимаю.

Я в свое время разрабатывал печатную форму Счет на оплату для УТ 11 - научился прятать кнопку типовой формы, переименовывать ее, научился выводить кнопку своей печатной формы в любом порядке среди кнопок печатных форм - а в этой статье об этом ни слова...
15. Дмитрий74Чел 239 03.03.21 11:43 Сейчас в теме
(14)
в этой статье об этом ни слова...

а разве об этом можно прочитать в разделе "УправлениеПечатью.СоздатьКоллекциюКомандПечати()"?

Печатные формы делаем внешними. Расширения используем только как Исправления, или если база типовая и точно не хотим её менять (БП, чтоб обновлялась сама всегда и своевременно).
16. RustIG 1749 03.03.21 15:19 Сейчас в теме
(15) не понял вашего комментария.
свой коммент могу лишь уточнить - на практике когда создаем дополнительную печатную форму, ее необходимо вытащить в список печатных форм, назвать так, чтобы пользователи не путались с типовыми формами, иногда надо сместить позицию кнопки меню вверх или вниз, иногда полностью скрыть вызов типовой формы...
статья хороша тем, что мы можем создать свой документ и к нему свою форму...
я же упомянул о том, какие следующие задачи последуют...
21. RustIG 1749 04.09.23 14:20 Сейчас в теме
(15)
разве об этом можно прочитать в разделе "УправлениеПечатью.СоздатьКоллекциюКомандПечати()"?

в УНФ практически не используется - прикладываю скрин

+ (0) вопрос по статье - не понятно из статьи, в каком месте нужно вставить функцию УправлениеПечатью.СоздатьКоллекциюКомандПечати() ?
Прикрепленные файлы:
17. Glebis 13 09.03.21 22:34 Сейчас в теме
Очень трудный для понимания код по заполнению данных процедуры "ПолучитьДанныеПечати": Структура с 2мя полями соответствий, каждое из которых содержит соответствие.
Также не понятно: зачем вызывать ЗначенияРеквизитовОбъектов для 3х реквизитов, если ниже вызывается ДанныеДляПечатиСогласий, в состав данных которых можно поместить значения этих 3х реквизитов.
В целом за статью спасибо. Как оптимизирую код, выложу "форк" варианта заполнения.
18. serg-gld 23.09.21 14:46 Сейчас в теме
Спасибо за примеры. Видя всё это я пытаюсь понять для чего так усложнять? Как эти решения совместить с расширениями , если нужно править типовые модули не снимая с поддержки? Где-то можно прочитать для чего все эти фишки, какие преимущества они дают пользователям или программистам? В неуправляемых формах программирование было в разы проще и для пользователей было удобнее.
Почему нельзя просто "посадить на кнопку" процедуру, которая сформирует и выведет "табличный документ"?
19. t9271410411 25.09.21 07:21 Сейчас в теме
(18)
Расширениями можно править типовые модули, не снимая с поддержки. (добавляя типовые модули в свое расширение)
20. serg-gld 01.10.21 11:32 Сейчас в теме
(19) Да, можно, что я и делаю периодически. Но хочется, чтобы не было так запутанно
22. RBA1972 02.05.24 19:44 Сейчас в теме
Приветствую! Простите, если не в тему спрашиваю: а как можно создать команды печати для Общей формы, находящейся в расширении? Ведь у неё нет Модуля менеджера... Я находил процедуру ПередДобавлениемКомандПечати в Общем модуле, она, похоже, соответствует моим запросам, но вот "как и откуда" и "с чем её едят" - не могу сообразить. :)
Может у уважаемых гуру есть примеры и они подскажут, в каком напрвалении копать?
Заранее благодарен!
Оставьте свое сообщение