Поради розробнику варто додавати свої ресурси в типові регістри відомостей

До недавніх пір я вважав, що додавання "своїх" ресурсів в типовій регістр відомостей (при збігу вимірювань і при логічної сумісності додається ресурсу і регістра відомостей) є правилом хорошого тону. По крайней мере, так мене вчили в Навчальному Центрі 3 при фірмі 1С.

Але недавно життя змусило внести корективи в цю точку зору.

Все почалося після поновлення 1С Зарплати і управління персоналом, здається, версії 2.5.16 на версію 2.5.19.

Неприємним сюрпризом стало те, що користувачі на наступний день не змогли відправити платіжні відомості в банк. в обліковій політиці по персоналу організації стерся шаблон вивантаження в банк. який був доданим мною ресурсом цього регістра відомостей.

Я засумнівався. Поліз в код, і в обробці поновлення інформаційної бази виявив там наступне, що повалило мене в легкий шок:

// Процедура заповнює порядок списання фактичних відпусток в обліковій політиці по персоналу
//
Процедура ЗаполнітьПорядокСпісаніяФактіческіхОтпусков () Експорт

НаборЗапісей = РегістриСведеній. УчетнаяПолітікаПоПерсоналуОрганізацій. СоздатьНаборЗапісей ();
НаборЗапісей. Обмін даними. Завантаження = Істина;

Вибірка = Запит. Виконати (). Вибрати ();
Поки Вибірка. Наступний () Цикл
НаборЗапісей. Відбір. Організація. Встановити (Вибірка. Організація);
ЗаполнітьЗначеніяСвойств (НаборЗапісей. Додати (), Вибірка);
НаборЗапісей. Записати ();
НаборЗапісей. Очистити ();
КонецЦікла;

Дещо незвично для процедури ЗаполнітьПорядокСпісаніяФактіческіхОтпусков () наявність у неї побічного ефекту. очищення всіх ресурсів регістра відомостей, які явно не названі в запиті.

Але мої сумніви остаточно розвіялися, коли я зрозумів, що при зміні облікової політики з персоналу (Обработка.НастройкаПараметровУчета.Модуль об'єкта) знову відбувається очищення всіх ресурсів регістра відомостей, доданих стороннім розробником:

НаборЗапісей = РегістриСведеній. УчетнаяПолітікаПоПерсоналуОрганізацій. СоздатьНаборЗапісей ();
НаборЗапісей. Відбір. Організація. Встановити (Організація);
НоваяЗапісь = НаборЗапісей. Додати ();
ЗаполнітьЗначеніяСвойств (НоваяЗапісь. ФормаОбработкі. МУчетнаяПолітікаПоПерсоналуОрганізацій);
Новий запис. Організація = Організація;

У формі обробки явно створювалася структура мУчетнаяПолітікаПоПерсоналуОрганізацій, куди додавалися тільки типові ресурси з регістра відомостей.

Я не став більш сумніватися і створив свій регістр відомостей, куди і помістив "свої" багатостраждальні ресурси.