р а т и т е с ь к р а з р а б о т ч и к у !" ) ;
В о з в р а т ;
КонецЕсли;
КонецЕсли;
Если компонента успешно найдена и загружена, то переда-
ча управления в процедуре будет передана на последующие
строки, иначе произойдет выход из процедуры с соответствую-
щим сообщением. Как видно из приведенного фрагмента, внеш-
нюю компоненту мы пытаемся найти или в каталоге информаци-
онной базы, путь к которому возвращается функцией
К а т а л о -
гИ Б (),
или в каталоге установки 1C (функция
К а т а л о гП р о гр а м -
мы()).
В последующих строках мы создоем структуру нашего XML-
файла, заполняем его и записываем на жесткий диск
А н а л и з а т о р = С о зд а т ь О б 'ь е к т ( " A d d in .X M L P a r s e r " ) ;
К о р е н ь = А н а л и з а т о р . С о з д а т ь Д о к у м е н т ( ) ;
П р а й сЛ и ст = К о р е н ь .С о зд а ть П о д ч и н е н н ы й Э л е м е н т( "П р а й с -
Л и с т ") ;
П р а й сЛ и с т .У с т а н о в и т ь А т р и б у т ( "Ф и р м а ", К о н с т а н т а Н аш а-
Ф и р м а );
П р а й с Л и с т .У с т а н о в и т ь А т р и б у т ( " Д а т а " , Н а Д а ту );
Ч и сл о С п р а в о ч н и ко в = М е та д а н н ы е . С п р а в о ч н и к ( ) ;
Для Инд=1 По Ч и сл о С п р а в о ч н и ко в Ц икл
Т екущ и й С п р аво ч н и к = М е та д а н н ы е . С п р а в о ч н и к (И н д );
Ком плектую щ ее = П р а й сЛ и ст.С о зд а ть П о д ч и н е н н ы й Э л е -
м е н т (Т е кущ и й С п р а в о ч н и к.И д е н ти ф и ка то р );
К ом п лектую щ ее.У с т а н о в и т ь А т р и б у т ( "С и н о н и м ", Текущ ий
С п р а в о ч н и к .К о м м е н т а р и й );
Спр = С о зд а тьО б 'ье кт (Т е кущ и й С п р а в о ч н и к. П олны йИ дентиф и-
к а т о р ( ) ) ;
С п р . В ы б р а тьЭ п е м е н ты ( ) ;
П ока С п р . П о л уч и тьЭ л е м е н т () =1 Ц икл
Д е та л ь = К о м п л е ктую щ е е .С о зд а тьП о д ч и н е н н ы й Э л е м е н т(Т е -
кущ и й С п р а в о ч н и к. К ом м ен тар и й ) ;
Д е т а л ь . У с т а н о в и т ь А т р и б у т ("Н а и м е н о в а н и е " , С п р . Т е к у -
гцийЭпемент ( ) . Н а и м е н о в а н и е );
Д е т а л ь .У с т а н о в и т ь А т р и б у т ("Ц е н а ", С п р Т екущ и й Э п е -
м е н т ( ) . Ц е н а . П о л у ч и т ь (Н а Д а ту ) ) ;
К он ец Ц и кл а;
К он ец Ц и кл а;
ИмяФ айла = С о кр Л П (К уд а) + "ргд .се_ "+ Н аД ату+ " x m l" ;
К о р е н ь . З а п и с а т ь (И м яФ ай л а);
Перво-напервО мы создаем объект обозначенный в специ-
фикации внешней компоненты
V 7 P lu s
как
X M L P a rs e r.
Далее
создается сам XML-документ и его корневой элемент (у нас он
называется
П рай сЛ ист).
Чтобы не плодить ошибок и недора-
зумений в будущем, мы сразу позаботимся о дате актуально-
сти прайс-листа (выбирается в форме) и о фирме, от лица ко-
торой этот прайс-лист будет предоставлен клиентам (фирма
установлена в константе
наш аФирма)
За это отвечают мето-
ды
У с т а н о в и т ь А т р и б у т ,
примененные к корневому элементу
документа.
Теперь начинаем хитрить ©. Так как в нашей системе спра-
вочников достаточно много (на каждое комплектующее по шту-
ке), то нам придется перебрать их все в цикле. Здесь возникает
вопрос, как же нам получить число справочников в системе? От-
вет прост: использовать объект
М етаданны е,
который в себе со-
держит функции и методы для управления метаданными конфи-
гурации на самом низком уровне. Чтобы получить количество
справочников в конфигурации, нам достаточно вызвать без па-
раметров функцию
С п р аво ч н ы х
() объекта
М етаданны е
и резуль-
тат ее выполнения присвоить какой-нибудь переменной. Далее
мы в цикле перебираем все справочники системы и их элементы
и создаем на их основе структуру прайс-листа. Результатом вы-
полнения
обработки
должен
стать
файл
с
именем
р га .с е _ д д .м м . г г . x m l,
сохраненный в пути, который соответст-
вует значению реквизита
ку д а ,
введенному в форме. Как вы, не-
сомненно, догадались, ДДММ.ГТ представляет собой дату акту-
альности прайс-листа, которая также выбирается на форме об-
работки. Зометьте также, что здесь нам очень пригодилась пе-
риодичность реквизита
ц е н а
в каждом из справочников. Исполь-
зуя ее, мы можем получить историю цен на каждое комплектую-
щее вплоть до начала работы нашей конфигурации.
XML хорош своей системой безопасности. В частности, ника-
кие изменения не будут сохранены в файле вплоть до принуди-
тельного вызова процедуры записи, что мы и делаем в послед-
ней строке при помощи процедуры
З а п и с а т ь
() с переданным
именем файла в качестве параметра. Результат работы нашей
обработки можно увидеть, открыв созданный файл в любом тек-
стовом редакторе (рис. 2).
<7xml version="l 0" encoding=,V/indov/s-12Slu ?>
- «ПрайсЛист Фирма="000 "Вася Пупкин Лтд’" Дата-"2004-09-01">
- «МатеринскиеПлаты Синоним="МатеринскаяПлата">
«МатеринскаяПлата наиненоеание="albatron k x is d Pro" Цена="401" />
«МатеринскаяПлата Наименование^^ "Albatron PX845PEV цвна="3б71
' /?
«МатеринскаяПлата наименование^1
albatron PX848PV Цена-"408'' /?
«МатеринскаяПлата Наименование^'Albatron PX848PV pro" цена="414" />
«МатеринскаяПлата Наименование^'Albatron РХ865РЕ" цена="470а />
«МатеринскаяПлата наименование^'АБиБ A7N8X-X" Ц®на="40Г' />
«МатеринскаяПлата Наименовэнне="А8и8 Р4Р800 DELUXE" ц©на="671" />
«МатеринскаяПлата наименование="ЕС8 elitegroup K7VTA3-L" цена="211" />
«МатеринскаяПлата наименсвание="1гЛв1 D865GLCL Lacrosse" Цвна="б00" />
«МатеринскаяПлата наимбиование="8Ц-85 LIR-CL" цена="339" />
</МатеринскиеПлаты>
+ <Процессоры Синоним="Процессор">
+ «Вентиляторы Синаним="Вентилятор">
4 сОпера тиензяПамять Синоним="ОперативнаяПамять">
+ видеоадаптеры Синоним="Видеоадаптеры">
4 «ЗвуковыеКарты Сийоним="ЗвуковаяКарта"?
4 сСетевыеАдалгеры Синоним=,СетевойАдаптер">
4 «ЖесткиеДиски Синоним="ЖесткийДиск">
4 «Дисководы Синоним="Дисковод">
4 <ОптическиеПриводы Синоним="ОптическийПриводп>
4 <Клавиатуры Синоним='Клавиатура"?
4 <Мышки Синоним="Мышка',>
4 «Мониторы Синоним="Монитор">
4 <Принтеры Синоним=' Принтер">
4 «Сканеры Синоним="СканвР">
4 «Модемы Синоним="Модем"?
4 «Корпуса Синоним=“Корпус">
4 «Колонки Синоним='КомплектКолонок">
4 «ДругиеУстройства Синоним="ДругоеУстройство">
«/'ПрайсЛист?
Теперь этот файл можно, к примеру, импортировать на веб-
сайт компании или в ее интернет-магазин, минуя рутинный руч-
ной ввод информации. Если не знаете, как это сделать, читайте
мою статью «Тандем лидеров», опубликованную в МК, № 6 (281)
от 09.02.2004. Там об этом очень подробно написано ©.
Ту же самую обработку мы теперь используем для выгрузки
нашего прайс-листа в широко распространенный формат листа
Microsoft Excel. Для этого приведенный ниже код нужно вставить
на место второго комментария приведенного ранее условия:
О кн о Е хсе 1 = С о зд а тьО б 'ье кт ( " E x c e l. A p p lic a t io n " ) ;
Р а б о ч а я К н и га = О к н о Е х с е 1 .W o rk b o o k s .A d d ( ) ;
С тр а н и ц а = Р а б о ч а я К н и га .W o rk s h e e ts ( 1 ) ;
С т р а н и ц а . A c t iv a t e ( ) ;
С т р а н и ц а .C e l l s ( l , l ) . V a l u e = " П р а й с -л и с т " ;
C T p a H t m a . C e lls ( l, l) . F o n t . S iz e = 1 6;
С т р а н и ц а .C e l l s ( l , l ) . F o n t . B o l d = 1 ;
С т р а н и ц а .C e l l s ( 2 , 1 ) .V a lu e = "Ф ирм а: "+ К о н с та н та .Н а ш а -
Ф ирма;
С т р а н и ц а .C e l l s ( 3 , 1 ) .V a lu e = "Д а т а : "+ Н аД ату;
Ч и сл о С п р а в о ч н и к о в = М е та д а н н ы е . С п р а в о ч н и к ( ) ;
И2 = 0;
Для И1 = 1 По Ч и сл о С п р а в о ч н и ко в Ц икл
Т екущ ж й С п рлвочни к = М е та д а н н ы е . С п р а в о ч н и к (И 1 );
С т р а н и ц а .C e l l s (4 + И 1 + И 2 , 1 ) .V a lu e = Т е кущ и й С п р аво ч -
н и к . И д е н ти ф и ка то р ;
С т р а н и ц а .C e l l s (4 + И1 + И 2 , 1 ) . F o n t .B o ld = 1;
Спр = С о зд а тьО б 'ье кт (Т е кущ и й С п р а в о ч н и к. П одны йИ дентиф и-
к а т о р ( ) ) ;
С п р . В ы б р а тьЭ п е м е н ты ( ) ;
П ока С п р . П о л уч и тьЭ л е м е н т () = 1 Ц икл
И2 = И2 + 1 ;
С т р а н и ц а .С е 1 1 в (4 + И1 + И 2 , 1 ) .V a lu e = С п р .Т е ку щ и й Э п е -
м е н т ( ) . Н а и м е н о в а н и е ;
С т р а н и ц а .C e l l s (4 + И1 + И 2 , 2 ) .V a lu e = С п р .Т екущ и й Э п е -
м е н т ( ) . Ц е н а . П о л у ч и т ь (Н а Д а ту ) ;
К он ец Ц и кл а;
К он ец Ц и кл а;
С т р а н и ц а .C o lu m n s ( " A : A " ) . E n t ir e C o lu m n .A u t o F it ( ) ;
О к н о Е х с е 1 .V i s i b l e = 1 ;
Из приведенного фрагмента видно, что мы в первую очередь
создаем объект-приложение Microsoft Excel, затем создоем но-
вую рабочую книгу и лист в ней. При необходимости можно
II
О кончание на стр. 43
предыдущая страница 38 Мой Компьютер 2005 01-02 читать онлайн следующая страница 40 Мой Компьютер 2005 01-02 читать онлайн Домой Выключить/включить текст