Skip to content

Commit

Permalink
Исправления по issure: #2, #3, #4
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrey Gusarov authored and Andrey Gusarov committed Sep 27, 2023
1 parent 686521f commit b1618d9
Show file tree
Hide file tree
Showing 10 changed files with 1,092 additions and 81 deletions.
Binary file not shown.
Binary file modified bin/ПомощникСозданияСкриптов.epf
Binary file not shown.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16484"></meta></head><body>
<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1" class="MsoNormal"><b><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 24pt; mso-fareast-font-family: 'Times New Roman'; mso-font-kerning: 18.0pt; mso-fareast-language: RU">Выгрузка и загрузка пользователей информационной базы<o:p></o:p></span></b></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU">Обработка предназначена для выгрузки и загрузки списка пользователей информационной базы.<o:p></o:p></span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU">Для выгрузки пользователей необходимо нажать кнопку <b>Выгрузить пользователей...</b>. После формирования необходимых данных система предложит указать файл, в который будет выполнена выгрузка. Предлагаемое по умолчанию имя файла: <b>IBUsers.xml</b>.</span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU"><o:p></o:p></span><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU">Для загрузки пользователей следует нажать кнопку <b>Загрузить пользователей...</b>. Будет предложено выбрать файл, содержащий список пользователей (предварительно выгруженных из информационной базы), после чего произойдет загрузка списка пользователей. Предлагаемое по умолчанию имя файла: <b>IBUsers.xml</b>.<o:p></o:p></span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class="Important"><b><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU">ВАЖНО!</span></b><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU"> Сопоставление пользователей выполняется по именам.<o:p></o:p></span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU">Существует возможность обновить информацию о пользователе в информационной базе данными из файла, если имя пользователя в файле и в информационной базе совпадают. Для этого следует установить флажок <b>При совпадении имен пользователей обновлять свойства пользователей</b>. В противном случае при совпадении имен данные пользователя в информационной базе останутся неизменными.<o:p></o:p></span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU">Если необходимо получить протокол загрузки, следует указать флажок <b>Формировать протокол загрузки</b> перед началом загрузки. В этом случае будет сформирован текстовый файл, содержащий информацию о загрузке каждого пользователя из файла:<o:p></o:p></span></p>
<ul type="disc"><li style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt" class="MsoNormal"><b><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU">Пользователь: ИмяПользователя. Не изменен</span></b><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU">. Пользователь из файла обнаружен в информационной базе. Его данные оставлены без изменения. <o:p></o:p></span>
</li><li style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt" class="MsoNormal"><b><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU">Пользователь: ИмяПользователя. Обновлен данными из файла.</span></b><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU"> Пользователь из файла обнаружен в информационной базе. Его данные обновлены данными из файла. <o:p></o:p></span>
</li><li style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt" class="MsoNormal"><b><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU">Пользователь: ИмяПользователя. Создан новый.</span></b><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU"> Создан новый пользователь информационной базы с указанным именем.<o:p></o:p></span></li></ul><p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"><o:p><font size="3" face="Calibri"> </font></o:p></p></body></html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

ФайлВыгрузки = "IBUsers.xml";
ФайлЗагрузки = "IBUsers.xml";
ПриоритетФайла = Ложь;
ФормироватьПротокол = Истина;

КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)

#Если ВебКлиент Тогда
// В веб-клиенте оставим только имена файлов
ФайлВыгрузки = "IBUsers.xml";
ФайлЗагрузки = "IBUsers.xml";
// и уберем поля для предварительного выбора файлов, т.к. будут использоваться интерактивные методы
Элементы.ФайлВыгрузки.Видимость = Ложь;
Элементы.ФайлЗагрузки.Видимость = Ложь;
#КонецЕсли

КонецПроцедуры

#Область ВыгрузкаПользователей
&НаСервере
Функция ВыгрузитьПользователейНаСервере()

Обработка = РеквизитФормыВЗначение("Объект");
Возврат Обработка.ВыгрузитьПользователей();

КонецФункции

&НаКлиенте
Процедура ВыгрузитьПользователей(Команда)

Состояние(НСтр("ru = 'Выполняется выгрузка списка пользователей...'", "ru"));
Результат = ВыгрузитьПользователейНаСервере();
Если НЕ Результат.Статус Тогда
ПоказатьПредупреждение(, НСтр("ru = 'При выполнении выгрузки пользователей произошла ошибка.'", "ru"));
Возврат;
КонецЕсли;

