При оформлении отгрузки товаров со склада наемным перевозчикам или представителям контрагентов часто возникает необходимость фиксировать не только паспортные данные водителя, но и реквизиты доверенности, подтверждающей его полномочия на получение груза. Попытка внести доверенность в типовой справочник Документы, удостоверяющие личность и записать ее в регистр паспортных данных приводит к неожиданному поведению: доверенность перезаписывает паспорт физического лица. Выясним причину этой проблемы и рассмотрим корректные способы организации учета входящих доверенностей в конфигурации «Управление производственным предприятием» (УПП).
Проанализируем структуру типового регистра сведений Паспортные данные физ. лиц в 1С:УПП. Данный регистр спроектирован со следующими параметрами:
ФизЛицо (ссылка на справочник Физические лица).ДокументВид (ссылка на справочник видов документов), ДокументСерия, ДокументНомер, ДокументДатаВыдачи и другие реквизиты документа.По фундаментальным правилам платформы 1С:Предприятие в периодическом регистре сведений срез последних на определенную дату возвращает строго одну запись для каждой уникальной комбинации ключевых полей (измерений). Поскольку вид документа является не измерением, а ресурсом, внесение записи с видом «Доверенность» на текущую дату полностью вытесняет предыдущую запись с видом «Паспорт гражданина РФ». Таким образом, физическое лицо в системе теряет свои паспортные данные, заменяя их данными доверенности.
Важное предостережение: Не пытайтесь перенести реквизит ДокументВид в состав измерений регистра Паспортные данные физ. лиц. На типовой состав среза последних этого регистра жестко завязаны встроенные механизмы расчета заработной платы, персонифицированного учета и формирования регламентированной отчетности по НДФЛ. Любое изменение размерности регистра приведет к дублированию строк в типовых отчетах и критическим ошибкам при проведении документов зарплатного блока.
Кроме того, с юридической точки зрения доверенность не является документом, удостоверяющим личность физического лица. Паспорт подтверждает личность гражданина, а доверенность — его полномочия выступать от имени юридического лица. Следовательно, эти сущности должны храниться раздельно.
В конфигурации 1С:УПП присутствует стандартный документ Доверенность, однако он предназначен исключительно для учета исходящих доверенностей собственной организации по типовым межотраслевым формам М-2 и М-2а (выдача сотрудникам на получение ТМЦ у поставщиков). Механизм учета входящих доверенностей от контрагентов и транспортных компаний «из коробки» не предусмотрен.
Если конфигурация находится на типовой поддержке и внесение изменений в метаданные нежелательно, разберем типовые инструменты, позволяющие сохранить данные доверенности:
Свойства объектов и регистр сведений Значения свойств объектов. Назначим для справочника Физические лица или Контрагенты дополнительные свойства, такие как «Номер доверенности», «Дата выдачи доверенности» и «Срок действия доверенности» (с типом значения Дата). Это позволит операторам фиксировать срок и вручную отслеживать его актуальность.Реализация товаров и услуг на закладке, отвечающей за печать («Дополнительно» / «Печать»), предусмотрены типовые текстовые реквизиты для фиксации входящей доверенности (номер, дата и через кого выдана). Эти данные выводятся в товарную накладную ТОРГ-12.Хранилище дополнительной информации, привязав файл непосредственно к карточке физического лица или контрагента.Для полноценного учета доверенностей с автоматическим контролем срока действия наилучшим решением является разделение сущностей: удостоверения личности хранятся отдельно, а подтверждающие полномочия документы — отдельно.
Создадим новый независимый непериодический регистр сведений ВходящиеДоверенности со следующей структурой:
Контрагент (СправочникСсылка.Контрагенты) — организация, выдавшая доверенность (доверитель);ФизическоеЛицо (СправочникСсылка.ФизическиеЛица) — водитель или экспедитор (поверенный);НомерДоверенности (Строка).ДатаВыдачи (Дата);СрокДействия (Дата);Действует (Булево);Комментарий (Строка).Теперь рассмотрим реализацию программного контроля срока действия доверенности при проведении отгрузочного документа. Разберем пример кода, который можно поместить в обработчик ОбработкаПроверкиЗаполнения или в процедуру проведения модуля документа РеализацияТоваровИУслуг:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВходящиеДоверенности.СрокДействия КАК СрокДействия
|ИЗ
| РегистрСведений.ВходящиеДоверенности КАК ВходящиеДоверенности
|ГДЕ
| ВходящиеДоверенности.Контрагент = &Контрагент
| И ВходящиеДоверенности.ФизическоеЛицо = &Водитель
| И ВходящиеДоверенности.НомерДоверенности = &НомерДоверенности
| И ВходящиеДоверенности.Действует = ИСТИНА";
Запрос.УстановитьПараметр("Контрагент", ЭтотОбъект.Контрагент);
// Предполагается наличие реквизитов "Водитель" и "НомерДоверенности" в документе
Запрос.УстановитьПараметр("Водитель", ЭтотОбъект.Водитель);
Запрос.УстановитьПараметр("НомерДоверенности", ЭтотОбъект.НомерВходящейДоверенности);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не найдена действующая доверенность на указанного водителя от данного перевозчика!";
Сообщение.Сообщить();
Отказ = Истина;
Иначе
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Если НачалоДня(Выборка.СрокДействия) < НачалоДня(ЭтотОбъект.Дата) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Срок действия доверенности истек: " + Формат(Выборка.СрокДействия, "ДФ=dd.MM.yyyy");
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Подобный подход исключает порчу данных в регистре паспортных данных, обеспечивает корректную работу расчета заработной платы и дает возможность надежно контролировать полномочия представителей контрагентов при отгрузке продукции.