В типовой конфигурации «Зарплата и кадры бюджетного учреждения 1.0» (ЗКБУ 1.0) на платформе «1С:Предприятие 8» отсутствует встроенная возможность прикреплять файлы и отсканированные копии документов напрямую к кадровым приказам (приемам, переводам, увольнениям). Это создает неудобства для кадровой службы, которой приходится хранить бумажные архивы или искать файлы в сторонних папках на компьютере.
В этой статье мы подробно разберем несколько практических способов решения данной задачи: от простых вариантов, не требующих изменения конфигурации, до профессиональной доработки системы и настройки внешних хранилищ данных.
Проанализируем возможности стандартного функционала ЗКБУ 1.0. Несмотря на то, что к самим кадровым документам прикрепить файлы нельзя, в программе реализован типовой механизм хранения сканов для элементов справочника ФизическиеЛица.
Поскольку любой кадровый приказ (например, приказ о приеме на работу или переводе) всегда оформляется на конкретного сотрудника, который жестко связан с физическим лицом, мы можем использовать эту архитектуру. Рассмотрим, как это сделать по шагам:
Преимущества: Этот способ абсолютно безопасен, не требует привлечения программистов и не нарушает типовую структуру метаданных конфигурации. Вся история документов по конкретному человеку будет собрана в одном месте.
Недостатки: Быстро открыть скан напрямую из экранной формы конкретного приказа не получится — пользователю придется совершать дополнительные действия и переходить в карточку физического лица.
Если для бизнес-процессов организации критически важно иметь кнопку «Прикрепить скан» внутри формы самого приказа, потребуется небольшая доработка системы. Для этого программист может задействовать штатный справочник ХранилищеДополнительнойИнформации, который уже присутствует в метаданных конфигурации.
Разберем алгоритм адаптации:
ПриемНаРаботуВОрганизацию).ХранилищеДополнительнойИнформации с установкой отбора по текущему документу-владельцу.Пример программного кода на встроенном языке 1С для обычной формы документа:
Процедура ДействияФормыПрикрепленныеФайлы(Кнопка)
ФормаСписка = Справочники.ХранилищеДополнительнойИнформации.ПолучитьФормуСписка();
ФормаСписка.Отбор.ОбъектОтбора.Значение = Ссылка;
ФормаСписка.Отбор.ОбъектОтбора.Использование = Истина;
ФормаСписка.Открыть();
КонецПроцедуры
При таком подходе пользователи смогут прикреплять любые файлы (PDF, JPG, DOCX) непосредственно к документу. Ссылка на документ запишется в реквизит ОбъектОтбора справочника хранилища.
Важное предупреждение: Хранение тяжелых бинарных данных (особенно многостраничных PDF-сканов в высоком разрешении) непосредственно внутри базы данных 1С быстро приведет к ее лавинообразному росту. Например, при объеме учетных данных в 1.5 Гб размер базы со сканами может легко превысить 70 Гб. Это существенно снизит производительность СУБД, усложнит процесс создания резервных копий (выгрузку файлов .dt) и может приводить к регулярным зависаниям при обновлении конфигурации.
Чтобы избежать этой проблемы, рассмотрим два альтернативных варианта хранения файлов при доработке:
Штатный механизм работы с файлами в 1С позволяет настроить хранение не в самой таблице базы данных (СУБД), а в выделенной папке на сервере. При этом в системе будут храниться только пути к файлам.
Для реализации этого варианта необходимо выполнить следующие условия:
\\имя_сервера\имя_папки\).Если требования к безопасности или архитектуре не позволяют использовать общие сетевые папки, можно пойти по пути интеграции с внешней базой данных. Для этого под управлением СУБД (например, MS SQL Server или PostgreSQL) создается отдельная база данных, содержащая таблицы для хранения бинарных данных файлов.
В основной базе ЗКБУ 1.0 создается специальная обработка, которая при сохранении приказа обращается по внешнему соединению к этой базе данных, передает туда файл и связывает его с уникальным идентификатором (GUID) кадрового документа 1С. При запросе файла пользователем обработка быстро считывает его из внешней СУБД. Это полностью исключает нагрузку на основную базу 1С.
Если ваше учреждение обладает развитой ИТ-инфраструктурой, рекомендуем рассмотреть более технологичные методы автоматизации: