Робота з метаданими об'єкта 1с або як очистити всі реквізити і табличні частини

Не так давно довелося приводити конфігурацію замовника у відповідність з законом «Про захист персональних даних», який свідчить, що при відмові клієнта в схваленні заявки всі особисті дані про нього повинні віддалятися з інформаційної системи обробки персональних даних, якій є 1С. Реквізитів і таблиць з особистими даними було досить багато, тому вручну прописувати очищення було недоцільно. А видаляти сам елемент довідника було не можна, тому що до нього був прив'язаний документ розгляду заявки, і видалення порушило б логічну цілісність інформаційної бази.

Тому необхідний був механізм, який дозволив би отримати повний список реквізитів та табличних частин. Для цього у об'єктів 1С існує вбудована функція Метадані ().

Ця функція повертає значення особливого типу - Об'ектМетаданних. У ньому містяться практично всі властивості об'єкта. Наприклад для елемента довідника це будуть: довжина найменування та коду, автонумерация, основні форми, взагалі всі існуючі форми, уявлення об'єкта, ієрархічність, макети і багато іншого.

У нашому випадку будуть потрібні Реквізити і Табличні частини. Ці компоненти метаданих містять значення КоллекціяОб'ектовМетаданних. яку можна обійти в циклі Для кожного.

У кожного з елементів колекції теж багато властивостей, зокрема є дуже корисна властивість Тип. через яке можна отримати тип того чи іншого реквізиту. Повний список властивостей можна дізнатися, наприклад, в режимі налагодження через команду Обчислити вираз. Мені ж для звернення до реквізиту або табличній частині потрібно властивість Ім'я.

В результаті модуль, що очищає реквізити і табличні частини, виглядає так:

Для Кожного ТаблЧасть З Контрагент. метадані # 40; # 41 ;. ТаблічниеЧасті Цикл
контрагент # 91; ТаблЧасть. ім'я # 93 ;. Очистити # 40; # 41; ;
КонецЦікла;

Контрагент. записати # 40; # 41; ;

Функція Метадані () застосовується як для самого об'єкта, так і для посилання на нього. У нашому випадку необхідно було змінити значення реквізитів, тому об'єкт потрібно було отримати. Ця функція працює не тільки для довідників, а й для інших об'єктів конфігурації 1С, але склад властивостей буде іншим.

Поділитися в соц. мережах

Схожі статті