Выгрузка актуальных данных сотрудников из ЗУП в промежуточную SQL-базу по расписанию

Иногда требуется иметь доступ к данным сотрудников организации (организаций) из других систем учёта без предоставления доступа к базе ЗУП. В описываемом случае предлагается держать актуальные данные по сотрудникам (табельный номер, подразделение, должность и т.п.) в отдельной SQL-базе, актуальные данные в которую выгружаются по расписанию, например, ежедневно. Благодаря отдельно существующей актуальной базе сотрудников, мы, например, можем печатать Авансовые отчёты (с данными сотрудников) в БП, где ведём сотрудников сводно и не имеем сотрудников вообще (есть только физические лица, перегружаемые из ЗУП), см. публикацию http://infostart.ru/public/294754/.
Итак, создаём на сервере (например, server) новую SQL-базу (например, zup), создаём в ней таблицу EmplTable с текстовыми полями:

  1. JuridicalINN(10) ИНН Организации
  2. TabNum(OrganicNumber)(10) Табельный номер сотрудника
  3. Empl_Name(100) ФИН сотрудника полностью
  4. Department(OrganizationUnit)(100) подразделение
  5. Title(100) должность
  6. DateBegin(10) далее поля по потребности
  7. DisMissed(10)
  8. BirthDate(10)
  9. Status(10)
  10. Summa(20) 

Чистая SQL-база для хранения данных готова… Её можно будет читать из других программ, например, для синхронизации данных…
Осталось заполнить её актуальными данными сотрудников…
Открываем нашу базу 1с:ЗУП 2.5 (все базы по очереди, если их много).
Запускаем предлагаемую обработку. После открытия обработки появляется окно с вопросом  про необходимость отладки (отвечаем = выбрать организацию).
И настраиваем форму, где прописываем имя сервера и имя только что созданной базы (а также имя пользователя и пароль) для хранения актуальных данных сотрудников всех необходимых организаций.
Также можно прописать адреса эл.почты для рассылки уведомлений о выгрузке.

Для тестирования жмём кнопки на форме, соответствующие этапам обработки:
Проверка = подключение к базе
Заполнить = заполнить данные для визуального контроля в таблицу на форме
Выгрузить = очистить в базе данные по Организации (по совпадению ИНН) и заполнить свежими данными
Отправить уведомление = отправить по эл. почте письмо о результатах выгрузки

Если работа обработки устраивает, то сохраняем настройки стандартной кнопкой сохранения настроек.
С этими настройками далее и будет работать автоматически запускаемый сеанс в 1с:ЗУП.

Запуск сеанса можно организовать через Планировщик заданий («C:Program Files1cv828.2.19.80in1cv8.exe»)
с параметрами (ENTERPRISE /S»ИмяСервераИмяБазы» /N»ИмяПользователя1С» /P»Пароль1С» /Execute «E:Обработки1С82ВыгрузкаСотровИзЗУП_82.epf»).

В автоматическом режиме, когда сеанс запускается по расписанию, после открытия обработки появляется окно с вопросом  про необходимость отладки.
Если не последует реакции на вопрос (20 сек), то производится выгрузка данных по сотрудникам (по актуальным организациям),
рассылка отчёта и закрытие обработки и сеанса (вручную можно кнопками повторить эти же операции).

В процедуре ПроверкаНажатие() записана строка коннекта к SQL-базе, которую при необходимости можно поправить:

СтрокаКоннекта=»Provider=SQLOLEDB;Password=»+Пароль+»;Persist Security Info=True;User ID= «+Пользователь+»;Initial Catalog=»+ИмяБазы+»;Data Source=»+ИмяСервера+»»;



3 Comments

  1. TMV

    (0), Может еще отдельную базу для хранения отработанного времени в разрезе его видов создать?

    Иногда требуется иметь доступ к данным сотрудников организации (организаций) из других систем учёта без предоставления доступа к базе ЗУП

    В каких таких случаях?

    Reply
  2. Styvi

    (1) TMV, у нас на предприятии из актуальной базы сотрудников синхронизируется информация для интернет-портала, адресной книги, торговых баз на Аксапте, бухгалтерских баз… да мало ли где могут понадобиться актуальные данные о сотрудниках…

    Я могу ошибаться, но искать местонахождение данных чтением из базы ЗУП — весьма заморочно… Тогда как средствами 1С легко выгрузить значения нужных реквизитов по Сотруднику или ФизЛицу… А внешнее подключение к базе ЗУП ради получения табельного номера сотрудника — слишком затратное по времени мероприятие… ИМХО…

    Reply
  3. Styvi

    (1) TMV,

    Добавлю — у нас несколько баз ЗУП, в каждой от 2-х до 5-ти организаций…

    Поэтому потребность в общем хранилище данных о сотрудниках всех организаций — очевидное удобство…

    В этом случае вопрос получения данных о сотрудниках — есть простое чтение из SQL-базы нужных нам данных с отбором по ИНН нужной организации (или с отбором по ИНН + ФИО, для печати Авансового отчёта из 1С:БП, например)…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *