2_4_6_78
This commit is contained in:
1 parent
dc5cb24d47
commit
1d05e739d0
17 files changed
+796
-440
No files matched your search
@@ -2862,11 +2862,8 @@
|
||||
|
||||
// Перебор вложенных подсистем родителя.
|
||||
Для Каждого ПодсистемаМетаданные Из ПодсистемаРодитель.Подсистемы Цикл
|
||||
Если Не ПодсистемаМетаданные.ВключатьВКомандныйИнтерфейс Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
// Состав подсистемы
|
||||
Если ПодсистемаМетаданные.ВключатьВКомандныйИнтерфейс Тогда
|
||||
Для Каждого ОтчетМетаданные Из ПодсистемаМетаданные.Состав Цикл
|
||||
Если Не Метаданные.Отчеты.Содержит(ОтчетМетаданные) Тогда
|
||||
Продолжить;
|
||||
@@ -2879,6 +2876,7 @@
|
||||
СтрокаТаблицы.ПодсистемаПолноеИмя = ПодсистемаМетаданные.ПолноеИмя();
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
РазмещениеОтчетовВПодсистемах(Результат, ПодсистемаМетаданные);
|
||||
КонецЦикла;
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
// См. ЗащитаПерсональныхДанныхПереопределяемый.ЗаполнитьСведенияОПерсональныхДанных.
|
||||
//
|
||||
// Параметры:
|
||||
// Субъекты - Массив, ОпределяемыйТип.СубъектПерсональныхДанных - ссылка или массив ссылок на субъекты.
|
||||
// Субъекты - Массив, ОпределяемыйТип.СубъектПерсональныхДанных - ссылка или массив ссылок одного типа на субъекты.
|
||||
// СообщатьОбИсключениях - Булево - признак необходимости информирования пользователя о добавленных исключениях.
|
||||
//
|
||||
Процедура СкрытьПерсональныеДанныеСубъектов(Знач Субъекты, СообщатьОбИсключениях = Ложь) Экспорт
|
||||
@@ -340,7 +340,6 @@
|
||||
|
||||
ПараметрыОтбора = ПараметрыОтбораСкрываемыхДанных();
|
||||
ПараметрыОтбора.Субъекты = ОтбираемыеСубъекты;
|
||||
ПараметрыОтбора.ТипСубъектов = ТипСубъектов;
|
||||
|
||||
ОбрабатываемыеМетаданные = ОбрабатываемыеМетаданные();
|
||||
|
||||
@@ -556,18 +555,34 @@
|
||||
ДнейДоСкрытия = Константы.ДнейДоСкрытияПерсональныхДанныхСубъектов.Получить();
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ
|
||||
| СубъектыДляСкрытияПДн.Субъект КАК Субъект
|
||||
Запрос.Текст = ТекстЗапросаСубъектыДляСкрытияПерсональныхДанных(Истина) + "
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| Субъекты.Субъект КАК Субъект
|
||||
|ИЗ
|
||||
| ВТСубъектыДляСкрытия КАК Субъекты
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СубъектыДляСкрытияПерсональныхДанных КАК СубъектыДляСкрытияПДн
|
||||
| ПО СубъектыДляСкрытияПДн.Субъект = Субъекты.Субъект
|
||||
|ГДЕ
|
||||
| Субъекты.Субъект В(&Субъекты)
|
||||
| И СубъектыДляСкрытияПДн.Субъект ЕСТЬ NULL
|
||||
|
|
||||
|ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
|ВЫБРАТЬ
|
||||
| СубъектыДляСкрытияПДн.Субъект
|
||||
|ИЗ
|
||||
| РегистрСведений.СубъектыДляСкрытияПерсональныхДанных КАК СубъектыДляСкрытияПДн
|
||||
|ГДЕ
|
||||
| СубъектыДляСкрытияПДн.Субъект В(&Субъекты)
|
||||
| И СубъектыДляСкрытияПДн.ДатаСкрытия >= &ТекущаяДата
|
||||
| И СубъектыДляСкрытияПДн.ДатаСкрытия < &РасчетнаяДата
|
||||
| И СубъектыДляСкрытияПДн.ДатаСкрытия > &ПустаяДата
|
||||
| И СубъектыДляСкрытияПДн.ДатаСкрытия <= &РасчетнаяДата
|
||||
| И СубъектыДляСкрытияПДн.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСубъектовДляСкрытия.ГотовКСкрытию)";
|
||||
|
||||
Запрос.УстановитьПараметр("Субъекты", Строки.ПолучитьКлючи());
|
||||
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата);
|
||||
Запрос.УстановитьПараметр("ПустаяДата", '00010101');
|
||||
Запрос.УстановитьПараметр("РасчетнаяДата", ТекущаяДата + ДнейДоСкрытия * 86400);
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
@@ -726,13 +741,16 @@
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если Объект.ДополнительныеСвойства.Свойство("ОтключитьМеханизмРегистрацииОбъектов") Тогда
|
||||
Возврат Истина;
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда
|
||||
|
||||
МодульОбменДаннымиПовтИсп = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиПовтИсп");
|
||||
Если МодульОбменДаннымиПовтИсп.ЭтоПланОбменаРаспределеннойИнформационнойБазы(ИмяПланаОбмена) Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗащитаПерсональныхДанныхПовтИсп.ЭтоПланОбменаРаспределеннойИнформационнойБазы(ИмяПланаОбмена) Тогда
|
||||
Возврат Ложь;
|
||||
ИначеЕсли Объект.ДополнительныеСвойства.Свойство("СкрытиеКонфиденциальнойИнформации") Тогда
|
||||
КонецЕсли;
|
||||
|
||||
Если Объект.ДополнительныеСвойства.Свойство("СкрытиеКонфиденциальнойИнформации") Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -783,7 +801,7 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Истина;
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -800,31 +818,8 @@
|
||||
|
||||
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ПолучениеСубъектовДляСкрытияПерсональныхДанных);
|
||||
|
||||
МетаданныеСправочники = Метаданные.Справочники;
|
||||
ТипыСубъектов = Метаданные.ОпределяемыеТипы.СубъектПерсональныхДанных.Тип.Типы();
|
||||
|
||||
Запрос = Новый Запрос();
|
||||
|
||||
Для Каждого ТипСубъекта Из ТипыСубъектов Цикл
|
||||
|
||||
Если ТипСубъекта = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
МетаданныеСправочника = Метаданные.НайтиПоТипу(ТипСубъекта);
|
||||
|
||||
Запрос.Текст = Запрос.Текст + ?(ПустаяСтрока(Запрос.Текст),"", " ОБЪЕДИНИТЬ ВСЕ") + "
|
||||
|
|
||||
|ВЫБРАТЬ
|
||||
| СправочникСубъекта.Ссылка КАК Субъект
|
||||
|ИЗ
|
||||
| Справочник." + МетаданныеСправочника.Имя + " КАК СправочникСубъекта
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СубъектыДляСкрытияПерсональныхДанных КАК СубъектыДляСкрытияПерсональныхДанных
|
||||
| ПО СправочникСубъекта.Ссылка = СубъектыДляСкрытияПерсональныхДанных.Субъект
|
||||
|ГДЕ
|
||||
| СубъектыДляСкрытияПерсональныхДанных.Субъект ЕСТЬ NULL";
|
||||
|
||||
КонецЦикла;
|
||||
Запрос.Текст = ТекстЗапросаСубъектыДляСкрытияПерсональныхДанных();
|
||||
|
||||
Субъекты = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Субъект");
|
||||
ЗаписатьНастройкиСкрытияСубъектов(Субъекты);
|
||||
@@ -841,21 +836,69 @@
|
||||
Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДатаСеанса()));
|
||||
|
||||
Запрос.Текст = "ВЫБРАТЬ
|
||||
| СубъектыДляСкрытия.Субъект КАК Субъект
|
||||
| СубъектыДляСкрытия.Субъект КАК Субъект,
|
||||
| ТИПЗНАЧЕНИЯ(СубъектыДляСкрытия.Субъект) КАК ТипСубъекта
|
||||
|ИЗ
|
||||
| РегистрСведений.СубъектыДляСкрытияПерсональныхДанных КАК СубъектыДляСкрытия
|
||||
|ГДЕ
|
||||
| СубъектыДляСкрытия.ДатаСкрытия <= &ТекущаяДата
|
||||
| И СубъектыДляСкрытия.ДатаСкрытия > &ПустаяДата
|
||||
| И СубъектыДляСкрытия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСубъектовДляСкрытия.ГотовКСкрытию)";
|
||||
| И СубъектыДляСкрытия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСубъектовДляСкрытия.ГотовКСкрытию)
|
||||
|ИТОГИ ПО
|
||||
| ТипСубъекта";
|
||||
|
||||
ВыборкаТипов = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||||
|
||||
Пока ВыборкаТипов.Следующий() Цикл
|
||||
|
||||
Субъекты = Новый Массив;
|
||||
ВыборкаСубъектов = ВыборкаТипов.Выбрать();
|
||||
|
||||
Пока ВыборкаСубъектов.Следующий() Цикл
|
||||
Субъекты.Добавить(ВыборкаСубъектов.Субъект);
|
||||
КонецЦикла;
|
||||
|
||||
Субъекты = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Субъект");
|
||||
СкрытьПерсональныеДанныеСубъектов(Субъекты);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Функция ТекстЗапросаСубъектыДляСкрытияПерсональныхДанных(ВоВременнуюТаблицу = Ложь)
|
||||
|
||||
ТекстЗапроса = "";
|
||||
ОсновнаяТаблица = Истина;
|
||||
МетаданныеПоТипамСубъекта = ЗащитаПерсональныхДанныхПовтИсп.МетаданныеПоТипамСубъекта();
|
||||
|
||||
Для Каждого ТипСубъектаИМетаданные Из МетаданныеПоТипамСубъекта Цикл
|
||||
|
||||
МетаданныеСубъекта = ТипСубъектаИМетаданные.Значение;
|
||||
|
||||
ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса),"", " ОБЪЕДИНИТЬ ВСЕ") + "
|
||||
|
|
||||
|ВЫБРАТЬ
|
||||
| СправочникСубъекта.Ссылка КАК Субъект
|
||||
|[ПомещениеВоВременнуюТаблицу]
|
||||
|ИЗ
|
||||
| Справочник." + МетаданныеСубъекта.Имя + " КАК СправочникСубъекта
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СубъектыДляСкрытияПерсональныхДанных КАК СубъектыДляСкрытияПерсональныхДанных
|
||||
| ПО СправочникСубъекта.Ссылка = СубъектыДляСкрытияПерсональныхДанных.Субъект
|
||||
|ГДЕ
|
||||
| СубъектыДляСкрытияПерсональныхДанных.Субъект ЕСТЬ NULL";
|
||||
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПомещениеВоВременнуюТаблицу]",
|
||||
?(ВоВременнуюТаблицу И ОсновнаяТаблица, "ПОМЕСТИТЬ ВТСубъектыДляСкрытия", ""));
|
||||
|
||||
ОсновнаяТаблица = Ложь;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ТекстЗапроса;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
|
||||
|
||||
// ОбменДанными.Загрузка проверяется внутри вызова.
|
||||
@@ -1100,7 +1143,7 @@
|
||||
|
||||
Функция ПараметрыОтбораСкрываемыхДанных() Экспорт
|
||||
|
||||
Возврат Новый Структура("ОсновноеПолеОтбора,Субъекты,ТипСубъектов");
|
||||
Возврат Новый Структура("ОсновноеПолеОтбора,Субъекты");
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -1210,7 +1253,7 @@
|
||||
Если Реквизит.Тип.СодержитТип(Тип) Тогда
|
||||
|
||||
Если Полные Тогда
|
||||
ИменаРеквизитов.Добавить(СтрШаблон("%1.%2", ИмяТабличнойЧасти, Реквизит.Имя));
|
||||
ИменаРеквизитов.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.%2", ИмяТабличнойЧасти, Реквизит.Имя));
|
||||
Иначе
|
||||
ИменаРеквизитов.Добавить(Реквизит.Имя);
|
||||
КонецЕсли;
|
||||
@@ -1262,7 +1305,8 @@
|
||||
Субъекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Субъекты);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не Метаданные.ОпределяемыеТипы.СубъектПерсональныхДанных.Тип.СодержитТип(ТипЗнч(Субъекты[0])) Тогда
|
||||
ТипыСубъектов = ЗащитаПерсональныхДанныхПовтИсп.ТипыСубъектов();
|
||||
Если ТипыСубъектов.Найти(ТипЗнч(Субъекты[0])) = Неопределено Тогда
|
||||
Возврат ЕстьСкрытые;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
КонецФункции
|
||||
|
||||
// Возвращает полные имена объектов метаданных содержащих персональные данные.
|
||||
//
|
||||
// Параметры:
|
||||
// Нет
|
||||
//
|
||||
@@ -26,7 +27,7 @@
|
||||
//
|
||||
Функция ИменаИсточниковПерсональныхДанных() Экспорт
|
||||
|
||||
ТаблицаСведений = ЗащитаПерсональныхДанных.СведенияОПерсональныхДанных();
|
||||
ТаблицаСведений = ЗащитаПерсональныхДанныхПовтИсп.СведенияОПерсональныхДанных();
|
||||
ТаблицаСведений.Сортировать("Объект");
|
||||
|
||||
ИменаИсточников = ТаблицаСведений.ВыгрузитьКолонку("Объект");
|
||||
@@ -37,6 +38,7 @@
|
||||
КонецФункции
|
||||
|
||||
// Возвращает полные имена реквизитов объекта метаданных содержащего персональные данные по его полному имени.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяИсточника - Строка - полное имя источника метаданных. Например: "Справочник.ФизическиеЛица".
|
||||
//
|
||||
@@ -45,83 +47,194 @@
|
||||
//
|
||||
Функция ИменаРеквизитовИсточникаСодержащихСубъект(ИмяИсточника) Экспорт
|
||||
|
||||
ИменаРеквизитов = Новый Массив;
|
||||
ИменаРеквизитовСодержащихСубъект = Новый Массив;
|
||||
МетаданныеПоТипамСубъекта = ЗащитаПерсональныхДанныхПовтИсп.МетаданныеПоТипамСубъекта();
|
||||
|
||||
МетаданныеИсточника = Метаданные.НайтиПоПолномуИмени(ИмяИсточника);
|
||||
ИсточникЭтоРегистр = ОбщегоНазначения.ЭтоРегистр(МетаданныеИсточника);
|
||||
ТипыСсылкиИсточника = ?(ИсточникЭтоРегистр, Новый Массив, МетаданныеИсточника.СтандартныеРеквизиты.Ссылка.Тип.Типы());
|
||||
ИсточникИмеетВладельца = ОбщегоНазначения.ЭтоСправочник(МетаданныеИсточника) И МетаданныеИсточника.Владельцы.Количество() > 0;
|
||||
|
||||
ПоляСведений = ИменаПолейСведенийОПерсональныхДанныхОбъекта(ИмяИсточника);
|
||||
ПоляДоступа = ПоляСведений.ПоляДоступа;
|
||||
ПоляРегистрации = ПоляСведений.ПоляРегистрации;
|
||||
|
||||
ИменаТЧСодержащихСведения = Новый Массив;
|
||||
|
||||
Если Не ИсточникЭтоРегистр Тогда
|
||||
|
||||
ИменаТабличныхЧастей = Новый Массив;
|
||||
ТабличныеЧасти = МетаданныеИсточника.ТабличныеЧасти;
|
||||
|
||||
Для Каждого ТабличнаяЧасть Из ТабличныеЧасти Цикл
|
||||
ИменаТабличныхЧастей.Добавить(ТабличнаяЧасть.Имя);
|
||||
КонецЦикла;
|
||||
|
||||
ИменаТЧСодержащихСведения = ИменаТЧОбъектаСодержащихСведенияОПерсональныхДанных(ИменаТабличныхЧастей, ПоляДоступа);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ТипСубъектаИМетаданные Из МетаданныеПоТипамСубъекта Цикл
|
||||
|
||||
ТипСубъекта = ТипСубъектаИМетаданные.Ключ;
|
||||
МетаданныеСубъекта = ТипСубъектаИМетаданные.Значение;
|
||||
|
||||
ИменаРеквизитовИсточника = Новый Массив;
|
||||
ИменаРеквизитовТЧИсточника = Новый Соответствие;
|
||||
|
||||
Если ИсточникЭтоРегистр Тогда
|
||||
|
||||
ИменаИзмеренийТипа = ЗащитаПерсональныхДанных.ИменаИзмеренийРегистраПоТипу(МетаданныеИсточника, ТипСубъекта);
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаРеквизитовИсточника, ИменаИзмеренийТипа);
|
||||
|
||||
Иначе
|
||||
|
||||
Если ТипыСсылкиИсточника.Найти(ТипСубъекта) <> Неопределено Тогда
|
||||
ИменаРеквизитовИсточника.Добавить("Ссылка");
|
||||
Иначе
|
||||
|
||||
Если ИсточникИмеетВладельца Тогда
|
||||
|
||||
Если МетаданныеИсточника.Владельцы.Содержит(МетаданныеСубъекта) Тогда
|
||||
ИменаРеквизитовИсточника.Добавить("Владелец");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ИменаРеквизитовИсточника.Количество() = 0 Тогда
|
||||
|
||||
ИменаРеквизитовТипа = ЗащитаПерсональныхДанных.ИменаРеквизитовПоТипу(МетаданныеИсточника, ТипСубъекта);
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаРеквизитовИсточника, ИменаРеквизитовТипа);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ИмяТабличнойЧасти Из ИменаТЧСодержащихСведения Цикл
|
||||
|
||||
ИменаРеквизитовТЧТипа = ЗащитаПерсональныхДанных.ИменаРеквизитовТЧОбъектаПоТипу(МетаданныеИсточника, ИмяТабличнойЧасти, ТипСубъекта, Истина);
|
||||
Если ИменаРеквизитовТЧТипа.Количество() > 0 Тогда
|
||||
ИменаРеквизитовТЧИсточника.Вставить(ИмяТабличнойЧасти, ИменаРеквизитовТЧТипа);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ИмяРеквизита Из ИменаРеквизитовИсточника Цикл
|
||||
|
||||
Если ПоляРегистрации.Найти(ИмяРеквизита) <> Неопределено Тогда
|
||||
ИменаРеквизитовСодержащихСубъект.Добавить(ИмяРеквизита);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого ТЧИРеквизиты Из ИменаРеквизитовТЧИсточника Цикл
|
||||
|
||||
ИмяТЧ = ТЧИРеквизиты.Ключ;
|
||||
ИменаРеквизитовТЧ = ТЧИРеквизиты.Значение;
|
||||
|
||||
Для Каждого ИмяРеквизита Из ИменаРеквизитовТЧ Цикл
|
||||
|
||||
Если ПоляРегистрации.Найти(ИмяРеквизита) <> Неопределено Тогда
|
||||
ИменаРеквизитовСодержащихСубъект.Добавить(ИмяРеквизита);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ИменаРеквизитовСодержащихСубъект.Количество() > 0 Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый ФиксированныйМассив(ИменаРеквизитовСодержащихСубъект);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает имена полей регистрации и полей доступа сведений о персональных данных объекта по его полному имени.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяОбъекта - Строка - полное имя объекта метаданных. Например: "Справочник.ФизическиеЛица".
|
||||
//
|
||||
// Возвращаемое значение
|
||||
// Структура - со свойствами:
|
||||
/// ПоляРегистрации - Массив - массив строк. Например: "ФизическоеЛицо" или "ФизическиеЛица.ФизическоеЛицо".
|
||||
/// ПоляДоступа - Массив - массив строк. Например: "ИНН" или "ФизическиеЛица.ИНН".
|
||||
//
|
||||
Функция ИменаПолейСведенийОПерсональныхДанныхОбъекта(ИмяОбъекта)
|
||||
|
||||
ИменаПолейРегистрации = Новый Массив;
|
||||
ИменаПолейДоступа = Новый Массив;
|
||||
|
||||
ТаблицаСведений = ЗащитаПерсональныхДанныхПовтИсп.СведенияОПерсональныхДанных();
|
||||
СтрокиСведений = ТаблицаСведений.НайтиСтроки(Новый Структура("Объект", ИмяОбъекта));
|
||||
|
||||
Для Каждого СтрокаСведений Из СтрокиСведений Цикл
|
||||
|
||||
ПоляДоступа = СтрРазделить(СтрокаСведений.ПоляДоступа, ",");
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаПолейДоступа, ПоляДоступа, Истина);
|
||||
|
||||
ПоляРегистрации = СтрРазделить(СтрокаСведений.ПоляРегистрации, ",|");
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаПолейРегистрации, ПоляРегистрации, Истина);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый Структура("ПоляДоступа,ПоляРегистрации", ИменаПолейДоступа, ИменаПолейРегистрации);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИменаТЧОбъектаСодержащихСведенияОПерсональныхДанных(ИменаТЧОбъекта, ИменаРеквизитов)
|
||||
|
||||
ИменаТЧСодержащихСведения = Новый Массив;
|
||||
|
||||
Для Каждого ИмяТЧОбъекта Из ИменаТЧОбъекта Цикл
|
||||
|
||||
ПодстрокаПоиска = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.", ИмяТЧОбъекта);
|
||||
Для Каждого ИмяРеквизита Из ИменаРеквизитов Цикл
|
||||
|
||||
Если СтрНайти(ИмяРеквизита, ПодстрокаПоиска) <> 0 Тогда
|
||||
|
||||
ИменаТЧСодержащихСведения.Добавить(ИмяТЧОбъекта);
|
||||
Прервать;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ИменаТЧСодержащихСведения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СведенияОПерсональныхДанных() Экспорт
|
||||
|
||||
Возврат ЗащитаПерсональныхДанных.СведенияОПерсональныхДанных();
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция МетаданныеПоТипамСубъекта() Экспорт
|
||||
|
||||
ТипыСубъектов = ЗащитаПерсональныхДанныхПовтИсп.ТипыСубъектов();
|
||||
|
||||
МетаданныеПоТипуСубъектов = Новый Соответствие;
|
||||
Для Каждого ТипСубъекта Из ТипыСубъектов Цикл
|
||||
МетаданныеПоТипуСубъектов.Вставить(ТипСубъекта, Метаданные.НайтиПоТипу(ТипСубъекта));
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(МетаданныеПоТипуСубъектов);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТипыСубъектов() Экспорт
|
||||
|
||||
ТипыСубъектов = Метаданные.ОпределяемыеТипы.СубъектПерсональныхДанных.Тип.Типы();
|
||||
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ТипыСубъектов, Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных"));
|
||||
|
||||
Если ОбщегоНазначения.ЭтоРегистр(МетаданныеИсточника) Тогда
|
||||
|
||||
Для Каждого ТипСубъекта Из ТипыСубъектов Цикл
|
||||
|
||||
ИменаИзмеренийТипа = ЗащитаПерсональныхДанных.ИменаИзмеренийРегистраПоТипу(МетаданныеИсточника, ТипСубъекта);
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаРеквизитов, ИменаИзмеренийТипа);
|
||||
|
||||
Если ИменаРеквизитов.Количество() > 0 Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Иначе
|
||||
|
||||
Для Каждого ТипСубъекта Из ТипыСубъектов Цикл
|
||||
|
||||
ТипыСсылкиИсточника = МетаданныеИсточника.СтандартныеРеквизиты.Ссылка.Тип.Типы();
|
||||
Если ТипыСсылкиИсточника.Найти(ТипСубъекта) = Неопределено Тогда
|
||||
|
||||
ИменаРеквизитовТипа = ЗащитаПерсональныхДанных.ИменаРеквизитовПоТипу(МетаданныеИсточника, ТипСубъекта);
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаРеквизитов, ИменаРеквизитовТипа);
|
||||
|
||||
Иначе
|
||||
ИменаРеквизитов.Добавить("Ссылка");
|
||||
КонецЕсли;
|
||||
|
||||
Если ИменаРеквизитов.Количество() > 0 Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ИменаРеквизитов.Количество() = 0 Тогда
|
||||
|
||||
ТабличныеЧасти = МетаданныеИсточника.ТабличныеЧасти;
|
||||
|
||||
Для Каждого ТипСубъекта Из ТипыСубъектов Цикл
|
||||
|
||||
Если ИменаРеквизитов.Количество() > 0 Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ТабличнаяЧасть Из ТабличныеЧасти Цикл
|
||||
|
||||
ИменаРеквизитовТЧТипа = ЗащитаПерсональныхДанных.ИменаРеквизитовТЧОбъектаПоТипу(МетаданныеИсточника, ТабличнаяЧасть.Имя, ТипСубъекта, Истина);
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаРеквизитов, ИменаРеквизитовТЧТипа);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Новый ФиксированныйМассив(ИменаРеквизитов);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает признак принадлежности плана обмена к плану обмена РИБ.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяПланаОбмена - Строка - имя плана обмена, как оно задано в конфигураторе.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Истина - план обмена принадлежит плану обмена РИБ, иначе Ложь.
|
||||
//
|
||||
Функция ЭтоПланОбменаРаспределеннойИнформационнойБазы(ИмяПланаОбмена) Экспорт
|
||||
|
||||
Возврат Метаданные.ПланыОбмена[ИмяПланаОбмена].РаспределеннаяИнформационнаяБаза;
|
||||
Возврат Новый ФиксированныйМассив(ТипыСубъектов);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -42,6 +42,56 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Вызывается при обновлении с прошлых версий, где не выставлялся флажок ЗагружаетсяИзИнтернета.
|
||||
//
|
||||
Процедура ПреобразованиеСвязейВалют() Экспорт
|
||||
РаботаСКурсамиВалют.ПреобразованиеСвязейВалют();
|
||||
КонецПроцедуры
|
||||
|
||||
// Вызывается после загрузки данных в область или при изменении способа установки курса валюты.
|
||||
// Копирует курсы одной валюты за все даты из
|
||||
// неразделенного xml файла в разделенный регистр.
|
||||
//
|
||||
// Параметры:
|
||||
// КодВалюты - Строка
|
||||
//
|
||||
Процедура КопироватьКурсыВалюты(Знач КодВалюты) Экспорт
|
||||
|
||||
ВалютаСсылка = Справочники.Валюты.НайтиПоКоду(КодВалюты);
|
||||
Если ВалютаСсылка.Пустая() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ТипДанныхКурса = ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/SuppliedData/CurrencyRates", "Rate");
|
||||
|
||||
Фильтр = Новый Массив;
|
||||
Фильтр.Добавить(Новый Структура("Код, Значение", "Валюта", КодВалюты));
|
||||
Курсы = ПоставляемыеДанные.СсылкиПоставляемыхДанныхИзКэша("КурсыОднойВалюты", Фильтр);
|
||||
Если Курсы.Количество() = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПутьКФайлу = ПолучитьИмяВременногоФайла();
|
||||
ПоставляемыеДанные.ПоставляемыеДанныеИзКэша(Курсы[0]).Записать(ПутьКФайлу);
|
||||
ТаблицаКурсов = ПрочитатьТаблицуКурсов(ПутьКФайлу, Истина);
|
||||
УдалитьФайлы(ПутьКФайлу);
|
||||
|
||||
ТаблицаКурсов.Колонки.Дата.Имя = "Период";
|
||||
ТаблицаКурсов.Колонки.Добавить("Валюта");
|
||||
ТаблицаКурсов.ЗаполнитьЗначения(ВалютаСсылка, "Валюта");
|
||||
|
||||
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
|
||||
НаборЗаписей.Отбор.Валюта.Установить(ВалютаСсылка);
|
||||
НаборЗаписей.Загрузить(ТаблицаКурсов);
|
||||
НаборЗаписей.ОбменДанными.Загрузка = Истина;
|
||||
|
||||
НаборЗаписей.Записать();
|
||||
|
||||
// Проверка наличие установленного курса и кратности валюты на 1 января 1980 года.
|
||||
РаботаСКурсамиВалют.ПроверитьКорректностьКурсаНа01_01_1980(ВалютаСсылка);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Обработчики событий подсистем конфигурации.
|
||||
|
||||
@@ -138,12 +188,6 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Вызывается при обновлении с прошлых версий, где не выставлялся флажок ЗагружаетсяИзИнтернета.
|
||||
//
|
||||
Процедура ПреобразованиеСвязейВалют() Экспорт
|
||||
РаботаСКурсамиВалют.ПреобразованиеСвязейВалют();
|
||||
КонецПроцедуры
|
||||
|
||||
// Вызывается после загрузки данных в область.
|
||||
// Обновляет курсы валют из поставляемых данных.
|
||||
//
|
||||
@@ -287,7 +331,6 @@
|
||||
Процедура ОбработатьПоставляемыеКурсы(Знач Дескриптор, Знач ПутьКФайлу)
|
||||
|
||||
ТаблицаКурсов = ПрочитатьТаблицуКурсов(ПутьКФайлу);
|
||||
ТаблицаКурсов.Индексы.Добавить("Код");
|
||||
|
||||
// Разбиваем на файлы по валюте и записываем в базу.
|
||||
ТаблицаКодов = ТаблицаКурсов.Скопировать( , "Код");
|
||||
@@ -297,24 +340,24 @@
|
||||
ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
|
||||
ЗаписатьТаблицуКурсов(ТаблицаКурсов.НайтиСтроки(Новый Структура("Код", СтрокаКода.Код)), ИмяВременногоФайла);
|
||||
|
||||
Дескриптор = Новый Структура;
|
||||
Дескриптор.Вставить("ВидДанных", "КурсыОднойВалюты");
|
||||
Дескриптор.Вставить("ДатаДобавления", ТекущаяУниверсальнаяДата());
|
||||
Дескриптор.Вставить("ИдентификаторФайла", Новый УникальныйИдентификатор);
|
||||
Дескриптор.Вставить("Характеристики", Новый Массив);
|
||||
ДескрипторКэша = Новый Структура;
|
||||
ДескрипторКэша.Вставить("ВидДанных", "КурсыОднойВалюты");
|
||||
ДескрипторКэша.Вставить("ДатаДобавления", ТекущаяУниверсальнаяДата());
|
||||
ДескрипторКэша.Вставить("ИдентификаторФайла", Новый УникальныйИдентификатор);
|
||||
ДескрипторКэша.Вставить("Характеристики", Новый Массив);
|
||||
|
||||
Дескриптор.Характеристики.Добавить(Новый Структура("Код, Значение, Ключевая", "Валюта", СтрокаКода.Код, Истина));
|
||||
ДескрипторКэша.Характеристики.Добавить(Новый Структура("Код, Значение, Ключевая", "Валюта", СтрокаКода.Код, Истина));
|
||||
|
||||
ПоставляемыеДанные.СохранитьПоставляемыеДанныеВКэш(Дескриптор, ИмяВременногоФайла);
|
||||
ПоставляемыеДанные.СохранитьПоставляемыеДанныеВКэш(ДескрипторКэша, ИмяВременногоФайла);
|
||||
УдалитьФайлы(ИмяВременногоФайла);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ОбластиДляОбновления = ПоставляемыеДанные.ОбластиТребующиеОбработки(
|
||||
Дескриптор.ИдентификаторФайла, "КурсыВалют");
|
||||
Дескриптор.FileGUID, "КурсыВалют");
|
||||
|
||||
РаспространитьКурсыПоОД(, ТаблицаКурсов, ОбластиДляОбновления,
|
||||
Дескриптор.ИдентификаторФайла, "КурсыВалют");
|
||||
РаспространитьКурсыПоОД(Неопределено, ТаблицаКурсов, ОбластиДляОбновления,
|
||||
Дескриптор.FileGUID, "КурсыВалют");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -403,16 +446,114 @@
|
||||
// ИдентификаторФайла - УникальныйИдентификатор файла обрабатываемых курсов.
|
||||
// КодОбработчика - Строка, код обработчика.
|
||||
//
|
||||
Процедура РаспространитьКурсыПоОД(Знач ДатаКурсов, Знач ТаблицаКурсов,
|
||||
Знач ОбластиДляОбновления, Знач ИдентификаторФайла, Знач КодОбработчика)
|
||||
Процедура РаспространитьКурсыПоОД(Знач ДатаКурсов, Знач ТаблицаКурсов, Знач ОбластиДляОбновления, Знач ИдентификаторФайла, Знач КодОбработчика)
|
||||
|
||||
ВалютыОбластей = Новый Соответствие();
|
||||
|
||||
ЗапросОбщий = Новый Запрос();
|
||||
ЗапросОбщий.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
|
||||
ЗапросОбщий.УстановитьПараметр("ПоставляемыеКурсы", ТаблицаКурсов);
|
||||
ЗапросОбщий.УстановитьПараметр("ТолькоЗаОдинДень", ДатаКурсов <> Неопределено);
|
||||
ЗапросОбщий.УстановитьПараметр("ДатаКурсов", ДатаКурсов);
|
||||
ЗапросОбщий.УстановитьПараметр("НачалоПоставкиКурсов", Дата("19800101"));
|
||||
|
||||
Для каждого ОбластьДанных Из ОбластиДляОбновления Цикл
|
||||
|
||||
Попытка
|
||||
РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных);
|
||||
Исключение
|
||||
РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось установить разделение сеанса %1 по причине:
|
||||
|%2'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
|
||||
Формат(ОбластьДанных, "ЧН=0; ЧГ=0"),
|
||||
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Распространение курсов валют по областям данных'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка,,,
|
||||
ТекстОшибки);
|
||||
|
||||
Продолжить;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
НачатьТранзакцию();
|
||||
|
||||
Попытка
|
||||
|
||||
РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных);
|
||||
ОбработатьКурсыОбластиВТранзакции(ЗапросОбщий, ВалютыОбластей, ТаблицаКурсов);
|
||||
РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
|
||||
ПоставляемыеДанные.ОбластьОбработана(ИдентификаторФайла, КодОбработчика, ОбластьДанных);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
|
||||
ОтменитьТранзакцию();
|
||||
РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
|
||||
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Распространение курсов валют по областям данных'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка,,,
|
||||
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СвойстваПоставляемойВалюты(ВалютыОбластей, КодВалюты, ТаблицаКурсов, ЗапросОбщий)
|
||||
|
||||
СвойстваВалюты = ВалютыОбластей.Получить(КодВалюты);
|
||||
|
||||
Если СвойстваВалюты <> Неопределено Тогда
|
||||
|
||||
Возврат СвойстваВалюты;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ПоставляемыеКурсы = ТаблицаКурсов.Скопировать(Новый Структура("Код", КодВалюты));
|
||||
|
||||
СвойстваВалюты = Новый Структура("Поставляемая, ПорядковыйНомер", Ложь, Неопределено);
|
||||
|
||||
Если ПоставляемыеКурсы.Количество() = 0 Тогда
|
||||
|
||||
ВалютыОбластей.Вставить(КодВалюты, СвойстваВалюты);
|
||||
Возврат СвойстваВалюты;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ПорядковыйНомер = Формат(ЗапросОбщий.МенеджерВременныхТаблиц.Таблицы.Количество() + 1, "ЧН=0; ЧГ=0");
|
||||
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| ПоставляемыеКурсы.Дата КАК Дата,
|
||||
| ПоставляемыеКурсы.Кратность КАК Кратность,
|
||||
| ПоставляемыеКурсы.Курс КАК Курс
|
||||
|ПОМЕСТИТЬ КурсыВалютыNNN
|
||||
|ИЗ
|
||||
| &ПоставляемыеКурсы КАК ПоставляемыеКурсы
|
||||
|ГДЕ
|
||||
| ПоставляемыеКурсы.Код = &КодВалюты
|
||||
| И ПоставляемыеКурсы.Дата > &НачалоПоставкиКурсов
|
||||
| И ВЫБОР
|
||||
| КОГДА &ТолькоЗаОдинДень
|
||||
| ТОГДА ПоставляемыеКурсы.Дата = &ДатаКурсов
|
||||
| ИНАЧЕ ИСТИНА
|
||||
| КОНЕЦ";
|
||||
|
||||
ЗапросОбщий.Текст = СтрЗаменить(ТекстЗапроса, "NNN", ПорядковыйНомер);
|
||||
ЗапросОбщий.Выполнить();
|
||||
|
||||
СвойстваВалюты.Поставляемая = Истина;
|
||||
СвойстваВалюты.ПорядковыйНомер = ПорядковыйНомер;
|
||||
|
||||
ВалютыОбластей.Вставить(КодВалюты, СвойстваВалюты);
|
||||
|
||||
Возврат СвойстваВалюты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбработатьКурсыОбластиВТранзакции(ЗапросОбщий, ВалютыОбластей, ТаблицаКурсов)
|
||||
|
||||
ЗапросВалюты = Новый Запрос;
|
||||
ЗапросВалюты.Текст =
|
||||
@@ -428,27 +569,101 @@
|
||||
|
||||
Пока ВыборкаВалюты.Следующий() Цикл
|
||||
|
||||
Курсы = ТаблицаКурсов.НайтиСтроки(Новый Структура("Код", ВыборкаВалюты.Код));
|
||||
Если Курсы.Количество() = 0 Тогда
|
||||
ЗапросОбщий.УстановитьПараметр("Валюта", ВыборкаВалюты.Ссылка);
|
||||
ЗапросОбщий.УстановитьПараметр("КодВалюты", ВыборкаВалюты.Код);
|
||||
|
||||
СвойстваВалюты = СвойстваПоставляемойВалюты(ВалютыОбластей, ВыборкаВалюты.Код, ТаблицаКурсов, ЗапросОбщий);
|
||||
|
||||
Если НЕ СвойстваВалюты.Поставляемая Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| Сравнение.Дата КАК Дата,
|
||||
| Сравнение.Кратность КАК Кратность,
|
||||
| Сравнение.Курс КАК Курс,
|
||||
| МАКСИМУМ(Сравнение.ВФайле) КАК ВФайле,
|
||||
| МАКСИМУМ(Сравнение.ВДанных) КАК ВДанных
|
||||
|ИЗ
|
||||
| (ВЫБРАТЬ
|
||||
| ПоставляемыеКурсы.Дата КАК Дата,
|
||||
| ПоставляемыеКурсы.Кратность КАК Кратность,
|
||||
| ПоставляемыеКурсы.Курс КАК Курс,
|
||||
| 1 КАК ВФайле,
|
||||
| 0 КАК ВДанных
|
||||
| ИЗ
|
||||
| КурсыВалютыNNN КАК ПоставляемыеКурсы
|
||||
|
|
||||
| ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
| ВЫБРАТЬ
|
||||
| КурсыВалют.Период,
|
||||
| КурсыВалют.Кратность,
|
||||
| КурсыВалют.Курс,
|
||||
| 0,
|
||||
| 1
|
||||
| ИЗ
|
||||
| РегистрСведений.КурсыВалют КАК КурсыВалют
|
||||
| ГДЕ
|
||||
| КурсыВалют.Валюта = &Валюта
|
||||
| И КурсыВалют.Период > &НачалоПоставкиКурсов
|
||||
| И ВЫБОР
|
||||
| КОГДА &ТолькоЗаОдинДень
|
||||
| ТОГДА КурсыВалют.Период = &ДатаКурсов
|
||||
| ИНАЧЕ ИСТИНА
|
||||
| КОНЕЦ) КАК Сравнение
|
||||
|
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| Сравнение.Дата,
|
||||
| Сравнение.Кратность,
|
||||
| Сравнение.Курс
|
||||
|
|
||||
|ИМЕЮЩИЕ
|
||||
| МАКСИМУМ(Сравнение.ВФайле) <> МАКСИМУМ(Сравнение.ВДанных)
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Дата,
|
||||
| ВДанных";
|
||||
|
||||
ЗапросОбщий.Текст = СтрЗаменить(ТекстЗапроса, "NNN", СвойстваВалюты.ПорядковыйНомер);
|
||||
|
||||
РезультатОбщий = ЗапросОбщий.Выполнить();
|
||||
ВыборкаОбщий = РезультатОбщий.Выбрать();
|
||||
|
||||
ТекДата = Неопределено;
|
||||
ПерваяИтерацияПоДате = Истина;
|
||||
|
||||
Пока ВыборкаОбщий.Следующий() Цикл
|
||||
|
||||
Если ТекДата <> ВыборкаОбщий.Дата Тогда
|
||||
ПерваяИтерацияПоДате = Истина;
|
||||
ТекДата = ВыборкаОбщий.Дата;
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ ПерваяИтерацияПоДате Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПерваяИтерацияПоДате = Ложь;
|
||||
|
||||
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
|
||||
НаборЗаписей.Отбор.Валюта.Установить(ВыборкаВалюты.Ссылка);
|
||||
Если ДатаКурсов <> Неопределено Тогда
|
||||
НаборЗаписей.Отбор.Период.Установить(ДатаКурсов);
|
||||
Иначе
|
||||
НаборЗаписей.Отбор.Период.Установить(ВыборкаОбщий.Дата);
|
||||
Если НЕ ЗапросОбщий.Параметры.ТолькоЗаОдинДень Тогда
|
||||
// Блокируем неэффективное обновление связанных валют.
|
||||
НаборЗаписей.ОбменДанными.Загрузка = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого СтрокаКурсов Из Курсы Цикл
|
||||
Если ВыборкаОбщий.ВФайле = 1 Тогда
|
||||
|
||||
Запись = НаборЗаписей.Добавить();
|
||||
Запись.Валюта = ВыборкаВалюты.Ссылка;
|
||||
Запись.Период = СтрокаКурсов.Дата;
|
||||
Запись.Кратность = СтрокаКурсов.Кратность;
|
||||
Запись.Курс = СтрокаКурсов.Курс;
|
||||
КонецЦикла;
|
||||
Запись.Период = ВыборкаОбщий.Дата;
|
||||
Запись.Кратность = ВыборкаОбщий.Кратность;
|
||||
Запись.Курс = ВыборкаОбщий.Курс;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// Проверяем дату запрета изменений.
|
||||
|
||||
@@ -465,72 +680,17 @@
|
||||
НаборЗаписей.Записать();
|
||||
Иначе
|
||||
Комментарий = НСтр("ru = 'Загрузка курса валюты %1 на дату %2 отменена из-за нарушения даты запрета изменений.'");
|
||||
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Комментарий, ВыборкаВалюты.Код, ДатаКурсов);
|
||||
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Комментарий, ВыборкаВалюты.Код, ВыборкаОбщий.Дата);
|
||||
ИмяСобытия = НСтр("ru = 'Поставляемые данные.Отмена загрузки курсов валюты'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка());
|
||||
ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Информация,, ВыборкаВалюты.Ссылка, Комментарий);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
// Проверка наличие установленного курса и кратности валюты на 1 января 1980 года.
|
||||
РаботаСКурсамиВалют.ПроверитьКорректностьКурсаНа01_01_1980(ВыборкаВалюты.Ссылка);
|
||||
|
||||
КонецЦикла;
|
||||
ПоставляемыеДанные.ОбластьОбработана(ИдентификаторФайла, КодОбработчика, ОбластьДанных);
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
|
||||
ОтменитьТранзакцию();
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Распространение курсов валют по областям данных'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка,,,
|
||||
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Вызывается после загрузки данных в область или при изменении способа установки курса валюты.
|
||||
// Копирует курсы одной валюты за все даты из
|
||||
// неразделенного xml файла в разделенный регистр.
|
||||
//
|
||||
// Параметры:
|
||||
// КодВалюты - Строка
|
||||
//
|
||||
Процедура КопироватьКурсыВалюты(Знач КодВалюты) Экспорт
|
||||
|
||||
ВалютаСсылка = Справочники.Валюты.НайтиПоКоду(КодВалюты);
|
||||
Если ВалютаСсылка.Пустая() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ТипДанныхКурса = ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/SuppliedData/CurrencyRates", "Rate");
|
||||
|
||||
Фильтр = Новый Массив;
|
||||
Фильтр.Добавить(Новый Структура("Код, Значение", "Валюта", КодВалюты));
|
||||
Курсы = ПоставляемыеДанные.СсылкиПоставляемыхДанныхИзКэша("КурсыОднойВалюты", Фильтр);
|
||||
Если Курсы.Количество() = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПутьКФайлу = ПолучитьИмяВременногоФайла();
|
||||
ПоставляемыеДанные.ПоставляемыеДанныеИзКэша(Курсы[0]).Записать(ПутьКФайлу);
|
||||
ТаблицаКурсов = ПрочитатьТаблицуКурсов(ПутьКФайлу, Истина);
|
||||
УдалитьФайлы(ПутьКФайлу);
|
||||
|
||||
ТаблицаКурсов.Колонки.Дата.Имя = "Период";
|
||||
ТаблицаКурсов.Колонки.Добавить("Валюта");
|
||||
ТаблицаКурсов.ЗаполнитьЗначения(ВалютаСсылка, "Валюта");
|
||||
|
||||
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
|
||||
НаборЗаписей.Отбор.Валюта.Установить(ВалютаСсылка);
|
||||
НаборЗаписей.Загрузить(ТаблицаКурсов);
|
||||
НаборЗаписей.ОбменДанными.Загрузка = Истина;
|
||||
|
||||
НаборЗаписей.Записать();
|
||||
|
||||
// Проверка наличие установленного курса и кратности валюты на 1 января 1980 года.
|
||||
РаботаСКурсамиВалют.ПроверитьКорректностьКурсаНа01_01_1980(ВалютаСсылка);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -1035,7 +1035,8 @@
|
||||
ПКСДляТЧ = ТЧИСвойства.Свойства;
|
||||
ИмяТЧПриемника = ТЧИСвойства.ТЧФормата;
|
||||
ТЧПриемника = Неопределено;
|
||||
Если Не Приемник.Свойство(ИмяТЧПриемника, ТЧПриемника) Тогда
|
||||
Если Не ЗначениеЗаполнено(ИмяТЧПриемника)
|
||||
Или Не Приемник.Свойство(ИмяТЧПриемника, ТЧПриемника) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "2.4.6.73";
|
||||
Описание.Версия = "2.4.6.78";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
|
||||
@@ -1149,9 +1149,13 @@
|
||||
// Продолжение процедуры ПроверитьПодписи.
|
||||
Процедура ПроверитьПодписиПослеСозданияМенеджераКриптографии(МенеджерКриптографии, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если ТипЗнч(МенеджерКриптографии) <> Тип("МенеджерКриптографии") Тогда
|
||||
Если ТипЗнч(МенеджерКриптографии) <> Тип("МенеджерКриптографии")
|
||||
И МенеджерКриптографии <> "СервисКриптографии" Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Если МенеджерКриптографии = "СервисКриптографии" Тогда
|
||||
МенеджерКриптографии = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры.Вставить("Индекс", -1);
|
||||
ДополнительныеПараметры.Вставить("МенеджерКриптографии", МенеджерКриптографии);
|
||||
@@ -1177,15 +1181,28 @@
|
||||
Коллекция = ДополнительныеПараметры.ВыделенныеСтроки;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПроверятьЭлектронныеПодписиНаСервере Тогда
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ЭлектроннаяПодписьВМоделиСервиса") Тогда
|
||||
МодульЭлектроннаяПодписьВМоделиСервисаКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьВМоделиСервисаКлиентСервер");
|
||||
ИспользоватьЭлектроннуюПодписьВМоделиСервиса = МодульЭлектроннаяПодписьВМоделиСервисаКлиентСервер.ИспользованиеВозможно();
|
||||
Иначе
|
||||
ИспользоватьЭлектроннуюПодписьВМоделиСервиса = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ИспользоватьЭлектроннуюПодписьВМоделиСервиса
|
||||
Или Не ПроверятьЭлектронныеПодписиНаСервере Тогда
|
||||
|
||||
МодульЭлектроннаяПодписьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиент");
|
||||
ДополнительныеПараметры.Вставить("Данные", Данные);
|
||||
ДополнительныеПараметры.Вставить("Коллекция", Коллекция);
|
||||
ДополнительныеПараметры.Вставить("МодульЭлектроннаяПодписьКлиент", МодульЭлектроннаяПодписьКлиент);
|
||||
Если ИспользоватьЭлектроннуюПодписьВМоделиСервиса Тогда
|
||||
ПроверитьПодписиПослеСозданияМенеджераКриптографии("СервисКриптографии", ДополнительныеПараметры);
|
||||
Иначе
|
||||
МодульЭлектроннаяПодписьКлиент.СоздатьМенеджерКриптографии(
|
||||
Новый ОписаниеОповещения("ПроверитьПодписиПослеСозданияМенеджераКриптографии",
|
||||
ЭтотОбъект, ДополнительныеПараметры),
|
||||
"ПроверкаПодписи");
|
||||
КонецЕсли;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -269,17 +269,6 @@
|
||||
|
||||
ПроверитьПараметрОбъект(Объект, "ЭлектроннаяПодпись.ОбновитьПодпись", Истина);
|
||||
|
||||
Если ТипЗнч(Объект) = Тип("СправочникСсылка." + "ВерсииФайлов")
|
||||
Или ТипЗнч(Объект) = Тип("СправочникОбъект." + "ВерсииФайлов") Тогда
|
||||
|
||||
МассивТипов = Новый Массив;
|
||||
МассивТипов.Добавить(Тип("СправочникСсылка." + "Файлы"));
|
||||
МассивТипов.Добавить(Тип("СправочникОбъект." + "Файлы"));
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("ЭлектроннаяПодпись.УдалитьПодпись",
|
||||
"Объект", Объект, МассивТипов);
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(СвойстваПодписи) = Тип("Строка") Тогда
|
||||
СвойстваПодписи = ПолучитьИзВременногоХранилища(СвойстваПодписи);
|
||||
КонецЕсли;
|
||||
@@ -400,10 +389,6 @@
|
||||
|
||||
ПроверитьПараметрОбъект(Объект, "ЭлектроннаяПодпись.СертификатыШифрования", Истина);
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("ЭлектроннаяПодпись.СертификатыШифрования", "Объект", Объект,
|
||||
Новый ОписаниеТипов(Метаданные.РегистрыСведений.СертификатыШифрования.Измерения.ЗашифрованныйОбъект.Тип,,
|
||||
"СправочникСсылка.ВерсииФайлов"));
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
@@ -1480,6 +1465,10 @@
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Объект", Объект,
|
||||
ЭлектроннаяПодписьСлужебныйПовтИсп.ТипыВладельцев(ТолькоСсылки));
|
||||
|
||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект,,
|
||||
"РаботаСФайламиСлужебныйВызовСервера.ПеренестиЭлектронныеПодписиИСертификатыШифрованияВРегистрыСведений",
|
||||
ИмяПроцедуры);
|
||||
|
||||
@@ -4614,8 +4614,8 @@
|
||||
МодульСервисКриптографииКлиент.ПроверитьПодпись(Новый ОписаниеОповещения(
|
||||
"ПроверитьПодписьНаКлиентеПослеПроверкиПодписи", ЭтотОбъект, Контекст,
|
||||
"ПроверитьПодписьНаКлиентеПослеОшибкиПроверкиПодписи", ЭтотОбъект),
|
||||
Контекст.ИсходныеДанные,
|
||||
Контекст.ДанныеПодписи);
|
||||
Контекст.ДанныеПодписи,
|
||||
Контекст.ИсходныеДанные);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -92,10 +92,16 @@
|
||||
Результат = Новый Соответствие;
|
||||
Типы = Метаданные.ОпределяемыеТипы.ПодписанныйОбъект.Тип.Типы();
|
||||
|
||||
ИсключаемыеТипы = Новый Соответствие;
|
||||
ИсключаемыеТипы.Вставить(Тип("Неопределено"), Истина);
|
||||
ИсключаемыеТипы.Вставить(Тип("Строка"), Истина);
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
|
||||
ИсключаемыеТипы.Вставить(Тип("СправочникСсылка." + "ВерсииФайлов"), Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Тип Из Типы Цикл
|
||||
Если Тип = Тип("Неопределено")
|
||||
Или Тип = Тип("Строка")
|
||||
Или Тип = Тип("СправочникСсылка." + "ВерсииФайлов") Тогда
|
||||
Если ИсключаемыеТипы.Получить(Тип) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Результат.Вставить(Тип, Истина);
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="e5db97a5-2080-40a1-a62b-2922d1d0f571">
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="9f677d41-3ce4-4e28-90e8-b09d3f21aa0e">
|
||||
<name>БиблиотекаСтандартныхПодсистем</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Библиотека стандартных подсистем, редакция 2.4</value>
|
||||
</synonym>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="c9766a33-70e1-41e8-932e-c28e9e69b9b9"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="63536cb6-bdbc-4c15-b6cd-9e9a30c3b90d"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="bcb40b14-c202-4cb0-a909-4546ee2e464f"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="4b477dc4-12bb-4353-b861-5470e05a2535"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="6c14d264-ff62-4d1f-b2b4-df3d85dff9da"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="94d0ee85-4924-40e2-9b38-f5beabfda0af"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="fd0e2f88-827b-461a-8a2f-79d14bc52c93"/>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="7d7acd4f-d319-42ce-96f2-caef41d7fea4"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="342cd250-4577-482e-8f87-9d36bb227244"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="6db91263-f62a-42e9-8093-b16a4862d2b1"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="8e59f9be-3dc3-4ed7-b5d2-64c6f79ea415"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="7f5f10b4-4ed0-4ab1-9a27-f2c50d841417"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="3a6d3110-50bb-473e-a1f9-41235abb9dc9"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="f710709d-6711-4c9a-b2fd-32e24dd11f6d"/>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<scriptVariant>Russian</scriptVariant>
|
||||
@@ -19,7 +19,7 @@
|
||||
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
|
||||
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
|
||||
<vendor>Фирма "1С"</vendor>
|
||||
<version>2.4.6.73</version>
|
||||
<version>2.4.6.78</version>
|
||||
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<usedMobileApplicationFunctionalities>
|
||||
|
||||
@@ -1 +1 @@
|
||||
{6,1,1,1427f314-29c8-4f24-9c72-267183dde1f3,1,c63b3785-e9d0-402a-b688-dee236bd1e53,"2.4.6.73","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5576,1,0,e5db97a5-2080-40a1-a62b-2922d1d0f571,e5db97a5-2080-40a1-a62b-2922d1d0f571,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,060b6f18-538c-4ea1-9748-00efe0b1ab57,060b6f18-538c-4ea1-9748-00efe0b1ab57,1,0,307b6821-fd82-4a1c-9fdb-a26293d4f713,307b6821-fd82-Line truncated
|
||||
{6,1,1,282e61cb-adaf-45bc-ac13-cd3cd390ae81,1,279cc195-ef60-443f-ae57-71cf71ee891c,"2.4.6.78","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5576,1,0,9f677d41-3ce4-4e28-90e8-b09d3f21aa0e,9f677d41-3ce4-4e28-90e8-b09d3f21aa0e,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,060b6f18-538c-4ea1-9748-00efe0b1ab57,060b6f18-538c-4ea1-9748-00efe0b1ab57,1,0,307b6821-fd82-4a1c-9fdb-a26293d4f713,307b6821-fd82-Line truncated
|
||||
@@ -494,6 +494,12 @@
|
||||
СписокПолей.Добавить("КоррСчет");
|
||||
СписокПолей.Добавить("СВИФТБИК");
|
||||
СписокПолей.Добавить("ИНН");
|
||||
СписокПолей.Добавить("ОГРН");
|
||||
СписокПолей.Добавить("Адрес");
|
||||
СписокПолей.Добавить("Телефоны");
|
||||
СписокПолей.Добавить("МеждународноеНаименование");
|
||||
СписокПолей.Добавить("ГородМеждународный");
|
||||
СписокПолей.Добавить("АдресМеждународный");
|
||||
|
||||
КоллекцияЗначений = СтрРазделить(Строка, Символы.Таб, Истина);
|
||||
Для Индекс = 0 По СписокПолей.Количество() - 1 Цикл;
|
||||
@@ -510,8 +516,6 @@
|
||||
|
||||
Результат.ТипПункта = ОпределитьТипГородаПоКоду(Результат.ТипПункта);
|
||||
Результат.Вставить("Город", СокрЛП(Результат.ТипПункта + " " + Результат.ИмяНаселенногоПункта));
|
||||
Результат.Вставить("Телефоны", "");
|
||||
Результат.Вставить("Адрес", "");
|
||||
|
||||
КодРегиона = Сред(Результат.БИК, 3, 2);
|
||||
Регион = Регионы[КодРегиона];
|
||||
@@ -789,51 +793,14 @@
|
||||
КлассификаторБанковОбъект.Код = СтруктураБанк.БИК;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтруктураБанк.Свойство("СВИФТБИК") Тогда
|
||||
Если КлассификаторБанковОбъект.СВИФТБИК <> СтруктураБанк.СВИФТБИК Тогда
|
||||
Если Не ПустаяСтрока(СтруктураБанк.СВИФТБИК) Тогда
|
||||
КлассификаторБанковОбъект.СВИФТБИК = СтруктураБанк.СВИФТБИК;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Для Каждого Реквизит Из КлассификаторБанковОбъект.Метаданные().Реквизиты Цикл
|
||||
ИмяРеквизита = Реквизит.Имя;
|
||||
Если СтруктураБанк.Свойство(ИмяРеквизита) И ТипЗнч(КлассификаторБанковОбъект[ИмяРеквизита]) = Тип("Строка") Тогда
|
||||
ОбновитьЗначениеРеквизита(КлассификаторБанковОбъект, ИмяРеквизита, СтруктураБанк[ИмяРеквизита]);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если СтруктураБанк.Свойство("ИНН") Тогда
|
||||
Если КлассификаторБанковОбъект.ИНН <> СтруктураБанк.ИНН Тогда
|
||||
Если Не ПустаяСтрока(СтруктураБанк.ИНН) Тогда
|
||||
КлассификаторБанковОбъект.ИНН = СтруктураБанк.ИНН;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если КлассификаторБанковОбъект.Наименование <> СтруктураБанк.Наименование Тогда
|
||||
Если Не ПустаяСтрока(СтруктураБанк.Наименование) Тогда
|
||||
КлассификаторБанковОбъект.Наименование = СтруктураБанк.Наименование;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если КлассификаторБанковОбъект.КоррСчет <> СтруктураБанк.КоррСчет Тогда
|
||||
Если Не ПустаяСтрока(СтруктураБанк.КоррСчет) Тогда
|
||||
КлассификаторБанковОбъект.КоррСчет = СтруктураБанк.КоррСчет;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если КлассификаторБанковОбъект.Город <> СтруктураБанк.Город Тогда
|
||||
Если Не ПустаяСтрока(СтруктураБанк.Город) Тогда
|
||||
КлассификаторБанковОбъект.Город = СтруктураБанк.Город;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если КлассификаторБанковОбъект.Адрес <> СтруктураБанк.Адрес Тогда
|
||||
Если Не ПустаяСтрока(СтруктураБанк.Адрес) Тогда
|
||||
КлассификаторБанковОбъект.Адрес = СтруктураБанк.Адрес;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если КлассификаторБанковОбъект.Телефоны <> СтруктураБанк.Телефоны Тогда
|
||||
Если Не ПустаяСтрока(СтруктураБанк.Телефоны) Тогда
|
||||
КлассификаторБанковОбъект.Телефоны = СтруктураБанк.Телефоны;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ОбновитьЗначениеРеквизита(КлассификаторБанковОбъект, "Наименование", СтруктураБанк.Наименование);
|
||||
|
||||
Если Не ПустаяСтрока(Регион) Тогда
|
||||
Если КлассификаторБанковОбъект.Родитель <> Регион.Ссылка Тогда
|
||||
@@ -841,6 +808,13 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Страна = "РФ";
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
|
||||
МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами");
|
||||
Страна = МодульРаботаСАдресами.ОсновнаяСтрана();
|
||||
КонецЕсли;
|
||||
ОбновитьЗначениеРеквизита(КлассификаторБанковОбъект, "Страна", Страна);
|
||||
|
||||
Если КлассификаторБанковОбъект.Модифицированность() Тогда
|
||||
ФлагОбновленный = Истина;
|
||||
КлассификаторБанковОбъект.Записать();
|
||||
@@ -857,6 +831,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбновитьЗначениеРеквизита(СправочникОбъект, ИмяРеквизита, Значение)
|
||||
Если СправочникОбъект[ИмяРеквизита] <> Значение Тогда
|
||||
Если ЗначениеЗаполнено(Значение) Тогда
|
||||
СправочникОбъект[ИмяРеквизита] = Значение;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Прочие процедуры и функции
|
||||
|
||||
|
||||
@@ -267,11 +267,8 @@
|
||||
|
||||
Процедура ОбработатьНаборЗаписейСОтборомСубъекта(НаборЗаписейРегистра, ОбъектМетаданных, ПараметрыОтбора)
|
||||
|
||||
МетаданныеРегистра = НаборЗаписейРегистра.Метаданные();
|
||||
|
||||
Субъекты = ПараметрыОтбора.Субъекты;
|
||||
ТипСубъектов = ПараметрыОтбора.ТипСубъектов;
|
||||
ИменаИзмеренийСТипомСубъекта = ЗащитаПерсональныхДанных.ИменаИзмеренийРегистраПоТипу(МетаданныеРегистра, ТипСубъектов);
|
||||
ИменаИзмеренийСТипомСубъекта = ЗащитаПерсональныхДанныхПовтИсп.ИменаРеквизитовИсточникаСодержащихСубъект(ОбъектМетаданных.ПолноеИмя);
|
||||
|
||||
Для Каждого ИмяИзмерения Из ИменаИзмеренийСТипомСубъекта Цикл
|
||||
|
||||
@@ -296,8 +293,7 @@
|
||||
МетаданныеРегистра = НаборЗаписейРегистра.Метаданные();
|
||||
|
||||
Субъекты = ПараметрыОтбора.Субъекты;
|
||||
ТипСубъектов = ПараметрыОтбора.ТипСубъектов;
|
||||
ИменаИзмеренийСТипомСубъекта = ЗащитаПерсональныхДанных.ИменаИзмеренийРегистраПоТипу(МетаданныеРегистра, ТипСубъектов);
|
||||
ИменаИзмеренийСТипомСубъекта = ЗащитаПерсональныхДанныхПовтИсп.ИменаРеквизитовИсточникаСодержащихСубъект(ОбъектМетаданных.ПолноеИмя);
|
||||
ОбрабатыватьЗаписьПриНаличииСубъекта = ЗначениеЗаполнено(ИменаИзмеренийСТипомСубъекта);
|
||||
|
||||
КонецЕсли;
|
||||
@@ -375,12 +371,9 @@
|
||||
Процедура ОбработатьОбъектМетаданных(ОбъектМетаданных, ПараметрыОтбора)
|
||||
|
||||
ОбработкаПорциями = Ложь;
|
||||
Ссылка = "";
|
||||
|
||||
Субъекты = ПараметрыОтбора.Субъекты;
|
||||
ТипСубъектов = ПараметрыОтбора.ТипСубъектов;
|
||||
ИменаРеквизитовСТипомСубъекта = "";
|
||||
РеквизитыПроверены = Ложь;
|
||||
ИменаРеквизитовСТипомСубъекта = Новый Массив;
|
||||
|
||||
ВключеноВерсионирование = Ложь;
|
||||
|
||||
@@ -412,7 +405,7 @@
|
||||
Иначе
|
||||
|
||||
ОбработкаПорциями = Истина;
|
||||
Результат = ДанныеОбъектаМетаданных(ОбъектМетаданных, Ссылка);
|
||||
Результат = ДанныеОбъектаМетаданных(ОбъектМетаданных);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -426,31 +419,71 @@
|
||||
|
||||
Обработано = Истина;
|
||||
ВыполнитьЗаписьОбъекта = Ложь;
|
||||
|
||||
ЕстьСубъектыВТЧастях = Ложь;
|
||||
НетСубъектаВРеквизитах = Истина;
|
||||
|
||||
ИменаРеквизитовТабличныхЧастей = Новый Соответствие;
|
||||
|
||||
ОбрабатываемыйОбъект = СтрокаРезультата.Ссылка.ПолучитьОбъект();
|
||||
|
||||
Если ЗначениеЗаполнено(Субъекты) И Не РеквизитыПроверены Тогда
|
||||
ИменаРеквизитовСТипомСубъекта = ОбщегоНазначения.ИменаРеквизитовПоТипу(СтрокаРезультата.Ссылка, ТипСубъектов);
|
||||
РеквизитыПроверены = Истина;
|
||||
Если ЗначениеЗаполнено(Субъекты) Тогда
|
||||
|
||||
НайденСубъектВРеквизитах = Ложь;
|
||||
ИменаРеквизитовСодержащихСубъект = ЗащитаПерсональныхДанныхПовтИсп.ИменаРеквизитовИсточникаСодержащихСубъект(ОбъектМетаданных.ПолноеИмя);
|
||||
|
||||
Для Каждого ИмяРеквизита Из ИменаРеквизитовСодержащихСубъект Цикл
|
||||
|
||||
ЧастиИмени = СтрРазделить(ИмяРеквизита, ".", Ложь);
|
||||
Если ЧастиИмени.Количество() > 1 Тогда
|
||||
|
||||
ИмяТЧасти = ЧастиИмени[0];
|
||||
ИмяРеквизитаТЧ = ЧастиИмени[1];
|
||||
ИменаРеквизитовТЧасти = ИменаРеквизитовТабличныхЧастей.Получить(ИмяТЧасти);
|
||||
|
||||
Если ИменаРеквизитовТЧасти = Неопределено Тогда
|
||||
ИменаРеквизитовТЧасти = Новый Массив;
|
||||
КонецЕсли;
|
||||
|
||||
ИменаРеквизитовТЧасти.Добавить(ИмяРеквизитаТЧ);
|
||||
ИменаРеквизитовТабличныхЧастей.Вставить(ИмяТЧасти, ИменаРеквизитовТЧасти);
|
||||
|
||||
Иначе
|
||||
|
||||
Если Не НайденСубъектВРеквизитах Тогда
|
||||
НайденСубъектВРеквизитах = (Субъекты.Найти(ОбрабатываемыйОбъект[ИмяРеквизита]) <> Неопределено);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
НетСубъектаВРеквизитах = Не НайденСубъектВРеквизитах;
|
||||
ЕстьСубъектыВТЧастях = ИменаРеквизитовТабличныхЧастей.Количество() > 0;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ГруппаСвойствОбъекта Из ОбъектМетаданных.Строки Цикл
|
||||
|
||||
Если ГруппаСвойствОбъекта.Пометка = 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ОбрабатываемоеСвойство Из ГруппаСвойствОбъекта.Строки Цикл
|
||||
|
||||
Если ОбрабатываемоеСвойство.Пометка = 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если ГруппаСвойствОбъекта.Тип = "ТабличнаяЧасть" Тогда
|
||||
|
||||
ОбрабатыватьТЧПриНаличииСубъекта = Ложь;
|
||||
ОбрабатываемыеСвойства = ОбрабатываемыйОбъект[ГруппаСвойствОбъекта.Имя];
|
||||
|
||||
Если ЗначениеЗаполнено(Субъекты) И ПустаяСтрока(ИменаРеквизитовСТипомСубъекта) Тогда
|
||||
ОбрабатыватьТЧПриНаличииСубъекта = Ложь;
|
||||
ИменаРеквизитовТЧСТипомСубъекта = ИменаРеквизитовТабличныхЧастей.Получить(ГруппаСвойствОбъекта.Имя);
|
||||
|
||||
Если ЗначениеЗаполнено(Субъекты) И ЕстьСубъектыВТЧастях Тогда
|
||||
|
||||
ИменаРеквизитовТЧСТипомСубъекта = ЗащитаПерсональныхДанных.ИменаРеквизитовТЧОбъектаПоТипу(ОбрабатываемыйОбъект.Метаданные(), ГруппаСвойствОбъекта.Имя, ТипСубъектов);
|
||||
ОбрабатыватьТЧПриНаличииСубъекта = ЗначениеЗаполнено(ИменаРеквизитовТЧСТипомСубъекта);
|
||||
|
||||
КонецЕсли;
|
||||
@@ -463,18 +496,20 @@
|
||||
|
||||
СубъектВСтроке = Ложь;
|
||||
Для Каждого ИмяРеквизита Из ИменаРеквизитовТЧСТипомСубъекта Цикл
|
||||
|
||||
ТекущийСубъект = СтрокаТабличнойЧасти[ИмяРеквизита];
|
||||
Если Субъекты.Найти(ТекущийСубъект) <> Неопределено Тогда
|
||||
СубъектВСтроке = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если Не СубъектВСтроке Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
ИначеЕсли ЕстьСубъектыВТЧастях Или НетСубъектаВРеквизитах Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -491,6 +526,15 @@
|
||||
КонецЦикла;
|
||||
|
||||
Иначе
|
||||
|
||||
Если ЗначениеЗаполнено(Субъекты)
|
||||
И НетСубъектаВРеквизитах
|
||||
И Не ЕстьСубъектыВТЧастях Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Значение = ОбрабатываемыйОбъект[ОбрабатываемоеСвойство.Имя];
|
||||
ОбработатьСвойство(Значение, ОбрабатываемоеСвойство, Обработано);
|
||||
Если Обработано Тогда
|
||||
@@ -498,9 +542,11 @@
|
||||
КонецЕсли;
|
||||
|
||||
ВыполнитьЗаписьОбъекта = ВыполнитьЗаписьОбъекта Или Обработано;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ВыполнитьЗаписьОбъекта Тогда
|
||||
@@ -529,7 +575,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ДанныеОбъектаМетаданных(ОбъектМетаданных, ТекущаяСсылка)
|
||||
Функция ДанныеОбъектаМетаданных(ОбъектМетаданных, ТекущаяСсылка = "")
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("Ссылка", ТекущаяСсылка);
|
||||
@@ -817,7 +863,7 @@
|
||||
// Отметка сведений о персональных данных.
|
||||
Если ВключаяПерсональные Тогда
|
||||
|
||||
ТаблицаСведений = ЗащитаПерсональныхДанных.СведенияОПерсональныхДанных();
|
||||
ТаблицаСведений = ЗащитаПерсональныхДанныхПовтИсп.СведенияОПерсональныхДанных();
|
||||
|
||||
Для Каждого СтрокаСведения Из ТаблицаСведений Цикл
|
||||
|
||||
|
||||
@@ -2100,6 +2100,93 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>DataAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExclusiveMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ActiveUsers</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>EventLog</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThinClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>WebClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>SaveUserData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Output</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.ОценкаПроизводительностиПериодЗаписи</name>
|
||||
<right>
|
||||
@@ -2986,93 +3073,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>DataAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExclusiveMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ActiveUsers</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>EventLog</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThinClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>WebClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>SaveUserData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Output</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ДампыПлатформы</name>
|
||||
<right>
|
||||
|
||||
@@ -4005,6 +4005,45 @@
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtDataProcessors</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtReports</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.ОценкаПроизводительностиПериодЗаписи</name>
|
||||
<right>
|
||||
@@ -5609,45 +5648,6 @@
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtDataProcessors</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtReports</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ДампыПлатформы</name>
|
||||
<right>
|
||||
|
||||
@@ -3,13 +3,6 @@
|
||||
<setForNewObjects>false</setForNewObjects>
|
||||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||||
<object>
|
||||
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -41,6 +34,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>DataProcessor.ЖурналРегистрации</name>
|
||||
<right>
|
||||
|
||||
Reference in new issue
Block a user