Сегодня для себя открыл потрясающую возможность в работе форматера. Оказывается, почти везде где указывается какой-либо файл, его можно указывать с директорией. Понадобилось мне это для того, что бы выделить редактируемые файлы и обезопасить себя при переходе на новые версии.
Что предлагается:
1. в папке базы данных создать подкаталог "userfile"
2. свои собственные печатные и статистические формы размещать в этот подкаталог
3. в справочниках, в которых выполняется подключение печатных и стат. форм, указывать перед именем формы подкаталог, в котором находятся файлы
Например, у меня сейчас вот такая форма размещения файлов работает:
\datai
\ibis
\userfile
\printform
\!!kk_o
!!kk_o.hdr
!!kk_o.pft
!!kk_o.srw
!!kk_o.tbu
!!kk_o_header.pft
!!kk_o_mhr1.pft
!!kk_o_mhr2.pft
!!kk_o_mhr3.pft
!!kk_o_srw.pft
\statform
\form1
form1.stf
form1.xlt
form1_gor.pft
form1_ver.pft
stf.mnu:
\userfile\statform\form1\form1
Ввод каталогизаторами данных в электронный каталог
tabw.tre:
КАТАЛОЖНЫЕ КАРТОЧКИ/ФОРМУЛЯРЫ
\userfile\printform\!!KK_O\!!KK_O - Основная
Настройка вызова ресурсво из подпапок для стат.формы:
файл form1.xlt
\userfile\statform\form1\Form1
&uf('6\userfile\statform\form1\form1_ver')
FIO_SF.mnu
&uf('6\userfile\statform\form1\form1_gor')
MONTH_SF.mnu
4,7
991.wss,1000
'Ввод каталогизаторами данных в электронный каталог по месяцам за ', v1000^A,' г.'
1,1
'Распределение ввода данных в электронный каталог по каталогизаторам за ', v1000^A,' г.',/'Каталогизаторы'
'Распределение ввода данных в электронный каталог по месяцам за ', v1000^A,' г.',/'Месяц'
Настройка вызова ресурсво для каталожной карточки:
файл !!kk_o.srw
[HeaderNumber]
1
*****
[HeaderFormat]
&uf('6\userfile\printform\!!kk_o\!!kk_o_header')
*****
[KeyOptions]
100
1
&uf('6\userfile\printform\!!kk_o\!!kk_o_srw')
*****
файл !!kk_o_header.pft
'\ql',
(if p(v1) then
if p(v1^A) then
if &uf('Ag234#1')<>'' then &uf('Ag234#1') fi,
&uf('D,@',v1.10,',@\userfile\printform\!!kk_rtf_format\!!kk0shp'),
&uf('D,@',v1.10,',@\userfile\printform\!!kk_rtf_format\!!kk1bok'),
&uf('D,@',v1.10,',@\userfile\printform\!!kk_rtf_format\!!kk1bop'),
&uf('D,@',v1.10,',@\userfile\printform\!!kk_rtf_format\!!kk2udk'),
&uf('D,@',v1.10,',@\userfile\printform\!!kk_rtf_format\!!kk3prk'),
&uf('D,@',v1.10,',@\userfile\printform\!!kk_rtf_format\!!kk4ann'),
&uf('D,@',v1.10,',@\userfile\printform\!!kk_rtf_format\!!kk5odk'),
&uf('D,@',v1.10,',@\userfile\printform\!!kk_rtf_format\!!kk6j'),
|\par \b |v1^+|\b0 |,
if a(v1^+) then &uf('D,@',v1.10,',@\userfile\printform\!!kk_rtf_format\!!kk7ex') fi,
&uf('+7U234#\page ')
fi
fi/),
&unifor('!'),
файл !!kk_o_srw.pft
if &uf('IPrivate,TOK,')='' and (not(v905^c):'4') then
mfn(10),
'^A1'
else
if s(&unifor('IPRIVATE,KKI,'),v905^c):'4' then
&uf('6\userfile\printform\!!kk_o\!!kk_o_mhr1')
else
&uf('6\userfile\printform\!!kk_o\!!kk_o_mhr2')
fi
fi,
&uf('+7W234#')
Что это дает? Во первых, вам будет проще перезжать на новую версию, так как все файлы встроены в систему, но они локализованы и изолированы. Во вторых, есть возможность превращать отдельные ресурсы (печатные формы, статистические формы, ТВП для конвертации/обмена данными, ТВП для формирования словарей, форматы просмотра и т.д.) фактически в модули/плагины с простой установкой/настройкой, но главное - и с простым удалением.