Skip to content

Подключение к подсистеме Учет оригиналов первичных документов

Настройка определяемых типов

Документы, являющиеся поставщиками оригиналов первичных документов, следует указать в составе определяемого типа ОбъектСУчетомОригиналовПервичныхДокументов

Настройка формы списка

Формы списков, в которые должны выводиться команды учета оригиналов первичных документов, следует перечислить в процедуре ПриОпределенииОбъектовСКомандамиУчетаОригиналов общего модуля УчетОригиналовПервичныхДокументовПереопределяемый, пример:

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

Определение печатных форм

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

Например, у документа Отпуск может быть 4 печатных формы, но только в одной требуется подпись сотрудника и, соответственно, только по ней требуется отслеживать состояние.

Документы, являющиеся поставщиками оригиналов первичных документов, и печатные формы по которым требуется отслеживание необходимо перечислить в процедуре ЗаполнитьТаблицуУчетаОригиналовмодуля УчетОригиналовПервичныхДокументовПереопределяемый, пример:

Процедура ЗаполнитьТаблицуУчетаОригиналов(ТаблицаУчетаОригиналов) Экспорт
НоваяСтрока = ТаблицаУчетаОригиналов.Добавить();
НоваяСтрока.ОбъектМетаданных = Метаданные.Документы._ДемоРеализацияТоваров;
НоваяСтрока.Идентификатор = "РасходнаяНакладная";
КонецПроцедуры

Если документ подключен к подсистеме учета оригиналов и в данном переопределяемой процедуре:

  • ничего не указывать по этому документу, то состояния будут отслеживаться по всем печатным формам этого документа;
  • указать печатные формы, то состояния будут отслеживаться только по указанным печатным формам документа.
"Многосотрудниковые" документы Поддерживается отслеживание состояний по "многосотрудниковым" документам. Пример см. документ `_ДемоОтпускаСотрудников`, в печатной форме `"Приказ о предоставлении отпуска работникам (T-6a)"` требуется подпись нескольких сотрудников (они хранятся в табличной части документа), поэтому состояния для таких документов отслеживается и в разрезе сотрудников.

Для подключения таких документов к учету оригиналов необходимо в составе определяемого типа Сотрудник указать соответствующие справочники. Как правило, это такие справочники, как Физические лица, Сотрудники. Необходимо определить состав документов, для которых требуется подпись нескольких сотрудников, и перечислить их и наименование табличной части, в которой хранится список сотрудников, в процедуре ПриОпределенииМногосотрудниковыхДокументов общего модуля УчетОригиналовПервичныхДокументовПереопределяемый, например:

Процедура ПриОпределенииМногосотрудниковыхДокументов(СписокОбъектов) Экспорт
СписокОбъектов.Вставить(Метаданные.Документы._ДемоОтпускаСотрудников.ПолноеИмя(),"Сотрудники");
КонецПроцедуры

При этом, если документ подключен к подсистеме учета оригиналов и в данной переопределяемой процедуре:

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

Настройка форм

Подключить формы к подсистеме ПодключаемыеКоманды

Форма документа

Для подключения форм документов, в которых требуется выводить сведения о текущем состоянии оригинала первичного документа необходимо в формах документов, определенных на предыдущем шаге:

  • в процедуре ПриСозданииНаСервере (обработчик события формы) вставить вызов по шаблону:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
УчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект, Элемент.<ГруппаФормы>);
// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов

Где второй параметр Расположение (необязательный) - указание группы формы, в которой будет размещена декорация с данными о текущем состоянии оригинала. В противном случае, без указания параметра, декорация будет размещена в нижнем правом углу формы.

  • в процедуре ОбработкаОповещения (обработчик события формы) добавить код:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
УчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаДокумента(ИмяСобытия, ЭтотОбъект);
// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
  • добавить вспомогательную процедуру:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
&НаКлиенте
Процедура Подключаемый_ДекорацияСостояниеОригиналаНажатие()
УчетОригиналовПервичныхДокументовКлиент.ОткрытьМенюВыбораСостояния(ЭтотОбъект);
КонецПроцедуры
//Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов

Примеры внедрения и настройки подсистемы в формах объектов см. в документах _ДемоПеремещениеТоваров и _ДемоРеализацияТоваров.

Форма списка

  • Для основного списка установить ПроизвольныйЗапрос и дополнить его выборкой трех строк: СостояниеОригиналаПервичногоДокумента, ОбщееСостояние, СостояниеОригиналПолучен
ВЫБРАТЬ
...
<ВыбираемыеПоля>
...,
NULL КАК СостояниеОригиналаПервичногоДокумента,
ИСТИНА КАК ОбщееСостояние,
0 КАК СостояниеОригиналПолучен
ИЗ
...

для этих полей установить признак ИспользоватьВсегда

  • В обработчике события ПриСозданииНаСервере формы вставить вызов по шаблону:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
УчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаСписка(ЭтотОбъект, Элементы.<ТаблицаФормы>, Элементы.<КолонкаДинамическогоСписка>);
// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов

Где третий параметр Расположение (необязательный) - указание колонки динамического списка, перед которой будет размещены колонки с данными о текущем состоянии оригинала. В противном случае, без указания параметра, новые колонки будут размещены в списке последними.

  • В обработчике события ОбработкаОповещения формы добавить код:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
УчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаСписка(ИмяСобытия, ЭтотОбъект, Элементы.<ТаблицаФормы>);
// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
  • В обработчике события Выбор таблицы формы добавить код:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
УчетОригиналовПервичныхДокументовКлиент.СписокВыбор(Поле.Имя, ЭтотОбъект, Элементы.<ТаблицаФормы>, СтандартнаяОбработка);
// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
  • В обработчике события ПриПолученииДанныхНаСервере таблицы формы добавить код:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
УчетОригиналовПервичныхДокументов.ПриПолученииДанныхНаСервере(Строки);
// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
  • Добавить вспомогательные процедуры:
// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
&НаКлиенте
Процедура Подключаемый_ОбновитьКомандыСостоянияОригинала()
ОбновитьКомандыСостоянияОригинала()
КонецПроцедуры
&НаСервере
Процедура ОбновитьКомандыСостоянияОригинала()
// Код из обработчика события ПриСозданииНаСервере этой формы по подключению команд:
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
//Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов

Оптимизация

Опционально. Для целей оптимизации производительности при открытии формы рекомендуется добавить в командную панель

  • подменю:
    • Имя: ПодменюУстановитьНастроитьСостояниеОригинала;
    • Заголовок: Состояние оригинала;
    • Вид: Подменю;
    • Отображение: Картинка и текст;
    • Картинка: УстановитьСостояниеОригиналаПервичногоДокумента.
  • группу для вывода команд установки состояния оригинала по шаблону:
    • Имя: ГруппаУстановитьОригиналПолучен;
    • Вид: Подменю;
    • Отображение: Картинка;
    • Картинка: СостояниеОригиналаПервичногоДокументаОригиналПолучен.

Примеры внедрения и настройки подсистемы в формах списков см. в документах _ДемоПеремещениеТоваров, _ДемоРеализацияТоваров и обработке _ДемоЖурналУчетаОригиналовПервичныхДокументов.