При разработке собственных объектов в конфигурации 1С:Зарплата и Управление Персоналом 3.1, построенной на базе Библиотеки стандартных подсистем (БСП), недостаточно просто создать документ в дереве метаданных. Чтобы объект выглядел и работал как «родной», его необходимо подключить к десяткам сервисных механизмов. Это обеспечит пользователям привычный интерфейс, а системе — корректную обработку данных. Рассмотрим подробно, какие подсистемы БСП и специфические механизмы ЗУП следует задействовать и как это сделать.
Первым делом проанализируем базовые возможности, которые ожидают увидеть пользователи в любом документе современной системы 1С. Подключение большинства из них выполняется через включение документа в соответствующие Определяемые типы и добавление процедур-обработчиков в модуль менеджера.
ОбъектСКомандамиПечати и прописать процедуру ДобавитьКомандыПечати в модуле менеджера.ИмяДокументаПрисоединенныеФайлы и включение его в типы владельцев файлов.ОбъектСПоддержкойВерсионирования.ОбъектСДополнительнымиРеквизитами и АвторДополнительныхСведений.СтруктураПодчиненностиТипУзла.Разберем далее более глубокие механизмы, которые отвечают за удобство массовой работы и интеграцию в общую экосистему информационной базы.
Заполнение объектов. Этот механизм позволяет описывать логику заполнения документа (команда «Заполнить»). Если ваш документ должен автоматически рассчитывать строки табличной части по данным информационной базы, обязательно используйте стандартный интерфейс БСП ЗаполнениеОбъектов.
Полнотекстовый поиск. Чтобы пользователи могли найти документ по номеру, комментарию или специфическому тексту в строках через глобальный поиск, необходимо настроить свойства «Использование полнотекстового поиска» у самого объекта и его реквизитов.
Префиксация номеров. В ЗУП крайне важно соблюдать единообразие номеров. Подключите механизм ПрефиксацияОбъектов, чтобы номера документов автоматически получали префикс организации и информационной базы. Это делается через подписку на событие ПриУстановкеНовогоНомера.
Групповое изменение реквизитов. Чтобы администраторы могли массово менять значения в вашем документе через стандартную обработку, документ должен быть доступен для этого механизма. Проверьте включение в определяемый тип ОбъектСНастраиваемымиПорядкомИ Группировкой (если применимо).
Поскольку мы работаем в 1С:ЗУП, документ не существует в вакууме. Он влияет на расчет зарплаты, стаж и отчетность. Выясним, какие отраслевые механизмы критически важны:
Если ваш документ вводит данные, которые могут изменить уже рассчитанную зарплату (например, ввод показателей или изменение графика), его нужно зарегистрировать в механизме перерасчетов. Проанализируем пример кода для регистрации необходимости перерасчета в модуле документа:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
// Регистрируем необходимость перерасчета для сотрудников
ЗарплатаКадрыСоставДокументов.ЗарегистрироватьИзменениеДокумента(ЭтотОбъект);
КонецПроцедуры
Для кадровых документов важно исключить ситуацию, когда сотрудник одновременно находится в двух несовместимых состояниях. Рассмотрим использование механизмов проверки пересечений. В ЗУП для этого используются функции общего модуля КадровыйУчет, которые анализируют записи в регистрах сведений СостоянияСотрудников.
Одной из самых сложных задач является настройка прав доступа. В ЗУП реализован мощный механизм RLS (Row Level Security), который ограничивает доступ по организациям, подразделениям и физическим лицам. Проанализируем ситуацию: если вы создали документ, но не включили его в механизмы доступа, пользователи с ограниченными правами либо не увидят его совсем, либо увидят лишнее.
Группы доступа. Необходимо добавить документ в определяемые типы:
ВладелецНабораЗначенийДоступаОбъектОрганизацияВладелецОбъекта (если есть реквизит Организация)После этого нужно обновить справочник «Идентификаторы объектов метаданных» и настроить роли. Помните, что для корректной работы RLS в ЗУП 3.1 часто требуется прописывать логику в модуле менеджера для шаблонов ограничений доступа.
Чтобы работа с документом была комфортной, проанализируем необходимость внедрения следующих функций:
Система взаимодействия и Обсуждения. Подключите возможность чата внутри документа. Это позволит бухгалтерам обсуждать конкретный расчет прямо в контексте объекта. Включается в настройках системы взаимодействия через определяемый тип ПредметОбсуждения.
Заметки и Напоминания. Если бухгалтер планирует вернуться к заполнению документа позже, он может создать напоминание («Напомнить через 2 часа»). Для этого документ должен входить в тип ИсточникНапоминания.
История работы. Чтобы документ корректно отображался в списке «Недавние» и учитывался в статистике работы пользователя, убедитесь, что у него включено использование стандартного журнала регистрации и соответствующих свойств метаданных.
Разберем по шагам, как обычно выглядит типовое наполнение модуля менеджера для интеграции с БСП. Рассмотрим пример структуры:
#Область БСП
// Заполнение команд печати
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Здесь описываются настройки печатных форм
КонецПроцедуры
// Настройка версионирования
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
// Указываем параметры хранения версий
КонецПроцедуры
// Настройка дополнительных реквизитов
Процедура ПриОпределенииНастроекДополнительныхРеквизитовИСведений(Настройки) Экспорт
// Настройки отображения доп. полей
КонецПроцедуры
#КонецОбласти
Подводя итог, можно сказать, что разработка документа в ЗУП — это на 30% проектирование его структуры и на 70% интеграция в существующую экосистему. Правильное использование механизмов БСП не только экономит время на разработку велосипедов (вроде своей системы хранения файлов), но и делает вашу конфигурацию стабильной и легкой в обновлении.