Тема: Шаблоны документов с переменным числом однотипных полей

Есть тип "Документ", у него могут быть "Адресаты", "Подписанты", "Согласующие" и т.п.
Поделитесь, кто как это реализует.
Я сначала создал несколько табличных атрибутов "Адресаты", "Подписанты", "Согласующие" с колонкой "Пользователь" (ссылка на пользователя).
Потом передумал и сделал один табличный атрибут на всех и вторую колонку в нём - "Роль". Роль - это "Адресат", "Подписант", "Согласующий", ... - ссылка на объект (из Справочников).
Т.е. можно документу назначать несколько пользователей с разными или одинаковыми ролями (несколько согласующих, например).
Теперь это всё нужно перенести в файл Word (шаблон).
С обычными полями нет проблем (номер, дата, ...), но как быть с табличными?
Вставка табличного атрибута есть, но это просто вставка. Связь не создаётся (обновление не работает).
Но даже если это просто сбой какой-то, всё-равно, табличный атрибут вставляется как есть.
А мне нужно чтобы из двух колонок атрибута отбирались строки по нужной роли и получалась таблица - Должность, _____(подпись), И.О.Фамилия

Re: Шаблоны документов с переменным числом однотипных полей

A77x7 пишет:

А мне нужно чтобы из двух колонок атрибута отбирались строки по нужной роли и получалась таблица - Должность, _____(подпись), И.О.Фамилия

Идея понятна. Как вариант, такие превращения должны работать через внешние функции. Но лично я пока не очень понимаю, как корректно передавать параметры для заполнения. Поля выборки (или вообще динамический набор данных в таблице) надо как-то описывать в Word. У функций нет декларативной части. Возвращаемые ими параметры это чистой воды вариант. Как их обработает интерфейс на стороне ворда - надо проверять.

В общем надо пробовать. Не исключено, что при определенной ловкости рук, это уже можно сделать и на текущем AddIns.

(изменено: A77x7, 15 апреля 2014г. 07:13:02)

Re: Шаблоны документов с переменным числом однотипных полей

McZag пишет:

Идея понятна. Как вариант, такие превращения должны работать через внешние функции. Но лично я пока не очень понимаю, как корректно передавать параметры для заполнения. Поля выборки (или вообще динамический набор данных в таблице) надо как-то описывать в Word. У функций нет декларативной части. Возвращаемые ими параметры это чистой воды вариант. Как их обработает интерфейс на стороне ворда - надо проверять.

Да, наверное это уже слишком, получается поле нужно как-то сопоставить с колонкой таблицы в ворде... штатными средствами это не получится

McZag пишет:

В общем надо пробовать. Не исключено, что при определенной ловкости рук, это уже можно сделать и на текущем AddIns.

Ловкость/кривость моих рук (без деталей):

Sub Object_Modified(Obj) 'Obj - это Документ
  s = ""
  for each r in Obj.Attributes("ATTR_OFFDOC_SIGNER_LIST").Rows
    s = s & r.Attributes("ATTR_USER").User.Position & vbTab & r.Attributes("ATTR_USER").User.LastName & " " & left(r.Attributes("ATTR_USER").User.FirstName, 1) & "." & left(r.Attributes("ATTR_USER").User.MiddleName, 1) & "." & vbCrLf
  next
  Obj.Attributes("ATTR_OFFDOC_SIGNER_LIST_TEXT").Value = s
End Sub

В ворде просто вставляем ATTR_OFFDOC_SIGNER_LIST_TEXT + заранее (в шаблоне) настраиваем табуляцию.
Но всё-равно как-то это примитивно и не гибко.

P.S.
Может вместо этого использовать тип атрибута "Текст" (RTF) для самого содержимого документа, а потом генерить готовый документ с добавлением всей обвески (шапка, подписи, ...)? Тогда файлы и их шаблоны вообще не нужны, ну или будут играть уже второстепенную роль, как последний "рендеринг" smile данных.

Re: Шаблоны документов с переменным числом однотипных полей

Решил пойти по простому пути - вставить текстовый атрибут (сформированный из табличного) с табуляцией, переводом строки и всё такое...
Столкнулся с другой проблемой - ограничением на длину поля в Ворде в 255 символов...
Больше трёх согласователей не входит  :(