2_4_6_117
This commit is contained in:
1 parent
728456a160
commit
a641368f32
39 files changed
+2029
-658
No files matched your search
@@ -12,13 +12,19 @@
|
||||
| Справочник.ПравилаПроверкиУчета КАК ПравилаПроверкиУчета
|
||||
|ГДЕ
|
||||
| ПравилаПроверкиУчета.Использование
|
||||
| И ПравилаПроверкиУчета.Идентификатор В(&МассивИдентификаторов)");
|
||||
| И ПравилаПроверкиУчета.Идентификатор В(&ИдентификаторыПроверок)");
|
||||
|
||||
МассивИдентификаторов = Новый Массив;
|
||||
МассивИдентификаторов.Добавить("СтандартныеПодсистемы.ПроверкаНезаполненныхОбязательныхРеквизитов");
|
||||
МассивИдентификаторов.Добавить("СтандартныеПодсистемы.ПроверкаСсылочнойЦелостности");
|
||||
ПроверкиВеденияУчета = КонтрольВеденияУчетаСлужебныйПовтИсп.ПроверкиВеденияУчета().Проверки;
|
||||
ПараметрыОтбора = Новый Структура;
|
||||
ПараметрыОтбора.Вставить("Отключена", Истина);
|
||||
ОтключенныеПроверки = ПроверкиВеденияУчета.НайтиСтроки(ПараметрыОтбора);
|
||||
|
||||
Запрос.УстановитьПараметр("МассивИдентификаторов", МассивИдентификаторов);
|
||||
ИдентификаторыПроверок = Новый Массив;
|
||||
Для Каждого ОтключеннаяПроверка Из ОтключенныеПроверки Цикл
|
||||
ИдентификаторыПроверок.Добавить(ОтключеннаяПроверка.Идентификатор);
|
||||
КонецЦикла;
|
||||
|
||||
Запрос.УстановитьПараметр("ИдентификаторыПроверок", ИдентификаторыПроверок);
|
||||
|
||||
Ссылки = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если Объект.Предопределенный Тогда
|
||||
ТолькоПросмотр = Истина;
|
||||
Элементы.ГруппаНаименование.ТолькоПросмотр = Истина;
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
ИмяПоляСПолнымПутем = "ПолныйПутьLinux";
|
||||
КонецЕсли;
|
||||
|
||||
ИмяКаталогаТестовое = ПолныйПутьТома + "ПроверкаДоступа\";
|
||||
ИмяКаталогаТестовое = ПолныйПутьТома + "ПроверкаДоступа" + ПолучитьРазделительПути();
|
||||
|
||||
Попытка
|
||||
СоздатьКаталог(ИмяКаталогаТестовое);
|
||||
|
||||
@@ -3,24 +3,16 @@
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
|
||||
|
||||
Если ПараметрКоманды.Количество() = 1 Тогда
|
||||
ПараметрыВопроса = ЗащитаПерсональныхДанныхВызовСервера.ПараметрыВопросаПодтвержденияСкрытия(ПараметрКоманды);
|
||||
|
||||
Субъекты = ПараметрыВопроса.Субъекты;
|
||||
Если Субъекты.Количество() > 0 Тогда
|
||||
|
||||
ТекстВопроса = НСтр("ru = 'Персональные данные субъекта «%1» будут скрыты.
|
||||
|
|
||||
|Продолжить?'");
|
||||
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстВопроса, ПараметрКоманды[0]);
|
||||
|
||||
Иначе
|
||||
|
||||
ТекстВопроса = НСтр("ru = 'Персональные данные субъектов будут скрыты.
|
||||
|
|
||||
|Продолжить?'");
|
||||
Оповещение = Новый ОписаниеОповещения("ОбработкаКомандыЗавершение", ЭтотОбъект, Субъекты);
|
||||
ПоказатьВопрос(Оповещение, ПараметрыВопроса.ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ОбработкаКомандыЗавершение", ЭтотОбъект, ПараметрКоманды);
|
||||
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -32,56 +24,12 @@
|
||||
|
||||
Если Результат = КодВозвратаДиалога.Да Тогда
|
||||
|
||||
СкрытьПерсональныеДанныеСубъектов(Субъекты);
|
||||
ЗащитаПерсональныхДанныхВызовСервера.СкрытьПерсональныеДанныеСубъектов(Субъекты, Истина);
|
||||
Оповестить("СкрытыПерсональныеДанные");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура СкрытьПерсональныеДанныеСубъектов(Субъекты)
|
||||
|
||||
ОтбираемыеСубъекты = Новый Массив;
|
||||
НастройкиСубъектов = ЗащитаПерсональныхДанных.ПрочитатьНастройкиСкрытияСубъектов(Субъекты);
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиСубъектов) Тогда
|
||||
|
||||
Для Каждого НастройкиСкрытия Из НастройкиСубъектов Цикл
|
||||
|
||||
Субъект = НастройкиСкрытия.Ключ;
|
||||
Настройки = НастройкиСкрытия.Значение;
|
||||
|
||||
Если Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеОтменено
|
||||
Или Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеВыполнено Тогда
|
||||
|
||||
Если Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеОтменено Тогда
|
||||
ТекстПричины = НСтр("ru = 'Скрытие ранее отменено по причине: %1.'");
|
||||
ТекстПричины = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстПричины, Настройки.ПричинаОтменыСкрытия);
|
||||
Иначе
|
||||
ТекстПричины = НСтр("ru = 'Скрытие уже выполнено.'");
|
||||
КонецЕсли;
|
||||
|
||||
ТекстСообщения = НСтр("ru = 'Персональные данные субъекта «%1» не могут быть скрыты.
|
||||
|%2'");
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Субъект, ТекстПричины);
|
||||
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
|
||||
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ОтбираемыеСубъекты.Добавить(Субъект);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Иначе
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОтбираемыеСубъекты, Субъекты);
|
||||
КонецЕсли;
|
||||
|
||||
ЗащитаПерсональныхДанных.СкрытьПерсональныеДанныеСубъектов(ОтбираемыеСубъекты, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -3126,6 +3126,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>СписокСостоянияУзловИмяПланаОбмена</name>
|
||||
<id>89</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Вид обмена</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -3165,19 +3169,19 @@
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>СписокСостоянияУзловУзелИнформационнойБазы</name>
|
||||
<id>10</id>
|
||||
<name>СписокСостоянияУзловНаименованиеКорреспондента</name>
|
||||
<id>558</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>СписокСостоянияУзлов.УзелИнформационнойБазы</segments>
|
||||
<segments>СписокСостоянияУзлов.НаименованиеКорреспондента</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>СписокСостоянияУзловУзелИнформационнойБазыExtendedTooltip</name>
|
||||
<id>502</id>
|
||||
<name>СписокСостоянияУзловНаименованиеКорреспондентаРасширеннаяПодсказка</name>
|
||||
<id>560</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -3186,8 +3190,8 @@
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокСостоянияУзловУзелИнформационнойБазыКонтекстноеМеню</name>
|
||||
<id>11</id>
|
||||
<name>СписокСостоянияУзловНаименованиеКорреспондентаКонтекстноеМеню</name>
|
||||
<id>559</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
@@ -4558,6 +4562,24 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>НаименованиеКорреспондента</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Информационная база</value>
|
||||
</title>
|
||||
<id>16</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>НастраиваемыеСинхронизации</name>
|
||||
|
||||
@@ -4462,8 +4462,10 @@
|
||||
ЗаписиДомов = РезультатЗапроса.Выгрузить();
|
||||
КорректныеЗаписи = Новый Массив;
|
||||
|
||||
УлицаНайдена = Ложь;
|
||||
ВариантАдреса = Новый Структура;
|
||||
УлицаНайдена = Ложь;
|
||||
ВариантАдреса = Новый Структура;
|
||||
ПроверитьИсторию = Ложь;
|
||||
|
||||
Для Каждого Запись Из ЗаписиДомов Цикл;
|
||||
ЗаполнитьПочтовыйИндексИКодКЛАДРПоИерархииФИАС(ВариантАдреса, Запись);
|
||||
|
||||
@@ -4492,6 +4494,8 @@
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "НаселПункт",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Населенный пункт ""%1"" отсутствует в адресном классификаторе'"),
|
||||
НаселенныйПункт.Наименование + " " + НаселенныйПункт.Сокращение));
|
||||
ИначеЕсли ПроверятьНаселенныйПункт И Запись.НаселенныйПунктНайден <> Истина Тогда
|
||||
ПроверитьИсторию = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПроверятьУлицу И Запись.УлицаНайден И Запись.УлицаАктуален = Истина Тогда
|
||||
@@ -4502,6 +4506,8 @@
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Дополнительный",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Дополнительная территория ""%1""отсутствует в адресном классификаторе'"),
|
||||
Дополнительный.Наименование + " " + Дополнительный.Сокращение));
|
||||
ИначеЕсли ПроверятьДополнительный И Запись.ДополнительныйНайден <> Истина Тогда
|
||||
ПроверитьИсторию = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПроверятьПодчиненный И Не Запись.ПодчиненныйНайден И Запись.ПодчиненныйАктуален = Истина Тогда
|
||||
@@ -4529,6 +4535,17 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПроверитьИсторию Тогда
|
||||
НовыйАдрес = АнализИсторииОдногоАдресаПоКлассификатору(Адрес, Уровни);
|
||||
Если НовыйАдрес <> Неопределено Тогда
|
||||
|
||||
Результат.Вставить("Исторический", Истина);
|
||||
Результат.Варианты.Добавить(НовыйАдрес);
|
||||
Возврат Результат;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если КорректныеЗаписи.Количество() = 0 Тогда
|
||||
// Нет смысла искать дома и выдавать варианты, надо посмотреть в историю.
|
||||
Возврат Результат;
|
||||
@@ -4636,6 +4653,8 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// История
|
||||
|
||||
Функция ИсторияАдресногоОбъекта(Наименование, Сокращение, Запись)
|
||||
|
||||
Результат = Новый СписокЗначений;
|
||||
@@ -4707,6 +4726,550 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдресаИстория(ТекстЗапроса, Флаг, ИмяПоля)
|
||||
Если Флаг Тогда
|
||||
ТекстЗапроса = ТекстЗапроса + ", " + Символы.ПС + ИмяПоля + ".ОкончаниеДействияЗаписи УБЫВ";
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ТекстОпциональныхПолейЗапросаПроверкиАдресаИстория(ФлагПроверки, ИмяПоля)
|
||||
|
||||
Если ФлагПроверки Тогда
|
||||
Вариант = "
|
||||
| ВЫБОР КОГДА [Поле].Идентификатор ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК [Поле]Найден,
|
||||
| [Поле].АдресныйОбъект КАК [Поле]АдресныйОбъект,
|
||||
| [Поле].Идентификатор КАК [Поле]Идентификатор,
|
||||
| [Поле].ПочтовыйИндекс КАК [Поле]ПочтовыйИндекс,
|
||||
| [Поле].КодКЛАДР КАК [Поле]КодКЛАДР,
|
||||
| [Поле].Дополнительно КАК [Поле]Дополнительно,
|
||||
|";
|
||||
Иначе
|
||||
Вариант = "
|
||||
| NULL КАК [Поле]Найден,
|
||||
| NULL КАК [Поле]Идентификатор,
|
||||
| NULL КАК [Поле]ПочтовыйИндекс,
|
||||
| NULL КАК [Поле]КодКЛАДР,
|
||||
| NULL КАК [Поле]Дополнительно,
|
||||
|";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СтрЗаменить(Вариант, "[Поле]", ИмяПоля);
|
||||
КонецФункции
|
||||
|
||||
// Локальная проверка одного адреса.
|
||||
//
|
||||
Функция АнализИсторииОдногоАдресаПоКлассификатору(Адрес, Уровни)
|
||||
|
||||
Результат = Новый Структура("Ошибки, Варианты, АдресПроверен", Новый Массив, Новый Массив, Истина);
|
||||
ОшибкиПроверки = Результат.Ошибки;
|
||||
ВариантыАдреса = Результат.Варианты;
|
||||
|
||||
Если ТипЗнч(Адрес) <> Тип("ОбъектXDTO") Тогда
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Адрес", НСтр("ru = 'Невозможно проверить адрес из-за некорректных сведений. Проверьте правильность заполнения адреса.'"));
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
//// Субъект должен быть всегда
|
||||
СубъектРФ = АдресныйКлассификаторКлиентСервер.НаименованиеИСокращение(Адрес.СубъектРФ);
|
||||
|
||||
Если ПустаяСтрока(СубъектРФ.Наименование) Тогда
|
||||
// Нет субъекта
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "СубъектРФ", НСтр("ru = 'Не указан субъект РФ адреса'") );
|
||||
Возврат Результат;
|
||||
ИначеЕсли Уровни.Найти(1) = Неопределено Тогда
|
||||
// В уровнях должно быть указано всегда.
|
||||
ВызватьИсключение НСтр("ru = 'В уровнях для проверки адреса не указан уровень субъекта РФ.'");
|
||||
КонецЕсли;
|
||||
|
||||
КодСубъектРФ = АдресныйКлассификатор.КодРегионаПоНаименованию(Адрес.СубъектРФ);
|
||||
|
||||
РегионЗагруженВАдресныеСведения = СведенияОРегионе(Адрес.СубъектРФ).Загружен;
|
||||
Если РегионЗагруженВАдресныеСведения = Неопределено Тогда
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "СубъектРФ",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Регион ""%1"" не существует'"), Адрес.СубъектРФ));
|
||||
Результат.АдресПроверен = Истина;
|
||||
Возврат Результат;
|
||||
ИначеЕсли НЕ РегионЗагруженВАдресныеСведения Тогда
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "СубъектРФ", НСтр("ru = 'Отсутствуют адресные сведения по региону'") + ": " + Адрес.СубъектРФ + ".");
|
||||
Результат.АдресПроверен = Ложь;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// Расшифровка свойств адреса
|
||||
Запрос = Новый Запрос("ВЫБРАТЬ
|
||||
| Значение
|
||||
|ИЗ
|
||||
| РегистрСведений.СлужебныеАдресныеСведения
|
||||
|ГДЕ
|
||||
| Тип = ""ТипАдрЭл"" И Ключ = ""ПочтовыйИндекс""
|
||||
|;//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| Ключ КАК Сокращение,
|
||||
| Идентификатор КАК Идентификатор,
|
||||
| Значение КАК Значение
|
||||
|ИЗ
|
||||
| РегистрСведений.СлужебныеАдресныеСведения
|
||||
|ГДЕ
|
||||
| Тип = ""ТипАдрЭл""
|
||||
| И (
|
||||
| Идентификатор = 91 ИЛИ Идентификатор = 90
|
||||
| )
|
||||
|;//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| Расшифровка.Ключ КАК Значение,
|
||||
| Расшифровка.Значение КАК ТипАдрЭл,
|
||||
|
|
||||
| ВЫБОР
|
||||
| КОГДА НЕ ТипыВладения.Идентификатор ЕСТЬ NULL ТОГДА ТипыВладения.Идентификатор
|
||||
| КОГДА НЕ ТипыСтроения.Идентификатор ЕСТЬ NULL ТОГДА ТипыСтроения.Идентификатор
|
||||
| ИНАЧЕ 0
|
||||
| КОНЕЦ КАК Идентификатор
|
||||
|
|
||||
|ИЗ
|
||||
| РегистрСведений.СлужебныеАдресныеСведения КАК Расшифровка
|
||||
|
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.СлужебныеАдресныеСведения КАК ТипыВладения
|
||||
|ПО
|
||||
| ТипыВладения.Тип = ""ESTSTAT""
|
||||
| И ТипыВладения.Значение = Расшифровка.Ключ
|
||||
|
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.СлужебныеАдресныеСведения КАК ТипыСтроения
|
||||
|ПО
|
||||
| ТипыСтроения.Тип = ""STRSTAT""
|
||||
| И ТипыСтроения.Значение = Расшифровка.Ключ
|
||||
|
|
||||
|ГДЕ
|
||||
| Расшифровка.Тип = ""ДопАдрЭлНомер""");
|
||||
НаборРезультатов = Запрос.ВыполнитьПакет();
|
||||
|
||||
Таблица = НаборРезультатов[0].Выгрузить();
|
||||
Если Таблица.Количество() = 0 Тогда
|
||||
ТипАдрЭлПочтовыйИндекс = "";
|
||||
Иначе
|
||||
ТипАдрЭлПочтовыйИндекс = Таблица[0].Значение;
|
||||
КонецЕсли;
|
||||
|
||||
ТаблицаСокращенийДополнительных = НаборРезультатов[1].Выгрузить();
|
||||
ТаблицаСокращенийДополнительных.Индексы.Добавить("Сокращение, Значение");
|
||||
|
||||
ТаблицаСокращенийЗданий = НаборРезультатов[2].Выгрузить();
|
||||
ТаблицаСокращенийЗданий.Индексы.Добавить("ТипАдрЭл");
|
||||
|
||||
Дополнительный = Новый Структура("Наименование, Сокращение");
|
||||
Подчиненный = Новый Структура("Наименование, Сокращение");
|
||||
ЗданияИПомещения = Новый Соответствие;
|
||||
|
||||
Для Каждого ДополнительныйЭлемент Из Адрес.ПолучитьСписок("ДопАдрЭл") Цикл
|
||||
ТипАдресногоЭлемента = СокрЛП(ДополнительныйЭлемент.ТипАдрЭл);
|
||||
|
||||
// Здание или помещение, почтовый индекс?
|
||||
Если ТипАдресногоЭлемента = "" Тогда
|
||||
ЗначениеНомера = ДополнительныйЭлемент.Номер;
|
||||
СтрокаЗдания = ТаблицаСокращенийЗданий.Найти(ЗначениеНомера.Тип, "ТипАдрЭл");
|
||||
Если СтрокаЗдания <> Неопределено Тогда
|
||||
ЗданияИПомещения[СтрокаЗдания.Значение] = Новый Структура("Вид, Значение", СтрокаЗдания.Идентификатор, ЗначениеНомера.Значение);
|
||||
КонецЕсли;
|
||||
Продолжить;
|
||||
ИначеЕсли ТипАдресногоЭлемента = ТипАдрЭлПочтовыйИндекс Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
// Дополнительный или подчиненный?
|
||||
Вариант = АдресныйКлассификаторКлиентСервер.НаименованиеИСокращение(ДополнительныйЭлемент.Значение);
|
||||
|
||||
// У ФИАС некоторые сокращения ошибочно содержат в конце точку. Для поиска вариантов эту точку необходимо убрать.
|
||||
СокращениеВарианта = ?( СтрЗаканчиваетсяНа(Вариант.Сокращение, "."), Лев(Вариант.Сокращение, СтрДлина(Вариант.Сокращение) - 1), Вариант.Сокращение);
|
||||
// У ФИАС необходимо учитывать кв-л
|
||||
ДополнитьТаблицуСокращений(ТаблицаСокращенийДополнительных);
|
||||
|
||||
СтрокиВариантов = ТаблицаСокращенийДополнительных.НайтиСтроки(Новый Структура("Сокращение, Значение, Идентификатор", СокращениеВарианта, ТипАдресногоЭлемента, 90));
|
||||
Если СтрокиВариантов.Количество() > 0 Тогда
|
||||
Код = СтрокиВариантов[0].Идентификатор;
|
||||
Дополнительный = Вариант;
|
||||
Иначе
|
||||
СтрокиВариантов = ТаблицаСокращенийДополнительных.НайтиСтроки(Новый Структура("Сокращение, Значение, Идентификатор", СокращениеВарианта, ТипАдресногоЭлемента, 91));
|
||||
Если СтрокиВариантов.Количество() > 0 Тогда
|
||||
Подчиненный = Вариант;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Округ = АдресныйКлассификаторКлиентСервер.НаименованиеИСокращение(Адрес.Округ);
|
||||
Район = АдресныйКлассификаторКлиентСервер.НаименованиеИСокращение(ПолучитьXDTOРеквизитОбъекта(Адрес, "СвРайМО/Район"));
|
||||
Город = АдресныйКлассификаторКлиентСервер.НаименованиеИСокращение(Адрес.Город);
|
||||
ВнутригородскойРайон = АдресныйКлассификаторКлиентСервер.НаименованиеИСокращение(Адрес.ВнутригРайон);
|
||||
НаселенныйПункт = АдресныйКлассификаторКлиентСервер.НаименованиеИСокращение(Адрес.НаселПункт);
|
||||
Улица = АдресныйКлассификаторКлиентСервер.НаименованиеИСокращение(Адрес.Улица);
|
||||
|
||||
ИндексЭлемент = ПолучитьXDTOРеквизитОбъекта(Адрес, "ДопАдрЭл[ТипАдрЭл='10100000']");
|
||||
Индекс = ?(ИндексЭлемент <> Неопределено, ИндексЭлемент.Значение, "");
|
||||
|
||||
ПроверятьОкруг = Не ПустаяСтрока(Округ.Наименование);
|
||||
ПроверятьРайон = Не ПустаяСтрока(Район.Наименование);
|
||||
ПроверятьГород = Не ПустаяСтрока(Город.Наименование);
|
||||
ПроверятьВнутригородскойРайон = Не ПустаяСтрока(ВнутригородскойРайон.Наименование);
|
||||
ПроверятьНаселенныйПункт = Не ПустаяСтрока(НаселенныйПункт.Наименование);
|
||||
ПроверятьУлицу = Не ПустаяСтрока(Улица.Наименование);
|
||||
ПроверятьДополнительный = Не ПустаяСтрока(Дополнительный.Наименование);
|
||||
ПроверятьПодчиненный = Не ПустаяСтрока(Подчиненный.Наименование);
|
||||
|
||||
ПолеАдресныйОбъектИдентификатор = ?(ПроверятьПодчиненный, "Подчиненный.Идентификатор",
|
||||
?(ПроверятьДополнительный, "Дополнительный.Идентификатор",
|
||||
?(ПроверятьУлицу, "Улица.Идентификатор",
|
||||
?(ПроверятьНаселенныйПункт, "НаселенныйПункт.Идентификатор",
|
||||
?(ПроверятьВнутригородскойРайон, "ВнутригородскойРайон.Идентификатор",
|
||||
?(ПроверятьГород, "Город.Идентификатор",
|
||||
?(ПроверятьРайон, "Район.Идентификатор",
|
||||
?(ПроверятьОкруг, "Округ.Идентификатор", "СубъектРФ.Идентификатор"))))))));
|
||||
|
||||
ТекстУпорядочить = "УПОРЯДОЧИТЬ ПО СубъектРФ.ОкончаниеДействияЗаписи УБЫВ";
|
||||
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдресаИстория(ТекстУпорядочить, ПроверятьОкруг, "Округ");
|
||||
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдресаИстория(ТекстУпорядочить, ПроверятьРайон, "Район");
|
||||
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдресаИстория(ТекстУпорядочить, ПроверятьГород, "Город");
|
||||
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдресаИстория(ТекстУпорядочить, ПроверятьВнутригородскойРайон, "ВнутригородскойРайон");
|
||||
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдресаИстория(ТекстУпорядочить, ПроверятьНаселенныйПункт, "НаселенныйПункт");
|
||||
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдресаИстория(ТекстУпорядочить, ПроверятьУлицу, "Улица");
|
||||
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдресаИстория(ТекстУпорядочить, ПроверятьДополнительный, "Дополнительный");
|
||||
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдресаИстория(ТекстУпорядочить, ПроверятьПодчиненный, "Подчиненный");
|
||||
|
||||
Запрос.Текст = "ВЫБРАТЬ
|
||||
| ИСТИНА КАК СубъектРФНайден,
|
||||
| СубъектРФ.Идентификатор КАК СубъектРФИдентификатор,
|
||||
| СубъектРФ.ПочтовыйИндекс КАК СубъектРФПочтовыйИндекс,
|
||||
| СубъектРФ.КодСубъектаРФ КАК СубъектРФКод,
|
||||
| СубъектРФ.КодКЛАДР КАК СубъектРФКодКЛАДР,
|
||||
| СубъектРФ.Дополнительно КАК СубъектРФДополнительно,
|
||||
|
|
||||
| " + ТекстОпциональныхПолейЗапросаПроверкиАдресаИстория(ПроверятьОкруг, "Округ") + "
|
||||
| " + ТекстОпциональныхПолейЗапросаПроверкиАдресаИстория(ПроверятьРайон, "Район") + "
|
||||
| " + ТекстОпциональныхПолейЗапросаПроверкиАдресаИстория(ПроверятьГород, "Город") + "
|
||||
| " + ТекстОпциональныхПолейЗапросаПроверкиАдресаИстория(ПроверятьВнутригородскойРайон, "ВнутригородскойРайон") + "
|
||||
| " + ТекстОпциональныхПолейЗапросаПроверкиАдресаИстория(ПроверятьНаселенныйПункт, "НаселенныйПункт") + "
|
||||
| " + ТекстОпциональныхПолейЗапросаПроверкиАдресаИстория(ПроверятьУлицу, "Улица") + "
|
||||
| " + ТекстОпциональныхПолейЗапросаПроверкиАдресаИстория(ПроверятьДополнительный, "Дополнительный") + "
|
||||
| " + ТекстОпциональныхПолейЗапросаПроверкиАдресаИстория(ПроверятьПодчиненный, "Подчиненный") + "
|
||||
|
|
||||
| NULL КАК ДомаКодКЛАДР
|
||||
|
|
||||
|ИЗ
|
||||
| // Иерархия подчиненности
|
||||
| РегистрСведений.ИсторияАдресныхОбъектов КАК СубъектРФ
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ДополнительныеАдресныеСведения КАК СубъектРФДополнительно
|
||||
|ПО
|
||||
| СубъектРФДополнительно.Идентификатор = СубъектРФ.Дополнительно
|
||||
|
|
||||
|" + ?(ПроверятьОкруг, "
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.АдресныеОбъекты КАК Округ
|
||||
|ПО
|
||||
| Округ.Наименование = &ОкругНаименование
|
||||
| И Округ.Сокращение = &ОкругСокращение
|
||||
| И Округ.Уровень = 2
|
||||
| И Округ.КодСубъектаРФ = СубъектРФ.КодСубъектаРФ
|
||||
| И Округ.КодРайона = 0
|
||||
| И Округ.КодГорода = 0
|
||||
| И Округ.КодВнутригородскогоРайона = 0
|
||||
| И Округ.КодНаселенногоПункта = 0
|
||||
| И Округ.КодУлицы = 0
|
||||
| И Округ.КодДополнительногоЭлемента = 0
|
||||
| И Округ.КодПодчиненногоЭлемента = 0
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ДополнительныеАдресныеСведения КАК ОкругДополнительно
|
||||
|ПО
|
||||
| ОкругДополнительно.Идентификатор = Округ.Дополнительно
|
||||
|", "") + "
|
||||
|
|
||||
|" + ?(ПроверятьРайон, "
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ИсторияАдресныхОбъектов КАК Район
|
||||
|ПО
|
||||
| Район.Наименование = &РайонНаименование
|
||||
| И Район.Сокращение = &РайонСокращение
|
||||
| И Район.Уровень = 3
|
||||
| И Район.КодСубъектаРФ = СубъектРФ.КодСубъектаРФ
|
||||
| И Район.КодОкруга = " + ?(ПроверятьОкруг, "Округ.КодОкруга", "0") + "
|
||||
| И Район.КодГорода = 0
|
||||
| И Район.КодВнутригородскогоРайона = 0
|
||||
| И Район.КодНаселенногоПункта = 0
|
||||
| И Район.КодУлицы = 0
|
||||
| И Район.КодДополнительногоЭлемента = 0
|
||||
| И Район.КодПодчиненногоЭлемента = 0
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ДополнительныеАдресныеСведения КАК РайонДополнительно
|
||||
|ПО
|
||||
| РайонДополнительно.Идентификатор = Район.Дополнительно
|
||||
|", "") + "
|
||||
|
|
||||
|" + ?(ПроверятьГород, "
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ИсторияАдресныхОбъектов КАК Город
|
||||
|ПО
|
||||
| Город.Наименование = &ГородНаименование
|
||||
| И Город.Сокращение = &ГородСокращение
|
||||
| И Город.Уровень = 4
|
||||
| И Город.КодСубъектаРФ = СубъектРФ.КодСубъектаРФ
|
||||
| И Город.КодОкруга = " + ?(ПроверятьОкруг, "Округ.КодОкруга", "0") + "
|
||||
| И Город.КодРайона = " + ?(ПроверятьРайон, "Район.КодРайона", "0") + "
|
||||
| И Город.КодВнутригородскогоРайона = 0
|
||||
| И Город.КодНаселенногоПункта = 0
|
||||
| И Город.КодУлицы = 0
|
||||
| И Город.КодДополнительногоЭлемента = 0
|
||||
| И Город.КодПодчиненногоЭлемента = 0
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ДополнительныеАдресныеСведения КАК ГородДополнительно
|
||||
|ПО
|
||||
| ГородДополнительно.Идентификатор = Город.Дополнительно
|
||||
|", "") + "
|
||||
|
|
||||
|" + ?(ПроверятьВнутригородскойРайон, "
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ИсторияАдресныхОбъектов КАК ВнутригородскойРайон
|
||||
|ПО
|
||||
| ВнутригородскойРайон.Наименование = &ВнутригородскойРайонНаименование
|
||||
| И ВнутригородскойРайон.Сокращение = &ВнутригородскойРайонСокращение
|
||||
| И ВнутригородскойРайон.Уровень = 5
|
||||
| И ВнутригородскойРайон.КодСубъектаРФ = СубъектРФ.КодСубъектаРФ
|
||||
| И ВнутригородскойРайон.КодОкруга = " + ?(ПроверятьОкруг, "Округ.КодОкруга", "0") + "
|
||||
| И ВнутригородскойРайон.КодРайона = " + ?(ПроверятьРайон, "Район.КодРайона", "0") + "
|
||||
| И ВнутригородскойРайон.КодГорода = " + ?(ПроверятьГород, "Город.КодГорода", "0") + "
|
||||
| И ВнутригородскойРайон.КодНаселенногоПункта = 0
|
||||
| И ВнутригородскойРайон.КодУлицы = 0
|
||||
| И ВнутригородскойРайон.КодДополнительногоЭлемента = 0
|
||||
| И ВнутригородскойРайон.КодПодчиненногоЭлемента = 0
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ДополнительныеАдресныеСведения КАК ВнутригородскойРайонДополнительно
|
||||
|ПО
|
||||
| ВнутригородскойРайонДополнительно.Идентификатор = ВнутригородскойРайон.Дополнительно
|
||||
|", "") + "
|
||||
|
|
||||
|" + ?(ПроверятьНаселенныйПункт, "
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ИсторияАдресныхОбъектов КАК НаселенныйПункт
|
||||
|ПО
|
||||
| НаселенныйПункт.Наименование = &НаселенныйПунктНаименование
|
||||
| И НаселенныйПункт.Сокращение = &НаселенныйПунктСокращение
|
||||
| И НаселенныйПункт.Уровень = 6
|
||||
| И НаселенныйПункт.КодСубъектаРФ = СубъектРФ.КодСубъектаРФ
|
||||
| И НаселенныйПункт.КодОкруга = " + ?(ПроверятьОкруг, "Округ.КодОкруга", "0") + "
|
||||
| И НаселенныйПункт.КодРайона = " + ?(ПроверятьРайон, "Район.КодРайона", "0") + "
|
||||
| И НаселенныйПункт.КодГорода = " + ?(ПроверятьГород, "Город.КодГорода", "0") + "
|
||||
| И НаселенныйПункт.КодВнутригородскогоРайона = " + ?(ПроверятьВнутригородскойРайон, "ВнутригородскойРайон.КодВнутригородскогоРайона", "0") + "
|
||||
| И НаселенныйПункт.КодУлицы = 0
|
||||
| И НаселенныйПункт.КодДополнительногоЭлемента = 0
|
||||
| И НаселенныйПункт.КодПодчиненногоЭлемента = 0
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ДополнительныеАдресныеСведения КАК НаселенныйПунктДополнительно
|
||||
|ПО
|
||||
| НаселенныйПунктДополнительно.Идентификатор = НаселенныйПункт.Дополнительно
|
||||
|", "") + "
|
||||
|
|
||||
|" + ?(ПроверятьУлицу, "
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ИсторияАдресныхОбъектов КАК Улица
|
||||
|ПО
|
||||
| Улица.Наименование = &УлицаНаименование
|
||||
| И Улица.Сокращение = &УлицаСокращение
|
||||
| И Улица.Уровень = 7
|
||||
| И Улица.КодСубъектаРФ = СубъектРФ.КодСубъектаРФ
|
||||
| И Улица.КодОкруга = " + ?(ПроверятьОкруг, "Округ.КодОкруга", "0") + "
|
||||
| И Улица.КодРайона = " + ?(ПроверятьРайон, "Район.КодРайона", "0") + "
|
||||
| И Улица.КодГорода = " + ?(ПроверятьГород, "Город.КодГорода", "0") + "
|
||||
| И Улица.КодВнутригородскогоРайона = " + ?(ПроверятьВнутригородскойРайон, "ВнутригородскойРайон.КодВнутригородскогоРайона", "0") + "
|
||||
| И Улица.КодНаселенногоПункта = " + ?(ПроверятьНаселенныйПункт, "НаселенныйПункт.КодНаселенногоПункта", "0") + "
|
||||
| И Улица.КодДополнительногоЭлемента = 0
|
||||
| И Улица.КодПодчиненногоЭлемента = 0
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ДополнительныеАдресныеСведения КАК УлицаДополнительно
|
||||
|ПО
|
||||
| УлицаДополнительно.Идентификатор = Улица.Дополнительно
|
||||
|", "") + "
|
||||
|
|
||||
|" + ?(ПроверятьДополнительный, "
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ИсторияАдресныхОбъектов КАК Дополнительный
|
||||
|ПО
|
||||
| Дополнительный.Наименование = &ДополнительныйНаименование
|
||||
| И Дополнительный.Сокращение = &ДополнительныйСокращение
|
||||
| И Дополнительный.Уровень = 65
|
||||
| И Дополнительный.КодСубъектаРФ = СубъектРФ.КодСубъектаРФ
|
||||
| И Дополнительный.КодОкруга = " + ?(ПроверятьОкруг, "Округ.КодОкруга", "0") + "
|
||||
| И Дополнительный.КодРайона = " + ?(ПроверятьРайон, "Район.КодРайона", "0") + "
|
||||
| И Дополнительный.КодГорода = " + ?(ПроверятьГород, "Город.КодГорода", "0") + "
|
||||
| И Дополнительный.КодВнутригородскогоРайона = " + ?(ПроверятьВнутригородскойРайон, "ВнутригородскойРайон.КодВнутригородскогоРайона", "0") + "
|
||||
| И Дополнительный.КодНаселенногоПункта = " + ?(ПроверятьНаселенныйПункт, "НаселенныйПункт.КодНаселенногоПункта", "0") + "
|
||||
| И Дополнительный.КодУлицы = " + ?(ПроверятьУлицу, "Улица.КодУлицы", "0") + "
|
||||
| И Дополнительный.КодПодчиненногоЭлемента = 0
|
||||
|", "") + "
|
||||
|
|
||||
|" + ?(ПроверятьПодчиненный, "
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ИсторияАдресныхОбъектов КАК Подчиненный
|
||||
|ПО
|
||||
| Подчиненный.Наименование = &ПодчиненныйНаименование
|
||||
| И Подчиненный.Сокращение = &ПодчиненныйСокращение
|
||||
| И Подчиненный.Уровень = 7
|
||||
| И Подчиненный.КодСубъектаРФ = СубъектРФ.КодСубъектаРФ
|
||||
| И Подчиненный.КодОкруга = " + ?(ПроверятьОкруг, "Округ.КодОкруга", "0") + "
|
||||
| И Подчиненный.КодРайона = " + ?(ПроверятьРайон, "Район.КодРайона", "0") + "
|
||||
| И Подчиненный.КодГорода = " + ?(ПроверятьГород, "Город.КодГорода", "0") + "
|
||||
| И Подчиненный.КодВнутригородскогоРайона = " + ?(ПроверятьВнутригородскойРайон, "ВнутригородскойРайон.КодВнутригородскогоРайона", "0") + "
|
||||
| И Подчиненный.КодНаселенногоПункта = " + ?(ПроверятьНаселенныйПункт, "НаселенныйПункт.КодНаселенногоПункта", "0") + "
|
||||
| И Подчиненный.КодУлицы = " + ?(ПроверятьУлицу, "Улица.КодУлицы", "0") + "
|
||||
| И Подчиненный.КодДополнительногоЭлемента = " + ?(ПроверятьДополнительный, "Дополнительный.КодДополнительногоЭлемента", "0") + "
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| РегистрСведений.ДополнительныеАдресныеСведения КАК ПодчиненныйДополнительно
|
||||
|ПО
|
||||
| ПодчиненныйДополнительно.Идентификатор = Подчиненный.Дополнительно
|
||||
|", "") + "
|
||||
|
|
||||
|// Условие на регион, который есть всегда
|
||||
|ГДЕ
|
||||
| СубъектРФ.КодСубъектаРФ = &КодСубъектРФ
|
||||
| И СубъектРФ.КодОкруга = 0
|
||||
| И СубъектРФ.КодРайона = 0
|
||||
| И СубъектРФ.КодГорода = 0
|
||||
| И СубъектРФ.КодВнутригородскогоРайона = 0
|
||||
| И СубъектРФ.КодНаселенногоПункта = 0
|
||||
| И СубъектРФ.КодУлицы = 0
|
||||
| И СубъектРФ.КодДополнительногоЭлемента = 0
|
||||
| И СубъектРФ.КодПодчиненногоЭлемента = 0
|
||||
| " + ТекстУпорядочить;
|
||||
|
||||
Запрос.УстановитьПараметр("КодСубъектРФ", КодСубъектРФ);
|
||||
|
||||
Запрос.УстановитьПараметр("ОкругНаименование", Округ.Наименование);
|
||||
Запрос.УстановитьПараметр("ОкругСокращение", Округ.Сокращение);
|
||||
|
||||
Запрос.УстановитьПараметр("РайонНаименование", Район.Наименование);
|
||||
Запрос.УстановитьПараметр("РайонСокращение", Район.Сокращение);
|
||||
|
||||
Запрос.УстановитьПараметр("ГородНаименование", Город.Наименование);
|
||||
Запрос.УстановитьПараметр("ГородСокращение", Город.Сокращение);
|
||||
|
||||
Запрос.УстановитьПараметр("ВнутригородскойРайонНаименование", ВнутригородскойРайон.Наименование);
|
||||
Запрос.УстановитьПараметр("ВнутригородскойРайонСокращение", ВнутригородскойРайон.Сокращение);
|
||||
|
||||
Запрос.УстановитьПараметр("НаселенныйПунктНаименование", НаселенныйПункт.Наименование);
|
||||
Запрос.УстановитьПараметр("НаселенныйПунктСокращение", НаселенныйПункт.Сокращение);
|
||||
|
||||
Запрос.УстановитьПараметр("УлицаНаименование", Улица.Наименование);
|
||||
Запрос.УстановитьПараметр("УлицаСокращение", Улица.Сокращение);
|
||||
|
||||
Запрос.УстановитьПараметр("ДополнительныйНаименование", Дополнительный.Наименование);
|
||||
Запрос.УстановитьПараметр("ДополнительныйСокращение", Дополнительный.Сокращение);
|
||||
|
||||
Запрос.УстановитьПараметр("ПодчиненныйНаименование", Подчиненный.Наименование);
|
||||
Запрос.УстановитьПараметр("ПодчиненныйСокращение", Подчиненный.Сокращение);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
Если РезультатЗапроса.Пустой() Тогда
|
||||
// Нет региона
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "СубъектРФ",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Субъект РФ (регион) ""%1"" не найден в адресном классификаторе'"), СубъектРФ.Наименование + " " + СубъектРФ.Сокращение));
|
||||
Возврат Результат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// Оставляем только записи со всеми корректными данными.
|
||||
ЗаписиДомов = РезультатЗапроса.Выгрузить();
|
||||
|
||||
КорректныеЗаписи = Новый Массив;
|
||||
|
||||
УлицаНайдена = Ложь;
|
||||
ВариантАдреса = Новый Структура;
|
||||
История = Новый Соответствие;
|
||||
Для Каждого Запись Из ЗаписиДомов Цикл;
|
||||
ЗаполнитьПочтовыйИндексИКодКЛАДРПоИерархииФИАС(ВариантАдреса, Запись, Ложь);
|
||||
|
||||
Если ПроверятьОкруг И Не Запись.ОкругНайден Тогда
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Округ",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Округ ""%1"" отсутствует в адресном классификаторе'"), Округ.Наименование + " " + Округ.Сокращение));
|
||||
КонецЕсли;
|
||||
|
||||
Если ПроверятьРайон И Не Запись.РайонНайден Тогда
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "СвРайМО/Район",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Район ""%1"" отсутствует в адресном классификаторе'"), Район.Наименование + " " + Район.Сокращение));
|
||||
КонецЕсли;
|
||||
|
||||
Если ПроверятьГород И Не Запись.ГородНайден Тогда
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Город",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Город ""%1"" отсутствует в адресном классификаторе'"), Город.Наименование + " " + Город.Сокращение));
|
||||
КонецЕсли;
|
||||
|
||||
Если ПроверятьВнутригородскойРайон И Не Запись.ВнутригородскойРайонНайден Тогда
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "ВнутригРайон",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Внутригородской район ""%1"" отсутствует в адресном классификаторе'"),
|
||||
ВнутригородскойРайон.Наименование + " " + ВнутригородскойРайон.Сокращение));
|
||||
КонецЕсли;
|
||||
|
||||
Если ПроверятьНаселенныйПункт И Не Запись.НаселенныйПунктНайден Тогда
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "НаселПункт",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Населенный пункт ""%1"" отсутствует в адресном классификаторе'"),
|
||||
НаселенныйПункт.Наименование + " " + НаселенныйПункт.Сокращение));
|
||||
КонецЕсли;
|
||||
|
||||
Если ПроверятьУлицу И Не Запись.УлицаНайден Тогда
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Улица",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Улица ""%1""отсутствует в адресном классификаторе'"),
|
||||
Улица.Наименование + " " + Улица.Сокращение));
|
||||
КонецЕсли;
|
||||
|
||||
Если ПроверятьДополнительный И Не Запись.ДополнительныйНайден Тогда
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Дополнительный",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Дополнительная территория ""%1""отсутствует в адресном классификаторе'"),
|
||||
Дополнительный.Наименование + " " + Дополнительный.Сокращение));
|
||||
КонецЕсли;
|
||||
|
||||
Если ПроверятьПодчиненный И Не Запись.ПодчиненныйНайден Тогда
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Подчиненный",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Элемент дополнительной территории ""%1"" отсутствует в адресном классификаторе'"),
|
||||
Подчиненный.Наименование + " " + Подчиненный.Сокращение));
|
||||
КонецЕсли;
|
||||
|
||||
Если ОшибкиПроверки.Количество() = 0 Тогда
|
||||
|
||||
Если ПроверятьДополнительный Тогда
|
||||
АдресНовый = АктуальныеАдресныеСведения(Запись.ДополнительныйАдресныйОбъект);
|
||||
Возврат АдресНовый;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПроверятьУлицу И Запись.УлицаНайден Тогда
|
||||
УлицаНайдена = Истина;
|
||||
АдресНовый = АктуальныеАдресныеСведения(Запись.УлицаАдресныйОбъект);
|
||||
Возврат АдресНовый;
|
||||
КонецЕсли;
|
||||
|
||||
// Вся запись правильная
|
||||
КорректныеЗаписи.Добавить(АдресНовый);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если ПроверятьУлицу И НЕ УлицаНайдена Тогда
|
||||
ИсторияОбъекта = ИсторияАдресногоОбъекта(Улица.Наименование, Улица.Сокращение, Запись);
|
||||
Если ИсторияОбъекта.Количество() > 0 Тогда
|
||||
Для каждого СтрокаОбъект Из ИсторияОбъекта Цикл
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Улица",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Улица ""%1"" была переименована в ""%2""'"), СтрокаОбъект.Значение, СтрокаОбъект.Представление));
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Улица",
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Улица ""%1"" отсутствует в адресном классификаторе'"), Улица.Наименование + " " + Улица.Сокращение));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если КорректныеЗаписи.Количество() = 0 Тогда
|
||||
// Нет смысла искать дома и выдавать варианты, надо посмотреть в историю.
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
// Функция - Сформировать описание здания.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -5312,10 +5875,10 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьПочтовыйИндексИКодКЛАДРПоИерархииФИАС(Вариант, ЗаписьИсточника)
|
||||
Процедура ЗаполнитьПочтовыйИндексИКодКЛАДРПоИерархииФИАС(Вариант, ЗаписьИсточника, ПроверятьДома = Истина)
|
||||
|
||||
УстановитьРеквизитЗаписиФИАСИерархически(Вариант, "Индекс", ЗаписьИсточника, "ПочтовыйИндекс");
|
||||
УстановитьРеквизитЗаписиФИАСИерархически(Вариант, "КодКЛАДР", ЗаписьИсточника, "КодКЛАДР");
|
||||
УстановитьРеквизитЗаписиФИАСИерархически(Вариант, "Индекс", ЗаписьИсточника, "ПочтовыйИндекс", ПроверятьДома);
|
||||
УстановитьРеквизитЗаписиФИАСИерархически(Вариант, "КодКЛАДР", ЗаписьИсточника, "КодКЛАДР", ПроверятьДома);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -5330,10 +5893,10 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьРеквизитЗаписиФИАСИерархически(Приемник, ИмяПоляПриемника, Источник, ИмяПоляИсточника)
|
||||
Процедура УстановитьРеквизитЗаписиФИАСИерархически(Приемник, ИмяПоляПриемника, Источник, ИмяПоляИсточника, ПроверятьДома = Истина)
|
||||
|
||||
Варианты = Новый Массив;
|
||||
Если ИмяПоляИсточника <> "Идентификатор" Тогда
|
||||
Если ПроверятьДома И ИмяПоляИсточника <> "Идентификатор" Тогда
|
||||
Варианты.Добавить("Дома");
|
||||
КонецЕсли;
|
||||
Варианты.Добавить("Подчиненный");
|
||||
|
||||
@@ -300,7 +300,6 @@
|
||||
КонецФункции
|
||||
|
||||
// Скрывает персональные данные субъектов. Состав персональных данных определяется программно.
|
||||
// См. ЗащитаПерсональныхДанныхПереопределяемый.ЗаполнитьСведенияОПерсональныхДанных.
|
||||
//
|
||||
// Параметры:
|
||||
// Субъекты - Массив, ОпределяемыйТип.СубъектПерсональныхДанных - ссылка или массив ссылок одного типа на субъекты.
|
||||
@@ -430,6 +429,8 @@
|
||||
|
||||
Попытка
|
||||
|
||||
ПересчитанаДатаСкрытияПДнСубъектов = Ложь;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ДнейДоСкрытияПДн) Тогда
|
||||
ДнейДоСкрытияПДн = 7;
|
||||
КонецЕсли;
|
||||
@@ -441,14 +442,22 @@
|
||||
ОчиститьСрокСкрытияПерсональныхДанныхСубъектов();
|
||||
РассчитатьДатуСкрытияПДнСубъектовДавшихСогласие(ДнейДоСкрытияПДн);
|
||||
|
||||
ПересчитанаДатаСкрытияПДнСубъектов = Истина;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Константы.ДнейДоСкрытияПерсональныхДанныхСубъектов.Установить(ДнейДоСкрытияПДн);
|
||||
|
||||
ИначеЕсли ТекущееЗначениеИспользоватьСкрытиеПДн <> ИспользоватьСкрытиеПДн Тогда
|
||||
КонецЕсли;
|
||||
|
||||
Если ТекущееЗначениеИспользоватьСкрытиеПДн <> ИспользоватьСкрытиеПДн Тогда
|
||||
|
||||
Если ИспользоватьСкрытиеПДн Тогда
|
||||
РассчитатьДатуСкрытияПДнСубъектовДавшихСогласие(ДнейДоСкрытияПДн);
|
||||
|
||||
Если Не ПересчитанаДатаСкрытияПДнСубъектов Тогда
|
||||
РассчитатьДатуСкрытияПДнСубъектовДавшихСогласие(ДнейДоСкрытияПДн);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
ОчиститьСрокСкрытияПерсональныхДанныхСубъектов();
|
||||
КонецЕсли;
|
||||
@@ -472,6 +481,115 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Определяет наличие скрытых персональных данных в объекте. В качестве объекта может быть передан и сам субъект.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект, ДокументОбъект, РегистрСведенийНаборЗаписей - проверяемый объект. Также
|
||||
// в качестве значения параметра могут быть указаны наборы записей других регистров
|
||||
// или значения типа СправочникСсылка, ДокументСсылка.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - признак наличия скрытых персональных данных.
|
||||
//
|
||||
Функция ЭтоОбъектСоСкрытымиПерсональнымиДанными(Знач Объект) Экспорт
|
||||
|
||||
Если Не ИспользоватьСкрытиеПерсональныхДанныхСубъектов() Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ТипЗначенияОбъекта = ТипЗнч(Объект);
|
||||
ТипыСубъектов = ЗащитаПерсональныхДанныхПовтИсп.ТипыСубъектов();
|
||||
|
||||
Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗначенияОбъекта)
|
||||
ИЛИ Документы.ТипВсеСсылки().СодержитТип(ТипЗначенияОбъекта) Тогда
|
||||
|
||||
Если ТипыСубъектов.Найти(ТипЗначенияОбъекта) <> Неопределено Тогда
|
||||
Возврат ЕстьСубъектыСоСкрытымиПерсональнымиДанными(Объект);
|
||||
Иначе
|
||||
Объект = Объект.ПолучитьОбъект();
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Объект.ДополнительныеСвойства.Свойство("СкрытиеКонфиденциальнойИнформации") Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектМетаданных = Объект.Метаданные();
|
||||
ПолноеИмяИсточника = ОбъектМетаданных.ПолноеИмя();
|
||||
|
||||
ИменаИсточников = ЗащитаПерсональныхДанныхПовтИсп.ИменаИсточниковПерсональныхДанных();
|
||||
Если ИменаИсточников.Найти(ПолноеИмяИсточника) <> Неопределено Тогда
|
||||
|
||||
ПолныеИменаРеквизитов = ЗащитаПерсональныхДанныхПовтИсп.ИменаРеквизитовИсточникаСодержащихСубъект(ПолноеИмяИсточника);
|
||||
Если ЗначениеЗаполнено(ПолныеИменаРеквизитов) Тогда
|
||||
|
||||
Если ОбщегоНазначения.ЭтоРегистрСведений(ОбъектМетаданных) Тогда
|
||||
|
||||
Субъекты = Новый Массив;
|
||||
РежимЗаписиНезависимый = (ОбъектМетаданных.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый);
|
||||
|
||||
Если РежимЗаписиНезависимый Тогда
|
||||
|
||||
Субъект = Объект.Отбор[ПолныеИменаРеквизитов[0]].Значение;
|
||||
Если ЗначениеЗаполнено(Субъект) Тогда
|
||||
Субъекты.Добавить(Субъект);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Субъекты) Тогда
|
||||
Субъекты = Объект.ВыгрузитьКолонку(ПолныеИменаРеквизитов[0]);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЕстьСубъектыСоСкрытымиПерсональнымиДанными(Субъекты);
|
||||
|
||||
ИначеЕсли ОбщегоНазначения.ЭтоРегистрРасчета(ОбъектМетаданных)
|
||||
Или ОбщегоНазначения.ЭтоРегистрНакопления(ОбъектМетаданных) Тогда
|
||||
|
||||
Субъекты = Объект.ВыгрузитьКолонку(ПолныеИменаРеквизитов[0]);
|
||||
Возврат ЕстьСубъектыСоСкрытымиПерсональнымиДанными(Субъекты);
|
||||
|
||||
Иначе
|
||||
|
||||
Возврат ЕстьСкрытыеПерсональныеДанные(Объект, ПолныеИменаРеквизитов);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область ОбменДанными
|
||||
|
||||
// Пересчитывает даты скрытия персональных данных субъектов по основаниям, полученным в ходе обмена
|
||||
// из записей регистра сведений СогласияНаОбработкуПерсональныхДанных.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - ПланОбменаОбъект - узел плана обмена, для которого выполнялось получение данных.
|
||||
//
|
||||
Процедура ПослеЗагрузкиДанных(Объект) Экспорт
|
||||
|
||||
Если Не ИспользоватьСкрытиеПерсональныхДанныхСубъектов() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не Объект.ДополнительныеСвойства.Свойство("ОснованияСкрытияПерсональныхДанных") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Объект.ДополнительныеСвойства.ОснованияСкрытияПерсональныхДанных.Количество() > 0 Тогда
|
||||
РассчитатьДатуСкрытияПерсональныхДанныхПоОснованиям(Объект.ДополнительныеСвойства.ОснованияСкрытияПерсональныхДанных);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции для встраивания подсистемы в формы объектов конфигурации.
|
||||
|
||||
@@ -495,7 +613,7 @@
|
||||
Список = Форма[СписокФормы.ПутьКДанным];
|
||||
ИмяСпискаФормы = СписокФормы.Имя;
|
||||
|
||||
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСкрытиеПерсональныхДанныхСубъектов") Тогда
|
||||
Если Не ИспользоватьСкрытиеПерсональныхДанныхСубъектов() Тогда
|
||||
Список.Параметры.УстановитьЗначениеПараметра("ПоказыватьСоСкрытымиПДн", Ложь);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -550,9 +668,7 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ДнейДоСкрытия = Константы.ДнейДоСкрытияПерсональныхДанныхСубъектов.Получить();
|
||||
ДнейДоСкрытия = ДнейДоСкрытияПерсональныхДанныхСубъектов();
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = ТекстЗапросаСубъектыДляСкрытияПерсональныхДанных(Истина) + "
|
||||
@@ -563,11 +679,8 @@
|
||||
| Субъекты.Субъект КАК Субъект
|
||||
|ИЗ
|
||||
| ВТСубъектыДляСкрытия КАК Субъекты
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СубъектыДляСкрытияПерсональныхДанных КАК СубъектыДляСкрытияПДн
|
||||
| ПО СубъектыДляСкрытияПДн.Субъект = Субъекты.Субъект
|
||||
|ГДЕ
|
||||
| Субъекты.Субъект В(&Субъекты)
|
||||
| И СубъектыДляСкрытияПДн.Субъект ЕСТЬ NULL
|
||||
|
|
||||
|ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
@@ -585,7 +698,10 @@
|
||||
Запрос.УстановитьПараметр("ПустаяДата", '00010101');
|
||||
Запрос.УстановитьПараметр("РасчетнаяДата", ТекущаяДата + ДнейДоСкрытия * 86400);
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
СтрокаСписка = Строки[Выборка.Субъект];
|
||||
СтрокаСписка.Данные["ОтсутствуетСогласие"] = 1;
|
||||
@@ -719,6 +835,86 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбменДаннымиСобытия.ПриОтправкеДанных.
|
||||
Процедура ПриОтправкеДанных(ЭлементДанных, ОтправкаЭлемента, Получатель, Знач СозданиеНачальногоОбраза) Экспорт
|
||||
|
||||
Если Не СозданиеНачальногоОбраза
|
||||
Или Не ИспользоватьСкрытиеПерсональныхДанныхСубъектов() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
УзлыРИБ = СтандартныеПодсистемыПовтИсп.УзлыРИБ();
|
||||
Если УзлыРИБ.НайтиПоЗначению(Получатель) <> Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоОбъектСоСкрытымиПерсональнымиДанными(ЭлементДанных) Тогда
|
||||
ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриПолученииДанныхОтГлавного.
|
||||
Процедура ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель) Экспорт
|
||||
|
||||
// Стандартная обработка не переопределяется.
|
||||
Если ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ИспользоватьСкрытиеПерсональныхДанныхСубъектов() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(ЭлементДанных) = Тип("РегистрСведенийНаборЗаписей.СубъектыДляСкрытияПерсональныхДанных") Тогда
|
||||
|
||||
Если ПланыОбмена.ИзменениеЗарегистрировано(Отправитель.Ссылка, ЭлементДанных)
|
||||
И ЕстьСубъектыСоСкрытымиПерсональнымиДанными(ЭлементДанных.Отбор.Субъект.Значение) Тогда
|
||||
|
||||
ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
ПроверитьВозможностьПолученияЭлементаДанных(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриПолученииДанныхОтПодчиненного.
|
||||
Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель) Экспорт
|
||||
|
||||
// Стандартная обработка не переопределяется.
|
||||
Если ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ИспользоватьСкрытиеПерсональныхДанныхСубъектов() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(ЭлементДанных) = Тип("РегистрСведенийНаборЗаписей.СубъектыДляСкрытияПерсональныхДанных") Тогда
|
||||
|
||||
Если ЭлементДанных.Количество() > 0 И ЭлементДанных[0].Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеВыполнено Тогда
|
||||
ПолучениеЭлемента = ПолучениеЭлементаДанных.Принять;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ТипЗнч(ЭлементДанных) = Тип("РегистрСведенийНаборЗаписей.СогласияНаОбработкуПерсональныхДанных") Тогда
|
||||
|
||||
Регистратор = ЭлементДанных.Отбор.Регистратор.Значение;
|
||||
|
||||
Если Не Отправитель.ДополнительныеСвойства.Свойство("ОснованияСкрытияПерсональныхДанных") Тогда
|
||||
Отправитель.ДополнительныеСвойства.Вставить("ОснованияСкрытияПерсональныхДанных", Новый Массив);
|
||||
КонецЕсли;
|
||||
|
||||
Если Отправитель.ДополнительныеСвойства.ОснованияСкрытияПерсональныхДанных.Найти(Регистратор) = Неопределено Тогда
|
||||
Отправитель.ДополнительныеСвойства.ОснованияСкрытияПерсональныхДанных.Добавить(Регистратор);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.
|
||||
Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт
|
||||
|
||||
@@ -737,7 +933,7 @@
|
||||
//
|
||||
Функция ПропуститьРегистрациюОбъекта(ИмяПланаОбмена, Объект) Экспорт
|
||||
|
||||
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСкрытиеПерсональныхДанныхСубъектов") Тогда
|
||||
Если Не ИспользоватьСкрытиеПерсональныхДанныхСубъектов() Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -754,31 +950,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. ОбменДаннымиСобытия.ПриОтправкеДанных.
|
||||
Процедура ПриОтправкеДанных(ЭлементДанных, ОтправкаЭлемента, Получатель, Знач СозданиеНачальногоОбраза) Экспорт
|
||||
|
||||
Если Не СозданиеНачальногоОбраза
|
||||
Или Не ПолучитьФункциональнуюОпцию("ИспользоватьСкрытиеПерсональныхДанныхСубъектов") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда
|
||||
|
||||
МодульОбменДаннымиПовтИсп = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиПовтИсп");
|
||||
|
||||
ИмяПланаОбмена = ЗащитаПерсональныхДанныхПовтИсп.ПолучитьИмяПланаОбмена(Получатель);
|
||||
Если МодульОбменДаннымиПовтИсп.ЭтоПланОбменаРаспределеннойИнформационнойБазы(ИмяПланаОбмена) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоОбъектСоСкрытымиПерсональнымиДанными(ЭлементДанных) Тогда
|
||||
ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@@ -840,6 +1011,82 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиПодписокНаСобытия
|
||||
|
||||
Процедура ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
|
||||
|
||||
// ОбменДанными.Загрузка проверяется внутри вызова.
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда
|
||||
МодульДатыЗапретаИзменения = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзменения");
|
||||
МодульДатыЗапретаИзменения.ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента(Источник,
|
||||
Отказ, РежимЗаписи, РежимПроведения);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьДатуЗапретаИзмененияПередУдалением(Источник, Отказ) Экспорт
|
||||
|
||||
// ОбменДанными.Загрузка проверяется внутри вызова.
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда
|
||||
МодульДатыЗапретаИзменения = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзменения");
|
||||
МодульДатыЗапретаИзменения.ПроверитьДатуЗапретаИзмененияПередУдалением(Источник, Отказ);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Функция ИспользоватьСкрытиеПерсональныхДанныхСубъектов() Экспорт
|
||||
|
||||
Возврат ПолучитьФункциональнуюОпцию("ИспользоватьСкрытиеПерсональныхДанныхСубъектов");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДнейДоСкрытияПерсональныхДанныхСубъектов() Экспорт
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Возврат Константы.ДнейДоСкрытияПерсональныхДанныхСубъектов.Получить();
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПроверитьВозможностьПолученияЭлементаДанных(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель)
|
||||
|
||||
УзлыРИБ = СтандартныеПодсистемыПовтИсп.УзлыРИБ();
|
||||
ЭтоУзелРИБ = УзлыРИБ.НайтиПоЗначению(Отправитель.Ссылка) <> Неопределено;
|
||||
|
||||
Если ЭтоУзелРИБ И Не ПланыОбмена.ИзменениеЗарегистрировано(Отправитель.Ссылка, ЭлементДанных) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоОбъектСоСкрытымиПерсональнымиДанными(ЭлементДанных) Тогда
|
||||
|
||||
ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать;
|
||||
|
||||
Если ЭтоУзелРИБ Тогда
|
||||
ОтправкаНазад = Истина;
|
||||
Иначе
|
||||
|
||||
ОписаниеОшибки = НСтр("ru = 'Загрузка данных по субъекту (%1) со скрытыми персональными данными.'");
|
||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеОшибки, Строка(ЭлементДанных));
|
||||
|
||||
ЗаписьЖурналаРегистрации(
|
||||
НСтр("ru = 'Защита персональных данных.Изменение скрытых персональных данных'",
|
||||
ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка,
|
||||
,
|
||||
,
|
||||
ОписаниеОшибки,
|
||||
РежимТранзакцииЗаписиЖурналаРегистрации.Независимая);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ТекстЗапросаСубъектыДляСкрытияПерсональныхДанных(ВоВременнуюТаблицу = Ложь)
|
||||
|
||||
ТекстЗапроса = "";
|
||||
@@ -873,29 +1120,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
|
||||
|
||||
// ОбменДанными.Загрузка проверяется внутри вызова.
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда
|
||||
МодульДатыЗапретаИзменения = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзменения");
|
||||
МодульДатыЗапретаИзменения.ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента(Источник,
|
||||
Отказ, РежимЗаписи, РежимПроведения);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьДатуЗапретаИзмененияПередУдалением(Источник, Отказ) Экспорт
|
||||
|
||||
// ОбменДанными.Загрузка проверяется внутри вызова.
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда
|
||||
МодульДатыЗапретаИзменения = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзменения");
|
||||
МодульДатыЗапретаИзменения.ПроверитьДатуЗапретаИзмененияПередУдалением(Источник, Отказ);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СведенияОПерсональныхДанных() Экспорт
|
||||
|
||||
// Таблица сведений о персональных данных.
|
||||
@@ -1258,71 +1482,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Определяет наличие скрытых персональных данных в объекте.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект, ДокументОбъект, РегистрСведенийНаборЗаписей и т.п. - проверяемый объект.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - признак наличия скрытых персональных данных.
|
||||
//
|
||||
Функция ЭтоОбъектСоСкрытымиПерсональнымиДанными(Объект)
|
||||
|
||||
Если Объект.ДополнительныеСвойства.Свойство("СкрытиеКонфиденциальнойИнформации") Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектМетаданных = Объект.Метаданные();
|
||||
ПолноеИмяИсточника = ОбъектМетаданных.ПолноеИмя();
|
||||
|
||||
ИменаИсточников = ЗащитаПерсональныхДанныхПовтИсп.ИменаИсточниковПерсональныхДанных();
|
||||
Если ИменаИсточников.Найти(ПолноеИмяИсточника) <> Неопределено Тогда
|
||||
|
||||
ПолныеИменаРеквизитов = ЗащитаПерсональныхДанныхПовтИсп.ИменаРеквизитовИсточникаСодержащихСубъект(ПолноеИмяИсточника);
|
||||
Если ЗначениеЗаполнено(ПолныеИменаРеквизитов) Тогда
|
||||
|
||||
Если ОбщегоНазначения.ЭтоРегистрСведений(ОбъектМетаданных) Тогда
|
||||
|
||||
Субъекты = Новый Массив;
|
||||
РежимЗаписиНезависимый = (ОбъектМетаданных.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый);
|
||||
|
||||
Если РежимЗаписиНезависимый Тогда
|
||||
|
||||
Субъект = Объект.Отбор[ПолныеИменаРеквизитов[0]].Значение;
|
||||
Если ЗначениеЗаполнено(Субъект) Тогда
|
||||
Субъекты.Добавить(Субъект);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Субъекты) Тогда
|
||||
Субъекты = Объект.ВыгрузитьКолонку(ПолныеИменаРеквизитов[0]);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЕстьСубъектыСоСкрытымиПерсональнымиДанными(Субъекты);
|
||||
|
||||
ИначеЕсли ОбщегоНазначения.ЭтоРегистрРасчета(ОбъектМетаданных)
|
||||
Или ОбщегоНазначения.ЭтоРегистрНакопления(ОбъектМетаданных) Тогда
|
||||
|
||||
Субъекты = Объект.ВыгрузитьКолонку(ПолныеИменаРеквизитов[0]);
|
||||
Возврат ЕстьСубъектыСоСкрытымиПерсональнымиДанными(Субъекты);
|
||||
|
||||
Иначе
|
||||
|
||||
Возврат ЕстьСкрытыеПерсональныеДанные(Объект, ПолныеИменаРеквизитов);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Определяет факт наличия среди переданных в параметре субъектов тех, по которым выполнялось скрытие персональных данных.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -1335,8 +1494,7 @@
|
||||
|
||||
ЕстьСкрытые = Ложь;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Субъекты)
|
||||
Или Не ПолучитьФункциональнуюОпцию("ИспользоватьСкрытиеПерсональныхДанныхСубъектов") Тогда
|
||||
Если Не ЗначениеЗаполнено(Субъекты) Тогда
|
||||
Возврат ЕстьСкрытые;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1344,28 +1502,19 @@
|
||||
Субъекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Субъекты);
|
||||
КонецЕсли;
|
||||
|
||||
ТипыСубъектов = ЗащитаПерсональныхДанныхПовтИсп.ТипыСубъектов();
|
||||
Если ТипыСубъектов.Найти(ТипЗнч(Субъекты[0])) = Неопределено Тогда
|
||||
Возврат ЕстьСкрытые;
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиСубъектов = ПрочитатьНастройкиСкрытияСубъектов(Субъекты);
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиСубъектов) Тогда
|
||||
Для Каждого СубъектИНастройки Из НастройкиСубъектов Цикл
|
||||
|
||||
Для Каждого СубъектИНастройки Из НастройкиСубъектов Цикл
|
||||
НастройкиСубъекта = СубъектИНастройки.Значение;
|
||||
Если НастройкиСубъекта.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеВыполнено Тогда
|
||||
|
||||
НастройкиСубъекта = СубъектИНастройки.Значение;
|
||||
Если НастройкиСубъекта.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеВыполнено Тогда
|
||||
|
||||
ЕстьСкрытые = Истина;
|
||||
Прервать;
|
||||
|
||||
КонецЕсли;
|
||||
ЕстьСкрытые = Истина;
|
||||
Прервать;
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ЕстьСкрытые;
|
||||
|
||||
@@ -1386,11 +1535,6 @@
|
||||
Функция ЕстьСкрытыеПерсональныеДанные(Объект, ПолныеИменаРеквизитов)
|
||||
|
||||
ЕстьСкрытые = Ложь;
|
||||
|
||||
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСкрытиеПерсональныхДанныхСубъектов") Тогда
|
||||
Возврат ЕстьСкрытые;
|
||||
КонецЕсли;
|
||||
|
||||
ЧастиИменРеквизитов = Новый Массив;
|
||||
|
||||
Для Каждого ПолноеИмяРеквизита Из ПолныеИменаРеквизитов Цикл
|
||||
@@ -1448,16 +1592,15 @@
|
||||
//
|
||||
Функция ПрочитатьНастройкиСкрытияСубъектов(Знач Субъекты) Экспорт
|
||||
|
||||
НастройкиСубъектов = Новый Соответствие;
|
||||
Если Не ЗначениеЗаполнено(Субъекты) Тогда
|
||||
Возврат Неопределено;
|
||||
Возврат НастройкиСубъектов;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если ТипЗнч(Субъекты) <> Тип("Массив") Тогда
|
||||
Субъекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Субъекты);
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиСубъектов = Новый Соответствие;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("Субъекты", Субъекты);
|
||||
|
||||
@@ -1472,19 +1615,21 @@
|
||||
|ГДЕ
|
||||
| СубъектыДляСкрытияПерсональныхДанных.Субъект В(&Субъекты)";
|
||||
|
||||
Результат = Запрос.Выполнить();
|
||||
Если Не Результат.Пустой() Тогда
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
НастройкиСкрытия = НастройкиСкрытияСубъектовПоУмолчанию();
|
||||
|
||||
Для Каждого Субъект Из Субъекты Цикл
|
||||
|
||||
Выборка = Результат.Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
|
||||
НастройкиСкрытия = НастройкиСкрытияСубъектовПоУмолчанию();
|
||||
ЗаполнитьЗначенияСвойств(НастройкиСкрытия, Выборка);
|
||||
НастройкиСубъектов.Вставить(Выборка.Субъект, НастройкиСкрытия);
|
||||
|
||||
КонецЦикла;
|
||||
НастройкиСкрытияСубъекта = ОбщегоНазначенияКлиентСервер.СкопироватьСтруктуру(НастройкиСкрытия);
|
||||
|
||||
КонецЕсли;
|
||||
Выборка.Сбросить();
|
||||
Если Выборка.НайтиСледующий(Новый Структура("Субъект", Субъект)) Тогда
|
||||
ЗаполнитьЗначенияСвойств(НастройкиСкрытияСубъекта, Выборка);
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиСубъектов.Вставить(Субъект, НастройкиСкрытияСубъекта);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат НастройкиСубъектов;
|
||||
|
||||
@@ -1539,9 +1684,7 @@
|
||||
//
|
||||
Функция НастройкиСкрытияСубъектовПоУмолчанию()
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ДнейДоСкрытия = Константы.ДнейДоСкрытияПерсональныхДанныхСубъектов.Получить();
|
||||
ДнейДоСкрытия = ДнейДоСкрытияПерсональныхДанныхСубъектов();
|
||||
ДатаСкрытия = НачалоДня(ТекущаяДатаСеанса()) + ДнейДоСкрытия * 86400;
|
||||
|
||||
НастройкиСкрытия = Новый Структура;
|
||||
@@ -1571,7 +1714,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ДнейДоСкрытия = Неопределено Тогда
|
||||
ДнейДоСкрытия = Константы.ДнейДоСкрытияПерсональныхДанныхСубъектов.Получить();
|
||||
ДнейДоСкрытия = ДнейДоСкрытияПерсональныхДанныхСубъектов();
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СрокДействияСогласия) Тогда
|
||||
@@ -1586,18 +1729,56 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура РассчитатьДатуСкрытияПерсональныхДанныхСубъекта(Субъект) Экспорт
|
||||
Процедура РассчитатьДатуСкрытияПерсональныхДанныхПоОснованиям(Основания) Экспорт
|
||||
|
||||
НастройкиСубъектов = ПрочитатьНастройкиСкрытияСубъектов(Субъект);
|
||||
НастройкиСкрытия = НастройкиСубъектов.Получить(Субъект);
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиСкрытия)
|
||||
И (НастройкиСкрытия.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеОтменено
|
||||
Или НастройкиСкрытия.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеВыполнено) Тогда
|
||||
Возврат;
|
||||
Если ТипЗнч(Основания) <> Тип("Массив") Тогда
|
||||
Основания = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Основания);
|
||||
КонецЕсли;
|
||||
|
||||
ОбновитьНастройкиСкрытияСубъекта(Субъект);
|
||||
ПрежниеСубъекты = Новый Массив;
|
||||
|
||||
Запрос = Новый Запрос();
|
||||
Запрос.УстановитьПараметр("Основания", Основания);
|
||||
|
||||
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||||
| СубъектыДляСкрытияПерсональныхДанных.Субъект КАК Субъект
|
||||
|ИЗ
|
||||
| РегистрСведений.СубъектыДляСкрытияПерсональныхДанных КАК СубъектыДляСкрытияПерсональныхДанных
|
||||
|ГДЕ
|
||||
| СубъектыДляСкрытияПерсональныхДанных.Основание В (&Основания)";
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
|
||||
ОбновитьНастройкиСкрытияСубъекта(Выборка.Субъект);
|
||||
ПрежниеСубъекты.Добавить(Выборка.Субъект);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
СубъектыОснований = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Основания, "Субъект");
|
||||
ТекущиеСубъекты = ОбщегоНазначения.ВыгрузитьКолонку(СубъектыОснований, "Значение", Истина);
|
||||
|
||||
ОставшиесяСубъекты = ОбщегоНазначенияКлиентСервер.РазностьМассивов(ТекущиеСубъекты, ПрежниеСубъекты);
|
||||
НастройкиСубъектов = ПрочитатьНастройкиСкрытияСубъектов(ОставшиесяСубъекты);
|
||||
|
||||
Для Каждого СубъектИНастройки Из НастройкиСубъектов Цикл
|
||||
|
||||
Субъект = СубъектИНастройки.Ключ;
|
||||
НастройкиСубъекта = СубъектИНастройки.Значение;
|
||||
|
||||
Если НастройкиСубъекта.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеОтменено
|
||||
Или НастройкиСубъекта.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеВыполнено Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
Иначе
|
||||
|
||||
ОбновитьНастройкиСкрытияСубъекта(Субъект);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1945,4 +2126,4 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
#КонецОбласти
|
||||
@@ -38,3 +38,109 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПараметрыВопросаПодтвержденияСкрытия(Субъекты) Экспорт
|
||||
|
||||
ТекстВопроса = "";
|
||||
ПараметрыВопроса = Новый Структура;
|
||||
|
||||
СкрываемыеСубъекты = Новый Массив;
|
||||
СкрываемыеСубъектыБезСогласия = Новый Массив;
|
||||
СкрываемыеСубъектыССогласием = Новый Массив;
|
||||
|
||||
ДатаСеанса = НачалоДня(ТекущаяДатаСеанса());
|
||||
ПустаяДата = Дата(1, 1, 1);
|
||||
|
||||
ДнейДоСкрытия = ЗащитаПерсональныхДанных.ДнейДоСкрытияПерсональныхДанныхСубъектов();
|
||||
НастройкиСубъектов = ЗащитаПерсональныхДанных.ПрочитатьНастройкиСкрытияСубъектов(Субъекты);
|
||||
|
||||
Для Каждого НастройкиСкрытия Из НастройкиСубъектов Цикл
|
||||
|
||||
Субъект = НастройкиСкрытия.Ключ;
|
||||
Настройки = НастройкиСкрытия.Значение;
|
||||
|
||||
Если Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеОтменено
|
||||
Или Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеВыполнено Тогда
|
||||
|
||||
Если Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеОтменено Тогда
|
||||
ТекстПричины = НСтр("ru = 'Скрытие ранее отменено по причине: %1.'");
|
||||
ТекстПричины = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстПричины, Настройки.ПричинаОтменыСкрытия);
|
||||
Иначе
|
||||
ТекстПричины = НСтр("ru = 'Скрытие уже выполнено.'");
|
||||
КонецЕсли;
|
||||
|
||||
ТекстСообщения = НСтр("ru = 'Персональные данные субъекта «%1» не могут быть скрыты.
|
||||
|%2'");
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Субъект, ТекстПричины);
|
||||
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
|
||||
|
||||
Продолжить;
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(Настройки.Основание)
|
||||
И (Настройки.ДатаСкрытия = ПустаяДата Или Настройки.ДатаСкрытия - ДнейДоСкрытия * 86400 > ДатаСеанса) Тогда
|
||||
СкрываемыеСубъектыССогласием.Добавить(Субъект);
|
||||
Иначе
|
||||
СкрываемыеСубъектыБезСогласия.Добавить(Субъект);
|
||||
КонецЕсли;
|
||||
|
||||
СкрываемыеСубъекты.Добавить(Субъект);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ЗначениеЗаполнено(СкрываемыеСубъектыБезСогласия) Тогда
|
||||
|
||||
Заголовок = НСтр("ru = 'Будут скрыты персональные данные субъектов:'");
|
||||
ТекстВопроса = ПредставлениеСпискаСубъектов(Заголовок, СкрываемыеСубъектыБезСогласия);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СкрываемыеСубъектыССогласием) Тогда
|
||||
|
||||
Заголовок = НСтр("ru = 'Несмотря на полученное согласие на обработку ПДн, будут скрыты персональные данные субъектов:'");
|
||||
ТекстВопроса = ?(ЗначениеЗаполнено(ТекстВопроса), ТекстВопроса + Символы.ПС, "") + ПредставлениеСпискаСубъектов(Заголовок, СкрываемыеСубъектыССогласием);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ТекстВопроса) Тогда
|
||||
ТекстВопроса = ТекстВопроса + Символы.ПС + НСтр("ru = 'Восстановление данных будет невозможно. Продолжить?'");
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыВопроса.Вставить("Субъекты", СкрываемыеСубъекты);
|
||||
ПараметрыВопроса.Вставить("ТекстВопроса", ТекстВопроса);
|
||||
|
||||
Возврат ПараметрыВопроса;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПредставлениеСпискаСубъектов(Заголовок, Субъекты)
|
||||
|
||||
ПредставлениеСписка = "";
|
||||
ПредставлениеСписка = Заголовок + Символы.ПС;
|
||||
|
||||
Если Субъекты.Количество() = 1 Тогда
|
||||
ПредставлениеСписка = СтрЗаменить(ПредставлениеСписка, НСтр("ru = 'субъектов'"), НСтр("ru = 'субъекта'"));
|
||||
КонецЕсли;
|
||||
|
||||
Номер = 1;
|
||||
Для Каждого Субъект Из Субъекты Цикл
|
||||
|
||||
ПредставлениеСписка = ПредставлениеСписка + ?(Номер <> 1, ", ", "");
|
||||
ПредставлениеСписка = ПредставлениеСписка + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1'"), Субъект);
|
||||
|
||||
Номер = Номер + 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ПредставлениеСписка + "." + Символы.ПС;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура СкрытьПерсональныеДанныеСубъектов(Субъекты, СообщатьОбИсключениях = Ложь) Экспорт
|
||||
|
||||
ЗащитаПерсональныхДанных.СкрытьПерсональныеДанныеСубъектов(Субъекты, СообщатьОбИсключениях);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -238,10 +238,4 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьИмяПланаОбмена(УзелПланаОбмена) Экспорт
|
||||
|
||||
Возврат УзелПланаОбмена.Метаданные().Имя;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -293,6 +293,11 @@
|
||||
МодульДополнительныеОтчетыИОбработки.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗащитаПерсональныхДанных") Тогда
|
||||
МодульЗащитаПерсональныхДанных = ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных");
|
||||
МодульЗащитаПерсональныхДанных.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
|
||||
КонецЕсли;
|
||||
|
||||
ПользователиСлужебный.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда
|
||||
@@ -337,6 +342,11 @@
|
||||
МодульДополнительныеОтчетыИОбработки.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗащитаПерсональныхДанных") Тогда
|
||||
МодульЗащитаПерсональныхДанных = ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных");
|
||||
МодульЗащитаПерсональныхДанных.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
|
||||
КонецЕсли;
|
||||
|
||||
ПользователиСлужебный.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
// * ДополнительныеПараметры - ХранилищеЗначений - Дополнительная информация о проверке для программного
|
||||
// использования.
|
||||
// * Комментарий - Строка - комментарий к проверке.
|
||||
// * Отключена - Булево - если Истина, то проверка не будет выполняться в фоне по расписанию.
|
||||
//
|
||||
// Пример:
|
||||
// 1) Добавление проверки
|
||||
@@ -226,6 +227,6 @@
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|по значению одноименного ресурса предыдущей версии.'");
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "2.4.6.91";
|
||||
Обработчик.Версия = "2.4.6.113";
|
||||
Обработчик.Идентификатор = Новый УникальныйИдентификатор("fcd45d27-8e5d-45dd-9648-deff60825ae1");
|
||||
Обработчик.Процедура = "Справочники.ПравилаПроверкиУчета.ОбработатьДанныеДляПереходаНаНовуюВерсию";
|
||||
Обработчик.РежимВыполнения = "Отложенно";
|
||||
@@ -40,8 +40,7 @@
|
||||
Обработчик.БлокируемыеОбъекты = "Справочник.ПравилаПроверкиУчета";
|
||||
Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика();
|
||||
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
|
||||
Обработчик.Комментарий = НСтр("ru = 'Отключение автоматического запуска проверок ссылочной целостности и
|
||||
|заполненности обязательных реквизитов в подсистеме контроля ведения учета.'");
|
||||
Обработчик.Комментарий = НСтр("ru = 'Отключение автоматического запуска системных проверок в подсистеме контроля ведения учета.'");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -195,6 +194,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
КэшБитыхСсылок = Новый Соответствие;
|
||||
ПараметрыПроверки.Вставить("КэшСсылок", Новый Соответствие);
|
||||
|
||||
Для Каждого ВидМетаданных Из СсылочныеВидыОбъектовМетаданных() Цикл
|
||||
Для Каждого ОбъектМетаданных Из ВидМетаданных Цикл
|
||||
@@ -207,6 +207,7 @@
|
||||
НайтиБитыеСсылкиВРегистрах(ОбъектМетаданных, ПараметрыПроверки, КэшБитыхСсылок);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
ПараметрыПроверки.Удалить("КэшСсылок");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -573,11 +574,22 @@
|
||||
|
||||
ОчиститьРезультатыПредыдущихПроверок(ВыполняемаяПроверка, ПараметрыПроверки.ПараметрыВыполненияПроверки);
|
||||
|
||||
|
||||
МодульОценкаПроизводительности = Неопределено;
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
|
||||
МодульОценкаПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности");
|
||||
ОписаниеЗамера = МодульОценкаПроизводительности.НачатьЗамерДлительнойОперации(ПараметрыПроверки.Идентификатор);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОбработчика = Новый Массив;
|
||||
ПараметрыОбработчика.Добавить(ВыполняемаяПроверка);
|
||||
ПараметрыОбработчика.Добавить(ПараметрыПроверки);
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(СтрокаПроверки.ОбработчикПроверки, ПараметрыОбработчика);
|
||||
|
||||
Если МодульОценкаПроизводительности <> Неопределено Тогда
|
||||
МодульОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, 0);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обработчик регламентного задания "ПроверкаВеденияУчета". Предназначен для обработки
|
||||
@@ -1297,11 +1309,7 @@
|
||||
ПроверкаОбъект.КонтекстПроверокВеденияУчета = Проверка.КонтекстПроверокВеденияУчета;
|
||||
КонецЕсли;
|
||||
|
||||
Если Проверка.Идентификатор = "СтандартныеПодсистемы.ПроверкаСсылочнойЦелостности" Или Проверка.Идентификатор = "СтандартныеПодсистемы.ПроверкаНезаполненныхОбязательныхРеквизитов" Тогда
|
||||
ПроверкаОбъект.Использование = Ложь;
|
||||
Иначе
|
||||
ПроверкаОбъект.Использование = Истина;
|
||||
КонецЕсли;
|
||||
ПроверкаОбъект.Использование = Не Проверка.Отключена;
|
||||
|
||||
Если ЗначениеЗаполнено(Проверка.ЛимитПроблем) Тогда
|
||||
ПроверкаОбъект.ЛимитПроблем = Проверка.ЛимитПроблем;
|
||||
@@ -1503,6 +1511,8 @@
|
||||
|
||||
Процедура НайтиБитыеСсылки(ОбъектМетаданных, ПараметрыПроверки, КэшБитыхСсылок)
|
||||
|
||||
РазмерКэшаПроверенныхСсылок = РазмерКэшаПроверенныхСсылок();
|
||||
|
||||
Реквизиты = ОбъектМетаданных.Реквизиты;
|
||||
РеквизитыОбъекта = СсылочныеРеквизитыОбъекта(ОбъектМетаданных);
|
||||
РеквизитыТабличныхЧастейОбъекта = СсылочныеРеквизитыТабличныхЧастейОбъекта(ОбъектМетаданных);
|
||||
@@ -1548,6 +1558,10 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыПроверки.КэшСсылок[ТекущаяСсылка] <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ОбнаруженаБитаяСсылка = КэшБитыхСсылок.Получить(ТекущаяСсылка) <> Неопределено;
|
||||
Если Не ОбнаруженаБитаяСсылка И Не ОбщегоНазначения.СсылкаСуществует(ТекущаяСсылка) Тогда
|
||||
КэшБитыхСсылок.Вставить(ТекущаяСсылка, "");
|
||||
@@ -1559,6 +1573,11 @@
|
||||
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru='У объекта ""%1"" в реквизите ""%2"" указан несуществующий элемент: ""%3"".'"),
|
||||
СсылкаНаОбъект, СсылочныйРеквизит.Ключ, ТекущаяСсылка);
|
||||
Иначе
|
||||
Если ПараметрыПроверки.КэшСсылок.Количество() = РазмерКэшаПроверенныхСсылок Тогда
|
||||
ПараметрыПроверки.КэшСсылок.Очистить();
|
||||
КонецЕсли;
|
||||
ПараметрыПроверки.КэшСсылок.Вставить(ТекущаяСсылка, "");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
@@ -1594,6 +1613,11 @@
|
||||
НСтр("ru = 'У объекта ""%1"" в реквизите ""%2"" табличной части ""%3"" (строка № %4) указан несуществующий элемент: ""%5"".'"),
|
||||
СсылкаНаОбъект, ИмяРеквизитаТЧ, СтрЗаменить(РезультатЗапросаПоРеквизитамТЧ.Ключ, ИмяРеквизитаТЧ, ""),
|
||||
ТекущийНомерСтроки, ТекущаяСсылка);
|
||||
Иначе
|
||||
Если ПараметрыПроверки.КэшСсылок.Количество() = РазмерКэшаПроверенныхСсылок Тогда
|
||||
ПараметрыПроверки.КэшСсылок.Очистить();
|
||||
КонецЕсли;
|
||||
ПараметрыПроверки.КэшСсылок.Вставить(ТекущаяСсылка, "");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
@@ -1671,6 +1695,9 @@
|
||||
Для Каждого ТабличнаяЧасть Из ОбъектМетаданных.ТабличныеЧасти Цикл
|
||||
Для Каждого РеквизитТабличнойЧасти Из ТабличнаяЧасть.Реквизиты Цикл
|
||||
Если СодержитСсылочныйТип(РеквизитТабличнойЧасти) Тогда
|
||||
Если РеквизитТабличнойЧасти.Имя = "ТочкаМаршрута" Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Результат.Добавить(ТабличнаяЧасть.Имя + "." + РеквизитТабличнойЧасти.Имя);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
@@ -1717,6 +1744,7 @@
|
||||
|
||||
Процедура НайтиБитыеСсылкиВРегистрахНакопления(ОбъектМетаданных, ПараметрыПроверки, КэшБитыхСсылок)
|
||||
|
||||
РазмерКэшаПроверенныхСсылок = РазмерКэшаПроверенныхСсылок();
|
||||
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||
Измерения = ОбъектМетаданных.Измерения;
|
||||
Реквизиты = ОбъектМетаданных.Реквизиты;
|
||||
@@ -1789,6 +1817,10 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыПроверки.КэшСсылок[ТекущаяСсылка] <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если КэшБитыхСсылок.Получить(ТекущаяСсылка) <> Неопределено Тогда
|
||||
|
||||
УточнениеПроблемы = УточнениеПроблемы + ?(ЗначениеЗаполнено(УточнениеПроблемы), Символы.ПС, "")
|
||||
@@ -1800,14 +1832,17 @@
|
||||
Иначе
|
||||
|
||||
Если Не ОбщегоНазначения.СсылкаСуществует(ТекущаяСсылка) Тогда
|
||||
|
||||
УточнениеПроблемы = УточнениеПроблемы + ?(ЗначениеЗаполнено(УточнениеПроблемы), Символы.ПС, "")
|
||||
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='У регистра накопления ""%1"" в %2, записи №%3 по регистратору ""%4"" указан несуществующий элемент: ""%5"".'"),
|
||||
ОбъектМетаданных.Представление(), ПодчиненныйОбъект.ТипМетаданныхВТворительномПадеже,
|
||||
Формат(СтрокаРезультата.НомерСтроки, "ЧГ=0"), СтрокаРезультата["РегистраторРеквизитПредставление"],
|
||||
СтрокаРезультата[ПодчиненныйОбъект.ИмяМетаданных + ПодчиненныйОбъект.ТипМетаданныхВИменительномПадеже + "Представление"]);
|
||||
КэшБитыхСсылок.Вставить(ТекущаяСсылка, "");
|
||||
|
||||
Иначе
|
||||
Если ПараметрыПроверки.КэшСсылок.Количество() = РазмерКэшаПроверенныхСсылок Тогда
|
||||
ПараметрыПроверки.КэшСсылок.Очистить();
|
||||
КонецЕсли;
|
||||
ПараметрыПроверки.КэшСсылок.Вставить(ТекущаяСсылка, "");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
@@ -2227,6 +2262,7 @@
|
||||
|
||||
Процедура НайтиБитыеСсылкиВРегистрахБухгалтерии(ОбъектМетаданных, ПараметрыПроверки, КэшБитыхСсылок)
|
||||
|
||||
РазмерКэшаПроверенныхСсылок = РазмерКэшаПроверенныхСсылок();
|
||||
Измерения = ОбъектМетаданных.Измерения;
|
||||
Реквизиты = ОбъектМетаданных.Реквизиты;
|
||||
СтандартныеРеквизиты = ОбъектМетаданных.СтандартныеРеквизиты;
|
||||
@@ -2419,6 +2455,10 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыПроверки.КэшСсылок[ТекущаяСсылка] <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если КэшБитыхСсылок.Получить(ТекущаяСсылка) <> Неопределено Тогда
|
||||
|
||||
УточнениеПроблемы = УточнениеПроблемы + ?(ЗначениеЗаполнено(УточнениеПроблемы), Символы.ПС, "")
|
||||
@@ -2430,14 +2470,17 @@
|
||||
Иначе
|
||||
|
||||
Если Не ОбщегоНазначения.СсылкаСуществует(ТекущаяСсылка) Тогда
|
||||
|
||||
УточнениеПроблемы = УточнениеПроблемы + ?(ЗначениеЗаполнено(УточнениеПроблемы), Символы.ПС, "")
|
||||
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='У регистра бухгалтерии ""%1"" в %2, записи №%3 по регистратору ""%4"" указан несуществующий элемент: ""%5"".'"),
|
||||
ОбъектМетаданных.Представление(), ПодчиненныйОбъект.ТипМетаданныхВТворительномПадеже,
|
||||
Формат(СтрокаРезультата.НомерСтроки, "ЧГ=0"), СтрокаРезультата["РегистраторРеквизитПредставление"],
|
||||
СтрокаРезультата[ПодчиненныйОбъект.ИмяМетаданных + ПодчиненныйОбъект.ТипМетаданныхВИменительномПадеже + "Представление"]);
|
||||
КэшБитыхСсылок.Вставить(ТекущаяСсылка, "");
|
||||
|
||||
Иначе
|
||||
Если ПараметрыПроверки.КэшСсылок.Количество() = РазмерКэшаПроверенныхСсылок Тогда
|
||||
ПараметрыПроверки.КэшСсылок.Очистить();
|
||||
КонецЕсли;
|
||||
ПараметрыПроверки.КэшСсылок.Вставить(ТекущаяСсылка, "");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
@@ -2474,6 +2517,7 @@
|
||||
|
||||
Процедура НайтиБитыеСсылкиВРегистрахРасчета(ОбъектМетаданных, ПараметрыПроверки, КэшБитыхСсылок)
|
||||
|
||||
РазмерКэшаПроверенныхСсылок = РазмерКэшаПроверенныхСсылок();
|
||||
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||
Измерения = ОбъектМетаданных.Измерения;
|
||||
Реквизиты = ОбъектМетаданных.Реквизиты;
|
||||
@@ -2563,6 +2607,10 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыПроверки.КэшСсылок[ТекущаяСсылка] <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если КэшБитыхСсылок.Получить(ТекущаяСсылка) <> Неопределено Тогда
|
||||
|
||||
УточнениеПроблемы = УточнениеПроблемы + ?(ЗначениеЗаполнено(УточнениеПроблемы), Символы.ПС, "")
|
||||
@@ -2574,14 +2622,17 @@
|
||||
Иначе
|
||||
|
||||
Если Не ОбщегоНазначения.СсылкаСуществует(ТекущаяСсылка) Тогда
|
||||
|
||||
УточнениеПроблемы = УточнениеПроблемы + ?(ЗначениеЗаполнено(УточнениеПроблемы), Символы.ПС, "")
|
||||
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='У регистра расчета ""%1"" в %2, записи №%3 по регистратору ""%4"" указан несуществующий элемент: ""%5"".'"),
|
||||
ОбъектМетаданных.Представление(), ПодчиненныйОбъект.ТипМетаданныхВТворительномПадеже,
|
||||
Формат(СтрокаРезультата.НомерСтроки, "ЧГ=0"), СтрокаРезультата["РегистраторРеквизитПредставление"],
|
||||
СтрокаРезультата[ПодчиненныйОбъект.ИмяМетаданных + ПодчиненныйОбъект.ТипМетаданныхВИменительномПадеже + "Представление"]);
|
||||
КэшБитыхСсылок.Вставить(ТекущаяСсылка, "");
|
||||
|
||||
Иначе
|
||||
Если ПараметрыПроверки.КэшСсылок.Количество() = РазмерКэшаПроверенныхСсылок Тогда
|
||||
ПараметрыПроверки.КэшСсылок.Очистить();
|
||||
КонецЕсли;
|
||||
ПараметрыПроверки.КэшСсылок.Вставить(ТекущаяСсылка, "");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
@@ -2622,6 +2673,11 @@
|
||||
|
||||
Процедура НайтиНезаполненныеОбязательныеРеквизиты(ОбъектМетаданных, ПараметрыПроверки)
|
||||
|
||||
МодульОценкаПроизводительности = Неопределено;
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
|
||||
МодульОценкаПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности");
|
||||
КонецЕсли;
|
||||
|
||||
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||
Реквизиты = ОбъектМетаданных.Реквизиты;
|
||||
|
||||
@@ -2642,13 +2698,19 @@
|
||||
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
|
||||
ОграничениеПоДате = ПараметрыПроверки.ДатаНачалаПроверки;
|
||||
ОбщееКоличествоДанных = 0;
|
||||
ОграничениеПоДате = ПараметрыПроверки.ДатаНачалаПроверки;
|
||||
|
||||
Пока Истина Цикл
|
||||
|
||||
Если Результат.Количество() = 0 Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Если МодульОценкаПроизводительности <> Неопределено Тогда
|
||||
ОписаниеЗамера = МодульОценкаПроизводительности.НачатьЗамерДлительнойОперации(ПараметрыПроверки.Идентификатор + "." + ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого СтрокаРезультата Из Результат Цикл
|
||||
|
||||
СсылкаНаОбъект = СтрокаРезультата.ПроблемныйОбъект;
|
||||
@@ -2688,6 +2750,12 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ОбщееКоличествоДанных = ОбщееКоличествоДанных + Результат.Количество();
|
||||
|
||||
Если МодульОценкаПроизводительности <> Неопределено Тогда
|
||||
МодульОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, ОбщееКоличествоДанных);
|
||||
КонецЕсли;
|
||||
|
||||
Запрос.УстановитьПараметр("Ссылка", СтрокаРезультата.ПроблемныйОбъект);
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
|
||||
@@ -2729,6 +2797,11 @@
|
||||
|
||||
Процедура НайтиНезаполненныеОбязательныеРеквизитыВПодчиненныхПериодическихРегистрах(ОбъектМетаданных, ПараметрыПроверки)
|
||||
|
||||
МодульОценкаПроизводительности = Неопределено;
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
|
||||
МодульОценкаПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности");
|
||||
КонецЕсли;
|
||||
|
||||
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||
Если ОбщегоНазначения.ЭтоРегистрРасчета(ОбъектМетаданных) Тогда
|
||||
|
||||
@@ -2797,11 +2870,16 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
|
||||
ОбщееКоличествоДанных = 0;
|
||||
|
||||
Пока Результат.Количество() > 0 Цикл
|
||||
|
||||
Если МодульОценкаПроизводительности <> Неопределено Тогда
|
||||
ОписаниеЗамера = МодульОценкаПроизводительности.НачатьЗамерДлительнойОперации(ПараметрыПроверки.Идентификатор + "." + ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого СтрокаРезультата Из Результат Цикл
|
||||
|
||||
ТекущийНаборЗаписей = МенеджерРегистра.СоздатьНаборЗаписей();
|
||||
@@ -2828,6 +2906,12 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ОбщееКоличествоДанных = ОбщееКоличествоДанных + Результат.Количество();
|
||||
|
||||
Если МодульОценкаПроизводительности <> Неопределено Тогда
|
||||
МодульОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, ОбщееКоличествоДанных);
|
||||
КонецЕсли;
|
||||
|
||||
Запрос.УстановитьПараметр("ДатаНачалаПроверки", СтрокаРезультата.Период);
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
|
||||
@@ -2837,6 +2921,11 @@
|
||||
|
||||
Процедура НайтиНезаполненныеОбязательныеРеквизитыВПодчиненныхНепериодическихРегистрах(ОбъектМетаданных, ПараметрыПроверки)
|
||||
|
||||
МодульОценкаПроизводительности = Неопределено;
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
|
||||
МодульОценкаПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности");
|
||||
КонецЕсли;
|
||||
|
||||
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||
|
||||
Запрос = Новый Запрос(
|
||||
@@ -2857,11 +2946,16 @@
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОбъектМетаданных", ПолноеИмя);
|
||||
Запрос.УстановитьПараметр("Регистратор", "");
|
||||
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
|
||||
ОбщееКоличествоДанных = 0;
|
||||
|
||||
Пока Результат.Количество() > 0 Цикл
|
||||
|
||||
Если МодульОценкаПроизводительности <> Неопределено Тогда
|
||||
ОписаниеЗамера = МодульОценкаПроизводительности.НачатьЗамерДлительнойОперации(ПараметрыПроверки.Идентификатор + "." + ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого СтрокаРезультата Из Результат Цикл
|
||||
|
||||
ТекущийНаборЗаписей = МенеджерРегистра.СоздатьНаборЗаписей();
|
||||
@@ -2887,6 +2981,12 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ОбщееКоличествоДанных = ОбщееКоличествоДанных + Результат.Количество();
|
||||
|
||||
Если МодульОценкаПроизводительности <> Неопределено Тогда
|
||||
МодульОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, ОбщееКоличествоДанных);
|
||||
КонецЕсли;
|
||||
|
||||
Запрос.УстановитьПараметр("Регистратор", СтрокаРезультата.РегистраторРеквизитСсылка);
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
|
||||
@@ -2896,6 +2996,11 @@
|
||||
|
||||
Процедура НайтиНезаполненныеОбязательныеРеквизитыВНезависимыхНепериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки)
|
||||
|
||||
МодульОценкаПроизводительности = Неопределено;
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
|
||||
МодульОценкаПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности");
|
||||
КонецЕсли;
|
||||
|
||||
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||
МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
|
||||
Условие = "";
|
||||
@@ -2922,6 +3027,8 @@
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОбъектМетаданных", ОбъектМетаданных.ПолноеИмя());
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляВыборки", ПоляВыборки);
|
||||
|
||||
ОбщееКоличествоДанных = 0;
|
||||
|
||||
Запрос = Новый Запрос(ТекстЗапроса);
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
|
||||
@@ -2933,6 +3040,10 @@
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Если МодульОценкаПроизводительности <> Неопределено Тогда
|
||||
ОписаниеЗамера = МодульОценкаПроизводительности.НачатьЗамерДлительнойОперации(ПараметрыПроверки.Идентификатор + "." + ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого СтрокаРезультата Из Результат Цикл
|
||||
|
||||
Если Не ЭтоПервыйПроход И Результат.Индекс(СтрокаРезультата) = 0 Тогда
|
||||
@@ -2980,6 +3091,12 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ОбщееКоличествоДанных = ОбщееКоличествоДанных + Результат.Количество();
|
||||
|
||||
Если МодульОценкаПроизводительности <> Неопределено Тогда
|
||||
МодульОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, ОбщееКоличествоДанных);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоПервыйПроход Тогда
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, УсловиеПервогоПрохода, "Где " + Условие);
|
||||
КонецЕсли;
|
||||
@@ -2996,6 +3113,11 @@
|
||||
|
||||
Процедура НайтиНезаполненныеОбязательныеРеквизитыВНезависимыхПериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки)
|
||||
|
||||
МодульОценкаПроизводительности = Неопределено;
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
|
||||
МодульОценкаПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности");
|
||||
КонецЕсли;
|
||||
|
||||
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||
МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
|
||||
УсловиеПоИзмерениям = "";
|
||||
@@ -3029,6 +3151,8 @@
|
||||
Запрос = Новый Запрос(ТекстПервогоЗапроса);
|
||||
Запрос.УстановитьПараметр("Период", ПараметрыПроверки.ДатаНачалаПроверки);
|
||||
|
||||
ОбщееКоличествоДанных = 0;
|
||||
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
ЭтоПервыйПроход = Истина;
|
||||
|
||||
@@ -3039,6 +3163,10 @@
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Если МодульОценкаПроизводительности <> Неопределено Тогда
|
||||
ОписаниеЗамера = МодульОценкаПроизводительности.НачатьЗамерДлительнойОперации(ПараметрыПроверки.Идентификатор + "." + ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого СтрокаРезультата Из Результат Цикл
|
||||
|
||||
ТекущийНаборЗаписей = МенеджерРегистра.СоздатьНаборЗаписей();
|
||||
@@ -3090,6 +3218,12 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ОбщееКоличествоДанных = ОбщееКоличествоДанных + Результат.Количество();
|
||||
|
||||
Если МодульОценкаПроизводительности <> Неопределено Тогда
|
||||
МодульОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, ОбщееКоличествоДанных);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоПервыйПроход Тогда
|
||||
ЭтоПервыйПроход = Ложь;
|
||||
Запрос.Текст = ТекстЗапросаСУсловием;
|
||||
@@ -3166,6 +3300,11 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция РазмерКэшаПроверенныхСсылок()
|
||||
|
||||
Возврат 100000;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
Проверка.Идентификатор = "СтандартныеПодсистемы.ПроверкаНезаполненныхОбязательныхРеквизитов";
|
||||
Проверка.ОбработчикПроверки = "КонтрольВеденияУчетаСлужебный.ПроверитьНезаполненныеОбязательныеРеквизиты";
|
||||
Проверка.КонтекстПроверокВеденияУчета = "СистемныеПроверки";
|
||||
Проверка.Отключена = Истина;
|
||||
|
||||
Проверка = Проверки.Добавить();
|
||||
Проверка.ИдентификаторГруппы = ГруппаПроверок.Идентификатор;
|
||||
@@ -99,6 +100,7 @@
|
||||
Проверка.Идентификатор = "СтандартныеПодсистемы.ПроверкаСсылочнойЦелостности";
|
||||
Проверка.ОбработчикПроверки = "КонтрольВеденияУчетаСлужебный.ПроверитьСсылочнуюЦелостность";
|
||||
Проверка.КонтекстПроверокВеденияУчета = "СистемныеПроверки";
|
||||
Проверка.Отключена = Истина;
|
||||
|
||||
Проверка = Проверки.Добавить();
|
||||
Проверка.ИдентификаторГруппы = ГруппаПроверок.Идентификатор;
|
||||
@@ -116,6 +118,7 @@
|
||||
Проверка.ОбработчикПроверки = "КонтрольВеденияУчетаСлужебный.ПроверитьЦиклическиеСсылки";
|
||||
Проверка.ОбработчикПереходаКИсправлению = "Отчет.РезультатыПроверкиУчета.Форма.ИсправлениеЦиклическихСсылок";
|
||||
Проверка.КонтекстПроверокВеденияУчета = "СистемныеПроверки";
|
||||
Проверка.Отключена = Истина;
|
||||
|
||||
Проверка = Проверки.Добавить();
|
||||
Проверка.ИдентификаторГруппы = ГруппаПроверок.Идентификатор;
|
||||
@@ -127,6 +130,7 @@
|
||||
Проверка.Идентификатор = "СтандартныеПодсистемы.ПроверкаОтсутствующихПредопределенныхЭлементов";
|
||||
Проверка.ОбработчикПроверки = "КонтрольВеденияУчетаСлужебный.ПроверитьОтсутствующиеПредопределенныеЭлементы";
|
||||
Проверка.КонтекстПроверокВеденияУчета = "СистемныеПроверки";
|
||||
Проверка.Отключена = Истина;
|
||||
|
||||
Проверка = Проверки.Добавить();
|
||||
Проверка.ИдентификаторГруппы = ГруппаПроверок.Идентификатор;
|
||||
@@ -138,6 +142,7 @@
|
||||
Проверка.Идентификатор = "СтандартныеПодсистемы.ПроверкаДублированияПредопределенныхЭлементов";
|
||||
Проверка.ОбработчикПроверки = "КонтрольВеденияУчетаСлужебный.ПроверитьДублированиеПредопределенныхЭлементов";
|
||||
Проверка.КонтекстПроверокВеденияУчета = "СистемныеПроверки";
|
||||
Проверка.Отключена = Истина;
|
||||
|
||||
Проверка = Проверки.Добавить();
|
||||
Проверка.ИдентификаторГруппы = ГруппаПроверок.Идентификатор;
|
||||
@@ -155,6 +160,7 @@
|
||||
Проверка.Идентификатор = "СтандартныеПодсистемы.ПроверкаОтсутствияПредопределенныхУзловПлановОбмена";
|
||||
Проверка.ОбработчикПроверки = "КонтрольВеденияУчетаСлужебный.ПроверитьНаличиеПредопределенныхУзловПлановОбмена";
|
||||
Проверка.КонтекстПроверокВеденияУчета = "СистемныеПроверки";
|
||||
Проверка.Отключена = Истина;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
|
||||
|
||||
@@ -168,6 +174,7 @@
|
||||
Проверка.Идентификатор = "СтандартныеПодсистемы.ПроверкаСсылокНаНесуществующиеФайлыВТоме";
|
||||
Проверка.ОбработчикПроверки = "РаботаСФайламиСлужебный.ПроверкаСсылокНаНесуществующиеФайлыВТоме";
|
||||
Проверка.КонтекстПроверокВеденияУчета = "СистемныеПроверки";
|
||||
Проверка.Отключена = Истина;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -240,6 +247,7 @@
|
||||
// * ДополнительныеПараметры - ХранилищеЗначений - Дополнительная информация о проверке для программного
|
||||
// использования.
|
||||
// * Комментарий - Строка - комментарий к проверке.
|
||||
// * Отключена - Булево - если Истина, то проверка не будет выполняться в фоне по расписанию.
|
||||
//
|
||||
Функция НоваяТаблицаПроверок()
|
||||
|
||||
@@ -261,6 +269,7 @@
|
||||
КолонкиПроверок.Добавить("ДополнительныеПараметры", Новый ОписаниеТипов("ХранилищеЗначения"));
|
||||
КолонкиПроверок.Добавить("ИдентификаторРодителя", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(256)));
|
||||
КолонкиПроверок.Добавить("Комментарий", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(256)));
|
||||
КолонкиПроверок.Добавить("Отключена", Новый ОписаниеТипов("Булево"));
|
||||
|
||||
Возврат Проверки;
|
||||
|
||||
|
||||
@@ -1027,13 +1027,39 @@
|
||||
// Выполнение ПКС для ТЧ
|
||||
Если СтекВыгрузки.Количество() = 1 Тогда
|
||||
|
||||
// Формируем структуру новых табличных частей по ПКС.
|
||||
СвойстваТЧПриемника = Новый Структура;
|
||||
Для Каждого ТЧИСвойства Из ПравилоКонвертации.СвойстваТабличныхЧастей Цикл
|
||||
|
||||
Если НЕ ТЧИСвойства.ИспользуетсяАлгоритмКонвертации Тогда
|
||||
ИмяТЧПриемника = ТЧИСвойства.ТЧФормата;
|
||||
|
||||
Если ПустаяСтрока(ИмяТЧПриемника) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не СвойстваТЧПриемника.Свойство(ИмяТЧПриемника) Тогда
|
||||
ТаблицаПКС = Новый ТаблицаЗначений;
|
||||
ТаблицаПКС.Колонки.Добавить("СвойствоФормата", Новый ОписаниеТипов("Строка"));
|
||||
|
||||
СвойстваТЧПриемника.Вставить(ИмяТЧПриемника, ТаблицаПКС);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ПКС Из ТЧИСвойства.Свойства Цикл
|
||||
СтрокаСвойство = СвойстваТЧПриемника[ИмяТЧПриемника].Добавить();
|
||||
СтрокаСвойство.СвойствоФормата = ПКС.СвойствоФормата;
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого ТЧИСвойства Из ПравилоКонвертации.СвойстваТабличныхЧастей Цикл
|
||||
|
||||
Если Не ТЧИСвойства.ИспользуетсяАлгоритмКонвертации Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПКСДляТЧ = ТЧИСвойства.Свойства;
|
||||
ИмяТЧПриемника = ТЧИСвойства.ТЧФормата;
|
||||
|
||||
ТЧПриемника = Неопределено;
|
||||
Если Не ЗначениеЗаполнено(ИмяТЧПриемника)
|
||||
Или Не Приемник.Свойство(ИмяТЧПриемника, ТЧПриемника) Тогда
|
||||
@@ -1041,7 +1067,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
// Создаем новую ТЗ, в которой нет ограничений типа для колонок.
|
||||
НоваяТЧПриемника = СоздатьТЧПриемникаПоПКС(ПКСДляТЧ);
|
||||
НоваяТЧПриемника = СоздатьТЧПриемникаПоПКС(СвойстваТЧПриемника[ИмяТЧПриемника]);
|
||||
|
||||
// Убираем лишние колонки, которые могли добавить в приемнике.
|
||||
УдаляемыеКолонки = Новый Массив;
|
||||
@@ -2456,12 +2482,6 @@
|
||||
|
||||
Объект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения");
|
||||
|
||||
СведенияОВерсииОбъекта = Новый Структура;
|
||||
СведенияОВерсииОбъекта.Вставить("ОтложеннаяОбработка", Истина);
|
||||
СведенияОВерсииОбъекта.Вставить("ТипВерсииОбъекта", "ИзмененоПользователем");
|
||||
СведенияОВерсииОбъекта.Вставить("АвторВерсии", УзелКорреспондента);
|
||||
Объект.ДополнительныеСвойства.Вставить("СведенияОВерсииОбъекта", СведенияОВерсииОбъекта);
|
||||
|
||||
// Выполняем попытку проведения документа.
|
||||
Объект.Записать(РежимЗаписиДокумента.Проведение);
|
||||
|
||||
@@ -4469,12 +4489,6 @@
|
||||
ОбменДаннымиСервер.ПропуститьПроверкуЗапретаИзменения();
|
||||
Объект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения");
|
||||
|
||||
СведенияОВерсииОбъекта = Новый Структура;
|
||||
СведенияОВерсииОбъекта.Вставить("ОтложеннаяОбработка", Истина);
|
||||
СведенияОВерсииОбъекта.Вставить("ТипВерсииОбъекта", "ИзмененоПользователем");
|
||||
СведенияОВерсииОбъекта.Вставить("АвторВерсии", КомпонентыОбмена.УзелКорреспондента);
|
||||
Объект.ДополнительныеСвойства.Вставить("СведенияОВерсииОбъекта", СведенияОВерсииОбъекта);
|
||||
|
||||
// Выполняем попытку записи объекта.
|
||||
Объект.Записать();
|
||||
|
||||
|
||||
@@ -2319,6 +2319,7 @@
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ПланыОбмена.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
|
||||
| ПланыОбмена.Наименование КАК НаименованиеКорреспондента,
|
||||
|
|
||||
| [ДополнительныеСвойстваПланаОбмена]
|
||||
|
|
||||
|
||||
@@ -1158,6 +1158,11 @@
|
||||
|
||||
Иначе // реквизиты ТЧ объекта
|
||||
|
||||
// Проверка, что это ТЧ объекта, а не таблица регистра.
|
||||
Если Объект.Метаданные().ТабличныеЧасти.Найти(СтрокаТаблицыРеквизитовРегистрации.ИмяТабличнойЧасти) = Неопределено Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ТаблицаРеквизитовРегистрацииВерсияОбъектаДоИзменения = РеквизитыРегистрацииТабличнойЧастиДоИзменения(Объект, СтрокаТаблицыРеквизитовРегистрации);
|
||||
|
||||
ТаблицаРеквизитовРегистрацииВерсияОбъектаПослеИзменения = РеквизитыРегистрацииТабличнойЧастиПослеИзменения(Объект, СтрокаТаблицыРеквизитовРегистрации);
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "2.4.6.97";
|
||||
Описание.Версия = "2.4.6.117";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
|
||||
@@ -71,6 +71,14 @@
|
||||
Обработчик.Приоритет = 80;
|
||||
Обработчик.МонопольныйРежим = Истина;
|
||||
|
||||
Если РаботаВМоделиСервиса.РазделениеВключено() Тогда
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "2.4.6.105";
|
||||
Обработчик.Процедура = "ОчередьЗаданийСлужебный.ЗапланироватьНеАктивныеЗадания";
|
||||
Обработчик.ОбщиеДанные = Истина;
|
||||
Обработчик.РежимВыполнения = "Оперативно";
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ЗагрузкаДанныхИзФайлаПереопределяемый.ПриОпределенииСправочниковДляЗагрузкиДанных.
|
||||
@@ -699,6 +707,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
ИсходнаяДатаДляПроверки = ДатаДляПроверки;
|
||||
ВремяНачалаПоследнегоЗапуска = '00010101' + (ДатаНачалаПоследнегоЗапуска - НачалоДня(ДатаНачалаПоследнегоЗапуска));
|
||||
|
||||
// Границы по датам
|
||||
Если ЗначениеЗаполнено(Расписание.ДатаКонца)
|
||||
@@ -863,15 +872,17 @@
|
||||
КонецЕсли;
|
||||
|
||||
// Учет времени
|
||||
ВремяДляПроверки = '00010101' + (ДатаДляПроверки - НачалоДня(ДатаДляПроверки));
|
||||
|
||||
Если Расписание.ДетальныеРасписанияДня.Количество() = 0 Тогда
|
||||
ДетальныеРасписания = Новый Массив;
|
||||
ДетальныеРасписания.Добавить(Расписание);
|
||||
ВремяДляПроверки = ДатаДляПроверки;
|
||||
ВремяНачалаПоследнегоЗапуска = ДатаНачалаПоследнегоЗапуска;
|
||||
|
||||
|
||||
Иначе
|
||||
ДетальныеРасписания = Расписание.ДетальныеРасписанияДня;
|
||||
ВремяДляПроверки = '00010101' + (ДатаДляПроверки - НачалоДня(ДатаДляПроверки));
|
||||
ВремяНачалаПоследнегоЗапуска = '00010101' + (ДатаНачалаПоследнегоЗапуска - НачалоДня(ДатаНачалаПоследнегоЗапуска));
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// Если у нас есть промежутки, с переходом через полночь, то разбиваем их на два промежутка.
|
||||
@@ -1482,25 +1493,14 @@
|
||||
|
||||
Иначе
|
||||
Расписание = Выборка.Расписание.Получить();
|
||||
Если Расписание <> Неопределено Тогда
|
||||
|
||||
Задание.ЗапланированныйМоментЗапуска = ПолучитьЗапланированныйМоментЗапускаЗадания(
|
||||
Расписание, ЧасовойПояс, Задание.ДатаНачалаПоследнегоЗапуска, Задание.ДатаЗавершенияПоследнегоЗапуска);
|
||||
Задание.НомерПопытки = 0;
|
||||
Если ЗначениеЗаполнено(Задание.ЗапланированныйМоментЗапуска) Тогда
|
||||
Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано;
|
||||
Иначе
|
||||
Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.НеАктивно;
|
||||
КонецЕсли;
|
||||
Задание.ИсполняющееФоновоеЗадание = Неопределено;
|
||||
РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание);
|
||||
|
||||
Иначе // Нет расписания
|
||||
|
||||
Если Расписание = Неопределено Или (Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Завершено
|
||||
И Расписание.ПериодПовтораДней = 0 И Расписание.ПериодПовтораВТечениеДня = 0) Тогда
|
||||
|
||||
Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(
|
||||
Задание.Метаданные().ПолноеИмя(),
|
||||
РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда
|
||||
Если ЗначениеЗаполнено(Задание.Шаблон) Тогда // Задание по шаблону без расписания.
|
||||
Если Расписание = Неопределено И ЗначениеЗаполнено(Задание.Шаблон) Тогда // Задание по шаблону без расписания.
|
||||
|
||||
ШаблонСообщения = НСтр("ru = 'Для шаблон заданий очереди %1 не найдено расписание'");
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Задание.Шаблон);
|
||||
@@ -1522,6 +1522,19 @@
|
||||
Задание.ОбменДанными.Загрузка = Истина;
|
||||
Задание.Удалить();
|
||||
|
||||
Иначе
|
||||
|
||||
Задание.ЗапланированныйМоментЗапуска = ПолучитьЗапланированныйМоментЗапускаЗадания(
|
||||
Расписание, ЧасовойПояс, Задание.ДатаНачалаПоследнегоЗапуска, Задание.ДатаЗавершенияПоследнегоЗапуска);
|
||||
Задание.НомерПопытки = 0;
|
||||
Если ЗначениеЗаполнено(Задание.ЗапланированныйМоментЗапуска) Тогда
|
||||
Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано;
|
||||
Иначе
|
||||
Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.НеАктивно;
|
||||
КонецЕсли;
|
||||
Задание.ИсполняющееФоновоеЗадание = Неопределено;
|
||||
РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание);
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1817,4 +1830,146 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗапланироватьНеАктивныеЗадания() Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
|
||||
СправочникиЗаданий = ОчередьЗаданийСлужебныйПовтИсп.ПолучитьСправочникиЗаданий();
|
||||
ТекстЗапроса = "";
|
||||
Для Каждого СправочникЗаданий Из СправочникиЗаданий Цикл
|
||||
|
||||
Если Не ПустаяСтрока(ТекстЗапроса) Тогда
|
||||
|
||||
ТекстЗапроса = ТекстЗапроса + "
|
||||
|
|
||||
|ОБЪЕДИНИТЬ ВСЕ
|
||||
|"
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(СправочникЗаданий.СоздатьЭлемент().Метаданные().ПолноеИмя(), РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда
|
||||
|
||||
ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"ВЫБРАТЬ
|
||||
| Очередь.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных,
|
||||
| Очередь.Ссылка КАК Идентификатор,
|
||||
| ЕСТЬNULL(Очередь.Шаблон, НЕОПРЕДЕЛЕНО) КАК Шаблон,
|
||||
| ЕСТЬNULL(ЧасовыеПояса.Значение, """") КАК ЧасовойПояс,
|
||||
| ВЫБОР
|
||||
| КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка)
|
||||
| ТОГДА Очередь.Расписание
|
||||
| ИНАЧЕ Очередь.Шаблон.Расписание
|
||||
| КОНЕЦ КАК Расписание,
|
||||
| ВЫБОР
|
||||
| КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка)
|
||||
| ТОГДА Очередь.КоличествоПовторовПриАварийномЗавершении
|
||||
| ИНАЧЕ Очередь.Шаблон.КоличествоПовторовПриАварийномЗавершении
|
||||
| КОНЕЦ КАК КоличествоПовторовПриАварийномЗавершении,
|
||||
| ВЫБОР
|
||||
| КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка)
|
||||
| ТОГДА Очередь.ИнтервалПовтораПриАварийномЗавершении
|
||||
| ИНАЧЕ Очередь.Шаблон.ИнтервалПовтораПриАварийномЗавершении
|
||||
| КОНЕЦ КАК ИнтервалПовтораПриАварийномЗавершении
|
||||
|ИЗ
|
||||
| %1 КАК Очередь
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовыеПояса
|
||||
| ПО Очередь.ОбластьДанныхВспомогательныеДанные = ЧасовыеПояса.ОбластьДанныхВспомогательныеДанные
|
||||
|ГДЕ
|
||||
| Очередь.СостояниеЗадания = ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.НеАктивно)
|
||||
| И Очередь.Использование"
|
||||
, СправочникЗаданий.ПустаяСсылка().Метаданные().ПолноеИмя());
|
||||
|
||||
Иначе
|
||||
|
||||
ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"ВЫБРАТЬ
|
||||
| -1 КАК ОбластьДанных,
|
||||
| Очередь.Ссылка КАК Идентификатор,
|
||||
| НЕОПРЕДЕЛЕНО КАК Шаблон,
|
||||
| """" КАК ЧасовойПояс,
|
||||
| Очередь.Расписание КАК Расписание,
|
||||
| Очередь.КоличествоПовторовПриАварийномЗавершении КАК КоличествоПовторовПриАварийномЗавершении,
|
||||
| Очередь.ИнтервалПовтораПриАварийномЗавершении КАК ИнтервалПовтораПриАварийномЗавершении
|
||||
|ИЗ
|
||||
| %1 КАК Очередь
|
||||
|ГДЕ
|
||||
| Очередь.СостояниеЗадания = ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.НеАктивно)
|
||||
| И Очередь.Использование"
|
||||
, СправочникЗаданий.ПустаяСсылка().Метаданные().ПолноеИмя());
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Запрос.Текст = ТекстЗапроса;
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
|
||||
Если ЗначениеЗаполнено(Выборка.ЧасовойПояс) Тогда
|
||||
ЧасовойПояс = Выборка.ЧасовойПояс;
|
||||
Иначе
|
||||
ЧасовойПояс = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Выборка.Шаблон) Тогда
|
||||
ИмяМетода = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Выборка.Шаблон, "ИмяМетода");
|
||||
Иначе
|
||||
ИмяМетода = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Выборка.Идентификатор, "ИмяМетода");
|
||||
КонецЕсли;
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить(Выборка.Идентификатор.Метаданные().ПолноеИмя());
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Идентификатор);
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
Задание = Выборка.Идентификатор.ПолучитьОбъект();
|
||||
|
||||
Расписание = Выборка.Расписание.Получить();
|
||||
|
||||
// Если это задания периодические (не одноразовые)
|
||||
Если (Расписание <> Неопределено И (Расписание.ПериодПовтораДней <> 0 Или Расписание.ПериодПовтораВТечениеДня <> 0)) Тогда
|
||||
|
||||
Задание.ЗапланированныйМоментЗапуска = ПолучитьЗапланированныйМоментЗапускаЗадания(
|
||||
Расписание, ЧасовойПояс, Задание.ДатаНачалаПоследнегоЗапуска, Задание.ДатаЗавершенияПоследнегоЗапуска);
|
||||
Задание.НомерПопытки = 0;
|
||||
Если ЗначениеЗаполнено(Задание.ЗапланированныйМоментЗапуска) Тогда
|
||||
Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано;
|
||||
Иначе
|
||||
Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.НеАктивно;
|
||||
КонецЕсли;
|
||||
Задание.ИсполняющееФоновоеЗадание = Неопределено;
|
||||
Задание.ОбменДанными.Загрузка = Истина;
|
||||
Задание.Записать();
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
|
||||
ОтменитьТранзакцию();
|
||||
|
||||
ТекстСообщения = НСтр("ru = 'Задание не удалось обновить
|
||||
|ОбластьДанных: %1
|
||||
|Имя метода: %2'");
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Строка(Выборка.ОбластьДанных), ИмяМетода);
|
||||
|
||||
ЗаписьЖурналаРегистрации(
|
||||
НСтр("ru = 'Обновление очереди заданий'",
|
||||
ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка,,,
|
||||
ТекстСообщения);
|
||||
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -518,7 +518,9 @@
|
||||
Письмо.АдресаУведомленияОПрочтении.Добавить(РеквизитыОтправителя.АдресЭлектроннойПочты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Соединение) <> Тип("ИнтернетПочта") Тогда
|
||||
СоздаватьСоединение = ТипЗнч(Соединение) <> Тип("ИнтернетПочта");
|
||||
Если СоздаватьСоединение Тогда
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
Профиль = ИнтернетПочтовыйПрофиль(УчетнаяЗапись);
|
||||
Соединение = Новый ИнтернетПочта;
|
||||
Соединение.Подключиться(Профиль);
|
||||
@@ -527,13 +529,17 @@
|
||||
ОшибочныеПолучатели = Соединение.Послать(Письмо, ОбрабатыватьТекстСообщения,
|
||||
?(ПротоколПочты = "IMAP", ПротоколИнтернетПочты.IMAP, ПротоколИнтернетПочты.SMTP));
|
||||
|
||||
Если СоздаватьСоединение Тогда
|
||||
Соединение.Отключиться();
|
||||
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОтправки.Вставить("ИдентификаторСообщения", Письмо.ИдентификаторСообщения);
|
||||
ПараметрыОтправки.Вставить("ОшибочныеПолучатели", ОшибочныеПолучатели);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЗагрузитьСообщения(Знач УчетнаяЗапись,
|
||||
Знач ПараметрыЗагрузки = Неопределено) Экспорт
|
||||
Функция ЗагрузитьСообщения(Знач УчетнаяЗапись, Знач ПараметрыЗагрузки = Неопределено) Экспорт
|
||||
|
||||
// Используется для проверки возможности входа на почтовый ящик.
|
||||
Перем РежимТестирования;
|
||||
@@ -559,7 +565,9 @@
|
||||
ПолучениеЗаголовков = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
Профиль = ИнтернетПочтовыйПрофиль(УчетнаяЗапись, Истина);
|
||||
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||
|
||||
Если ПараметрыЗагрузки.Свойство("ЗаголовкиИдентификаторы") Тогда
|
||||
ЗаголовкиИдентификаторы = ПараметрыЗагрузки.ЗаголовкиИдентификаторы;
|
||||
@@ -569,13 +577,13 @@
|
||||
|
||||
НаборСообщенийДляУдаления = Новый Массив;
|
||||
|
||||
Соединение = Новый ИнтернетПочта;
|
||||
|
||||
Протокол = ПротоколИнтернетПочты.POP3;
|
||||
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УчетнаяЗапись, "ПротоколВходящейПочты") = "IMAP" Тогда
|
||||
Протокол = ПротоколИнтернетПочты.IMAP;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
Соединение = Новый ИнтернетПочта;
|
||||
Соединение.Подключиться(Профиль, Протокол);
|
||||
|
||||
Если ПолучениеЗаголовков Тогда
|
||||
@@ -612,6 +620,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Соединение.Отключиться();
|
||||
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||
|
||||
Если РежимТестирования Тогда
|
||||
Возврат Истина;
|
||||
@@ -877,6 +886,7 @@
|
||||
|
||||
Процедура ПроверитьВозможностьПодключенияКПочтовомуСерверу(Знач УчетнаяЗапись, ВходящаяПочта)
|
||||
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
Профиль = ИнтернетПочтовыйПрофиль(УчетнаяЗапись, ВходящаяПочта);
|
||||
Соединение = Новый ИнтернетПочта;
|
||||
|
||||
|
||||
@@ -1445,6 +1445,11 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДоступныеТома = ДоступныеТома(ПараметрыПроверки);
|
||||
Если ДоступныеТома.Количество() = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
МодульКонтрольВеденияУчета = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчета");
|
||||
|
||||
МодульРаботаВМоделиСервиса = Неопределено;
|
||||
@@ -1468,7 +1473,7 @@
|
||||
Если Не ПроверитьОбъектПрисоединенныхФайлов(ОбъектМетаданных) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ПоискСсылокНаНесуществующиеФайлыВТоме(ОбъектМетаданных, ПараметрыПроверки);
|
||||
ПоискСсылокНаНесуществующиеФайлыВТомах(ОбъектМетаданных, ПараметрыПроверки, ДоступныеТома);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -7897,7 +7902,10 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПоискСсылокНаНесуществующиеФайлыВТоме(ОбъектМетаданных, ПараметрыПроверки)
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Контроль ведения учета.
|
||||
|
||||
Процедура ПоискСсылокНаНесуществующиеФайлыВТомах(ОбъектМетаданных, ПараметрыПроверки, ДоступныеТома)
|
||||
|
||||
МодульКонтрольВеденияУчета = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчета");
|
||||
|
||||
@@ -7919,6 +7927,7 @@
|
||||
|ГДЕ
|
||||
| ОбъектМетаданных.Ссылка > &Ссылка
|
||||
| И ОбъектМетаданных.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске)
|
||||
| И ОбъектМетаданных.Том В(&ДоступныеТома)
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| ОбъектМетаданных.Ссылка";
|
||||
@@ -7932,7 +7941,8 @@
|
||||
КонецЕсли;
|
||||
|
||||
Запрос = Новый Запрос(ТекстЗапроса);
|
||||
Запрос.УстановитьПараметр("Ссылка", "");
|
||||
Запрос.УстановитьПараметр("Ссылка", Справочники.ТомаХраненияФайлов.ПустаяСсылка());
|
||||
Запрос.УстановитьПараметр("ДоступныеТома", ДоступныеТома);
|
||||
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
|
||||
@@ -8003,4 +8013,84 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДоступныеТома(ПараметрыПроверки)
|
||||
|
||||
ДоступныеТома = Новый Массив;
|
||||
|
||||
Запрос = Новый Запрос(
|
||||
"ВЫБРАТЬ
|
||||
| ТомаХраненияФайлов.Ссылка КАК СсылкаНаТом,
|
||||
| ТомаХраненияФайлов.Наименование КАК ПредставлениеТома,
|
||||
| ВЫБОР
|
||||
| КОГДА &ЭтоLinuxСервер
|
||||
| ТОГДА ТомаХраненияФайлов.ПолныйПутьLinux
|
||||
| ИНАЧЕ ТомаХраненияФайлов.ПолныйПутьWindows
|
||||
| КОНЕЦ КАК ПолныйПуть
|
||||
|ИЗ
|
||||
| Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов");
|
||||
|
||||
Запрос.УстановитьПараметр("ЭтоLinuxСервер", ОбщегоНазначения.ЭтоLinuxСервер());
|
||||
|
||||
Результат = Запрос.Выполнить().Выбрать();
|
||||
Пока Результат.Следующий() Цикл
|
||||
|
||||
Если Не ТомДоступен(Результат.СсылкаНаТом, Результат.ПредставлениеТома, Результат.ПолныйПуть, ПараметрыПроверки) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ДоступныеТома.Добавить(Результат.СсылкаНаТом);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ДоступныеТома;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТомДоступен(Том, ПредставлениеТома, Путь, ПараметрыПроверки)
|
||||
|
||||
Если ПустаяСтрока(Путь) Тогда
|
||||
|
||||
УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'У тома хранения файлов ""%1"" не задан путь к сетевому каталогу. Сохранение файлов в него невозможно.'"),
|
||||
ПредставлениеТома);
|
||||
ЗафиксироватьПроблемуСТомом(Том, УточнениеПроблемы, ПараметрыПроверки);
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИмяКаталогаТестовое = Путь + "ПроверкаДоступа" + ПолучитьРазделительПути();
|
||||
|
||||
Попытка
|
||||
СоздатьКаталог(ИмяКаталогаТестовое);
|
||||
УдалитьФайлы(ИмяКаталогаТестовое);
|
||||
Исключение
|
||||
|
||||
УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Том хранения файлов ""%1"" недоступен по причине:
|
||||
|%2
|
||||
|
|
||||
|Указанный сетевой каталог мог быть отключен или к нему отсутствуют права доступа.
|
||||
|Невозможна работа со всеми файлами, хранящимися в этом томе.'"),
|
||||
Путь, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
УточнениеПроблемы = УточнениеПроблемы + Символы.ПС;
|
||||
ЗафиксироватьПроблемуСТомом(Том, УточнениеПроблемы, ПараметрыПроверки);
|
||||
Возврат Ложь;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗафиксироватьПроблемуСТомом(Том, УточнениеПроблемы, ПараметрыПроверки)
|
||||
|
||||
МодульКонтрольВеденияУчета = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчета");
|
||||
|
||||
Проблема = МодульКонтрольВеденияУчета.ОписаниеПроблемы(Том, ПараметрыПроверки);
|
||||
Проблема.УточнениеПроблемы = УточнениеПроблемы;
|
||||
МодульКонтрольВеденияУчета.ЗаписатьПроблему(Проблема, ПараметрыПроверки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -111,13 +111,9 @@
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ТекущиеПараметры = Новый Соответствие(ПараметрыСеанса.ПараметрыКлиентаНаСервере);
|
||||
|
||||
ТекущиеПараметры.Вставить("ДоступенСервисСклонения", Доступность);
|
||||
|
||||
ПараметрыСеанса.ПараметрыКлиентаНаСервере = Новый ФиксированноеСоответствие(ТекущиеПараметры);
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Склоняет переданную фразу.
|
||||
@@ -278,12 +274,8 @@
|
||||
Если Не ЭтоФИО И ИспользоватьСервисСклонения Тогда
|
||||
|
||||
СтруктураСклонения = СтруктураСклоненияЧерезЗапросКСервису(Представление, ПоказыватьСообщения);
|
||||
|
||||
Если СтруктураСклонения <> Неопределено Тогда
|
||||
УстановитьДоступностьСервисаСклонения(Истина);
|
||||
Возврат СтруктураСклонения;
|
||||
Иначе
|
||||
УстановитьДоступностьСервисаСклонения(Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
@@ -409,15 +401,9 @@
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураСклонения = СтруктураСклоненияЧерезЗапросКСервису(Представление, Ложь);
|
||||
|
||||
Если СтруктураСклонения = Неопределено Тогда
|
||||
|
||||
УстановитьДоступностьСервисаСклонения(Ложь);
|
||||
Возврат Представление;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьДоступностьСервисаСклонения(Истина);
|
||||
|
||||
// Запись в регистр СклоненияПредставленийОбъектов успешного склонения.
|
||||
Если ЗначениеЗаполнено(Объект) Тогда
|
||||
@@ -470,8 +456,10 @@
|
||||
Ответ = ВыполнитьЗапросСервисуСклонений(Соединение, Запрос);
|
||||
Исключение
|
||||
ЗарегистрироватьОшибкуСервисаСклонений(ИнформацияОбОшибке(), ПоказыватьСообщения);
|
||||
УстановитьДоступностьСервисаСклонения(Ложь);
|
||||
Возврат Неопределено;
|
||||
КонецПопытки;
|
||||
УстановитьДоступностьСервисаСклонения(Истина);
|
||||
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||
|
||||
СтруктураОтвета = СтруктураОтветаСервисаСклонений(Ответ);
|
||||
|
||||
@@ -1409,16 +1409,16 @@
|
||||
| ЕСТЬNULL(КонтактнаяИнформация.НомерСтроки, 0) КАК НомерСтроки,
|
||||
| 0 КАК ИдентификаторСтрокиТабличнойЧасти,
|
||||
| ВЫРАЗИТЬ("""" КАК СТРОКА(200)) КАК ИмяРеквизита,
|
||||
| ВидыКонтактнойИнформации.ПометкаУдаления КАК ПометкаУдаления,
|
||||
| ВЫРАЗИТЬ("""" КАК СТРОКА) КАК Комментарий
|
||||
|ИЗ
|
||||
| Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ
|
||||
| КонтактнаяИнформация КАК КонтактнаяИнформация
|
||||
|ПО
|
||||
|ПО
|
||||
| ВидыКонтактнойИнформации.Ссылка = КонтактнаяИнформация.Вид
|
||||
|ГДЕ
|
||||
| НЕ ВидыКонтактнойИнформации.ПометкаУдаления
|
||||
| И ВидыКонтактнойИнформации.Используется
|
||||
| ВидыКонтактнойИнформации.Используется
|
||||
| И ЕСТЬNULL(ВидыКонтактнойИнформации.Родитель.Используется, ИСТИНА)
|
||||
| И (
|
||||
| ВидыКонтактнойИнформации.Родитель = &ГруппаВидовКИ
|
||||
@@ -1469,6 +1469,10 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрокаКИ.ПометкаУдаления И ПустаяСтрока(СтрокаКИ.ЗначенияПолей) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ИндексЭлемента = СозданныеЭлементы.Найти(СтрокаКИ.Вид);
|
||||
СтатическийЭлемент = ИндексЭлемента <> Неопределено;
|
||||
ЭтоНовыйВидКИ = (СтрокаКИ.Вид <> ПредыдущийВид);
|
||||
@@ -1688,10 +1692,10 @@
|
||||
Представление = СтрокаТабличнойЧастиФормы[ИмяРеквизита];
|
||||
Поле = "Объект." + ИмяТабличнойЧасти + "[" + (СтрокаТабличнойЧастиФормы.НомерСтроки - 1) + "]." + ИмяРеквизита;
|
||||
|
||||
Если ОбязательноеЗаполнение И ПустаяСтрока(Представление) Тогда
|
||||
Если ОбязательноеЗаполнение И ПустаяСтрока(Представление) И Не ВидИнформации.ПометкаУдаления Тогда
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Поле ""%1"" не заполнено.'"), ВидИнформации.Наименование),,Поле);
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Поле ""%1"" не заполнено.'"), ВидИнформации.Наименование),,Поле);
|
||||
ТекущийУровеньОшибок = 2;
|
||||
|
||||
Иначе
|
||||
@@ -1713,24 +1717,26 @@
|
||||
Иначе
|
||||
|
||||
ЭлементФормы = Форма.Элементы.Найти(ИмяРеквизита);
|
||||
Если ЭлементФормы = Неопределено Тогда
|
||||
Если ЭлементФормы = Неопределено Или ВидИнформации.ПометкаУдаления Тогда
|
||||
Продолжить; // Элемент не был создан. Не была вызвана отложенная инициализация.
|
||||
КонецЕсли;
|
||||
|
||||
Представление = Форма[ИмяРеквизита];
|
||||
|
||||
Если ВидИнформации <> ПредыдущийВид И ОбязательноеЗаполнение И ПустаяСтрока(Представление)
|
||||
И Не ЕстьДругиеЗаполненныеСтрокКИДанногоВида(Форма, СтрокаТаблицы, ВидИнформации) Тогда
|
||||
Если ВидИнформации <> ПредыдущийВид
|
||||
И ОбязательноеЗаполнение
|
||||
И ПустаяСтрока(Представление)
|
||||
И Не ЕстьДругиеЗаполненныеСтрокКИДанногоВида(Форма, СтрокаТаблицы, ВидИнформации) Тогда
|
||||
// И нет других строк с данными для видов КИ с множественными значениями.
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Поле ""%1"" не заполнено.'"), ВидИнформации.Наименование),,, ИмяРеквизита);
|
||||
ТекущийУровеньОшибок = 2;
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Поле ""%1"" не заполнено.'"), ВидИнформации.Наименование),,, ИмяРеквизита);
|
||||
ТекущийУровеньОшибок = 2;
|
||||
|
||||
Иначе
|
||||
|
||||
ТекущийУровеньОшибок = ПроверитьЗаполнениеКонтактнойИнформации(Представление, СтрокаТаблицы.ЗначенияПолей,
|
||||
ВидИнформации, ТипИнформации, ИмяРеквизита, Комментарий);
|
||||
ВидИнформации, ТипИнформации, ИмяРеквизита, Комментарий);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1762,7 +1768,7 @@
|
||||
|
||||
МетаданныеОбъекта = Объект.Ссылка.Метаданные();
|
||||
ИмяОбъектаМетаданных = МетаданныеОбъекта.Имя;
|
||||
ПолноеИмяОбъектаМетаданных = МетаданныеОбъекта.ПолноеИмя();
|
||||
ПолноеИмяОбъектаМетаданных = МетаданныеОбъекта.ПолноеИмя();
|
||||
ГруппаВидовКонтактнойИнформации = ГруппаВидовКонтактнойИнформацииОбъекта(ПолноеИмяОбъектаМетаданных);
|
||||
ИменаТабличныхЧастейПоВидамКИ = Неопределено;
|
||||
|
||||
@@ -3551,7 +3557,7 @@
|
||||
ПараметрыКонтактнойИнформации.ДобавленныеЭлементы.Добавить(ИмяРеквизита, 2, Ложь);
|
||||
|
||||
// Устанавливаем свойства поля ввода.
|
||||
Если ИнформацияОВидеКИ.Тип <> Перечисления.ТипыКонтактнойИнформации.Другое Тогда
|
||||
Если ИнформацияОВидеКИ.Тип <> Перечисления.ТипыКонтактнойИнформации.Другое И Не ИнформацияОВидеКИ.ПометкаУдаления Тогда
|
||||
// Ввод комментария через контекстное меню.
|
||||
ИмяКоманды = "КонтекстноеМеню" + ИмяРеквизита;
|
||||
Кнопка = Форма.Элементы.Добавить(ИмяКоманды,Тип("КнопкаФормы"), Элемент.КонтекстноеМеню);
|
||||
@@ -3567,7 +3573,7 @@
|
||||
ПараметрыКонтактнойИнформации.ДобавленныеЭлементы.Добавить(ИмяКоманды, 9, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Если ИнформацияОВидеКИ.ХранитьИсториюИзменений Тогда
|
||||
Если ИнформацияОВидеКИ.ХранитьИсториюИзменений И Не ИнформацияОВидеКИ.ПометкаУдаления Тогда
|
||||
// Вывод истории контактной информации через контекстное меню.
|
||||
ИмяКоманды = "КонтекстноеМенюИстория" + ИмяРеквизита;
|
||||
Кнопка = Форма.Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), Элемент.КонтекстноеМеню);
|
||||
@@ -3614,11 +3620,13 @@
|
||||
ГруппКнопокРазделитель = Форма.Элементы.Добавить("ПодменюРазделительКарты" + ИмяРеквизита, Тип("ГруппаФормы"), Элемент.КонтекстноеМеню);
|
||||
ГруппКнопокРазделитель.Вид = ВидГруппыФормы.ГруппаКнопок;
|
||||
|
||||
// Заполнить
|
||||
ГруппаПодменюАдреса = Форма.Элементы.Добавить("КонтекстноеПодменюКопироватьАдреса" + ИмяРеквизита, Тип("ГруппаФормы"), ГруппКнопокРазделитель);
|
||||
ГруппаПодменюАдреса.Вид = ВидГруппыФормы.Подменю;
|
||||
ГруппаПодменюАдреса.Отображение = ОтображениеКнопки.Текст;
|
||||
ГруппаПодменюАдреса.Заголовок = НСтр("ru='Заполнить'");
|
||||
Если Не ИнформацияОВидеКИ.ПометкаУдаления Тогда
|
||||
// Заполнить
|
||||
ГруппаПодменюАдреса = Форма.Элементы.Добавить("КонтекстноеПодменюКопироватьАдреса" + ИмяРеквизита, Тип("ГруппаФормы"), ГруппКнопокРазделитель);
|
||||
ГруппаПодменюАдреса.Вид = ВидГруппыФормы.Подменю;
|
||||
ГруппаПодменюАдреса.Отображение = ОтображениеКнопки.Текст;
|
||||
ГруппаПодменюАдреса.Заголовок = НСтр("ru='Заполнить'");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -3627,10 +3635,10 @@
|
||||
КонецЕсли;
|
||||
|
||||
// Редактирование в диалоге
|
||||
Если ДляТипаКонтактнойИнформацииДоступноРедактированиеВДиалоге(ИнформацияОВидеКИ.Тип)
|
||||
Если ДляТипаКонтактнойИнформацииДоступноРедактированиеВДиалоге(ИнформацияОВидеКИ.Тип)
|
||||
И Элемент.Вид = ВидПоляФормы.ПолеВвода Тогда
|
||||
|
||||
Элемент.КнопкаВыбора = Истина;
|
||||
Элемент.КнопкаВыбора = Не ИнформацияОВидеКИ.ПометкаУдаления;
|
||||
Если ИнформацияОВидеКИ.РедактированиеТолькоВДиалоге Тогда
|
||||
Элемент.РедактированиеТекста = Ложь;
|
||||
Элемент.ЦветФона = ЦветаСтиля.КонтактнаяИнформацияСРедактированиемВДиалогеЦвет;
|
||||
@@ -3640,6 +3648,18 @@
|
||||
КонецЕсли;
|
||||
Элемент.УстановитьДействие("ПриИзменении", "Подключаемый_КонтактнаяИнформацияПриИзменении");
|
||||
|
||||
Если ИнформацияОВидеКИ.ПометкаУдаления Тогда
|
||||
|
||||
Элемент.ШрифтЗаголовка = Новый Шрифт(,,,,, Истина);
|
||||
Если Не ИнформацияОВидеКИ.РедактированиеТолькоВДиалоге Тогда
|
||||
Элемент.КнопкаОчистки = Истина;
|
||||
Элемент.РедактированиеТекста = Ложь;
|
||||
Иначе
|
||||
Элемент.ТолькоПросмотр = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Элемент;
|
||||
|
||||
КонецФункции
|
||||
@@ -3853,7 +3873,7 @@
|
||||
ДанныеВидаКонтактнойИнформации = ДанныеВидовКонтактнойИнформации[СтрокаКонтактнойИнформации.Вид];
|
||||
ДанныеВидаКонтактнойИнформации.Вставить("Ссылка", СтрокаКонтактнойИнформации.Вид);
|
||||
|
||||
Если ЭтоНовыйВидКИ И ДанныеВидаКонтактнойИнформации.РазрешитьВводНесколькихЗначений И Не ЭтоРеквизитТабличнойЧасти Тогда
|
||||
Если ЭтоНовыйВидКИ И ДанныеВидаКонтактнойИнформации.РазрешитьВводНесколькихЗначений И Не ЭтоРеквизитТабличнойЧасти И Не ДанныеВидаКонтактнойИнформации.ПометкаУдаления Тогда
|
||||
ПараметрыКонтактнойИнформации = ПараметрыКонтактнойИнформацииФормы(Форма.ПараметрыКонтактнойИнформации, ИмяЭлементаДляРазмещения);
|
||||
ПараметрыКонтактнойИнформации.СписокДобавляемыхЭлементов.Добавить(ДанныеВидаКонтактнойИнформации, СтрокаКонтактнойИнформации.Наименование);
|
||||
КонецЕсли;
|
||||
@@ -4016,7 +4036,7 @@
|
||||
ВидыКонтактнойИнформацииТЧ = Новый Массив;
|
||||
Для Каждого СтрокаТабличнойЧасти Из СтрокаКонтактнойИнформации.Строки Цикл
|
||||
ВидыКонтактнойИнформацииТЧ.Добавить(СтрокаТабличнойЧасти.Вид);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
ДанныеВидовКонтактнойИнформацииТЧ = УправлениеКонтактнойИнформациейСлужебный.ДанныеВидовКонтактнойИнформации(
|
||||
ВидыКонтактнойИнформацииТЧ);
|
||||
|
||||
@@ -4037,7 +4057,7 @@
|
||||
Элемент.ПутьКДанным = "Объект." + ИмяТабличнойЧасти + "." + СтрокаТабличнойЧасти.ИмяРеквизита;
|
||||
|
||||
Если ДляТипаКонтактнойИнформацииДоступноРедактированиеВДиалоге(СтрокаТабличнойЧасти.Тип) Тогда
|
||||
Элемент.КнопкаВыбора = Истина;
|
||||
Элемент.КнопкаВыбора = Не СтрокаТабличнойЧасти.ПометкаУдаления;
|
||||
Если ВидКонтактнойИнформацииТЧ.РедактированиеТолькоВДиалоге Тогда
|
||||
Элемент.РедактированиеТекста = Ложь;
|
||||
КонецЕсли;
|
||||
@@ -4046,8 +4066,13 @@
|
||||
КонецЕсли;
|
||||
Элемент.УстановитьДействие("ПриИзменении", "Подключаемый_КонтактнаяИнформацияПриИзменении");
|
||||
|
||||
Если СтрокаТабличнойЧасти.ПометкаУдаления Тогда
|
||||
Элемент.Шрифт = Новый Шрифт(,,,,, Истина);
|
||||
Элемент.РедактированиеТекста = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ВидКонтактнойИнформацииТЧ.ОбязательноеЗаполнение Тогда
|
||||
Элемент.АвтоОтметкаНезаполненного = Истина;
|
||||
Элемент.АвтоОтметкаНезаполненного = Не СтрокаТабличнойЧасти.ПометкаУдаления;
|
||||
КонецЕсли;
|
||||
|
||||
Форма.ПараметрыКонтактнойИнформации[ИмяЭлементаДляРазмещения].ДобавленныеЭлементы.Добавить(СтрокаТабличнойЧасти.ИмяРеквизита,
|
||||
@@ -4643,6 +4668,7 @@
|
||||
|
||||
Если Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
|
||||
|
||||
Если Не ВидКонтактнойИнформации.ПометкаУдаления Тогда
|
||||
// Ввод комментария через контекстное меню.
|
||||
ИмяКоманды = "КонтекстноеМенюПодменю" + ИмяРеквизита;
|
||||
Кнопка = Форма.Элементы.Добавить(ИмяКоманды,Тип("КнопкаФормы"), ГруппаПодменю);
|
||||
@@ -4656,9 +4682,10 @@
|
||||
|
||||
ПараметрыКонтактнойИнформации.ДобавленныеЭлементы.Добавить(ИмяКоманды, 1);
|
||||
ПараметрыКонтактнойИнформации.ДобавленныеЭлементы.Добавить(ИмяКоманды, 9, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
// История изменений
|
||||
Если ВидКонтактнойИнформации.ХранитьИсториюИзменений Тогда
|
||||
Если ВидКонтактнойИнформации.ХранитьИсториюИзменений И Не ВидКонтактнойИнформации.ПометкаУдаления Тогда
|
||||
|
||||
ИмяКоманды = "КонтекстноеМенюПодменюИстория" + ИмяРеквизита;
|
||||
Кнопка = Форма.Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), ГруппаПодменю);
|
||||
@@ -4702,13 +4729,17 @@
|
||||
ПараметрыКонтактнойИнформации.ДобавленныеЭлементы.Добавить(ИмяКоманды, 1);
|
||||
ПараметрыКонтактнойИнформации.ДобавленныеЭлементы.Добавить(ИмяКоманды, 9, Истина);
|
||||
|
||||
ГруппаРазделитель = Форма.Элементы.Добавить("ПодменюРазделитель" + ИмяРеквизита, Тип("ГруппаФормы"), ГруппаРазделитель);
|
||||
ГруппаРазделитель.Вид = ВидГруппыФормы.ГруппаКнопок;
|
||||
Если Не ВидКонтактнойИнформации.ПометкаУдаления Тогда
|
||||
|
||||
ГруппаПодменюАдреса = Форма.Элементы.Добавить("ПодменюКопироватьАдреса" + ИмяРеквизита, Тип("ГруппаФормы"), ГруппаРазделитель);
|
||||
ГруппаПодменюАдреса.Вид = ВидГруппыФормы.Подменю;
|
||||
ГруппаПодменюАдреса.Отображение = ОтображениеКнопки.Текст;
|
||||
ГруппаПодменюАдреса.Заголовок = НСтр("ru='Заполнить'");
|
||||
ГруппаРазделитель = Форма.Элементы.Добавить("ПодменюРазделитель" + ИмяРеквизита, Тип("ГруппаФормы"), ГруппаРазделитель);
|
||||
ГруппаРазделитель.Вид = ВидГруппыФормы.ГруппаКнопок;
|
||||
|
||||
ГруппаПодменюАдреса = Форма.Элементы.Добавить("ПодменюКопироватьАдреса" + ИмяРеквизита, Тип("ГруппаФормы"), ГруппаРазделитель);
|
||||
ГруппаПодменюАдреса.Вид = ВидГруппыФормы.Подменю;
|
||||
ГруппаПодменюАдреса.Отображение = ОтображениеКнопки.Текст;
|
||||
ГруппаПодменюАдреса.Заголовок = НСтр("ru='Заполнить'");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница Тогда
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
ПараметрыОткрытияФормы.Вставить("ВидКонтактнойИнформации", ДанныеСтроки.Вид);
|
||||
ПараметрыОткрытияФормы.Вставить("ЗначенияПолей", ДанныеСтроки.ЗначенияПолей);
|
||||
ПараметрыОткрытияФормы.Вставить("Представление", ТекстРедактирования);
|
||||
ПараметрыОткрытияФормы.Вставить("ТолькоПросмотр", Форма.ТолькоПросмотр);
|
||||
ПараметрыОткрытияФормы.Вставить("ТолькоПросмотр", Форма.ТолькоПросмотр Или Элемент.ТолькоПросмотр);
|
||||
ПараметрыОткрытияФормы.Вставить("ТипПомещения", ПараметрыКонтактнойИнформации.ПараметрыАдреса.ТипПомещения);
|
||||
ПараметрыОткрытияФормы.Вставить("Страна", ПараметрыКонтактнойИнформации.ПараметрыАдреса.Страна);
|
||||
ПараметрыОткрытияФормы.Вставить("Индекс", ПараметрыКонтактнойИнформации.ПараметрыАдреса.Индекс);
|
||||
|
||||
@@ -1296,7 +1296,7 @@
|
||||
Функция ДанныеВидовКонтактнойИнформации(Знач ВидыКонтактнойИнформации) Экспорт
|
||||
|
||||
МетаданныеРеквизитов = Метаданные.Справочники.ВидыКонтактнойИнформации.Реквизиты;
|
||||
Реквизиты = "Наименование, ИмяПредопределенныхДанных";
|
||||
Реквизиты = "Наименование, ИмяПредопределенныхДанных, ПометкаУдаления";
|
||||
Для Каждого МетаданныеРеквизита Из МетаданныеРеквизитов Цикл
|
||||
Реквизиты = Реквизиты + "," + МетаданныеРеквизита.Имя;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="35709757-3655-468e-a03a-420dd21928a9">
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="236c7c81-784e-42cd-a959-5a6a9352cef1">
|
||||
<name>БиблиотекаСтандартныхПодсистем</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Библиотека стандартных подсистем, редакция 2.4</value>
|
||||
</synonym>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="e2ccf507-dafe-4601-a8f9-7e47a297f3f0"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="a435d3b9-729f-48ee-a864-ab4297fd9377"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="19461ada-30af-4fbf-98f7-53bc65622373"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="ed1bd08c-173e-4e0c-bf51-f196476cc0d2"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="bfc4cee5-c9dd-4f38-9d24-71e1798d67f5"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="ee62e349-0512-4776-9031-78966ec4955a"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="d8512fc9-88f7-4cac-a8ba-14645de9f922"/>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="52656da1-07d5-4859-84b8-e37dc9db3e22"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="f08da7bb-aa99-4f49-bc50-04bc605d5277"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="8454ebab-86f8-413b-ac2a-ae58cc3e2fae"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="e639cfd6-02d2-4f12-960c-9fe4e3d88736"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="75a97959-9271-4fca-a76c-21f81f03585b"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="d7968f25-7a7b-4b32-949d-88e7e136ebd0"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="894a8fb4-f462-4e0a-8476-3ce8f88a26c4"/>
|
||||
<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.97</version>
|
||||
<version>2.4.6.117</version>
|
||||
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<usedMobileApplicationFunctionalities>
|
||||
|
||||
@@ -1 +1 @@
|
||||
{6,1,1,21ab78ce-4595-4055-9e1b-fc28a338d63f,1,4478f36b-9d5a-4e7b-8b24-061723d0e2f0,"2.4.6.97","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5576,1,0,35709757-3655-468e-a03a-420dd21928a9,35709757-3655-468e-a03a-420dd21928a9,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,b4c1e8c7-a731-42f3-bb3d-818b687ff04e,1,c9a77dc8-373b-4430-89bc-5ccb8a7139ee,"2.4.6.117","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5576,1,0,236c7c81-784e-42cd-a959-5a6a9352cef1,236c7c81-784e-42cd-a959-5a6a9352cef1,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-fd82Line truncated
|
||||
@@ -808,12 +808,14 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Страна = "РФ";
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
|
||||
МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами");
|
||||
Страна = МодульРаботаСАдресами.ОсновнаяСтрана();
|
||||
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
Страна = "РФ";
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
|
||||
МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами");
|
||||
Страна = МодульРаботаСАдресами.ОсновнаяСтрана();
|
||||
КонецЕсли;
|
||||
ОбновитьЗначениеРеквизита(КлассификаторБанковОбъект, "Страна", Страна);
|
||||
КонецЕсли;
|
||||
ОбновитьЗначениеРеквизита(КлассификаторБанковОбъект, "Страна", Страна);
|
||||
|
||||
Если КлассификаторБанковОбъект.Модифицированность() Тогда
|
||||
ФлагОбновленный = Истина;
|
||||
|
||||
+12
-43
@@ -4781,49 +4781,7 @@
|
||||
Результат = Контекст.РезультатПослеВызоваПолучитьОткрытыйКлюч;
|
||||
|
||||
Контекст.Вставить("ТекущаяОткрытаяЧастьКлючаЭП", Результат);
|
||||
|
||||
Криптография.НачатьВызовВычислитьИдентификаторКлючаСубъекта(Новый ОписаниеОповещения(
|
||||
"СоздатьКлючИЗапросНаСертификатПослеВызоваВычислитьИдентификаторКлючаСубъекта", ЭтотОбъект, Контекст,
|
||||
"СоздатьКлючИЗапросНаСертификатПослеОшибкиВызоваВычислитьИдентификаторКлючаСубъекта", ЭтотОбъект),
|
||||
Контекст.ИмяФайлаЗапроса);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры СоздатьКлючИЗапросНаСертификат.
|
||||
&НаКлиенте
|
||||
Процедура СоздатьКлючИЗапросНаСертификатПослеОшибкиВызоваВычислитьИдентификаторКлючаСубъекта(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
Криптография = Неопределено;
|
||||
|
||||
СоздатьКлючИЗапросНаСертификатЗавершение(Контекст, ИнформацияОбОшибке,
|
||||
НСтр("ru = 'Не удалось вычислить идентификатор ключа субъекта по причине:'"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры СоздатьКлючИЗапросНаСертификат.
|
||||
&НаКлиенте
|
||||
Процедура СоздатьКлючИЗапросНаСертификатПослеВызоваВычислитьИдентификаторКлючаСубъекта(Результат, ПараметрыВызова, Контекст) Экспорт
|
||||
|
||||
Контекст.Вставить("РезультатПослеВызоваВычислитьИдентификаторКлючаСубъекта", Результат);
|
||||
|
||||
Криптография.НачатьПолучениеСписокОшибок(Новый ОписаниеОповещения(
|
||||
"СоздатьКлючИЗапросНаСертификатПослеВызоваВычислитьИдентификаторКлючаСубъектаПослеПолученияСписокОшибок", ЭтотОбъект, Контекст));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры СоздатьКлючИЗапросНаСертификат.
|
||||
&НаКлиенте
|
||||
Процедура СоздатьКлючИЗапросНаСертификатПослеВызоваВычислитьИдентификаторКлючаСубъектаПослеПолученияСписокОшибок(СписокОшибок, Контекст) Экспорт
|
||||
|
||||
Если ЗначениеЗаполнено(СписокОшибок) Тогда
|
||||
СоздатьКлючИЗапросНаСертификатПослеОшибкиВызоваВычислитьИдентификаторКлючаСубъекта(СписокОшибок, Ложь, Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Контекст.РезультатПослеВызоваВычислитьИдентификаторКлючаСубъекта;
|
||||
|
||||
Контекст.Вставить("ТекущийИКС", Результат);
|
||||
Контекст.Вставить("ТекущийИКС", ИдентификаторКлючаСубъектаHexСтрокой(Результат));
|
||||
|
||||
НачатьПомещениеФайлов(Новый ОписаниеОповещения(
|
||||
"СоздатьКлючИЗапросНаСертификатПослеПомещенияФайлов", ЭтотОбъект, Контекст,
|
||||
@@ -4832,6 +4790,17 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Для продолжения процедуры СоздатьКлючИЗапросНаСертификат.
|
||||
&НаСервереБезКонтекста
|
||||
Функция ИдентификаторКлючаСубъектаHexСтрокой(ОткрытаяЧастьКлючаHexСтрокой)
|
||||
|
||||
ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.SHA1);
|
||||
ХешированиеДанных.Добавить(ПолучитьДвоичныеДанныеИзHexСтроки(ОткрытаяЧастьКлючаHexСтрокой));
|
||||
|
||||
Возврат ПолучитьHexСтрокуИзДвоичныхДанных(ХешированиеДанных.ХешСумма);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Продолжение процедуры СоздатьКлючИЗапросНаСертификат.
|
||||
&НаКлиенте
|
||||
Процедура СоздатьКлючИЗапросНаСертификатПослеОшибкиПомещенияФайлов(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
|
||||
|
||||
@@ -16348,12 +16348,6 @@
|
||||
ОбменДаннымиСервер.ПропуститьПроверкуЗапретаИзменения();
|
||||
Объект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения");
|
||||
|
||||
СведенияОВерсииОбъекта = Новый Структура;
|
||||
СведенияОВерсииОбъекта.Вставить("ОтложеннаяОбработка", Истина);
|
||||
СведенияОВерсииОбъекта.Вставить("ТипВерсииОбъекта", "ИзмененоПользователем");
|
||||
СведенияОВерсииОбъекта.Вставить("АвторВерсии", УзелОбменаЗагрузкаДанных);
|
||||
Объект.ДополнительныеСвойства.Вставить("СведенияОВерсииОбъекта", СведенияОВерсииОбъекта);
|
||||
|
||||
// Выполняем попытку проведения документа.
|
||||
Объект.Записать(РежимЗаписиДокумента.Проведение);
|
||||
|
||||
@@ -16433,12 +16427,6 @@
|
||||
ОбменДаннымиСервер.ПропуститьПроверкуЗапретаИзменения();
|
||||
Объект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения");
|
||||
|
||||
СведенияОВерсииОбъекта = Новый Структура;
|
||||
СведенияОВерсииОбъекта.Вставить("ОтложеннаяОбработка", Истина);
|
||||
СведенияОВерсииОбъекта.Вставить("ТипВерсииОбъекта", "ИзмененоПользователем");
|
||||
СведенияОВерсииОбъекта.Вставить("АвторВерсии", УзелОбменаЗагрузкаДанных);
|
||||
Объект.ДополнительныеСвойства.Вставить("СведенияОВерсииОбъекта", СведенияОВерсииОбъекта);
|
||||
|
||||
// Выполняем попытку записи объекта.
|
||||
Объект.Записать();
|
||||
|
||||
|
||||
@@ -23,10 +23,11 @@
|
||||
// Отказ - Булево - флаг отказа; поднимается в случае возникновения ошибок при работе процедуры.
|
||||
//
|
||||
Процедура ВыполнитьДействияПоНастройкеНовогоОбменаДанными(Отказ,
|
||||
НастройкаОтборовНаУзле,
|
||||
ЗначенияПоУмолчаниюНаУзле,
|
||||
РегистрироватьДанныеДляВыгрузки = Истина,
|
||||
ИспользоватьНастройкиТранспорта = Истина) Экспорт
|
||||
НастройкаОтборовНаУзле,
|
||||
ЗначенияПоУмолчаниюНаУзле,
|
||||
РегистрироватьДанныеДляВыгрузки = Истина,
|
||||
ИспользоватьНастройкиТранспорта = Истина,
|
||||
СообщениеОбОшибке = "") Экспорт
|
||||
|
||||
КодЭтогоУзла = ?(ИспользоватьПрефиксыДляНастройкиОбмена,
|
||||
ПолучитьКодУзлаЭтойБазы(ПрефиксИнформационнойБазыИсточника),
|
||||
@@ -39,7 +40,12 @@
|
||||
КодНовогоУзла = ИдентификаторИнформационнойБазыПриемника;
|
||||
КонецЕсли;
|
||||
|
||||
ВыполнитьДействияПоНастройкеОбменаДанными(Отказ, НастройкаОтборовНаУзле, ЗначенияПоУмолчаниюНаУзле, КодЭтогоУзла, КодНовогоУзла, РегистрироватьДанныеДляВыгрузки, ИспользоватьНастройкиТранспорта);
|
||||
СтатусЗавершения = Неопределено;
|
||||
ВыполнитьДействияПоНастройкеОбменаДанными(СтатусЗавершения,
|
||||
НастройкаОтборовНаУзле, ЗначенияПоУмолчаниюНаУзле, КодЭтогоУзла, КодНовогоУзла, РегистрироватьДанныеДляВыгрузки, ИспользоватьНастройкиТранспорта);
|
||||
|
||||
Отказ = СтатусЗавершения.Отказ;
|
||||
СообщениеОбОшибке = СтатусЗавершения.СообщениеОбОшибке;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -540,7 +546,8 @@
|
||||
// Выполняет действия при создании нового обмена данными через веб-сервис.
|
||||
// Подробное описание см. в процедуре ВыполнитьДействияПоНастройкеНовогоОбменаДанными.
|
||||
//
|
||||
Процедура ВебСервисВыполнитьДействияПоНастройкеНовогоОбменаДанными(Отказ, НастройкаОтборовНаУзле, ЗначенияПоУмолчаниюНаУзле) Экспорт
|
||||
Процедура ВебСервисВыполнитьДействияПоНастройкеНовогоОбменаДанными(Отказ,
|
||||
НастройкаОтборовНаУзле, ЗначенияПоУмолчаниюНаУзле, СообщениеОбОшибке = "") Экспорт
|
||||
|
||||
НастройкаОтборовНаУзле = ПолучитьЗначенияНастройкиОтборов(НастройкаОтборовНаУзле);
|
||||
ЗначенияПоУмолчаниюНаУзле = ПолучитьЗначенияНастройкиОтборов(ЗначенияПоУмолчаниюНаУзле);
|
||||
@@ -553,7 +560,9 @@
|
||||
Попытка
|
||||
ПланыОбмена[ИмяПланаОбмена].ПриПолученииДанныхОтправителя(НастройкаОтборовНаУзле, Ложь);
|
||||
Исключение
|
||||
СообщитьИнформациюОбОшибке(ИнформацияОбОшибке(), Отказ);
|
||||
Инфо = ИнформацияОбОшибке();
|
||||
СообщениеОбОшибке = КраткоеПредставлениеОшибки(Инфо);
|
||||
СообщитьИнформациюОбОшибке(Инфо, Отказ);
|
||||
Возврат;
|
||||
КонецПопытки;
|
||||
КонецЕсли;
|
||||
@@ -563,23 +572,8 @@
|
||||
НастройкаОтборовНаУзле,
|
||||
ЗначенияПоУмолчаниюНаУзле,
|
||||
Ложь,
|
||||
Ложь);
|
||||
|
||||
Если Отказ Тогда
|
||||
УдалитьНастройкуОбменаДанными();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УдалитьНастройкуОбменаДанными()
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
МенеджерПланаОбмена = ПланыОбмена[ИмяПланаОбмена];
|
||||
УдаляемыйУзел = МенеджерПланаОбмена.НайтиПоКоду(КодНовогоУзлаВторойБазы);
|
||||
Если Не УдаляемыйУзел.Пустая() Тогда
|
||||
УдаляемыйУзелОбъект = УдаляемыйУзел.ПолучитьОбъект();
|
||||
УдаляемыйУзелОбъект.Удалить();
|
||||
КонецЕсли;
|
||||
Ложь,
|
||||
СообщениеОбОшибке);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -779,13 +773,17 @@
|
||||
// Вспомогательные служебные процедуры и функции.
|
||||
|
||||
Процедура ВыполнитьДействияПоНастройкеОбменаДанными(
|
||||
Отказ,
|
||||
СтатусЗавершения,
|
||||
НастройкаОтборовНаУзле,
|
||||
ЗначенияПоУмолчаниюНаУзле,
|
||||
КодЭтогоУзла,
|
||||
КодНовогоУзла,
|
||||
РегистрироватьДанныеДляВыгрузки = Истина,
|
||||
ИспользоватьНастройкиТранспорта = Истина)
|
||||
|
||||
СтатусЗавершения = Новый Структура;
|
||||
СтатусЗавершения.Вставить("Отказ", Ложь);
|
||||
СтатусЗавершения.Вставить("СообщениеОбОшибке", "");
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
@@ -825,7 +823,10 @@
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
СообщитьИнформациюОбОшибке(ИнформацияОбОшибке(), Отказ);
|
||||
|
||||
Инфо = ИнформацияОбОшибке();
|
||||
СтатусЗавершения.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Инфо);
|
||||
СообщитьИнформациюОбОшибке(Инфо, СтатусЗавершения.Отказ);
|
||||
Возврат;
|
||||
КонецПопытки;
|
||||
|
||||
@@ -838,12 +839,14 @@
|
||||
И Не ЭтоНастройкаРаспределеннойИнформационнойБазы Тогда
|
||||
|
||||
// Выполняем регистрацию изменений на узле плана обмена.
|
||||
ЗарегистрироватьИзмененияДляОбмена(Отказ);
|
||||
ЗарегистрироватьИзмененияДляОбмена(СтатусЗавершения.Отказ);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Исключение
|
||||
СообщитьИнформациюОбОшибке(ИнформацияОбОшибке(), Отказ);
|
||||
Инфо = ИнформацияОбОшибке();
|
||||
СтатусЗавершения.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Инфо);
|
||||
СообщитьИнформациюОбОшибке(Инфо, СтатусЗавершения.Отказ);
|
||||
Возврат;
|
||||
КонецПопытки;
|
||||
|
||||
@@ -894,8 +897,15 @@
|
||||
НовыйУзел = МенеджерПланаОбмена.СоздатьУзел();
|
||||
НовыйУзел.Код = КодНовогоУзла;
|
||||
Иначе
|
||||
ВызватьИсключение НСтр("ru = 'Значение префикса первой информационной базы не уникально.
|
||||
|В системе уже существует синхронизация данных для информационной базы (программы) с указанным префиксом.'");
|
||||
Если ВариантРаботыМастера = "ПродолжитьНастройкуОбменаДанными" Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Значение префикса программы ""%1"" не уникально (""%2""). Уже существует настройка синхронизации с таким же префиксом.
|
||||
|Для продолжения необходимо назначить в программе ""%1"" уникальный префикс информационной базы, отличный от текущего.'"),
|
||||
НаименованиеВторойБазы, КодНовогоУзлаВторойБазы);
|
||||
Иначе
|
||||
ВызватьИсключение НСтр("ru = 'Значение префикса первой информационной базы не уникально.
|
||||
|В системе уже существует синхронизация данных для информационной базы (программы) с указанным префиксом.'");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
НовыйУзел.Наименование = НаименованиеВторойБазы;
|
||||
|
||||
@@ -5027,7 +5027,6 @@
|
||||
<name>ОчиститьАдрес</name>
|
||||
</handler>
|
||||
</action>
|
||||
<modifiesStoredData>true</modifiesStoredData>
|
||||
<currentRowUse>DontUse</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
|
||||
@@ -1008,6 +1008,7 @@
|
||||
Процедура ОчиститьАдрес(Команда)
|
||||
|
||||
ОчиститьАдресКлиент();
|
||||
Модифицированность = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -2699,9 +2700,11 @@
|
||||
Если КоличествоОшибок = 1 Тогда
|
||||
МестоОшибки = СписокОшибок[0].Значение;
|
||||
Если СписокОшибок[0].Пометка = Ложь И НЕ ЭтоВебСервис Тогда
|
||||
|
||||
ТекстВопроса = НСтр("ru = 'Адрес не может быть проверен.'") + Символы.ПС + СписокОшибок[0].Представление + Символы.ПС + НСтр("ru = 'Загрузить классификатор для проверки адреса?'");
|
||||
ПредложениеЗагрузкиКлассификатора(ТекстВопроса);
|
||||
Возврат;
|
||||
|
||||
ИначеЕсли ПустаяСтрока(МестоОшибки) Или МестоОшибки = "/" Тогда
|
||||
// Одна ошибка на весь адрес, не привязанная к полю.
|
||||
ПоказатьПредупреждение(, СписокОшибок[0].Представление);
|
||||
|
||||
@@ -1699,7 +1699,11 @@
|
||||
Если XDTOТип = ФабрикаXDTO.Тип(РаботаСАдресами.ПространствоИмен(), "АдресРФ") Тогда
|
||||
АдресРФ = XDTOАдрес;
|
||||
Иначе
|
||||
АдресРФ = XDTOАдрес.Состав;
|
||||
Если XDTOАдрес.Свойства().Получить("Состав") <> Неопределено Тогда
|
||||
АдресРФ = XDTOАдрес.Состав;
|
||||
Иначе
|
||||
АдресРФ = XDTOАдрес;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(АдресРФ) = Тип("ОбъектXDTO") Тогда
|
||||
@@ -2787,14 +2791,33 @@
|
||||
// Только уникальные ошибки - мы могли проверить адрес два раза.
|
||||
Обработанные = Новый Соответствие;
|
||||
Для Каждого РезультатПроверки Из РезультатыАнализа.Данные Цикл
|
||||
Для Каждого ОшибкаАдреса Из РезультатПроверки.Ошибки Цикл
|
||||
Ключ = ОшибкаАдреса.Ключ;
|
||||
Если Обработанные[Ключ] = Неопределено Тогда
|
||||
Результат.Добавить(Новый Структура("ПутьXPath, СущностьПоля, АдресПроверен", Ключ,, РезультатПроверки.АдресПроверен),
|
||||
СокрЛП(ОшибкаАдреса.Текст + Символы.ПС + ОшибкаАдреса.Подсказка));
|
||||
Обработанные[Ключ] = Истина;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если РезультатПроверки.Свойство("Исторический") И РезультатПроверки.Исторический Тогда
|
||||
|
||||
Если РезультатПроверки.Варианты.Количество() > 0 Тогда
|
||||
|
||||
ПредставлениеАдреса = ПредставлениеАдреса(Новый Структура("ФорматАдреса", "ФИАС"), РезультатПроверки.Варианты[0].Данные, "Россия");
|
||||
|
||||
ОписаниеОшибки = Новый Структура("ПутьXPath, СущностьПоля, АдресПроверен", "Представление", "", РезультатПроверки.АдресПроверен);
|
||||
ШаблонОшибки = НСтр("ru='Адрес некорректный, т.к. он устарел
|
||||
|Актуальный: %1'");
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПредставлениеАдреса);
|
||||
Результат.Добавить(ОписаниеОшибки, ТекстОшибки);
|
||||
|
||||
КонецЕсли;
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ОшибкаАдреса Из РезультатПроверки.Ошибки Цикл
|
||||
Ключ = ОшибкаАдреса.Ключ;
|
||||
Если Обработанные[Ключ] = Неопределено Тогда
|
||||
Результат.Добавить(Новый Структура("ПутьXPath, СущностьПоля, АдресПроверен", Ключ,, РезультатПроверки.АдресПроверен),
|
||||
СокрЛП(ОшибкаАдреса.Текст + Символы.ПС + ОшибкаАдреса.Подсказка));
|
||||
Обработанные[Ключ] = Истина;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
+4
@@ -26,6 +26,10 @@ var taskNameScheduleService = [ИмяЗадачиПланировщикаЗад
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбластьОбновленияКонфигурации
|
||||
if (useComConnector) {
|
||||
var comConnectorCached = new ActiveXObject(comConnectorName) // для защиты от перерегистрации comConnector из других сеансов
|
||||
}
|
||||
|
||||
// Инициализация
|
||||
var oFileSystemObject = new ActiveXObject("Scripting.FileSystemObject");
|
||||
|
||||
|
||||
+2
-4
@@ -8,12 +8,10 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПолучитьФункциональнуюОпцию("ИспользоватьСкрытиеПерсональныхДанныхСубъектов") Тогда
|
||||
Если ЗащитаПерсональныхДанных.ИспользоватьСкрытиеПерсональныхДанныхСубъектов() Тогда
|
||||
|
||||
Регистратор = Отбор.Регистратор.Значение;
|
||||
Субъект = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Регистратор, "Субъект");
|
||||
|
||||
ЗащитаПерсональныхДанных.РассчитатьДатуСкрытияПерсональныхДанныхСубъекта(Субъект);
|
||||
ЗащитаПерсональныхДанных.РассчитатьДатуСкрытияПерсональныхДанныхПоОснованиям(Регистратор);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -61,6 +61,11 @@
|
||||
|{ГДЕ
|
||||
| (Дата МЕЖДУ &НачалоПериода И &КонецПериода)}";
|
||||
КонецЕсли;
|
||||
ИначеЕсли ПараметрыОтчета.ТипОбъектаМетаданных = "РегистрыСведений"
|
||||
И МетаданныеИсточника.ПериодичностьРегистраСведений <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда
|
||||
ОтборИсточника = "
|
||||
|{ГДЕ
|
||||
| (Период МЕЖДУ &НачалоПериода И &КонецПериода)}";
|
||||
ИначеЕсли ПараметрыОтчета.ТипОбъектаМетаданных = "РегистрыНакопления"
|
||||
Или ПараметрыОтчета.ТипОбъектаМетаданных = "РегистрыБухгалтерии" Тогда
|
||||
ОтборИсточника = "
|
||||
@@ -172,11 +177,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ПустаяСтрока(ИмяОбъектаМетаданных) Тогда
|
||||
Если ЗначениеЗаполнено(ПараметрИсточникДанных.Значение) Тогда
|
||||
ИмяОбъектаМетаданных = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПараметрИсточникДанных.Значение, "Имя");
|
||||
Иначе
|
||||
ИмяОбъектаМетаданных = ПараметрИмяОбъектаМетаданных.Значение;
|
||||
КонецЕсли;
|
||||
ИмяОбъектаМетаданных = ПараметрИмяОбъектаМетаданных.Значение;
|
||||
КонецЕсли;
|
||||
|
||||
Если (НЕ ЗначениеЗаполнено(ТипОбъектаМетаданных)
|
||||
@@ -798,63 +799,156 @@
|
||||
|
||||
Функция ПараметрыОтчета(Настройки, ПользовательскиеНастройки) Экспорт
|
||||
ПараметрыОтчета = Новый Структура(
|
||||
"ОчиститьСтруктуру, Период, ИсточникДанных, ТипОбъектаМетаданных, ИмяОбъектаМетаданных, ИмяТаблицы", Ложь);
|
||||
"Период, ИсточникДанных, ТипОбъектаМетаданных, ПолноеИмяОбъектаМетаданных, ИмяОбъектаМетаданных, ИмяТаблицы");
|
||||
ПараметрыОтчета.Вставить("ОчиститьСтруктуру", Ложь);
|
||||
|
||||
Если Настройки.ДополнительныеСвойства.Свойство("ОтчетИнициализирован")
|
||||
И ТипЗнч(ПользовательскиеНастройки) = Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда
|
||||
Для Каждого Элемент Из ПользовательскиеНастройки.Элементы Цикл
|
||||
Если ТипЗнч(Элемент) <> Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяПараметра = Строка(Элемент.Параметр);
|
||||
Если ПараметрыОтчета.Свойство(ИмяПараметра) Тогда
|
||||
ПараметрыОтчета[ИмяПараметра] = Элемент.Значение;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
ПолучитьПараметрыИзПользовательскихНастроек(ПараметрыОтчета, ПользовательскиеНастройки);
|
||||
ПолучитьПараметрыИзНастроек(ПараметрыОтчета, Настройки);
|
||||
|
||||
// Если в настройках варианта хранится параметр с неактуальным именем - выполнится его актуализация.
|
||||
ПараметрыОтчета.Удалить("ПолноеИмяОбъектаМетаданных");
|
||||
|
||||
ПараметрыДанных = Настройки.ПараметрыДанных.Элементы;
|
||||
Для Каждого Параметр Из ПараметрыОтчета Цикл
|
||||
Если ЗначениеЗаполнено(Параметр.Значение) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
НайденныйПараметр = ПараметрыДанных.Найти(Параметр.Ключ);
|
||||
Если НайденныйПараметр <> Неопределено Тогда
|
||||
ПараметрыОтчета[Параметр.Ключ] = НайденныйПараметр.Значение;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если ЗначениеЗаполнено(ПараметрыОтчета.ИсточникДанных) Тогда
|
||||
ОбъектМетаданных = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ПараметрыОтчета.ИсточникДанных);
|
||||
ПараметрыОтчета.ТипОбъектаМетаданных = ОбщегоНазначения.ИмяБазовогоТипаПоОбъектуМетаданных(ОбъектМетаданных);
|
||||
ПараметрыОтчета.ИмяОбъектаМетаданных = ОбъектМетаданных.Имя;
|
||||
НеактуальныйПараметр = ПараметрыДанных.Найти("ПолноеИмяОбъектаМетаданных");
|
||||
Если НеактуальныйПараметр <> Неопределено Тогда
|
||||
ПараметрыДанных.Удалить(НеактуальныйПараметр);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОтчета.ОчиститьСтруктуру = (ПараметрыОтчета.ИмяТаблицы <> ПараметрыДанных.Найти("ИмяТаблицы").Значение);
|
||||
ПривестиКИсточникуДанных(ПараметрыОтчета, Настройки);
|
||||
|
||||
// Заполнение значениями по умолчанию.
|
||||
Если Не ЗначениеЗаполнено(ПараметрыОтчета.ТипОбъектаМетаданных) Тогда
|
||||
ПараметрыОтчета.ТипОбъектаМетаданных = ТипОбъектаМетаданныхПоУмолчанию();
|
||||
ПараметрыОтчета.ОчиститьСтруктуру = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ПараметрыОтчета.ИмяОбъектаМетаданных) Тогда
|
||||
ПараметрыОтчета.ИмяОбъектаМетаданных = ИмяОбъектаМетаданныхПоУмолчанию(
|
||||
Настройки, ПараметрыОтчета.ТипОбъектаМетаданных);
|
||||
ПараметрыОтчета.ОчиститьСтруктуру = Истина;
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(ПараметрыОтчета.ИмяТаблицы) Тогда
|
||||
|
||||
Если ПараметрыОтчета.ОчиститьСтруктуру Тогда
|
||||
ПривестиКИсточникуДанных(ПараметрыОтчета, Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
ДоступныеТаблицы = ДоступныеТаблицы(
|
||||
Настройки, ПараметрыОтчета.ТипОбъектаМетаданных, ПараметрыОтчета.ИмяОбъектаМетаданных);
|
||||
|
||||
Если ПараметрыОтчета.ИмяТаблицы = Неопределено
|
||||
Или ДоступныеТаблицы.НайтиПоЗначению(ПараметрыОтчета.ИмяТаблицы) = Неопределено Тогда
|
||||
ПараметрыОтчета.ИмяТаблицы = ИмяТаблицыПоУмолчанию(
|
||||
Настройки, ПараметрыОтчета.ТипОбъектаМетаданных, ПараметрыОтчета.ИмяОбъектаМетаданных);
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(ПараметрыОтчета.ИсточникДанных) Тогда
|
||||
ПараметрыОтчета.ИсточникДанных = ИсточникДанных(ПараметрыОтчета.ТипОбъектаМетаданных, ПараметрыОтчета.ИмяОбъектаМетаданных);
|
||||
ПараметрыОтчета.ОчиститьСтруктуру = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ПараметрыОтчета;
|
||||
КонецФункции
|
||||
|
||||
// Получает параметры, влияющие на построение запроса набора данных СКД из пользовательских настроек.
|
||||
//
|
||||
// Параметры:
|
||||
// Параметры - Структура - см. ПараметрыОтчета()
|
||||
// Настройки - ПользовательскиеНастройкиКомпоновкиДанных - текущие пользовательские настройки компоновки данных.
|
||||
//
|
||||
Процедура ПолучитьПараметрыИзПользовательскихНастроек(Параметры, Настройки)
|
||||
Если ТипЗнч(Настройки) <> Тип("ПользовательскиеНастройкиКомпоновкиДанных")
|
||||
Или Настройки.Элементы.Количество() = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ЭлементНастройки Из Настройки.Элементы Цикл
|
||||
Если ТипЗнч(ЭлементНастройки) <> Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяПараметра = Строка(ЭлементНастройки.Параметр);
|
||||
Если Параметры.Свойство(ИмяПараметра)
|
||||
И Параметры[ИмяПараметра] = Неопределено Тогда
|
||||
Параметры[ИмяПараметра] = ЭлементНастройки.Значение;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
// Если в настройках варианта хранится параметр с неактуальным именем - выполнится его актуализация.
|
||||
Если ЗначениеЗаполнено(Параметры.ПолноеИмяОбъектаМетаданных)
|
||||
И Не ЗначениеЗаполнено(Параметры.ИмяОбъектаМетаданных) Тогда
|
||||
Параметры.ИмяОбъектаМетаданных = Параметры.ПолноеИмяОбъектаМетаданных;
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
// Получает параметры, влияющие на построение запроса набора данных СКД из настроек.
|
||||
//
|
||||
// Параметры:
|
||||
// Параметры - Структура - см. ПараметрыОтчета()
|
||||
// Настройки - НастройкиКомпоновкиДанных - текущие настройки компоновки данных.
|
||||
//
|
||||
Процедура ПолучитьПараметрыИзНастроек(Параметры, Настройки)
|
||||
ПараметрыДанных = Настройки.ПараметрыДанных.Элементы;
|
||||
|
||||
Для Каждого Параметр Из Параметры Цикл
|
||||
ЭлементНастройки = ПараметрыДанных.Найти(Параметр.Ключ);
|
||||
Если ЭлементНастройки = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если Параметр.Значение = Неопределено Тогда
|
||||
Параметры[Параметр.Ключ] = ЭлементНастройки.Значение;
|
||||
ИначеЕсли ЭлементНастройки.Значение <> Параметр.Значение Тогда
|
||||
ЭлементНастройки.Значение = Параметр.Значение;
|
||||
Настройки.ДополнительныеСвойства.Вставить("ОтчетИнициализирован", Ложь);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
// Если в настройках варианта хранится параметр с неактуальным именем - выполнится его актуализация.
|
||||
Если ЗначениеЗаполнено(Параметры.ПолноеИмяОбъектаМетаданных)
|
||||
И Не ЗначениеЗаполнено(Параметры.ИмяОбъектаМетаданных) Тогда
|
||||
Параметры.ИмяОбъектаМетаданных = Параметры.ПолноеИмяОбъектаМетаданных;
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
// Устанавливает соответствие параметров ТипОбъектаМетаданных, ИмяОбъектаМетаданных
|
||||
// с параметром ИсточникДанных.
|
||||
//
|
||||
// Параметры:
|
||||
// Параметры - Структура - см. ПараметрыОтчета()
|
||||
// Настройки - НастройкиКомпоновкиДанных - текущие настройки компоновки данных.
|
||||
//
|
||||
Процедура ПривестиКИсточникуДанных(Параметры, Настройки)
|
||||
Если Не ЗначениеЗаполнено(Параметры.ТипОбъектаМетаданных)
|
||||
Или Не ЗначениеЗаполнено(Параметры.ИмяОбъектаМетаданных) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектМетаданныхСуществует = ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(
|
||||
Метаданные[Параметры.ТипОбъектаМетаданных], Параметры.ИмяОбъектаМетаданных);
|
||||
|
||||
Если ОбъектМетаданныхСуществует Тогда
|
||||
Параметры.ИсточникДанных = ИсточникДанных(Параметры.ТипОбъектаМетаданных, Параметры.ИмяОбъектаМетаданных);
|
||||
ИначеЕсли ЗначениеЗаполнено(Параметры.ИсточникДанных) Тогда
|
||||
ОбъектМетаданных = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Параметры.ИсточникДанных);
|
||||
Параметры.ТипОбъектаМетаданных = ОбщегоНазначения.ИмяБазовогоТипаПоОбъектуМетаданных(ОбъектМетаданных);
|
||||
Параметры.ИмяОбъектаМетаданных = ОбъектМетаданных.Имя;
|
||||
Параметры.ИмяТаблицы = Неопределено;
|
||||
Иначе
|
||||
Параметры.ТипОбъектаМетаданных = Неопределено;
|
||||
Параметры.ИмяОбъектаМетаданных = Неопределено;
|
||||
Параметры.ИмяТаблицы = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
// Согласование со значением параметра данных.
|
||||
ПараметрыДанных = Настройки.ПараметрыДанных;
|
||||
|
||||
ЭлементНастройки = ПараметрыДанных.Элементы.Найти("ИсточникДанных");
|
||||
Если ЭлементНастройки = Неопределено Тогда
|
||||
ЭлементНастройки = ПараметрыДанных.Элементы.Добавить();
|
||||
ЭлементНастройки.Параметр = Новый ПараметрКомпоновкиДанных("ИсточникДанных");
|
||||
ЭлементНастройки.Значение = Параметры.ИсточникДанных;
|
||||
ЭлементНастройки.Использование = Истина;
|
||||
Иначе
|
||||
ПараметрыДанных.УстановитьЗначениеПараметра("ИсточникДанных", Параметры.ИсточникДанных);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьТиповуюСхему(ПараметрыОтчета, НастройкиКД, НовыеПользовательскиеНастройкиКД) Экспорт
|
||||
|
||||
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
|
||||
|
||||
@@ -535,6 +535,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>
|
||||
@@ -805,93 +892,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>
|
||||
|
||||
@@ -1113,6 +1113,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>
|
||||
@@ -1519,45 +1558,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>
|
||||
|
||||
@@ -125,17 +125,25 @@
|
||||
ПомощникСозданияОбменаДанными.ПрефиксИнформационнойБазыИсточникаУстановлен = ЗначениеЗаполнено(ПолучитьФункциональнуюОпцию("ПрефиксИнформационнойБазы"));
|
||||
|
||||
// Выполняем создание настройки обмена.
|
||||
СообщениеОбОшибке = "";
|
||||
ПомощникСозданияОбменаДанными.ВебСервисВыполнитьДействияПоНастройкеНовогоОбменаДанными(
|
||||
Отказ,
|
||||
СериализаторXDTO.ПрочитатьXDTO(НастройкаОтборовXDTO),
|
||||
СериализаторXDTO.ПрочитатьXDTO(ЗначенияПоУмолчаниюXDTO));
|
||||
СериализаторXDTO.ПрочитатьXDTO(ЗначенияПоУмолчаниюXDTO),
|
||||
СообщениеОбОшибке);
|
||||
|
||||
Если Отказ Тогда
|
||||
Сообщение = НСтр("ru = 'При создании настройки обмена во второй информационной базе возникли ошибки: %1'");
|
||||
Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, ПомощникСозданияОбменаДанными.СтрокаСообщенияОбОшибке());
|
||||
Сообщение = НСтр("ru = 'При сохранении настройки обмена в программе ""%1"" возникла ошибка: %2'");
|
||||
Если ПустаяСтрока(СообщениеОбОшибке) Тогда
|
||||
Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение,
|
||||
ПомощникСозданияОбменаДанными.НаименованиеЭтойБазы, ПомощникСозданияОбменаДанными.СтрокаСообщенияОбОшибке());
|
||||
Иначе
|
||||
Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение,
|
||||
ПомощникСозданияОбменаДанными.НаименованиеЭтойБазы, СообщениеОбОшибке);
|
||||
КонецЕсли;
|
||||
|
||||
ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , Сообщение);
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ПомощникСозданияОбменаДанными.СтрокаСообщенияОбОшибке());
|
||||
|
||||
ВызватьИсключение Сообщение;
|
||||
КонецЕсли;
|
||||
|
||||
Reference in new issue
Block a user