Задача: создать реестр табличных документов, который хранится в базе.

  • Должна быть возможность добавить табличный документ в базу;
  • Должны быть возможность открыть и изменить табличный документ, изменения должны сохраняться;
  • Табличный выводится и редактируется в форме элемента (рис 1):

Рис. 1 — Табличный документ

Решение, порядок действий

  • Создать справочник «ТабличныеДокументы», добавить 2 реквизита:
    • «АдресВХ» (тип: строка неограниченной длины);
    • «ХранилищеТабличныйДокумент» (тип: хранилище значений);
  • Создать форму элемента справочника, в форму добавить реквизит «ТабДок»;
    • В свойствах элемента данного реквизита проставить галочку «Редактирование»;
  • В свойствах формы добавить обработчики (листинг 1):
    • «При открытии»;
    • «Перед записью»;

Листинг 1 — Программный код модуля формы элемента:

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
	Объект.АдресВХ = ПоместитьВоВременноеХранилище(ТабДок);
КонецПроцедуры

&НаСервере
Процедура ПриОткрытииНаСервере()
	ДокументОбъект = РеквизитФормыВЗначение("Объект");
	ТабДок = ДокументОбъект.ХранилищеТабличныйДокумент.Получить();
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ПриОткрытииНаСервере();
КонецПроцедуры
  • В модуль объекта добавить процедуру «Перед записью» (листинг 2);

Листинг 2 — Программный код модуля объекта:

Процедура ПередЗаписью(Отказ)
	ТабДок = ПолучитьИзВременногоХранилища(АдресВХ);    
	ХранилищеТабличныйДокумент = Новый ХранилищеЗначения(ТабДок);
КонецПроцедуры