Большое спасибо 
Parazit, эксплуатирую твою разработку - работает замечательно 
 
 Для заполнения таблицы значений написал свой ФМ, вот решил опубликовать (на мой взгляд удачное решение получилось)
Для связывания переменных программы и текстовых "меток"шаблона я сделал настоечную таблицу ZWWW_FASSIGN и ФМ ZWWW_FILL_VALUES для сбора значений из программы которая его вызвала и заполнения таблицы значений на основе настроечной таблицы
Структура таблицы:
Code:
OBJID     W3OBJID        ключь Имя объекта 
NUM       NUMC3          ключь Номер по порядку (практического смысла не имеет, просто чтоб размножить записи)
FGROUP    ZWWW_FGROUP    Группа полей используется в подпрограммах заполнения шаблона 
VAR_NAME  ZWWW_VAR_NAME  Имя закладки 
FIND_TEXT ZWWW_FIND_TEXT текстовая метка из шаблона например «[ИМЯ_КЛИЕНТА]»
FNAMES    TEXT255        макрос для формирования строки которой будет заменена метка.
поле FNAMES – предназначен для упрощения формирования строки для замены метки
Пример заполнения: «[ADRC-POST_CODE1] [ADRC-REGION] {г. [ADRC-CITY1],} [ADRC-STREET],} [ADRC-HOUSE_NUM1]»
В квадратных скобках указаны имена полей заполняющей программы  из которых должно быть взято значение, перед и после квадратных скобок могут быть  указаны соотв.  фигурные скобки значение которое указано между фигурной и квадратной скобкой будет внесено в текст если значение поля в квадратных скобках не пустое
т.е. в нашем примере если поле программы ADRC-CITY1 (город) заполнено (не пустое) то перед ним будет выведено «г.» а после него «,».
внутри квадратных скобок перед именем поля программы может быть указана подпрограмма преобразования через разделитель «|»  например [D1|VEDA-VBEGDAT] – в данном случае «D1» -это имя стандартной подпрограммы преобразования  подпрограммы начинающиеся на «Z» должны быть закодированы в программе формирующей формуляр. У таких подпрограмм два параметра – входящая переменная и исходящая строка.
поле FGROUP – это поле является одним из параметров ФМ ZWWW_FILL_VALUES и служит для единовременного заполнение строк значений для нескольких текстовых меток шаблона.
Code:
FUNCTION zwww_fill_values.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     VALUE(PROGRAM) TYPE  SY-REPID OPTIONAL
*"     REFERENCE(OBJID) TYPE  ZWWW_FASSIGN-OBJID
*"     REFERENCE(FGROUP) TYPE  ZWWW_FASSIGN-FGROUP DEFAULT '*'
*"     REFERENCE(VAR_NUM) TYPE  ZWWW_VAR_NUM OPTIONAL
*"  TABLES
*"      IT_VALUES
*"----------------------------------------------------------------------
  STATICS itfassign TYPE zwww_fassign OCCURS 0 WITH HEADER LINE.
  DATA: index TYPE sy-index.
  DATA: field(100) TYPE c.
  DATA: wa_values TYPE zwww_values.
  DATA: tail(50) TYPE c.
  DATA: len TYPE i.
  DATA: ch  TYPE c.
  DATA: tabix TYPE sy-tabix.
  DATA: prg(20) TYPE c.
  DATA: str(100) TYPE c.
  DATA: BEGIN OF itw OCCURS 0,
          pch TYPE c,
          nch TYPE c,
          str(100) TYPE c,
        END   OF itw.
  DATA: wx LIKE LINE OF itw.
  FIELD-SYMBOLS <fs>.
  READ TABLE itfassign  WITH KEY objid = objid.
  IF sy-subrc <> 0.
    SELECT * APPENDING TABLE itfassign
      FROM zwww_fassign
     WHERE objid = objid.
    IF sy-subrc <> 0.
      MESSAGE x398(00) WITH 'Данные для объекта' objid 'не найдены'.
    ENDIF.
  ENDIF.
  IF program IS INITIAL.
    CALL 'AB_GET_CALLER' ID 'PROGRAM' FIELD program.
  ENDIF.
  LOOP AT itfassign WHERE objid = objid
                      AND fgroup CP fgroup.
    len = STRLEN( itfassign-fnames ).
    CHECK len > 0.
    ASSIGN itfassign-fnames(len) TO <fs>.
    TRANSLATE <fs> USING ' #'.
    CLEAR: itw[], itw, index.
    DO len TIMES.
      ch = itfassign-fnames+index(1).
      IF ch CA '{}[]'.
        itw-nch = ch.
        APPEND itw.
        CLEAR itw.
        itw-pch = ch.
      ELSE.
        CONCATENATE itw-str ch INTO itw-str.
      ENDIF.
      ADD 1 TO index.
    ENDDO.
    LOOP AT itw WHERE nch = ']'.
      tabix = sy-tabix.
      TRANSLATE itw-str TO UPPER CASE.
      IF itw-str CA '|'.
        SPLIT itw-str AT '|' INTO prg itw-str.
      ELSE.
        CLEAR prg.
      ENDIF.
      CONCATENATE '(' program ')' itw-str INTO field.
      ASSIGN (field) TO <fs>.
      CLEAR str.
      IF NOT <fs> IS INITIAL.
        IF prg IS INITIAL.
          WRITE <fs> TO str LEFT-JUSTIFIED.
        ELSE.
          IF prg(1) = 'Z'.
            PERFORM (prg) IN PROGRAM (program) IF FOUND
              USING <fs> str.
          ELSE.
            CONCATENATE 'CONVERT_' prg INTO prg.
            PERFORM (prg) IN PROGRAM (sy-repid) IF FOUND
              USING <fs> str.
          ENDIF.
          IF str IS INITIAL.
            WRITE <fs> TO str LEFT-JUSTIFIED.
          ENDIF.
        ENDIF.
        ADD 1  TO tabix.
        READ TABLE itw INDEX tabix INTO wx.
        IF wx-nch = '}'.
          CONCATENATE str wx-str INTO str.
        ENDIF.
        SUBTRACT 2 FROM tabix.
        IF tabix > 0.
          READ TABLE itw INDEX tabix INTO wx.
          IF wx-pch = '{'.
            CONCATENATE wx-str str INTO str.
          ENDIF.
        ENDIF.
        ADD 1  TO tabix.
      ENDIF.
      itw-str = str.
      MODIFY itw INDEX tabix TRANSPORTING str.
    ENDLOOP.
    CLEAR wa_values.
    LOOP AT itw WHERE NOT str IS INITIAL.
      IF itw-pch = '{' AND itw-nch = '['
      OR itw-pch = ']' AND itw-nch = '}'.
        CONTINUE.
      ENDIF.
      CONCATENATE wa_values-value itw-str INTO wa_values-value.
    ENDLOOP.
    TRANSLATE wa_values-value USING '# '.
    wa_values-var_name  = itfassign-var_name.
    wa_values-var_num   = var_num.
    wa_values-find_text = itfassign-find_text.
