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

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С

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

INFOSTART PRINTWIZARD: Конструктор печатных форм в 1С: 8.3

Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.


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

См. также

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

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

1800 руб.

21.11.2024    4280    17    15    

20

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

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

10.02.2025    4013    John_d    22    

47

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

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

27.12.2024    4452    PROSTO-1C    16    

48

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

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

11.12.2024    4367    gorenski    0    

8

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

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

20.11.2024    3779    milkers    3    

13

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

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

24.10.2024    2031    PROSTO-1C    0    

19

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

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

08.10.2024    1545    PROSTO-1C    4    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Nubsdale 17.02.21 13:11 Сейчас в теме
Без скринов вывода ПФ не совсем понятно что и как должно выводиться.
Но плюс однозначно
2. Hatson 536 17.02.21 17:36 Сейчас в теме
В нормальных тру-фреймворках целый вэб-сервер может создаваться одной строчкой. А тут кнопка для печати - это танец с бубном и выкуриванием огромного пакета каннабиоидов, а всё потому, что Конфигуратор про БСП ничего не знает и ничем вам не поможет, всё нужно делать ручками самому, предварительно прочитав ИТС, инфостарт и Радченко.
"У" - удобство.
user958854; nayd; user790708; 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; +28 2 Ответить
3. Xershi 1262 17.02.21 18:00 Сейчас в теме
(2) установка бсп тоже может 1 строчкой установиться только что толку?
Риник; +1 Ответить
4. chg 18.02.21 04:06 Сейчас в теме
(2)зато не скучно и до гробовой доски обеспечены работой)))))
user958854; baranchikov; адуырщдв; Lacoste4life; insurgut; orfos; serg-gld; mart-sha; SuhoffGV; +9 Ответить
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 2745 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 1836 21.02.21 20:11 Сейчас в теме
(0)
Ну и конечно, знание данных методов позволит вам ускорить разработку и доработку любых типовых конфигураций 1с (БУХ, ЗУП, Розница, УНФ и т.п....), основой которых является библиотека стандартных подсистем. И самое главное - это правильно и по стандарту профессиональных разработчиков.


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

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

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

Печатные формы делаем внешними. Расширения используем только как Исправления, или если база типовая и точно не хотим её менять (БП, чтоб обновлялась сама всегда и своевременно).
16. RustIG 1836 03.03.21 15:19 Сейчас в теме
(15) не понял вашего комментария.
свой коммент могу лишь уточнить - на практике когда создаем дополнительную печатную форму, ее необходимо вытащить в список печатных форм, назвать так, чтобы пользователи не путались с типовыми формами, иногда надо сместить позицию кнопки меню вверх или вниз, иногда полностью скрыть вызов типовой формы...
статья хороша тем, что мы можем создать свой документ и к нему свою форму...
я же упомянул о том, какие следующие задачи последуют...
21. RustIG 1836 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 Сейчас в теме
Приветствую! Простите, если не в тему спрашиваю: а как можно создать команды печати для Общей формы, находящейся в расширении? Ведь у неё нет Модуля менеджера... Я находил процедуру ПередДобавлениемКомандПечати в Общем модуле, она, похоже, соответствует моим запросам, но вот "как и откуда" и "с чем её едят" - не могу сообразить. :)
Может у уважаемых гуру есть примеры и они подскажут, в каком напрвалении копать?
Заранее благодарен!
Оставьте свое сообщение