Смекни!
smekni.com

Интеграция удаленных приложений "1С:Предприятие" и MS Access (стр. 2 из 2)

Работа с XML-документом на стороне сервера осуществляется теми же средствами, что и на стороне клиента.

Доступ к объектам 1С Предприятие осуществляется с помощью технологии OLE. Работа с объектами и данными осуществляется на встроенном языке программирования. Для создания OLE объектов 1С используется метод CreateObject('V77.Application'), вызываемый переменной типа OleVariant.

Сначала происходит создание объекта 1С, далее его инициализация (метод Initialize) с указанием адреса подключаемой БД, правами входа, пользователя. Чтобы получить доступ к справочникам надо также создать объект типа OleVariant при помощи метода СоздатьСправочник(ИмяСпр).

В приложениях как сервера, так и клиента, использованы обработчики исключений (try...except...end и try...finally...end) для избежания возможных ошибок. Первый обработчик позволяет при появлении ошибки, выполнять указанные действия, такие как, например, выдача сообщения об ошибке.

На стороне клиента использованы обработчики исключений при выполнении таких событий как подключение к серверу (см. пример), подключение к БД Access и передача файла по сети. При возникновении ошибок при первом и втором событии в окне "Сообщения" появляются сообщения о том, что произошла ошибка.

ПРИМЕР:

try

IdTCPClient1.Connect;

except

Memo1.Lines.Add('Ошибка при подключении');

Exit;

end;

На стороне сервера использованы обработчики исключений при выполнении таких событий как принятие файла от клиента, создание OLE-объекта 1С:Предприятие, запись данных в 1С. При возникновении ошибок во втором и третьем событиях в окне "Сообщения" также появляются сообщения о том, что произошла ошибка.

По данным, считанным с XML-документа происходит запись атрибутов в справочник "Сотрудники". При этом сначала проверяется, числится ли такой сотрудник уже на предприятии. Если ответ положительный, то изменяются только периодические реквизиты (такие как характер работы и оклад), иначе создается новый сотрудник по следующей схеме:

СправочникСотрудники.Новый

< запись постоянных атрибутов>

СправочникСотрудники.Записать

< запись периодических атрибутов>

К перспективе развития данного программного продукта относится обеспечение безопасности и надежности передачи при передаче данных, а также возможность расчета заработной платы и других финансовых и налоговых операций на стороне 1С, с возможностью переслать эти отчеты клиенту.

4. Тестовый пример

На рисунках представлены исходные данные:

· На первом – показаны данные о сотрудниках в филиале, взятые из Access (таблица – Сотрудник).

· На втором – данные о датах проводимых до этого обновлений (таблица – ДатыОбновлений).

· На третьем – показаны данные, взятые из 1С, о сотрудниках в головном офисе.

На рисунке 4 показано, что сотрудница Сверчкова еще числится на предприятии.

Рисунок 1 – данные о сотрудниках в филиале

Рисунок 2 – данные о проводимых обновлениях

Рисунок 3 – данные о сотрудниках в головном офисе

Рисунок 4 – Состояние сотрудницы Сверчковой до обновления данных

После того как на клиентском приложении будет нажата кнопка "Отправить", произойдет чтение последней записи из таблицы "ДатыОбновлений" (а именно 06.01.1998) из Access. После формируется XML-файла (см. рисунок 5) по данным таблицы "Сотрудники", с учетом даты последнего обновления. То есть заносятся данные о тех сотрудниках, где значение поля "ДатаПриема" (она же и дата увольнения, и дата каких-либо изменений периодических реквизитов) больше даты последнего обновления. Далее происходит передача по серверу.

Рисунок 5 – Вид XML-файла, передаваемого в тестовом примере

После этого окно "Состояние" выглядит следующим образом (рисунок 6).

Рисунок 6 – Вид окна "Состояние" после передачи данных

После того как файл передан в БД Access заносится запись в таблицу "ДатыОбновлений" (рисунок 7).

Рисунок 7 – Обновление данных таблицы "ДатыОбновлений"

На стороне сервера, после того как файл принят, он по нажатию на кнопку "Перенести в 1С" записывается в 1С. При записи сначала проверяется, есть ли уже сотрудник с таким табельным номером. Если ответ положительный, то обновляются периодические атрибуты (подразделение, характер работы, оклад), иначе записывается новый сотрудник. При этом окно "Состояние" выглядит следующим образом (рисунок8).

Рисунок 8 – Вид окна "Состояние" после обновления данных

Рисунок 9 – данные о сотрудниках в головном офисе после обновления

Рисунок 10 – Состояние сотрудницы Сверчковой после обновления данных

По рисункам 9 и 10 видно, что обновление данных прошло успешно.

Список литературы

1. Практика программирования: Delphi. – СПб.: БХВ-Петербург, 2002. – 464 с.: ил.

2. Архангельский А.Я. Приемы программирования в Delphi. - М.: ООО "Бином-Пресс", 2003.

3. Учебник по 1С. Адрес: www.mista.ru.