Если ПодключитьРасширениеРаботыСФайлами() Тогда
Получаемые = Новый Массив;
ПолучаемыйФайл = Новый ОписаниеПередаваемогоФайла;
ПолучаемыйФайл.Имя = ФайлВыгрузки;
ПолучаемыйФайл.Хранение = Результат.Адрес;
Получаемые.Добавить(ПолучаемыйФайл);
Полученные = Новый Массив;
Если ПолучитьФайлы(Получаемые, Полученные, "", Ложь) Тогда
ПоказатьПредупреждение(, НСтр("ru='Выгрузка завершена успешно. Выгружено пользователей: " + Результат.Количество + "'", "ru"));
КонецЕсли;
Иначе
ПолучитьФайл(Результат.Адрес, ФайлВыгрузки, Истина);
КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ФайлВыгрузкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;
ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
ДиалогВыбора.Заголовок = НСтр("ru = 'Укажите файл для сохранения списка пользователей'", "ru");
ДиалогВыбора.ПроверятьСуществованиеФайла = Ложь;
ДиалогВыбора.ПолноеИмяФайла = ФайлВыгрузки;
ДиалогВыбора.Фильтр = НСтр("ru = 'XML-файлы|*.xml|Все файлы|" + ПолучитьМаскуВсеФайлыКлиента() + "'", "ru");
Результат = ДиалогВыбора.Выбрать();
Если Результат Тогда
ФайлВыгрузки = ДиалогВыбора.ПолноеИмяФайла;
КонецЕсли;

КонецПроцедуры
#КонецОбласти

#Область ЗагрузкаПользователей
&НаСервере
Функция ЗагрузитьПользователейНаСервере(Адрес)

Обработка = РеквизитФормыВЗначение("Объект");
Возврат Обработка.ЗагрузитьПользователей(Адрес, ПриоритетФайла, ФормироватьПротокол);

КонецФункции

&НаКлиенте
Процедура ЗагрузитьПользователей(Команда)

ИмяПротокола = "IBUsers_log.txt";
Адрес = "";
ОбратныйВызов = Новый ОписаниеОповещения("ЗагрузитьПользователейЗавершение", ЭтотОбъект, ИмяПротокола);
#Если ВебКлиент Тогда
НачатьПомещениеФайла(ОбратныйВызов, Адрес, "", Истина);
#Иначе
НачатьПомещениеФайла(ОбратныйВызов, Адрес, ФайлЗагрузки, Ложь);
#КонецЕсли

КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьПользователейЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ИмяПротокола) Экспорт

Если Результат Тогда
Состояние(НСтр("ru = 'Выполняется загрузка пользователей информационной базы...'", "ru"));
Результат = ЗагрузитьПользователейНаСервере(Адрес);
Если Результат.Статус = Ложь Тогда
ПоказатьПредупреждение(, НСтр("ru = 'При выполнении загрузки пользователей произошла ошибка.'", "ru"));
Возврат;
КонецЕсли;

Если ФормироватьПротокол Тогда
ПолучитьФайл(Результат.ФайлПротокола, ИмяПротокола, Истина);
Иначе
Текст = НСтр("ru = 'Загрузка пользователей завершена. Всего прочитано: %1. Загружено: %2. Совпадений: %3.'", "ru");
Текст = СтрЗаменить(Текст, "%1", Результат.ИзФайла);
Текст = СтрЗаменить(Текст, "%2", Результат.Загружено);
Текст = СтрЗаменить(Текст, "%3", Результат.Совпадений);
ПоказатьПредупреждение(, Текст);
КонецЕсли;
КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ФайлЗагрузкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;
ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбора.Заголовок = НСтр("ru = 'Укажите файл для загрузки списка пользователей'", "ru");
ДиалогВыбора.ПолноеИмяФайла = ФайлЗагрузки;
ДиалогВыбора.Фильтр = НСтр("ru = 'XML-файлы|*.xml|Все файлы|" + ПолучитьМаскуВсеФайлыКлиента() + "'", "ru");
Результат = ДиалогВыбора.Выбрать();
Если Результат Тогда
ФайлЗагрузки = ДиалогВыбора.ПолноеИмяФайла;
КонецЕсли;

КонецПроцедуры
#КонецОбласти
Loading

0 comments on commit b1618d9

Please sign in to comment.