*    wa_values-val_type  = .
    APPEND wa_values TO it_values.
  ENDLOOP.
ENDFUNCTION.
*&---------------------------------------------------------------------*
*&      Form  CONVERT_d1
*&---------------------------------------------------------------------*
*       Подпрограмма преобразования D1 
*----------------------------------------------------------------------*
*      -->D          text
*      -->STR        text
*----------------------------------------------------------------------*
FORM convert_d1 USING ad str.
  DATA: d TYPE d.
  DATA: month(15) TYPE c.
  d = ad.
  CASE d+4(2).
    WHEN '01'. month = 'января'.
    WHEN '02'. month = 'февраля'.
    WHEN '03'. month = 'марта'.
    WHEN '04'. month = 'апреля'.
    WHEN '05'. month = 'майя'.
    WHEN '06'. month = 'июня'.
    WHEN '07'. month = 'июля'.
    WHEN '08'. month = 'августа'.
    WHEN '09'. month = 'сентября'.
    WHEN '10'. month = 'октября'.
    WHEN '11'. month = 'ноября'.
    WHEN '12'. month = 'декабря'.
  ENDCASE.
  CONCATENATE '«' d+6(2) '»#' month '#' d(4) '#года' INTO str.
  TRANSLATE str USING '# '.
ENDFORM.                                                    "CONVERT_d1
Данный ФМ позволяет упростить программу формирования шаблона, сделать её более наглядной и настраиваемой, 
отделяет названия текстовых меток шаблона от программы формирования шаблона