Учет
по
большому
счету
Артем Cosmic ШМАНЦЫРЕВ
К сожалению, платформа 1С не является универсальной и не способна удовлетворить абсолютно
все потребности программиста. Но программист не был бы программистом, если бы не попытался
реализовать нужные ему возможности если не на уровне ядра 1С, то хотя бы на уровне внешних
компонент и приложений. Сегодня мы с вами рассмотрим основные возможности этих технологий
на примере создания прайс-листа по данным из нашей конфигурации по учету компьютеров.
(311, 3 1 3 315, 317, 319, 321)
Продолжение, начало см. в М К , N s36, 38, 40, 42, 44, 46
Л
юбая внешняя компонента 1С — это динамически подклю-
чаемая библиотека (DLL), с помощью которой можно доба-
вить тот или иной функционал встроенному языку програм-
мирования. Внешняя компонента подключается в нужное
место программы при помощи функции
З а гр узи тьВ н ы ! i гювсК' и п с ж е н ту (П у т ь )
, ко-
торая в случае успешной загрузки в каче-
стве результата возвращает единичку. В
качестве пути, само собой, используется
путь к файлу библиотеки. Чаще всего про-
граммисты записывают внешнюю компо-
ненту в каталог информационной базы или
в каталог с установленной системой 1C,
что обеспечивает некоторую универсаль-
ность при поиске файла библиотеки. Се-
годня мы будем использовать внешнюю
компоненту v 7 P lu s .d ll которая обеспечивает функционал ра-
боты с текстовыми и АМ.-фаилами с электронной почтой, сис-
темной информацией и информацией обмена данными по про-
токолу HTTP. Из всего этого многочисленного списка возможно-
стей нам понадобится лишь обработчик XML-файлов, о чем бу-
дет сказано чуть позже. Сейчас скажу лишь, что формат XML был
уже не один раз описан на страницах нашего любимого ежене-
дельника и, следовательно, читатель наверняка имеет о нем пред-
ставление. Поэтому о принципах и особенностях формата я се-
годня распространяться не буду. Единственное, о чем хочу вас
предупредить, — это возрастающая популярность этого универ-
сальнейшего формата в нашей стране, в силу чего обойти сто-
роной данную технологию вам все равно не удастся ©.
Принцип работы с внешними приложениями несколько отли-
чается от работы с внешними компонентами, так как использу-
ет в своей основе механизмы внешних OLE-объектов. При помо-
щи OLE можно связаться со многими приложениями, установлен-
ными в системе, но этот механизм, к сожалению, не может обес-
печить абсолютной универсальности — не у всех пользователей
могут быть установлены нужные приложения. В нашем сегодняш-
нем примере мы используем механизм связи с M icrosoft Excel —
одним из лучших приложений в своем классе, которое, я наде-
юсь, установлено у подавляющего большинства пиратов.
.. то есть
пользователей нашей страны ©.
Думаю, из исходного кода вам должно быть интуитивно по-
нятно предназначение тех или иных методов, процедур и функ-
ций, так как лексика встроенного языка 1С состоит из общеупот-
ребительных слов и словосочетаний. Поэтому я на протяжении
всей статьи буду говорить о них «вскользь», обращая внимание
только на принцип их действия, чтобы не загромождать статью
лишними техническими подробностями. Если вас интересует что-
то конкретно — не стесняйтесь, пишите, постараюсь ответить
всем ©.
Итак, наша сегодняшняя цель — создать обработку по вы-
грузке прайс-листа в два основных формата — XML и XLS. В сис-
теме 1С существует еще один, доселе нами не рассмотренный,
элемент дерева метаданных, который называется О бработка и
фактически представляет собой точную копию элемента Отчет.
По сложившейся традиции программисты, которым необходимо
совершать действия с данными (записывать движения в регист-
ры, создавать проводки или работать с внешними файлами, ком-
понентами или приложениями), пишут свои модули именно в ви-
де обработок
Для создания новой обработки в уже известном нам дереве
метаданных нужно найти элемент О бработки и создать в нем
подчиненный элемент Прайс (собственно
обработку). Теперь, открыв девственно чис-
тую форму новой обработки, придайте ей
вид, аналогичный показанному на рис. 1.
Здесь мы сразу сталкиваемся с новым
элементом, нами ранее не рассмотрен-
ным. Я говорю о группе переключателей,
с помощью которых будет выбираться нуж-
ный нам формат. Для того, чтобы создать
такую группу, нужно на панели редакто-
ра диалогов дважды выбрать соответст-
вующий элемент, называемый Переключа-
тель и нарисовать его на форме так, чтобы второй и последую-
щий переключатели находились один под другим. Теперь в свой-
ствах верхнего переключателя на вкладке Дополнительно нужно
поставить флажок Первый в группе и задать ему какой-либо иден-
тификатор (например, ФорматВыгрузкй). Не забудьте также про-
верить порядок обходо элементов — каждый последующий эле-
мент должен иметь номер больше предыдущего на единицу.
Теперь, если вы запустите конфигурацию и откроете обра-
ботку Прайс, вы сможете переключаться между созданными пе-
реключателями, причем значение идентификатора ФорматВыгруз-
ки будет меняться в зависимости от выбранного элемента.
Открыв в конфигураторе модуль формы этой обработки, вы
обнаружите уже написанную кем-то процедуру Выполнить (а вер-
нее, ее начало и конец). Это для нас постарались разработчи-
ки платформы, привязав эту процедуру к автоматически создан-
ной кнопке Выполнить, которая, как вы заметили, появилась на
форме при создании обработки. Таким образом, весь исходный
код, который нам нужен для выгрузки прайс-листа при помощи
нашей обработки, мы напишем как раз в этой процедуре.
Для того чтобы использовать внешнюю компоненту
V 7 P lu s . d l l ,
нужно скачать ее ПО qnpecy, например, http://peHscripl.rb/files/v7plus.zip.
А если у вас установлены последние обновления типовых кон-
фигураций 1C, то можете поискать ее в каталогах соответствую-
щих информационных баз. Если библиотека успешно скачана
(или найдена), положите ее в каталог нашей конфигурации по
учету компьютерной техники или же в каталог BIN установлен-
ной платформы 1 С. Теперь в процедуре Выполнить недавно соз-
данной нами обработки мы напишем следующее условие:
Е с л и Ф о р м а тВ ы гр узки = 1 Т о гд а
/ / сю да в с т а в и м к о д п о в ы гр у з к е в XML
И н а ч е Е сл и Ф о р м а тВ ы гр узки = 2 Т о гд а
/ / сю да в ст а в и м к о д п о в ы гр у з к е в X LS
К о н е ц Е сл и
Далее мы попытаемся загрузить внешнюю компоненту (для
тех, кто в танке © — следующий код нужно написать вместо пер-
вого комментария предыдущего условия):
Е с л и З а гр уэи тьВ н е ш н ю ю К о м п о н е кту(К а т а л о -
г И Б ()+ " v 7 p lu s . d l l " ) о 1 Т о гд а
Е с л и З агрузи тьВ н еш н ю ю К ом п он ен ту (К а т а л о гП р о гр а м -
м ы () + " v 7 p lu s . d ll" ) о 1 Т о гд а
П редуп реж ден ие ("К о м п о н е н та v 7 p lu s . d l l н е н а й д е н а ! 0 6 -
№ 1-2/328-329 03 января-17 января 2005
предыдущая страница 37 Мой Компьютер 2005 01-02 читать онлайн следующая страница 39 Мой Компьютер 2005 01-02 читать онлайн Домой Выключить/включить текст