Last modified by Mihail Opinca on 2026/02/02 17:12

Show last authors
1 ^^[[Вернуться назад: Для администраторов, внедренцев, разработчиков>>Una4_Admins||rel="__blank" title="Для администраторов, внедренцев, разработчиков"]]^^
2
3 {{box}}
4 ==**Синхронизация 1C с UNA HR**==
5 {{/box}}
6
7
8 == Модуль управления персональными данными в подразделениях ==
9
10 Модуль управления персоналом
11
12 Модуль управления персональными данными в подразделениях является важным компонентом системы. Модуль позволяет собирать полные и актуальные данные о персонале. Управление персоналом включает в себя как сбор регистрируемых данных, так и автоматическое управление конкретными потоками:
13
14 * Набор персонала на уровне подразделения
15 * Перевод персонала
16 * Записи в реестре персонала
17
18 Способ, которым персонал, нанятый в подразделении, в конечном итоге попадает в базу данных на уровне подразделения – UNA.md – обеспечивается хорошо отлаженным механизмом синхронизации.
19
20 Механизм синхронизации — это самая базовая процедура переноса данных из системы учета в автоматизированную систему учета UNA.md, например, из 1C в UNA.md.
21
22 В автоматизированной системе учета UNA.md реализованы два метода синхронизации данных из модуля HR, а именно:
23
24 1. **Файловый метод** — необходимая информация загружается из системы учета в один или несколько XML-файлов. С помощью утилиты, разработанной командой Unisim-Soft, данные извлекаются из XML-файла или файлов. После обработки данных создаются таблицы миграции и формируются необходимые скрипты для корректного заполнения информации в модуле «Управление персоналом». Весь этот процесс выполняется в 2 клика.
25
26 2. **Метод драйвера ODBC** — в системе учета создается автоматизированная процедура, которая «передаёт» данные в базу данных Oracle, откуда UNA.md получает их для заполнения документов и номенклатуры, необходимых для модуля «Управление персоналом».
27
28 Долгожданные пользователями UNA.md механизмы синхронизации были успешно внедрены в нескольких подразделениях, где сотрудникам приходилось вести учет в двух системах. Из системы с меньшим потенциалом для регистрации и ведения учета был применен механизм синхронизации данных между 1C и Oracle, откуда UNA.md переняла данные, разместив все необходимое в документах для модуля управления персоналом.
29
30
31 == 1C – Механизм синхронизации Oracle ==
32
33 (% class="xwiki-table" style="border: none;" %)
34 (((
35 |= [[image:FILE1.png||width="100%", height="auto"]] |= Файловый метод
36 |= [[image:FILE2.png||width="100%", height="auto"]] |= 1. Запуск обработки в 1C: загрузка объектов в формате XML
37 )))
38 (% class="xwiki-table" style="border: none;" %)
39 (((
40 |= [[image:FILE3.png||width="100%", height="auto"]] |= 2. Запуск приложения, созданного Unisim-Soft
41 |= [[image:FILE4.png||width="100%", height="auto"]] |= 3. Подключение к базе данных Oracle
42 )))
43 (% class="xwiki-table" style="border: none;" %)
44 (((
45 |= [[image:FILE5.png||width="100%", height="auto"]] |= 3. Подключение к базе данных Oracle. Создание необходимых таблиц
46 |= [[image:FILE6.png||width="100%", height="auto"]] |= 4. Передача данных в таблицы
47 |= [[image:FILE7.png||width="100%", height="auto"]] |= 5. Создание документов и номенклатур в UNA
48 )))
49
50 == Механизм синхронизации 1C – Oracle: Метод через драйвер ODBC ==
51
52 1. Установка драйвера ODBC для Oracle
53
54 Перед началом установки драйвера ODBC для Oracle необходимо проверить наличие в системе драйвера Microsoft — MSDAORA или другого драйвера Oracle — OraOLEDB.
55
56 Для этого создадим текстовый файл, в котором изменим расширение с .txt на .udl. При открытии файла появится следующее изображение:
57
58 [[image:FILE8.png||width="600px", height="300px"]]
59
60 Перейдём на вкладку «Поставщик данных», где находится весь список драйверов в системе.
61
62 Примечание: Если необходимый драйвер Microsoft — MSDAORA или Oracle — OraOLEDB отсутствует, то установим его.
63
64 Чтобы не ошибиться с подключением, можно воспроизвести его, используя файл .udl. На вкладке «Поставщик данных» выберем необходимый поставщик, перейдём на вкладку «Подключение», заполним необходимые поля в соответствии с назначением.
65
66 [[image:FILE9.png||width="400px", height="600px"]]
67
68 Мы нажимаем кнопку «Проверить соединение». Если соединение установлено успешно, то открываем файл .udl с помощью блокнота. Файл должен содержать следующий текст:
69
70 Provider=MSDAORA.1;Password=uppr;User ID=uppr;Data Source=clouddev;Persist Security Info=True
71
72 2. Создание процедуры в рамках обработки 1C
73
74 [[image:FILE10.png||width="400px", height="600px"]]
75
76 [[image:FILE11.png||width="400px", height="600px"]]
77
78 [[image:FILE12.png||width="800px", height="600px"]]
79
80 [[image:FILE13.png||width="800px", height="600px"]]
81
82 [[image:FILE14.png||width="800px", height="600px"]]
83
84 В конфигураторе 1C мы создаем обработку предназначен для загрузки данных из 1C в Oracle.
85
86 В процедуре "Выполнить" мы пишем строку и функцию для подключения к провайдеру:
87
88 {{code}}
89 стрПодключения="Provider=MSDAORA.1;Пароль=uppr;Идентификатор пользователя=uppr;Источник данных=clouddev;Постоянная информация о безопасности=True";
90 ADODBConnect = Новый COMОбъект("ADODB.Connection");
91 ADODBConnect.Open(стрПодключения);
92 ADODBConnect.Закрыть();
93 {{/code}}
94
95 Создайте запрос, необходимый для синхронизации. Ниже приведен пример синхронизации номенклатуры.
96
97 {{code}}
98 ЗапросВ = Новый Запрос;
99 ЗапросВ.Текст = "ВЫБРАТЬ
100 | Номенклатура.Код как Код ,
101 | Номенклатура.ВидНоменклатура КАК Артикул,
102 | Номенклатура.Наименование как Наименование
103 |ИЗ
104 | Справочник.Номенклатура КАК Номенклатура
105 |ГДЕ
106 | Номенклатура.ПометкаУдаления = ЛОЖЬ
107 | И Номенклатура. ЭтоГруппа = ЛОЖЬ
108 | И Номенклатура.Наименование ПОДОБНО ""Nillkin Frosted OnePlus Case%""";
109 Результат = ЗапросВ.Выпонний();
110 ОбходОбъектов = result.Выбрать();
111 {{/code}}
112
113 Мы создаем цикл для результата запроса.
114
115 {{code}}
116 Пока ОбходОбъектов.Следующий() Цикл
117 КонецЦикла;
118 {{/code}}
119
120 Указываем необходимые переменные, в которых будут храниться данные запроса.
121
122 {{code}}
123 NGROUP_TV6 = ОбходОбъектов.Наименование;
124 COD_ARTIC = ОбходОбъектов.Артикул;
125 EDIN_IZMER = ОбходОбъектов.Код;
126 {{/code}}
127
128 И наконец код, который будет передавать данные через драйвер ODBC в таблицу синхронизации данных между 1С и Oracle.
129
130 {{code}}
131 ADODBConnect.Execute("Insert into STORAGE_TOVAR(NOMENKLATURA_CODE,ARTIKUL,NOMENKLATURA_NAME) values ????("+EDIN_IZMER+" ,"+COD_ARTIC+" ,"+NGROUP_TV6+")");
132
133 {{/code}}
134
135 3. Подключение к базе данных Oracle
136
137 4. Создание таблиц для синхронизации в Oracle
138
139 Для того чтобы данные из 1C успешно передавались в Oracle, будут созданы таблицы для миграции. Таблицы должны содержать поля с типами данных, предназначенными для данных из 1C. Пример:
140
141 {{code}}
142 CREATE TABLE A1C_SYNCRONIZODBC
143 (
144 NRDOC NUMBER,
145 NRDOC1 NUMBER,
146 PROVIDEN VARCHAR2(25 BYTE),
147 NUMBER_DOC VARCHAR2(25 BYTE),
148 DATA1C VARCHAR2(50 BYTE),
149 NUMBER_NACLAID VARCHAR2(50 BYTE),
150 NUMBER_SCHEDULE VARCHAR2(25 BYTE),
151 SCLAD VARCHAR2(200 BYTE),
152 CONTRACT_NUMBER VARCHAR2(25 BYTE),
153 CONTAGENT VARCHAR2(250 BYTE),
154 COMMODITY_CODE VARCHAR2(25 BYTE),
155 STRIHCOD_TOV VARCHAR2(50 BYTE),
156 GOODS VARCHAR2(250 BYTE),
157 KOL_VO NUMBER(15,4),
158 TENA NUMBER(15,4),
159 SUM NUMBER(15,4),
160 SUMA_DOCUM NUMBER(15,4),
161 KOLVO_ZAKAZ NUMBER(15,4),
162 SERIA VARCHAR2(25 BYTE),
163 STATUS VARCHAR2(100 BYTE),
164 PROVEDEN VARCHAR2(25 BYTE),
165 CTNUM7 NUMBER
166 )
167 {{/code}}
168
169 5. Создание документов, номенклатур. Проверка документов в UNA.md
170
171 Будут созданы процедуры и скрипты, которые будут включены в задание. Задание предназначено для автоматического извлечения данных из 1C в UNA.
172
173 [[image:FILE15.png||width="800px", height="auto"]]
174
175 [[image:FILE16.png||width="800px", height="auto"]]
176
177 ---
178
179 Этот механизм синхронизации исключает необходимость двойного ввода данных и обеспечивает согласованность информации между файлами 1C и UNA.md. Файловый метод проще и чаще используется, а метод ODBC рекомендуется для полной автоматизации и непрерывной интеграции.