Подключение к подсистеме Учет оригиналов первичных документов
Настройка определяемых типов
Документы, являющиеся поставщиками оригиналов первичных документов, следует указать в составе определяемого типа ОбъектСУчетомОригиналовПервичныхДокументов
Настройка формы списка
Формы списков, в которые должны выводиться команды учета оригиналов первичных документов, следует перечислить в процедуре ПриОпределенииОбъектовСКомандамиУчетаОригиналов
общего модуля УчетОригиналовПервичныхДокументовПереопределяемый
, пример:
Процедура ПриОпределенииОбъектовСКомандамиУчетаОригиналов(СписокОбъектов) Экспорт СписокОбъектов.Добавить("Документ._ДемоРеализацияТоваров.Форма.ФормаСписка"); СписокОбъектов.Добавить("Документ._ДемоПеремещениеТоваров.Форма.ФормаСписка"); СписокОбъектов.Добавить("Обработка._ДемоЖурналУчетаОригиналовПервичныхДокументов.Форма.СписокДокументов");КонецПроцедуры
Определение печатных форм
Подсистема может отслеживать состояния первичных документов по определенным печатным формам. Необходимо определить состав печатных форм документов, для которых требуется вести учет оригиналов:
Например, у документа
Отпуск
может быть 4 печатных формы, но только в одной требуется подпись сотрудника и, соответственно, только по ней требуется отслеживать состояние.
Документы, являющиеся поставщиками оригиналов первичных документов, и печатные формы по которым требуется отслеживание необходимо перечислить в процедуре ЗаполнитьТаблицуУчетаОригиналовмодуля
УчетОригиналовПервичныхДокументовПереопределяемый
, пример:
Процедура ЗаполнитьТаблицуУчетаОригиналов(ТаблицаУчетаОригиналов) Экспорт НоваяСтрока = ТаблицаУчетаОригиналов.Добавить(); НоваяСтрока.ОбъектМетаданных = Метаданные.Документы._ДемоРеализацияТоваров; НоваяСтрока.Идентификатор = "РасходнаяНакладная";КонецПроцедуры
Если документ подключен к подсистеме учета оригиналов и в данном переопределяемой процедуре:
- ничего не указывать по этому документу, то состояния будут отслеживаться по всем печатным формам этого документа;
- указать печатные формы, то состояния будут отслеживаться только по указанным печатным формам документа.
"Многосотрудниковые" документы
Поддерживается отслеживание состояний по "многосотрудниковым" документам. Пример см. документ `_ДемоОтпускаСотрудников`, в печатной форме `"Приказ о предоставлении отпуска работникам (T-6a)"` требуется подпись нескольких сотрудников (они хранятся в табличной части документа), поэтому состояния для таких документов отслеживается и в разрезе сотрудников.Для подключения таких документов к учету оригиналов необходимо в составе определяемого типа Сотрудник
указать соответствующие справочники. Как правило, это такие справочники, как Физические лица
, Сотрудники
. Необходимо определить состав документов, для которых требуется подпись нескольких сотрудников, и перечислить их и наименование табличной части, в которой хранится список сотрудников, в процедуре ПриОпределенииМногосотрудниковыхДокументов
общего модуля УчетОригиналовПервичныхДокументовПереопределяемый
, например:
Процедура ПриОпределенииМногосотрудниковыхДокументов(СписокОбъектов) Экспорт СписокОбъектов.Вставить(Метаданные.Документы._ДемоОтпускаСотрудников.ПолноеИмя(),"Сотрудники");КонецПроцедуры
При этом, если документ подключен к подсистеме учета оригиналов и в данной переопределяемой процедуре:
- не указывать такой документ, то состояния будут отслеживаться в разрезе печатных форм, как и раньше;
- указать документ и табличную часть, то состояния будут отслеживаться по печатным формам документа в разрезе сотрудников.
Настройка форм
Подключить формы к подсистеме ПодключаемыеКоманды
Форма документа
Для подключения форм документов, в которых требуется выводить сведения о текущем состоянии оригинала первичного документа необходимо в формах документов, определенных на предыдущем шаге:
- в процедуре
ПриСозданииНаСервере
(обработчик события формы) вставить вызов по шаблону:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументовУчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект, Элемент.<ГруппаФормы>);// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
Где второй параметр Расположение
(необязательный) - указание группы формы, в которой будет размещена декорация с данными о текущем состоянии оригинала. В противном случае, без указания параметра, декорация будет размещена в нижнем правом углу формы.
- в процедуре
ОбработкаОповещения
(обработчик события формы) добавить код:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументовУчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаДокумента(ИмяСобытия, ЭтотОбъект);// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
- добавить вспомогательную процедуру:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов&НаКлиентеПроцедура Подключаемый_ДекорацияСостояниеОригиналаНажатие() УчетОригиналовПервичныхДокументовКлиент.ОткрытьМенюВыбораСостояния(ЭтотОбъект);КонецПроцедуры//Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
Примеры внедрения и настройки подсистемы в формах объектов см. в документах _ДемоПеремещениеТоваров и _ДемоРеализацияТоваров.
Форма списка
- Для основного списка установить
ПроизвольныйЗапрос
и дополнить его выборкой трех строк:СостояниеОригиналаПервичногоДокумента
,ОбщееСостояние
,СостояниеОригиналПолучен
ВЫБРАТЬ ... <ВыбираемыеПоля> ..., NULL КАК СостояниеОригиналаПервичногоДокумента, ИСТИНА КАК ОбщееСостояние, 0 КАК СостояниеОригиналПолученИЗ ...
для этих полей установить признак ИспользоватьВсегда
- В обработчике события
ПриСозданииНаСервере
формы вставить вызов по шаблону:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументовУчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаСписка(ЭтотОбъект, Элементы.<ТаблицаФормы>, Элементы.<КолонкаДинамическогоСписка>);// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
Где третий параметр Расположение
(необязательный) - указание колонки динамического списка, перед которой будет размещены колонки с данными о текущем состоянии оригинала. В противном случае, без указания параметра, новые колонки будут размещены в списке последними.
- В обработчике события
ОбработкаОповещения
формы добавить код:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументовУчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаСписка(ИмяСобытия, ЭтотОбъект, Элементы.<ТаблицаФормы>);// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
- В обработчике события
Выбор
таблицы формы добавить код:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументовУчетОригиналовПервичныхДокументовКлиент.СписокВыбор(Поле.Имя, ЭтотОбъект, Элементы.<ТаблицаФормы>, СтандартнаяОбработка);// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
- В обработчике события
ПриПолученииДанныхНаСервере
таблицы формы добавить код:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументовУчетОригиналовПервичныхДокументов.ПриПолученииДанныхНаСервере(Строки);// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
- Добавить вспомогательные процедуры:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов&НаКлиентеПроцедура Подключаемый_ОбновитьКомандыСостоянияОригинала()
ОбновитьКомандыСостоянияОригинала()
КонецПроцедуры&НаСервереПроцедура ОбновитьКомандыСостоянияОригинала()
// Код из обработчика события ПриСозданииНаСервере этой формы по подключению команд:// СтандартныеПодсистемы.ПодключаемыеКомандыПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры//Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
Оптимизация
Опционально. Для целей оптимизации производительности при открытии формы рекомендуется добавить в командную панель
- подменю:
- Имя: ПодменюУстановитьНастроитьСостояниеОригинала;
- Заголовок: Состояние оригинала;
- Вид: Подменю;
- Отображение: Картинка и текст;
- Картинка: УстановитьСостояниеОригиналаПервичногоДокумента.
- группу для вывода команд установки состояния оригинала по шаблону:
- Имя: ГруппаУстановитьОригиналПолучен;
- Вид: Подменю;
- Отображение: Картинка;
- Картинка: СостояниеОригиналаПервичногоДокументаОригиналПолучен.
Примеры внедрения и настройки подсистемы в формах списков см. в документах
_ДемоПеремещениеТоваров,
_ДемоРеализацияТоваров
и обработке_ДемоЖурналУчетаОригиналовПервичныхДокументов
.