Диплом: Автоматизация учета рабочего времени сотрудников компании Московского филиала АО «ФПК»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
82
83
84
Приложение 2
1.
Перем Платформа1С_Версия Экспорт; // версия 1С
2.
Перем Платформа1С_Подверсия Экспорт; // подверсия 1С
3.
Перем Платформа1С_Релиз Экспорт; // релиз 1С
4.
Перем Платформа1С_Сборка Экспорт; // сборка 1С
5.
6.
Перем Конфигурация_Имя Экспорт; // имя конфигурации
7.
Перем Конфигурация_Версия Экспорт; // версия конфигурации
8.
Перем Конфигурация_ПодВерсия Экспорт; // подверсия конфигурации
9.
Перем Конфигурация_Релиз Экспорт; // релиз конфигурации
10.
Перем Конфигурация_Сборка Экспорт; // сборка конфигурации
11.
12.
Перем ПустаяСсылка_Организация Экспорт; // пустая ссылка на организацию
13.
Перем ПустаяСсылка_Подразделение Экспорт; // пустая ссылка на подразделение организации
14.
Перем ПустаяСсылка_Должность Экспорт; // пустая ссылка на должность
15.
Перем ПустаяСсылка_ГрафикРаботы Экспорт; // пустая ссылка на график работы
16.
Перем ПустаяСсылка_Сотрудник Экспорт; // пустая ссылка на сотрудника
17.
18.
Перем ОписаниеТипа_Организация Экспорт; // описание типа "организация"
19.
Перем ОписаниеТипа_Подразделение Экспорт; // описание типа "подразделение"
20.
Перем ОписаниеТипа_Должность Экспорт; // описание типа "должность"
21.
Перем ОписаниеТипа_ГрафикРаботы Экспорт; // описание типа "график работы"
22.
Перем ОписаниеТипа_Сотрудник Экспорт; // описание типа "сотрудник"
23.
24.
Перем ТипКонфигурации Экспорт; // тип конфигурации
25.
Перем ТипДвоичныхДанных Экспорт; // тип двоичных данных
26.
Перем ТипФотографииСотрудника Экспорт; // тип фотографии сотрудника
27.
28.
Перем КаталогУРВ Экспорт; // каталог УРВ
29.
30.
// Сведения о внешней обработке.
31.
Функция СведенияОВнешнейОбработке() Экспорт
32.
33.
ПараметрыРегистрации = Новый Структура;
34.
35.
Попытка
36.
// заполнить структуру параметров регистрации
37.
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
38.
ПараметрыРегистрации.Вставить("Наименование", "Болид: СКУД и УРВ для 1С:Предприятие 8");
39.
ПараметрыРегистрации.Вставить("Версия", "2.8.1"); // константа, не изменять!
85
40.
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
41.
ПараметрыРегистрации.Вставить("Информация", "Болид: СКУД и УРВ для 1С:Предприятие 8");
42.
43.
// создать таблицу команд
44.
тзКоманд = Новый ТаблицаЗначений;
45.
тзКоманд.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
46.
тзКоманд.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
47.
тзКоманд.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
48.
тзКоманд.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
49.
тзКоманд.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
50.
51.
// добавить команду (открытие обработки)
52.
строкаКоманды = тзКоманд.Добавить();
53.
строкаКоманды.Идентификатор = "ОбработкаБолидУРВдля1С";
54.
строкаКоманды.Представление = "Болид: СКУД и УРВ для 1С";
55.
строкаКоманды.ПоказыватьОповещение = Истина;
56.
строкаКоманды.Использование = "ОткрытиеФормы";
57.
строкаКоманды.Модификатор = "";
58.
59.
ПараметрыРегистрации.Вставить("Команды", тзКоманд);
60.
Исключение
61.
Сообщить(Формат(ТекущаяДата(), "ДЛФ=ДВ") + " " + ОписаниеОшибки(),
СтатусСообщения.Внимание);
62.
КонецПопытки;
63.
64.
Возврат ПараметрыРегистрации;
65.
66.
КонецФункции
67.
68.
// Описание: выполняет запрос версии и типа конфигурации 1С.
69.
// Параметры:
70.
// Возвращаемое значение:
71.
Процедура ЗапросВерсииИКонфигурации1С() Экспорт
72.
73.
Платформа1С_ИмяВерсии = "";
74.
Платформа1С_Версия = 0;
75.
Платформа1С_Подверсия = 0;
76.
Платформа1С_Релиз = 0;
77.
Платформа1С_Сборка = 0;
78.
86
79.
СисИнфо = Новый СистемнаяИнформация;
80.
Попытка
81.
Платформа = СисИнфо.ТипПлатформы; // Windows x86
82.
Исключение
83.
КонецПопытки;
84.
Попытка
85.
Платформа1С_ИмяВерсии = СисИнфо.ВерсияПриложения; // "8.2.19.116"
86.
Исключение
87.
КонецПопытки;
88.
89.
// парсинг версии платформы 1С
90.
МассивПараметров = РазборСтроки(Платформа1С_ИмяВерсии, ".");
91.
Если МассивПараметров.Количество() >= 4 Тогда
92.
Попытка
93.
Платформа1С_Версия = Число(МассивПараметров[0]);
94.
Платформа1С_Подверсия = Число(МассивПараметров[1]);
95.
Платформа1С_Релиз = Число(МассивПараметров[2]);
96.
Платформа1С_Сборка = Число(МассивПараметров[3]);
97.
Исключение
98.
КонецПопытки;
99.
КонецЕсли;
100.
101.
Конфигурация_Имя = Метаданные.Имя; // "ЗарплатаИУправлениеПерсоналом"
102.
Конфигурация_ИмяВерсии = Метаданные.Версия; // "2.5.50.1"
103.
Конфигурация_Версия = 0;
104.
Конфигурация_ПодВерсия = 0;
105.
Конфигурация_Релиз = 0;
106.
Конфигурация_Сборка = 0;
107.
108.
// парсинг версии конфигурации
109.
МассивПараметров = РазборСтроки(Конфигурация_ИмяВерсии, ".");
110.
Если МассивПараметров.Количество() >= 4 Тогда
111.
Попытка
112.
Конфигурация_Версия = Число(МассивПараметров[0]);
113.
Конфигурация_ПодВерсия = Число(МассивПараметров[1]);
114.
Конфигурация_Релиз = Число(МассивПараметров[2]);
115.
Конфигурация_Сборка = Число(МассивПараметров[3]);
116.
Исключение
117.
КонецПопытки;
118.
КонецЕсли;
87
119.
120.
КонецПроцедуры
121.
122.
// Описание: загружает внешнюю компоненту (server_urv.dll) и создаёт объект URV.
123.
// Параметры: ВыводитьСообщения - признак необходимости выводить сообщения.
124.
// Возвращаемое значение: Истина - внешняя компонента загружена, Ложь - произошла ошибка.
125.
Функция ЗагрузитьВнешнююКомпонентуУРВ(ВыводитьСообщения = Истина) Экспорт
126.
127.
Результат = Неопределено;
128.
129.
// каталоги
130.
Каталог1С = КаталогПрограммы(); // корневой каталог 1С (BIN)
131.
132.
// файлы программы УРВ для 1С
133.
БиблиотекаУРВ = "server_urv.dll"; // имя библиотеки УРВ
134.
БиблиотекаУтилит = "server_utils.dll"; // имя библиотеки утилит
135.
БиблиотекаИнструментов = "server_tools.dll"; // имя библиотеки инструментов
136.
ФайлНастроек = "server_urv.ini"; // файл настроек
137.
ФайлКэшБазы = "server_urv.dat"; // Файл кэш базы данных УРВ
138.
139.
// удалить старые файлы УРВ в корневом каталоге 1С
140.
Попытка
141.
// файл кэш базы данных УРВ
142.
Если ФайлСуществует(Каталог1С + БиблиотекаУРВ) Тогда
143.
УдалитьФайлы(Каталог1С + БиблиотекаУРВ); // удалить основную библиотеку
144.
УдалитьФайлы(Каталог1С + ФайлКэшБазы); // удалить кэш базу, т.к. нужно
создать новую базу
145.
КонецЕсли;
146.
// библиотека утилит
147.
УдалитьФайлы(Каталог1С + БиблиотекаУтилит);
148.
// библиотека инструментов
149.
УдалитьФайлы(Каталог1С + БиблиотекаИнструментов);
150.
Исключение
151.
// не ругаться
152.
КонецПопытки;
153.
154.
ИмяАрхива = КаталогУРВ + "server_urv.zip"; // имя архива (содержится в макете внешней
компоненты)
155.
156.
// файл подключаемой библиотеки
88
157.
Если ТехнологияИсполнения = "COM" Тогда
158.
Если РазрядностьБиблиотеки = 32 Тогда
159.
ФайлБиблиотеки = КаталогУРВ + "server_urv_com32.dll";
160.
ИначеЕсли РазрядностьБиблиотеки = 64 Тогда
161.
ФайлБиблиотеки = КаталогУРВ + "server_urv_com64.dll";
162.
КонецЕсли;
163.
ИначеЕсли ТехнологияИсполнения = "Native API" Тогда
164.
Если РазрядностьБиблиотеки = 32 Тогда
165.
ФайлБиблиотеки = КаталогУРВ + "server_urv_native32.dll";
166.
ИначеЕсли РазрядностьБиблиотеки = 64 Тогда
167.
ФайлБиблиотеки = КаталогУРВ + "server_urv_native64.dll";
168.
КонецЕсли;
169.
КонецЕсли;
170.
171.
// удалить старые библиотеки, если их технология исполнения не соответствует
настройкам программы
172.
Если ТехнологияИсполнения = "COM" Тогда
173.
Попытка
174.
УдалитьФайлы(КаталогУРВ + "server_urv_native32.dll");
175.
УдалитьФайлы(КаталогУРВ + "server_urv_native64.dll");
176.
Исключение
177.
// не ругаться
178.
КонецПопытки;
179.
ИначеЕсли ТехнологияИсполнения = "Native API" Тогда
180.
Попытка
181.
УдалитьФайлы(КаталогУРВ + "server_urv_com32.dll");
182.
УдалитьФайлы(КаталогУРВ + "server_urv_com64.dll");
183.
Исключение
184.
// не ругаться
185.
КонецПопытки;
186.
КонецЕсли;
187.
188.
// удалить старые библиотеки, если их разрядность не соответствует настройкам
программы
189.
Если РазрядностьБиблиотеки = 32 Тогда
190.
Попытка
191.
УдалитьФайлы(КаталогУРВ + "server_urv_com64.dll");
192.
УдалитьФайлы(КаталогУРВ + "server_urv_native64.dll");
193.
УдалитьФайлы(КаталогУРВ + "server_tools_64.dll");
194.
Исключение
89
195.
// не ругаться
196.
КонецПопытки;
197.
ИначеЕсли РазрядностьБиблиотеки = 64 Тогда
198.
Попытка
199.
УдалитьФайлы(КаталогУРВ + "server_urv_com32.dll");
200.
УдалитьФайлы(КаталогУРВ + "server_urv_native32.dll");
201.
УдалитьФайлы(КаталогУРВ + "server_tools_32.dll");
202.
Исключение
203.
// не ругаться
204.
КонецПопытки;
205.
КонецЕсли;
206.
207.
Если ТехнологияИсполнения = "COM" Тогда
208.
209.
ИмяСОМОбъекта = "AddIn.object_urv";
210.
211.
// попытаться создать СОМ-объект по его имени
212.
Попытка
213.
URV = Новый (ИмяСОМОбъекта);
214.
URV = Неопределено;
215.
РезультатПодключения = Истина;
216.
Исключение
217.
// ошибка, подключить внешнюю компоненту
218.
РезультатПодключения = ПодключитьВнешнююКомпоненту(ИмяСОМОбъекта);
219.
КонецПопытки;
220.
221.
Если РезультатПодключения Тогда // СОМ-объект был зарегистрирован ранее
222.
223.
Если ВыводитьСообщения Тогда
224.
Сообщить(Формат(ТекущаяДата(), "ДЛФ=ДВ") + " " + "Внешняя компонента
загружена.");
225.
КонецЕсли;
226.
227.
// создать COM-объект
228.
Попытка
229.
Результат = Новый (ИмяСОМОбъекта);
230.
Если ВыводитьСообщения Тогда
231.
Сообщить(Формат(ТекущаяДата(), "ДЛФ=ДВ") + " " + "Создан объект
URV.");
232.
КонецЕсли;
90
233.
Исключение
234.
Сообщить(Формат(ТекущаяДата(), "ДЛФ=ДВ") + " " + "Ошибка при создании
объекта URV: "+ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
235.
КонецПопытки;
236.
237.
Иначе // СОМ-объект нужно зарегистрировать
238.
239.
// взять макет внешней компоненты и сохранить его на диск
240.
Если РазрядностьБиблиотеки = 32 Тогда
241.
ИмяМакета = "BK_COM_32";
242.
ИначеЕсли РазрядностьБиблиотеки = 64 Тогда
243.
ИмяМакета = "BK_COM_64";
244.
КонецЕсли;
245.
Макет = ЭтотОбъект.ПолучитьМакет(ИмяМакета);
246.
Если Макет = Неопределено Тогда
247.
Сообщить(Формат(ТекущаяДата(), "ДЛФ=ДВ") + " " + "Макет внешней компоненты
не найден: " + ИмяМакета + ".", СтатусСообщения.ОченьВажное);
248.
Возврат Результат;
249.
КонецЕсли;
250.
Макет.Записать(ИмяАрхива);
251.
252.
// открыть архив
253.
ФайлМакета = Новый ЧтениеZipФайла();
254.
ФайлМакета.Открыть(ИмяАрхива);
255.
256.
// распаковать файлы по одиночке
257.
Для Каждого Элемент Из ФайлМакета.Элементы Цикл
258.
Если ПолучитьРасширениеФайла(Элемент.Имя) = "dll" Тогда
259.
ФайлМакета.Извлечь(Элемент, КаталогУРВ,
РежимВосстановленияПутейФайловZIP.Восстанавливать, "");
260.
Прервать;
261.
КонецЕсли;
262.
КонецЦикла;
263.
264.
// закрыть и удалить архив
265.
ФайлМакета.Закрыть();
266.
УдалитьФайлы(ИмяАрхива);
267.
268.
// попытаться подключить внешнюю компоненту
269.
Попытка
91
270.
Если ФайлСуществует(ФайлБиблиотеки) Тогда
271.
ЗагрузитьВнешнююКомпоненту(ФайлБиблиотеки);
272.
КонецЕсли;
273.
Если ВыводитьСообщения Тогда
274.
Сообщить(Формат(ТекущаяДата(), "ДЛФ=ДВ") + " " + "Внешняя компонента
загружена.");
275.
КонецЕсли;
276.
Результат = Новый (ИмяСОМОбъекта);
277.
Если ВыводитьСообщения И Результат <> Неопределено Тогда
278.
Сообщить(Формат(ТекущаяДата(), "ДЛФ=ДВ") + " " + "Создан объект
URV.");
279.
КонецЕсли;
280.
Исключение
281.
Сообщить(Формат(ТекущаяДата(), "ДЛФ=ДВ") + " " + "Ошибка: " +
ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
282.
КонецПопытки
283.
284.
КонецЕсли;
285.
286.
ИначеЕсли ТехнологияИсполнения = "Native API" Тогда
287.
288.
// взять макет внешней компоненты и сохранить его на диск
289.
Если РазрядностьБиблиотеки = 32 Тогда
290.
ИмяМакета = "BK_NATIVE_32";
291.
ИначеЕсли РазрядностьБиблиотеки = 64 Тогда
292.
ИмяМакета = "BK_NATIVE_64";
293.
КонецЕсли;
294.
Макет = ЭтотОбъект.ПолучитьМакет(ИмяМакета);
295.
Если Макет = Неопределено Тогда
296.
Сообщить(Формат(ТекущаяДата(), "ДЛФ=ДВ") + " " + "Макет внешней компоненты не
найден: " + ИмяМакета + ".", СтатусСообщения.ОченьВажное);
297.
Возврат Результат;
298.
КонецЕсли;
299.
Макет.Записать(ИмяАрхива);
300.
301.
// открыть архив
302.
ФайлМакета = Новый ЧтениеZipФайла();
303.
ФайлМакета.Открыть(ИмяАрхива);
304.
305.
// распаковать файлы по одиночке

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)