gifts2017

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

Опубликовал Степашка Никулин (Styvi) в раздел Обмен - Обмен с другими системами

Иногда требуется иметь доступ к данным сотрудников организации (организаций) из других систем учёта без предоставления доступа к базе ЗУП. В описываемом случае предлагается держать актуальные данные по сотрудникам (табельный номер, подразделение, должность и т.п.) в отдельной 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 Files\1cv82\8.2.19.80\bin\1cv8.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="+ИмяСервера+"";

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ВыгрузкаСотровИзЗУП
.epf 24,48Kb
08.07.14
19
.epf 24,48Kb 19 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. TMV 09.07.14 13:02
(0), Может еще отдельную базу для хранения отработанного времени в разрезе его видов создать?
Иногда требуется иметь доступ к данным сотрудников организации (организаций) из других систем учёта без предоставления доступа к базе ЗУП
В каких таких случаях?
2. Степашка Никулин (Styvi) 09.07.14 15:08
(1) TMV, у нас на предприятии из актуальной базы сотрудников синхронизируется информация для интернет-портала, адресной книги, торговых баз на Аксапте, бухгалтерских баз... да мало ли где могут понадобиться актуальные данные о сотрудниках...
Я могу ошибаться, но искать местонахождение данных чтением из базы ЗУП - весьма заморочно... Тогда как средствами 1С легко выгрузить значения нужных реквизитов по Сотруднику или ФизЛицу... А внешнее подключение к базе ЗУП ради получения табельного номера сотрудника - слишком затратное по времени мероприятие... ИМХО...
3. Степашка Никулин (Styvi) 09.07.14 17:41
(1) TMV,
Добавлю - у нас несколько баз ЗУП, в каждой от 2-х до 5-ти организаций...
Поэтому потребность в общем хранилище данных о сотрудниках всех организаций - очевидное удобство...
В этом случае вопрос получения данных о сотрудниках - есть простое чтение из SQL-базы нужных нам данных с отбором по ИНН нужной организации (или с отбором по ИНН + ФИО, для печати Авансового отчёта из 1С:БП, например)...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа