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