Задача: создать реестр табличных документов, который хранится в базе.
- Должна быть возможность добавить табличный документ в базу;
- Должны быть возможность открыть и изменить табличный документ, изменения должны сохраняться;
- Табличный выводится и редактируется в форме элемента (рис 1):
Рис. 1 — Табличный документ
Решение, порядок действий
- Создать справочник «ТабличныеДокументы», добавить 2 реквизита:
- «АдресВХ» (тип: строка неограниченной длины);
- «ХранилищеТабличныйДокумент» (тип: хранилище значений);
- Создать форму элемента справочника, в форму добавить реквизит «ТабДок»;
- В свойствах элемента данного реквизита проставить галочку «Редактирование»;
- В свойствах формы добавить обработчики (листинг 1):
- «При открытии»;
- «Перед записью»;
Листинг 1 — Программный код модуля формы элемента:
&НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Объект.АдресВХ = ПоместитьВоВременноеХранилище(ТабДок); КонецПроцедуры &НаСервере Процедура ПриОткрытииНаСервере() ДокументОбъект = РеквизитФормыВЗначение("Объект"); ТабДок = ДокументОбъект.ХранилищеТабличныйДокумент.Получить(); КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) ПриОткрытииНаСервере(); КонецПроцедуры
- В модуль объекта добавить процедуру «Перед записью» (листинг 2);
Листинг 2 — Программный код модуля объекта:
Процедура ПередЗаписью(Отказ) ТабДок = ПолучитьИзВременногоХранилища(АдресВХ); ХранилищеТабличныйДокумент = Новый ХранилищеЗначения(ТабДок); КонецПроцедуры
Оставить комментарий