К публикации приложена подробная инструкция. Надеюсь, что публикация будет полезна и поможет быстро добавить необходимые процедуры и переменные в новый документ, чтобы к нему, как и к типовому можно было подключить внешние обработки по заполнению табличных частей и внешние печатные формы.
1. Вы добавляете документ в базу. В документе создаете реквизиты и табличную часть. Имя табличной части и ее командной панели – все, чем будет отличаться ваш модуль от показанного ниже в части данного функционала.
2. Добавляете переменные в модуль формы.
Перем мДеревоМакетов; // Хранит дерево макетов печатных форм
Перем мПодменюПечати; // Хранит элемент управления подменю печати
Перем мПечатьПоУмолчанию; // Хранит элемент управления кнопку печать по умолчанию
Перем мКнопкиЗаполненияТЧ; // Хранит дерево кнопок подменю заполнение ТЧ
3. Процедура «ПередОткрытием» должна содержать вызов двух процедур.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
// Установка кнопок печати
УстановитьКнопкиПечати();
// Установка кнопок заполнение ТЧ
УстановитьКнопкиПодменюЗаполненияТЧ();
КонецПроцедуры
4. Добовляете процедуры, которые управляют кнопками по заполнению табличных частей.
Процедура УстановитьКнопкиПодменюЗаполненияТЧ()
СоответствиеТЧ = Новый Соответствие;
// КоманднаяПанель1 — командная панель первой табличной части документа
// МатериальныйОтчет — имя первой табличной части
// КоманднаяПанель2 — командная панель второй табличной части документа
// ТабличнаяЧасть2 — имя второй табличной части
СоответствиеТЧ.Вставить(ЭлементыФормы.МатериальныйОтчет,ЭлементыФормы.КоманднаяПанель1);
СоответствиеТЧ.Вставить(ЭлементыФормы.ТабличнаяЧасть2,ЭлементыФормы.КоманднаяПанель2);
мКнопкиЗаполненияТЧ = УниверсальныеМеханизмы.СформироватьПодменюЗаполненияТЧ(Ссылка,
СоответствиеТЧ, Новый Действие(«НажатиеНаДополнительнуюКнопкуЗаполненияТЧ»));
КонецПроцедуры
Процедура НажатиеНаДополнительнуюКнопкуЗаполненияТЧ(Кнопка)
УниверсальныеМеханизмы.ОбработатьНажатиеНаДополнительнуюКнопкуЗаполненияТЧ(мКнопкиЗаполненияТЧ.Строки.Найти(Кнопка.Имя, «Имя»,Истина),ЭтотОбъект);
КонецПроцедуры // НажатиеНаДополнительнуюКнопкуЗаполненияТЧ()
5. Добавляете процедуры управления кнопками печати доп. печатных форм.
Процедура УстановитьКнопкиПечати()
мДеревоМакетов = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Ссылка, Неопределено, Новый Действие(«ОсновныеДействияФормыПечать»),
Новый Действие(«ОсновныеДействияФормыУстановитьПечатьПоУмолчанию»));
УниверсальныеМеханизмы.УстановитьПодменюПечати (мПодменюПечати, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов);
УниверсальныеМеханизмы.УстановитьПечатьПоУмолчанию(мПечатьПоУмолчанию, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов,
Метаданные().Имя,Новый Действие(«ОсновныеДействияФормыПечатьПоУмолчанию»));
Если Не мПодменюПечати = Неопределено Тогда
УниверсальныеМеханизмы.СформироватьПодменю(мДеревоМакетов, мПодменюПечати,Истина,Истина);
КонецЕсли;
КонецПроцедуры // УстановитьКнопкиПечати()
Процедура ОсновныеДействияФормыПечать(Кнопка)
УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);
КонецПроцедуры // ОсновныеДействияФормыПечать()
Процедура ОсновныеДействияФормыПечатьПоУмолчанию(Кнопка)
УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);
КонецПроцедуры // ОсновныеДействияФормыПечатьПоУмолчанию()
Процедура ОсновныеДействияФормыУстановитьПечатьПоУмолчанию(Кнопка)
Если УниверсальныеМеханизмы.НазначитьКнопкуПечатиПоУмолчанию(мДеревоМакетов, Метаданные().Имя) Тогда
УстановитьКнопкиПечати();
КонецЕсли;
КонецПроцедуры // ОсновныеДействияФормыУстановитьПечатьПоУмолчанию()
6. Теперь к вашему документу, как и к типовому, можно добавлять дополнительные печатные формы и обработки по заполнению табличных частей. Это бывает очень полезно, пока функционал документа еще не отработан. Ведь теперь вы можете менять его не изменяя конфигурацию, а лишь изменяя внешние обработки.





тоже все хочу привести в систему, но никак руки не доходят. Если поднимете мою тему про базу для хранение обработок и инструкций, то это и есть как раз такая попытка.
Красавчикус! ещё нужно упомянуть — чтобы документ был ну прям как в типовой — его нужно прописать в подписках на событиях, планах обмена, ПВХ — чтобы свойства можно было задавать и других объектах типовой конфигурации
А может кто-то растолковать нубу, как вся эта шарманка работает? Как такое можно прикрутить к самописной конфигурации?
К самописной конфигурации??? Нужно понять логику и тогда получится, но данное описание не для этого.
Примерно по шагам.
1. Справочник где хранятся внешние обаработки (печ формы и т.д.) с описанием к каким документам и таб.частям они прикручиваются.
2. При открытии формы, добавить нужные кнопки
3. При нажатии на эти кнопки получать файлы внешних обработок и запускать, передавая в них тек. объект в предопределенные реквизиты.
(5) doleynikov, внедрите БСП
(5) Для самописной используйте БСП от 1С