3_1_5_171
This commit is contained in:
1 parent
b10548f0af
commit
09e68ae35b
46 files changed
+971
-433
No files matched your search
@@ -133,13 +133,16 @@
|
||||
&НаСервере
|
||||
Процедура УточнитьФорматПолейВремени()
|
||||
|
||||
ФорматВремени = НСтр("ru = 'ДФ=ЧЧ:мм; ДП='");
|
||||
ФорматВремени = ?(ГрафикиРаботы.ДвенадцатиЧасовойФорматВремени(),
|
||||
НСтр("ru = 'ДФ=''чч:мм вв''; ДП='"), НСтр("ru = 'ДФ=ЧЧ:мм; ДП='"));
|
||||
ФорматВремениРедактирования = ?(ГрафикиРаботы.ДвенадцатиЧасовойФорматВремени(),
|
||||
НСтр("ru = 'ДФ=''чч:мм вв'''"), НСтр("ru = 'ДФ=ЧЧ:мм'"));
|
||||
|
||||
Элементы.РасписаниеРаботыВремяНачала.Формат = ФорматВремени;
|
||||
Элементы.РасписаниеРаботыВремяНачала.ФорматРедактирования = ФорматВремени;
|
||||
Элементы.РасписаниеРаботыВремяНачала.ФорматРедактирования = ФорматВремениРедактирования;
|
||||
|
||||
Элементы.РасписаниеРаботыВремяОкончания.Формат = ФорматВремени;
|
||||
Элементы.РасписаниеРаботыВремяОкончания.ФорматРедактирования = ФорматВремени;
|
||||
Элементы.РасписаниеРаботыВремяОкончания.ФорматРедактирования = ФорматВремениРедактирования;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -2859,6 +2859,19 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ДвенадцатиЧасовойФорматВремени</name>
|
||||
<id>19</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>ЗаполнитьПоШаблону</name>
|
||||
<title>
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДвенадцатиЧасовойФорматВремени = ГрафикиРаботы.ДвенадцатиЧасовойФорматВремени();
|
||||
|
||||
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан("Справочник.Календари", ЭтотОбъект);
|
||||
|
||||
// Если производственный календарь в системе единственный, заполняем его по умолчанию.
|
||||
@@ -39,6 +41,8 @@
|
||||
&НаСервере
|
||||
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
||||
|
||||
ДвенадцатиЧасовойФорматВремени = ГрафикиРаботы.ДвенадцатиЧасовойФорматВремени();
|
||||
|
||||
ДлинаЦикла = Объект.ШаблонЗаполнения.Количество();
|
||||
ЗаполнитьДаннымиТекущегоГода();
|
||||
|
||||
@@ -531,8 +535,8 @@
|
||||
КонецЕсли;
|
||||
ПредставлениеИнтервала = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"%1-%2, ",
|
||||
ПредставлениеВремениСуток(СтрокаРасписания.ВремяНачала),
|
||||
ПредставлениеВремениСуток(СтрокаРасписания.ВремяОкончания));
|
||||
ПредставлениеВремениСуток(СтрокаРасписания.ВремяНачала, Форма.ДвенадцатиЧасовойФорматВремени),
|
||||
ПредставлениеВремениСуток(СтрокаРасписания.ВремяОкончания, Форма.ДвенадцатиЧасовойФорматВремени));
|
||||
ПредставлениеИнтервалов = ПредставлениеИнтервалов + ПредставлениеИнтервала;
|
||||
Если Не ЗначениеЗаполнено(СтрокаРасписания.ВремяОкончания) Тогда
|
||||
СекундИнтервала = КонецДня(СтрокаРасписания.ВремяОкончания) - СтрокаРасписания.ВремяНачала + 1;
|
||||
@@ -554,13 +558,16 @@
|
||||
КонецФункции
|
||||
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Функция ПредставлениеВремениСуток(Знач ВремяСуток)
|
||||
Функция ПредставлениеВремениСуток(Знач ВремяСуток, ДвенадцатиЧасовойФорматВремени)
|
||||
|
||||
Если Не ЗначениеЗаполнено(ВремяСуток) Тогда
|
||||
ВремяСуток = Дата(1980, 1, 1);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Формат(ВремяСуток, НСтр("ru = 'ДФ=ЧЧ:мм'"));
|
||||
ФорматВремени = ?(ДвенадцатиЧасовойФорматВремени,
|
||||
НСтр("ru = 'ДФ=''чч:мм вв'''"), НСтр("ru = 'ДФ=ЧЧ:мм; ДП='"));
|
||||
|
||||
Возврат Формат(ВремяСуток, ФорматВремени);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
+6
@@ -79,6 +79,9 @@
|
||||
Иначе
|
||||
ВыполнитьОбработкуОповещения(ОповещениеПриПодтверждении, ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Элементы.Подписать.Видимость = Истина;
|
||||
Элементы.Подписать.КнопкаПоУмолчанию = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ВРег(ИмяСобытия) = ВРег("ПодтверждениеАвторизация") И Источник = УникальныйИдентификатор Тогда
|
||||
@@ -290,6 +293,9 @@
|
||||
|
||||
Если Результат = Истина Тогда
|
||||
Закрыть(Истина);
|
||||
ИначеЕсли ЭлектроннаяПодписьСлужебныйКлиент.ЭтоОперацияОблачнойПодписи(ЭтотОбъект) Тогда
|
||||
Элементы.Подписать.Видимость = Истина;
|
||||
Элементы.Подписать.КнопкаПоУмолчанию = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
+6
@@ -83,6 +83,9 @@
|
||||
Иначе
|
||||
ВыполнитьОбработкуОповещения(ОповещениеПриПодтверждении, ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Элементы.ФормаРасшифровать.Видимость = Истина;
|
||||
Элементы.ФормаРасшифровать.КнопкаПоУмолчанию = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ВРег(ИмяСобытия) = ВРег("ПодтверждениеАвторизация") И Источник = УникальныйИдентификатор Тогда
|
||||
@@ -325,6 +328,9 @@
|
||||
|
||||
Если Результат = Истина Тогда
|
||||
Закрыть(Истина);
|
||||
ИначеЕсли ЭлектроннаяПодписьСлужебныйКлиент.ЭтоОперацияОблачнойПодписи(ЭтотОбъект) Тогда
|
||||
Элементы.ФормаРасшифровать.Видимость = Истина;
|
||||
Элементы.ФормаРасшифровать.КнопкаПоУмолчанию = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -145,15 +145,10 @@
|
||||
//
|
||||
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
|
||||
|
||||
Элемент = Элементы.Добавить();
|
||||
Элемент.ИмяПредопределенныхДанных = "Россия";
|
||||
Элемент.Код = "643";
|
||||
Элемент.Наименование = НСтр("ru = 'РОССИЯ'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.НаименованиеПолное = НСтр("ru = 'Российская Федерация'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.КодАльфа2 = "RU";
|
||||
Элемент.КодАльфа3 = "RUS";
|
||||
Элемент.УчастникЕАЭС = Истина;
|
||||
Элемент.МеждународноеНаименование = НСтр("ru = 'The Russian Federation'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда
|
||||
МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами");
|
||||
МодульРаботаСАдресами.ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
+7
-1
@@ -812,7 +812,13 @@
|
||||
ИменаПредопределенныхНаборов = Метаданные.Справочники.НаборыДополнительныхРеквизитовИСведений.ПолучитьИменаПредопределенных();
|
||||
Для Каждого ИмяПредопределенногоНабора Из ИменаПредопределенныхНаборов Цикл
|
||||
Если СтрНачинаетсяС(ИмяПредопределенногоНабора, "Удалить") Тогда
|
||||
НаборыСвойств.Добавить(Справочники.НаборыДополнительныхРеквизитовИСведений[ИмяПредопределенногоНабора]);
|
||||
Попытка
|
||||
ПредопределенныйНабор = Справочники.НаборыДополнительныхРеквизитовИСведений[ИмяПредопределенногоНабора];
|
||||
НаборыСвойств.Добавить(ПредопределенныйНабор);
|
||||
Исключение
|
||||
// Обработка исключения не требуется, отсутствует предопределенный элемент в данных.
|
||||
Продолжить;
|
||||
КонецПопытки;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
НаборыСвойств.Добавить(Справочники.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка());
|
||||
|
||||
@@ -554,6 +554,10 @@
|
||||
<metadata>Constant.ПараметрыЦентраМониторинга</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.ОбработкаСервисовИнтеграции</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.УведомлениеИсполнителейОНовыхЗадачах</metadata>
|
||||
<use>DontUse</use>
|
||||
|
||||
@@ -27,10 +27,10 @@
|
||||
ФоновоеЗадание.ОжидатьЗавершенияВыполнения(Неопределено);
|
||||
|
||||
ОписаниеНовыхПатчей = ПолучитьИзВременногоХранилища(АдресХранилища);
|
||||
Сообщение = СтрЗаменить(Сообщение, "Ссылка", " " + НСтр("ru = '<a href = ""ПереходПоСсылке"">Подробно</a>'"));
|
||||
Сообщение = СтрЗаменить(Сообщение, "Ссылка", " " + НСтр("ru = '<a href = ""%1"">Подробно</a>'"));
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.Текст.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(Сообщение);
|
||||
Элементы.Текст.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(Сообщение, "ПереходПоСсылке");
|
||||
|
||||
СРасписанием = Истина;
|
||||
Если ПараметрыПроверки.Исправления = Неопределено
|
||||
|
||||
@@ -254,6 +254,7 @@
|
||||
ИменаИдентификаторов.Добавить("OID1_2_643_100_5", "OGRNIP");
|
||||
ИменаИдентификаторов.Добавить("OID1_2_643_100_3", "SNILS");
|
||||
ИменаИдентификаторов.Добавить("OID1_2_643_3_131_1_1", "INN");
|
||||
ИменаИдентификаторов.Добавить("OID1_2_643_100_4", "INNLE");
|
||||
ИменаИдентификаторов.Добавить("OID2_5_4_4", "SN");
|
||||
ИменаИдентификаторов.Добавить("OID2_5_4_42", "GN");
|
||||
|
||||
|
||||
@@ -4589,7 +4589,7 @@
|
||||
И Родитель.Тип <> "НастройкиКомпоновкиДанных"
|
||||
И Родитель.Тип <> "КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных"
|
||||
И Родитель.Тип <> "КоллекцияЭлементовСтруктурыДиаграммыКомпоновкиДанных");
|
||||
|
||||
|
||||
Элементы.СтруктураВарианта_Добавить.Доступность = МожноДобавлятьВложенные;
|
||||
Элементы.СтруктураВарианта_Добавить1.Доступность = МожноДобавлятьВложенные;
|
||||
Элементы.СтруктураВарианта_Изменить.Доступность = МожноОткрывать;
|
||||
@@ -4610,10 +4610,10 @@
|
||||
Элементы.СтруктураВарианта_ПереместитьВверх1.Доступность = МожноУдалятьИПеремещать И ЕстьСоседние;
|
||||
Элементы.СтруктураВарианта_ПереместитьВниз.Доступность = МожноУдалятьИПеремещать И ЕстьСоседние;
|
||||
Элементы.СтруктураВарианта_ПереместитьВниз1.Доступность = МожноУдалятьИПеремещать И ЕстьСоседние;
|
||||
Элементы.СтруктураВарианта_ПереместитьНаУровеньВыше.Доступность = ЕстьРодитель И РодителяМожноПеремещать;
|
||||
Элементы.СтруктураВарианта_ПереместитьНаУровеньВыше1.Доступность = ЕстьРодитель И РодителяМожноПеремещать;
|
||||
Элементы.СтруктураВарианта_ПереместитьНаУровеньНиже.Доступность = ЕстьПотенциальныеРодители;
|
||||
Элементы.СтруктураВарианта_ПереместитьНаУровеньНиже1.Доступность = ЕстьПотенциальныеРодители;
|
||||
Элементы.СтруктураВарианта_ПереместитьНаУровеньВыше.Доступность = МожноУдалятьИПеремещать И ЕстьРодитель И РодителяМожноПеремещать;
|
||||
Элементы.СтруктураВарианта_ПереместитьНаУровеньВыше1.Доступность = МожноУдалятьИПеремещать И ЕстьРодитель И РодителяМожноПеремещать;
|
||||
Элементы.СтруктураВарианта_ПереместитьНаУровеньНиже.Доступность = МожноУдалятьИПеремещать И ЕстьПотенциальныеРодители;
|
||||
Элементы.СтруктураВарианта_ПереместитьНаУровеньНиже1.Доступность = МожноУдалятьИПеремещать И ЕстьПотенциальныеРодители;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
|
||||
@@ -2057,8 +2057,7 @@
|
||||
|
||||
УточнитьТекстПервогоЗапросаУниверсальногоПоиска(ТекстыЗапросов);
|
||||
|
||||
Разделитель = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1ОБЪЕДИНИТЬ ВСЕ%2'"), Символы.ПС, Символы.ПС);
|
||||
Разделитель = Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС; //@query-part
|
||||
|
||||
ТекстЗапроса = СтрСоединить(ТекстыЗапросов, Разделитель);
|
||||
|
||||
@@ -2186,10 +2185,10 @@
|
||||
КонецЕсли;
|
||||
|
||||
ПолеПоУсловию = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'КОГДА ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2 ТОГДА ""%3""'"),
|
||||
"КОГДА ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2 ТОГДА ""%3""",
|
||||
Поле.Имя,
|
||||
"""%" + ПараметрыПоиска.СтрокаПоиска + "%""",
|
||||
Поле.Имя);
|
||||
Поле.Имя);//@query-part
|
||||
|
||||
ОписаниеПоляПоУсловию.Добавить(ПолеПоУсловию);
|
||||
|
||||
@@ -2199,9 +2198,9 @@
|
||||
Возврат """""";
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеПоляПоУсловию.Вставить(0, НСтр("ru = 'ВЫБОР'"));
|
||||
ОписаниеПоляПоУсловию.Добавить(НСтр("ru = 'ИНАЧЕ """"'"));
|
||||
ОписаниеПоляПоУсловию.Добавить(НСтр("ru = 'КОНЕЦ'"));
|
||||
ОписаниеПоляПоУсловию.Вставить(0, "ВЫБОР");//@query-part
|
||||
ОписаниеПоляПоУсловию.Добавить("ИНАЧЕ """"");//@query-part
|
||||
ОписаниеПоляПоУсловию.Добавить("КОНЕЦ");//@query-part
|
||||
|
||||
Возврат СтрСоединить(ОписаниеПоляПоУсловию, " ");
|
||||
|
||||
@@ -2227,16 +2226,16 @@
|
||||
Если ТипРеквизита.СодержитТип(Тип("Строка")) Тогда
|
||||
|
||||
Условие = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2'"),
|
||||
"ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2",
|
||||
Поле.Имя,
|
||||
"""%" + ПараметрыПоиска.СтрокаПоиска + "%""");
|
||||
"""%" + ПараметрыПоиска.СтрокаПоиска + "%""");//@query-part
|
||||
|
||||
ИначеЕсли ТипРеквизита.СодержитТип(Тип("Число")) Тогда
|
||||
|
||||
Условие = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'ВЫРАЗИТЬ(%1 КАК ЧИСЛО) = %2'"),
|
||||
"ВЫРАЗИТЬ(%1 КАК ЧИСЛО) = %2",
|
||||
Поле.Имя,
|
||||
ПараметрыПоиска.ЧислоПоиска);
|
||||
ПараметрыПоиска.ЧислоПоиска);//@query-part
|
||||
|
||||
Иначе
|
||||
Продолжить;
|
||||
@@ -2250,7 +2249,7 @@
|
||||
Возврат "ЛОЖЬ";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СтрСоединить(Условия, " ИЛИ ");
|
||||
Возврат СтрСоединить(Условия, " ИЛИ ");//@query-part
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -654,4 +654,19 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ДвенадцатиЧасовойФорматВремени() Экспорт
|
||||
|
||||
ПредставлениеВремени = Формат(ТекущаяДатаСеанса(), "ДЛФ=T");
|
||||
Если ВРег(Прав(ПредставлениеВремени, 1)) = "M" Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -1041,12 +1041,54 @@
|
||||
ПараметрыПроцедурыФоновогоЗадания = Новый Массив;
|
||||
ПараметрыПроцедурыФоновогоЗадания.Добавить(ВсеПараметры);
|
||||
|
||||
Если РегистрыСведений.ПараметрыРаботыПрограммы.ИмяПроцедурыФоновогоЗадания() = ИмяПроцедуры Тогда
|
||||
ИмяПроцедурыФоновогоЗадания = ИмяПроцедурыФоновогоЗаданияБезВызоваПередЗапускомПрограммы();
|
||||
Иначе
|
||||
ИмяПроцедурыФоновогоЗадания = "ДлительныеОперации.ВыполнитьСКонтекстомКлиента";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ВыполнитьФоновоеЗадание(ПараметрыВыполнения,
|
||||
"ДлительныеОперации.ВыполнитьСКонтекстомКлиента", ПараметрыПроцедурыФоновогоЗадания,
|
||||
ИмяПроцедурыФоновогоЗадания, ПараметрыПроцедурыФоновогоЗадания,
|
||||
КлючФоновогоЗадания, НаименованиеФоновогоЗадания);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоЗапускБезВызоваПередЗапускомПрограммы() Экспорт
|
||||
|
||||
Если ТекущийРежимЗапуска() <> Неопределено Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ТекущийСеанс = ПолучитьТекущийСеансИнформационнойБазы();
|
||||
Если ТекущийСеанс.ИмяПриложения <> "BackgroundJob" Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ФоновоеЗадание = ТекущийСеанс.ПолучитьФоновоеЗадание();
|
||||
|
||||
Если ФоновоеЗадание = Неопределено
|
||||
Или ФоновоеЗадание.ИмяМетода <> ИмяПроцедурыФоновогоЗаданияБезВызоваПередЗапускомПрограммы() Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Для функции ЗапуститьФоновоеЗаданиеСКонтекстомКлиента.
|
||||
Функция ИмяПроцедурыФоновогоЗаданияБезВызоваПередЗапускомПрограммы()
|
||||
|
||||
Возврат "ДлительныеОперации.ВыполнитьСКонтекстомКлиентаБезВызоваПередЗапускомПрограммы";
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Продолжение процедуры ЗапуститьФоновоеЗаданиеСКонтекстомКлиента.
|
||||
Процедура ВыполнитьСКонтекстомКлиентаБезВызоваПередЗапускомПрограммы(ВсеПараметры) Экспорт
|
||||
|
||||
ВыполнитьСКонтекстомКлиента(ВсеПараметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ЗапуститьФоновоеЗаданиеСКонтекстомКлиента.
|
||||
Процедура ВыполнитьСКонтекстомКлиента(ВсеПараметры) Экспорт
|
||||
|
||||
|
||||
@@ -2516,6 +2516,15 @@
|
||||
// Проверка на коллизии дат запрета загрузки.
|
||||
Объект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения");
|
||||
|
||||
// Параметр "СинхронизацияДанныхЧерезУниверсальныйФорматУдалениеДвижений" используется при
|
||||
// обработке удаления движений, например, в модуле набора записей регистра накопления.
|
||||
// Если разработчик определил такой параметр в правилах конвертации, пропускаем данный этап.
|
||||
Если НЕ Объект.ДополнительныеСвойства.Свойство("СинхронизацияДанныхЧерезУниверсальныйФорматУдалениеДвижений") Тогда
|
||||
|
||||
Объект.ДополнительныеСвойства.Вставить("СинхронизацияДанныхЧерезУниверсальныйФорматУдалениеДвижений", Истина);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ПроведениеДокументаОтменено = Ложь;
|
||||
|
||||
НачатьТранзакцию();
|
||||
@@ -2542,6 +2551,8 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Объект.ДополнительныеСвойства.Удалить("СинхронизацияДанныхЧерезУниверсальныйФорматУдалениеДвижений");
|
||||
|
||||
ПроведениеДокументаОтменено = Истина;
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
|
||||
@@ -4080,6 +4080,10 @@
|
||||
|
||||
МассивОбрабатываемыхСтрокТаблицыДвижений = Новый Массив;
|
||||
|
||||
ВставитьДополнительныйПараметрУдаленияДвижений =
|
||||
ДокументОбъект.ДополнительныеСвойства.Свойство("СинхронизацияДанныхЧерезУниверсальныйФорматУдалениеДвижений")
|
||||
И (ДокументОбъект.ДополнительныеСвойства.СинхронизацияДанныхЧерезУниверсальныйФорматУдалениеДвижений = Истина);
|
||||
|
||||
// Получение списка регистров, по которым существуют движения.
|
||||
ТаблицаДвижений = ОпределитьНаличиеДвиженийПоДокументу(ДокументОбъект.Ссылка);
|
||||
|
||||
@@ -4112,15 +4116,25 @@
|
||||
Попытка
|
||||
Для Каждого СтрокаДвижения Из МассивОбрабатываемыхСтрокТаблицыДвижений Цикл
|
||||
Попытка
|
||||
|
||||
Набор = СтрокаДвижения.НаборЗаписей; // РегистрНакопленияНаборЗаписей и т.п.
|
||||
Если ВставитьДополнительныйПараметрУдаленияДвижений Тогда
|
||||
|
||||
Набор.ДополнительныеСвойства.Вставить("СинхронизацияДанныхЧерезУниверсальныйФорматУдалениеДвижений", Истина);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Набор.Записать();
|
||||
|
||||
Исключение
|
||||
|
||||
// Возможно "сработало" ограничение на уровне записей или подсистема даты запрета изменения.
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Операция не выполнена: %1
|
||||
|%2'"),
|
||||
СтрокаДвижения.ИмяТаблицыРегистра,
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
|
||||
КонецПопытки;
|
||||
КонецЦикла;
|
||||
Исключение
|
||||
@@ -14740,7 +14754,11 @@
|
||||
КонецЕсли;
|
||||
|
||||
ОбработкаОбменаДаннымиВнешнееСоединение.УзелДляОбмена = СтруктураНастроекОбменаВнешнееСоединение.УзелИнформационнойБазы;
|
||||
ОбработкаОбменаДаннымиВнешнееСоединение.УстановитьБлокировкуУзлаПланаОбмена = Истина;
|
||||
Если ОбработкаОбменаДаннымиВнешнееСоединение.Метаданные().Реквизиты.Найти("УстановитьБлокировкуУзлаПланаОбмена") <> Неопределено Тогда
|
||||
|
||||
ОбработкаОбменаДаннымиВнешнееСоединение.УстановитьБлокировкуУзлаПланаОбмена = Истина;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьОбщиеПараметрыДляОбработкиОбменаДанными(ОбработкаОбменаДаннымиВнешнееСоединение, СтруктураНастроекОбменаВнешнееСоединение, ОбменСБСП20);
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "3.1.5.163";
|
||||
Описание.Версия = "3.1.5.171";
|
||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
@@ -5000,20 +5000,22 @@
|
||||
|
||||
Если Не ПустаяСтрока(ПолныеИменаОбъектов) И Не ПустаяСтрока(ПерваяСсылочная) Тогда // Есть ссылочные объекты.
|
||||
// Установить ссылочную часть начала выборки на место, на котором она остановилась в последний раз.
|
||||
Начало = СтрНайти(ПолныеИменаОбъектов, ПерваяСсылочная);
|
||||
ПолныеИменаОбъектов = Сред(ПолныеИменаОбъектов, Начало);
|
||||
ПолныеИменаОбъектовМассив = ОстатокМассива(ПолныеИменаОбъектов, ПерваяСсылочная);
|
||||
Иначе
|
||||
ПолныеИменаОбъектовМассив = СтрРазделитьСокрЛП(ПолныеИменаОбъектов, ",");
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПустаяСтрока(ПолныеИменаРегистровНачало) И Не ПустаяСтрока(ПерваяТабличная) Тогда // Есть табличные объекты.
|
||||
// Установить табличную часть начала выборки на место, на котором она остановилась в последний раз.
|
||||
Начало = СтрНайти(ПолныеИменаРегистровНачало, ПерваяТабличная);
|
||||
ПолныеИменаРегистровНачало = Сред(ПолныеИменаРегистровНачало, Начало);
|
||||
ПолныеИменаРегистровНачалоМассив = ОстатокМассива(ПолныеИменаРегистровНачало, ПерваяТабличная);
|
||||
Иначе
|
||||
ПолныеИменаРегистровНачалоМассив = СтрРазделитьСокрЛП(ПолныеИменаРегистровНачало, ",");
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("СсылочныеОбъекты", СтрРазделитьСокрЛП(ПолныеИменаОбъектов, ","));
|
||||
Результат.Вставить("СсылочныеОбъекты", ПолныеИменаОбъектовМассив);
|
||||
Результат.Вставить("ТабличныеОбъектыВсе", СтрРазделитьСокрЛП(ПолныеИменаРегистров, ","));
|
||||
Результат.Вставить("ТабличныеОбъектыНачало", СтрРазделитьСокрЛП(ПолныеИменаРегистровНачало, ","));
|
||||
Результат.Вставить("ТабличныеОбъектыНачало", ПолныеИменаРегистровНачалоМассив);
|
||||
Результат.Вставить("СсылочныйИндекс", 0);
|
||||
Результат.Вставить("ТабличныйИндекс", 0);
|
||||
|
||||
@@ -8394,4 +8396,24 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОстатокМассива(Массив, ЗначениеНачала)
|
||||
|
||||
ОстатокМассива = Новый Массив;
|
||||
ТочноеЗначениеНачала = СокрЛП(ЗначениеНачала);
|
||||
ЗначениеНайдено = Ложь;
|
||||
|
||||
Для Каждого Элемент Из СтрРазделитьСокрЛП(Массив, ",") Цикл
|
||||
Если ТочноеЗначениеНачала = Элемент Тогда
|
||||
ЗначениеНайдено = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеНайдено Тогда
|
||||
ОстатокМассива.Добавить(Элемент);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ОстатокМассива;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2372,7 +2372,12 @@
|
||||
|
||||
Поле = Элемент.Поле; // ПолеФормы
|
||||
ЗаголовокЭлемента = Поле.Заголовок;
|
||||
ШаблонИмениЭлемента = СтрЗаменить(Поле.Имя, СвойстваВидовЭлементов[ВидЭлемента], "%1");
|
||||
Если СтрЗаканчиваетсяНа(Поле.Имя, СвойстваВидовЭлементов[ВидЭлемента]) Тогда
|
||||
Позиция = СтрНайти(Поле.Имя, СвойстваВидовЭлементов[ВидЭлемента], НаправлениеПоиска.СКонца);
|
||||
ШаблонИмениЭлемента = Лев(Поле.Имя, Позиция - 1) + "%1";
|
||||
Иначе
|
||||
ШаблонИмениЭлемента = Поле.Имя;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяРеквизита = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонИмениЭлемента, ВидЭлемента);
|
||||
Если Сгенерированные.Найти(ИмяРеквизита) = Неопределено Тогда
|
||||
|
||||
@@ -1359,6 +1359,27 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// При начальном заполнении элементов.
|
||||
//
|
||||
// Параметры:
|
||||
// КодыЯзыков - см. СправочникМенеджер.СтраныМира.ПриНачальномЗаполненииЭлементов.КодыЯзыков
|
||||
// Элементы - см. СправочникМенеджер.СтраныМира.ПриНачальномЗаполненииЭлементов.Элементы
|
||||
// ТабличныеЧасти - см. СправочникМенеджер.СтраныМира.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
|
||||
//
|
||||
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
|
||||
|
||||
Элемент = Элементы.Добавить();
|
||||
Элемент.ИмяПредопределенныхДанных = "Россия";
|
||||
Элемент.Код = "643";
|
||||
Элемент.Наименование = НСтр("ru = 'РОССИЯ'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.НаименованиеПолное = НСтр("ru = 'Российская Федерация'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.КодАльфа2 = "RU";
|
||||
Элемент.КодАльфа3 = "RUS";
|
||||
Элемент.УчастникЕАЭС = Истина;
|
||||
Элемент.МеждународноеНаименование = НСтр("ru = 'The Russian Federation'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ИдентификаторКлассификатора()
|
||||
Возврат "Countries";
|
||||
КонецФункции
|
||||
|
||||
@@ -743,6 +743,7 @@
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
РаботаСФайламиПереопределяемый.ПриСозданииФайла(ПрисоединенныйФайл.Ссылка);
|
||||
Возврат ПрисоединенныйФайл.Ссылка;
|
||||
|
||||
КонецФункции
|
||||
@@ -1639,7 +1640,7 @@
|
||||
Функция СоздатьПрисоединенныйФайлНаОснованииФайла(ВладелецФайлов, МенеджерПрисоединенныхФайлов, ТекущаяВерсияОбъект, ФайлИсточникОбъект)
|
||||
|
||||
СсылкаНового = МенеджерПрисоединенныхФайлов.ПолучитьСсылку(); // СправочникСсылка
|
||||
ПрисоединенныйФайл = МенеджерПрисоединенныхФайлов.СоздатьЭлемент(); //ОпределяемыйТип.ПрисоединенныйФайлОбъект
|
||||
ПрисоединенныйФайл = МенеджерПрисоединенныхФайлов.СоздатьЭлемент(); // ОпределяемыйТип.ПрисоединенныйФайлОбъект
|
||||
ПрисоединенныйФайл.УстановитьСсылкуНового(СсылкаНового);
|
||||
|
||||
ПрисоединенныйФайл.ВладелецФайла = ВладелецФайлов;
|
||||
@@ -1708,6 +1709,7 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
РаботаСФайламиПереопределяемый.ПриСозданииФайла(СсылкаНового);
|
||||
Возврат СсылкаНового;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
// которые должны изменяться при создании новых файлов.
|
||||
//
|
||||
// Параметры:
|
||||
// Файл - СправочникСсылка.Файлы - ссылка на созданный файл.
|
||||
// Файл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на созданный файл.
|
||||
//
|
||||
Процедура ПриСозданииФайла(Файл) Экспорт
|
||||
|
||||
|
||||
@@ -172,7 +172,6 @@
|
||||
КонецПопытки;
|
||||
|
||||
РаботаСФайламиПереопределяемый.ПриСозданииФайла(ФайлСсылка);
|
||||
|
||||
Возврат ФайлСсылка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -1965,6 +1965,7 @@
|
||||
// * Ошибка - Строка - строка с описанием ошибки, заполняется если Выполнено = Ложь
|
||||
// * КодОшибки - Строка - строка с кодом ошибки, заполняется если Выполнено = Ложь
|
||||
// * МаркерОбновлен - Булево - признак, того что в процессе запроса произошло обновление маркера безопасности
|
||||
// * СтатусОшибки - см. СервисКриптографииDSSКлиентСервер.СтатусОшибки
|
||||
//
|
||||
Функция ОтветСервисаПоУмолчанию(Выполнено = Истина, ИдентификаторОшибки = "") Экспорт
|
||||
|
||||
|
||||
@@ -1509,6 +1509,7 @@
|
||||
// Если Истина, структура дополняется полем "НастройкиПользователя".
|
||||
// * Ошибка - Строка - содержит форматированный текст ошибки, если поле Выполнено = Ложь
|
||||
// * КодОшибки - Строка - содержит код ошибки
|
||||
// * СтатусОшибки - см. СервисКриптографииDSSКлиентСервер.СтатусОшибки
|
||||
//
|
||||
Функция ОтветСервисаПоУмолчанию(Выполнено = Истина) Экспорт
|
||||
|
||||
@@ -1517,11 +1518,33 @@
|
||||
ОтветМетода.Вставить("Ошибка", "");
|
||||
ОтветМетода.Вставить("КодОшибки", "");
|
||||
ОтветМетода.Вставить("МаркерОбновлен", Ложь);
|
||||
ОтветМетода.Вставить("СтатусОшибки", СтатусОшибки());
|
||||
|
||||
Возврат ОтветМетода;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Структура для описания статуса ошибки.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Представление - Строка - содержит форматированный текст ошибки
|
||||
// * КодОшибки - Строка - содержит учетный код ошибки в подсистеме
|
||||
// * ИсходнаяОшибка - Строка - содержит текст ошибки, сформированный сервером
|
||||
// * ИсходныйКод - Строка - содержит код ошибки, сформированный сервером
|
||||
//
|
||||
Функция СтатусОшибки() Экспорт
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("КодОшибки", "");
|
||||
Результат.Вставить("Представление", "");
|
||||
Результат.Вставить("ИсходныйТекст", "");
|
||||
Результат.Вставить("ИсходныйКод", "");
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработкаОшибок
|
||||
@@ -1568,6 +1591,11 @@
|
||||
Если РезультатОперации <> Неопределено Тогда
|
||||
РезультатОперации.Вставить("КодОшибки", КодОшибки);
|
||||
РезультатОперации.Вставить("Ошибка", Результат);
|
||||
РезультатОперации.Вставить("СтатусОшибки", СтатусОшибки());
|
||||
РезультатОперации.СтатусОшибки.КодОшибки = КодОшибки;
|
||||
РезультатОперации.СтатусОшибки.Представление = Результат;
|
||||
РезультатОперации.СтатусОшибки.ИсходныйКод = ТипОшибки;
|
||||
РезультатОперации.СтатусОшибки.ИсходныйТекст = ТекстОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
@@ -876,6 +876,11 @@
|
||||
Если РезультатОперации <> Неопределено Тогда
|
||||
РезультатОперации.Вставить("КодОшибки", КодОшибки);
|
||||
РезультатОперации.Вставить("Ошибка", Результат);
|
||||
РезультатОперации.Вставить("СтатусОшибки", СервисКриптографииDSSКлиентСервер.СтатусОшибки());
|
||||
РезультатОперации.СтатусОшибки.КодОшибки = КодОшибки;
|
||||
РезультатОперации.СтатусОшибки.Представление = Результат;
|
||||
РезультатОперации.СтатусОшибки.ИсходныйКод = ТипОшибки;
|
||||
РезультатОперации.СтатусОшибки.ИсходныйТекст = ТекстОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -2773,6 +2773,11 @@
|
||||
|
||||
// Привилегированный режим (установлен платформой).
|
||||
|
||||
Если ТекущийРежимЗапуска() = Неопределено
|
||||
И ДлительныеОперации.ЭтоЗапускБезВызоваПередЗапускомПрограммы() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
// Проверка основного языка программирования, установленного в конфигурации.
|
||||
ТекущийЯзыкВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка["Русский"];
|
||||
Если Метаданные.ВариантВстроенногоЯзыка <> ТекущийЯзыкВстроенногоЯзыка Тогда
|
||||
|
||||
@@ -24002,8 +24002,7 @@
|
||||
//
|
||||
Функция ОписаниеНовойВерсииПараметровОграниченияДоступа(Параметры, БезЗаписи = Ложь)
|
||||
|
||||
НаборЗаписей = СлужебныйНаборЗаписей(РегистрыСведений.ПараметрыОграниченияДоступа);
|
||||
Запись = НаборЗаписей.Добавить();
|
||||
Запись = НоваяТаблицаРегистраСведенийПараметрыОграниченияДоступа().Добавить();
|
||||
ЗаполнитьЗначенияСвойств(Запись, Параметры.ХранимыеПараметры);
|
||||
|
||||
ЗаполняемыеСвойстваВерсии = Новый Структура("Версия, ДатаСоздания, ХешСумма,
|
||||
@@ -24065,6 +24064,10 @@
|
||||
ПроверитьАктуальностьМетаданных();
|
||||
|
||||
Запись.Версия = НоваяВерсия;
|
||||
|
||||
НаборЗаписей = СлужебныйНаборЗаписей(РегистрыСведений.ПараметрыОграниченияДоступа);
|
||||
ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Запись);
|
||||
Запись = НаборЗаписей[0];
|
||||
НаборЗаписей.Отбор.Версия.Установить(НоваяВерсия);
|
||||
ЗаполнитьЗначенияСвойств(ЗаполняемыеСвойстваВерсии, Запись);
|
||||
|
||||
@@ -24102,6 +24105,40 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений:
|
||||
// * Версия - Число
|
||||
// * ХешСумма - Строка
|
||||
// * ХешСуммаПостоянныхПараметров - Строка
|
||||
// * ДляЗаписиОбъектовИПроверкиПрав - ХранилищеЗначения
|
||||
// * ДляОтчетаПоПравамДоступа - ХранилищеЗначения
|
||||
// * ХешСуммаПараметровШаблонов - Строка
|
||||
// * ДляШаблоновВСеансахПользователей - ХранилищеЗначения
|
||||
// * ДляШаблоновВСеансахВнешнихПользователей - ХранилищеЗначения
|
||||
// * ВерсииПараметровШаблонов - ХранилищеЗначения
|
||||
// * ДатаСоздания - Дата
|
||||
//
|
||||
Функция НоваяТаблицаРегистраСведенийПараметрыОграниченияДоступа()
|
||||
|
||||
ТипВерсии = Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(15, 0, ДопустимыйЗнак.Неотрицательный));
|
||||
ТипХешСуммы = Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(48, ДопустимаяДлина.Переменная));
|
||||
|
||||
Таблица = Новый ТаблицаЗначений;
|
||||
Таблица.Колонки.Добавить("Версия", ТипВерсии);
|
||||
Таблица.Колонки.Добавить("ХешСумма", ТипХешСуммы);
|
||||
Таблица.Колонки.Добавить("ХешСуммаПостоянныхПараметров", ТипХешСуммы);
|
||||
Таблица.Колонки.Добавить("ДляЗаписиОбъектовИПроверкиПрав", Новый ОписаниеТипов("ХранилищеЗначения"));
|
||||
Таблица.Колонки.Добавить("ДляОтчетаПоПравамДоступа", Новый ОписаниеТипов("ХранилищеЗначения"));
|
||||
Таблица.Колонки.Добавить("ХешСуммаПараметровШаблонов", ТипХешСуммы);
|
||||
Таблица.Колонки.Добавить("ДляШаблоновВСеансахПользователей", Новый ОписаниеТипов("ХранилищеЗначения"));
|
||||
Таблица.Колонки.Добавить("ДляШаблоновВСеансахВнешнихПользователей", Новый ОписаниеТипов("ХранилищеЗначения"));
|
||||
Таблица.Колонки.Добавить("ВерсииПараметровШаблонов", Новый ОписаниеТипов("ХранилищеЗначения"));
|
||||
Таблица.Колонки.Добавить("ДатаСоздания", Новый ОписаниеТипов("Дата"));
|
||||
|
||||
Возврат Таблица;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Для функции ОписаниеНовойВерсииПараметровОграниченияДоступа.
|
||||
Процедура ЗапланироватьОбновлениеДоступаПриИзмененииПараметров(СтараяВерсия, Параметры)
|
||||
|
||||
|
||||
@@ -62,13 +62,7 @@
|
||||
Свойства.СНИЛС = ПодготовитьСтроку(Субъект.OID1_2_643_100_3);
|
||||
КонецЕсли;
|
||||
|
||||
Если Субъект.Свойство("INN") Тогда
|
||||
Свойства.ИНН = ПодготовитьСтроку(Субъект.INN);
|
||||
ИначеЕсли Субъект.Свойство("OID1_2_643_100_4")Тогда
|
||||
Свойства.ИНН = ПодготовитьСтроку(Субъект.OID1_2_643_100_4);
|
||||
ИначеЕсли Субъект.Свойство("OID1_2_643_3_131_1_1") Тогда
|
||||
Свойства.ИНН = ПодготовитьСтроку(Субъект.OID1_2_643_3_131_1_1);
|
||||
КонецЕсли;
|
||||
Свойства.ИНН = ИНН(Субъект);
|
||||
|
||||
Если Субъект.Свойство("CN") Тогда
|
||||
Свойства.ОбщееИмя = ПодготовитьСтроку(Субъект.CN);
|
||||
@@ -152,12 +146,8 @@
|
||||
Свойства.ОГРН = ПодготовитьСтроку(Издатель.OID1_2_643_100_1);
|
||||
КонецЕсли;
|
||||
|
||||
Если Издатель.Свойство("INN") Тогда
|
||||
Свойства.ИНН = ПодготовитьСтроку(Издатель.INN);
|
||||
|
||||
ИначеЕсли Издатель.Свойство("OID1_2_643_3_131_1_1")Тогда
|
||||
Свойства.ИНН = ПодготовитьСтроку(Издатель.OID1_2_643_3_131_1_1);
|
||||
КонецЕсли;
|
||||
Свойства.ИНН = ИНН(Издатель);
|
||||
|
||||
// Конец Локализация
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -223,6 +213,22 @@
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИНН(Данные)
|
||||
|
||||
ИНН = Неопределено;
|
||||
Если Данные.Свойство("INN") Тогда
|
||||
ИНН = Данные.INN;
|
||||
ИначеЕсли Данные.Свойство("OID1_2_643_100_4")
|
||||
И СтрДлина(Данные.OID1_2_643_100_4) = 10 Тогда
|
||||
ИНН = ПодготовитьСтроку(Данные.OID1_2_643_100_4);
|
||||
ИначеЕсли Данные.Свойство("OID1_2_643_3_131_1_1") Тогда
|
||||
ИНН = ПодготовитьСтроку(Данные.OID1_2_643_3_131_1_1);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ИНН;
|
||||
|
||||
КонецФункции
|
||||
// Конец Локализация
|
||||
|
||||
|
||||
@@ -371,28 +371,42 @@
|
||||
|
||||
#Область ОблачнаяПодпись
|
||||
|
||||
// определяет доступность подсистемы облачной подписи
|
||||
// Определяет доступность подсистемы облачной подписи
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево
|
||||
//
|
||||
Функция ИспользоватьСервисОблачнойПодписи() Экспорт
|
||||
|
||||
Результат = Ложь;
|
||||
|
||||
// Локализация
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяОблачнаяПодпись") Тогда
|
||||
МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS");
|
||||
Результат = МодульСервисКриптографииDSS.ИспользоватьСервисОблачнойПодписи();
|
||||
КонецЕсли;
|
||||
// Конец Локализация
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// определяет тип программы облачной подписи
|
||||
// Определяет тип программы облачной подписи.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Неопределено
|
||||
// Тип
|
||||
//
|
||||
Функция ПолучитьТипОблачнойПодписи() Экспорт
|
||||
|
||||
Результат = Неопределено;
|
||||
|
||||
// Локализация
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяОблачнаяПодпись") Тогда
|
||||
Результат = Тип("СправочникСсылка.УчетныеЗаписиDSS");
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
Результат = МодульСервисКриптографииDSSКлиентСервер.ПолучитьТипОблачнойПодписи();
|
||||
КонецЕсли;
|
||||
// Конец Локализация
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
@@ -892,6 +906,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
// Локализация
|
||||
МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный");
|
||||
МассивСертификатов = МодульСервисКриптографииDSSСлужебный.ПолучитьДанныеСертификатов(Ложь);
|
||||
|
||||
@@ -899,6 +914,7 @@
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ДобавитьСвойстваСертификатов(ТаблицаСвойствСертификатов,
|
||||
МассивСертификатов, БезОтбора, ДобавкаВремени(), ТекущаяДатаСеанса(), ПараметрыДобавленияСвойств);
|
||||
// Конец Локализация
|
||||
КонецЕсли;
|
||||
|
||||
ОбработатьДобавленныеСертификаты(ТаблицаСвойствСертификатов, Не БезОтбора И КромеУжеДобавленных, ОтборПоОрганизации);
|
||||
@@ -2554,6 +2570,7 @@
|
||||
|
||||
Если ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
|
||||
// Локализация
|
||||
МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный");
|
||||
ВсеСертификаты = МодульСервисКриптографииDSSСлужебный.ПолучитьВсеСертификаты(Ложь);
|
||||
|
||||
@@ -2570,6 +2587,7 @@
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ДобавитьОтпечаткиСертификатов(
|
||||
ОтпечаткиСертификатовНаКлиенте, МассивСертификатов, ДобавкаВремени(), ТекущаяДатаСеанса());
|
||||
// Конец Локализация
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
// Локализация
|
||||
МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный");
|
||||
МассивСертификатов = МодульСервисКриптографииDSSСлужебный.ПолучитьДанныеСертификатов(Ложь);
|
||||
|
||||
@@ -63,6 +64,7 @@
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ДобавитьСвойстваСертификатов(ТаблицаСвойствСертификатов, МассивСертификатов, Истина,
|
||||
ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса(), ПараметрыДобавленияСвойств);
|
||||
// Конец Локализация
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ОбработатьЛичныеСертификаты(ТаблицаСвойствСертификатов, Отбор);
|
||||
@@ -521,8 +523,10 @@
|
||||
Результат = Ложь;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяОблачнаяПодпись") Тогда
|
||||
// Локализация
|
||||
МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS");
|
||||
Результат = МодульСервисКриптографииDSS.ИспользоватьСервисОблачнойПодписи();
|
||||
// Конец Локализация
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат Тогда
|
||||
|
||||
@@ -4009,7 +4009,8 @@
|
||||
Контекст.Вставить("ИспользоватьОблачнуюПодпись", Ложь);
|
||||
ВыполнитьНаСтороне(Контекст.Оповещение, Контекст.Операция, "НаСторонеКлиента", Контекст);
|
||||
Иначе
|
||||
ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", ДвоичныеДанные.Ошибка);
|
||||
ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки",
|
||||
ТекстОшибкиОблачнаяПодпись(Контекст.Операция, ДвоичныеДанные));
|
||||
ВыполнитьНаСторонеПослеЦикла(ОшибкаНаКлиенте, Контекст);
|
||||
КонецЕсли;
|
||||
Возврат;
|
||||
@@ -6153,9 +6154,7 @@
|
||||
НашлиСертификат = МодульСервисКриптографииDSSКлиентСервер.НайтиСертификат(СвойстваОблачнойПодписи.УчетнаяЗапись, Отпечаток);
|
||||
|
||||
Если НашлиСертификат.Идентификатор = -1 Тогда
|
||||
Ошибка = Новый Структура("ОписаниеОшибки",
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаголовокОшибкиПолученияДанных(Контекст.Операция) + Символы.ПС
|
||||
+ НСтр("ru = 'Сертификат отсутствует в сервисе ""Облачная подпись"" (возможно удален).'"));
|
||||
Ошибка = Новый Структура("ОписаниеОшибки", ТекстОшибкиОблачнаяПодпись("ПоискСертификата"));
|
||||
Контекст.Вставить("ОперацияНачалась", Ложь);
|
||||
ВыполнитьНаСторонеПослеЦикла(Ошибка, Контекст);
|
||||
Возврат;
|
||||
@@ -6474,13 +6473,15 @@
|
||||
Процедура ПроверитьСертификатПослеПроверкиОблачнаяПодпись(РезультатВызова, Контекст) Экспорт
|
||||
|
||||
Если Не РезультатВызова.Выполнено Тогда
|
||||
Контекст.ОписаниеОшибкиНаСервере = ТекстОшибкиОблачнаяПодписьНастройкиОперации(РезультатВызова.Ошибка);
|
||||
Контекст.ОписаниеОшибкиНаСервере =
|
||||
ТекстОшибкиОблачнаяПодпись("ПроверкаСертификата", РезультатВызова, Истина);
|
||||
ПроверитьСертификатПослеНеуспешнойПроверки(Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не РезультатВызова.Результат Тогда
|
||||
Контекст.ОписаниеОшибкиНаСервере = ТекстОшибкиОблачнаяПодписьСертификатНедействителен();
|
||||
Контекст.ОписаниеОшибкиНаСервере =
|
||||
ТекстОшибкиОблачнаяПодпись("ПроверкаСертификата", РезультатВызова, Ложь);
|
||||
ПроверитьСертификатПослеНеуспешнойПроверки(Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -6539,15 +6540,14 @@
|
||||
Процедура ПроверитьПодписьНаКлиентеПослеПроверкиПодписиОблачнаяПодпись(РезультатВызова, Контекст) Экспорт
|
||||
|
||||
Если Не РезультатВызова.Выполнено Тогда
|
||||
ПроверитьПодписьНаКлиентеПослеОшибкиПроверкиПодписи(
|
||||
ТекстОшибкиОблачнаяПодписьНастройкиОперации(РезультатВызова.Ошибка), Ложь, Контекст);
|
||||
ТекстОшибки = ТекстОшибкиОблачнаяПодпись("ПроверкаПодписи", РезультатВызова, Истина);
|
||||
ПроверитьПодписьНаКлиентеПослеОшибкиПроверкиПодписи(ТекстОшибки, Ложь, Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не РезультатВызова.Результат Тогда
|
||||
ПроверитьПодписьНаКлиентеПослеОшибкиПроверкиПодписи(
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиСервисаПодписьНедействительна(РезультатВызова.Ошибка),
|
||||
Ложь, Контекст);
|
||||
ТекстОшибки = ТекстОшибкиОблачнаяПодпись("ПроверкаПодписи", РезультатВызова, Ложь);
|
||||
ПроверитьПодписьНаКлиентеПослеОшибкиПроверкиПодписи(ТекстОшибки, Ложь, Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -6649,18 +6649,48 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ТекстОшибкиОблачнаяПодписьСертификатНедействителен()
|
||||
Функция ТекстОшибкиОблачнаяПодпись(Операция, РезультатВызова = Неопределено, ЭтоОшибкаВыполнения = Ложь)
|
||||
|
||||
Возврат НСтр("ru = 'Сервис облачной подписи сообщил, что сертификат недействителен.'");
|
||||
Если ТипЗнч(РезультатВызова) = Тип("Структура") Тогда
|
||||
ИсходныйТекст = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(РезультатВызова.СтатусОшибки, "ИсходныйТекст", "");
|
||||
Иначе
|
||||
ИсходныйТекст = "";
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТекстОшибкиОблачнаяПодписьНастройкиОперации(ТекстОшибки)
|
||||
Если ЗначениеЗаполнено(ИсходныйТекст) Тогда
|
||||
ТекстОшибки = ИсходныйТекст;
|
||||
|
||||
ИначеЕсли Операция = "ПроверкаПодписи" Тогда
|
||||
Если ЭтоОшибкаВыполнения Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Не удалось проверить подпись.'");
|
||||
Иначе
|
||||
ТекстОшибки = НСтр("ru = 'Подпись недействительна.'");
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Операция = "ПроверкаСертификата" Тогда
|
||||
Если ЭтоОшибкаВыполнения Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Не удалось проверить сертификат.'");
|
||||
Иначе
|
||||
ТекстОшибки = НСтр("ru = 'Сертификат недействителен.'");
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Операция = "ПоискСертификата" Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Не удалось найти сертификат (возможно удален).'");
|
||||
|
||||
ИначеЕсли Операция = "Подписание" Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Не удалось создать подпись.'");
|
||||
|
||||
ИначеЕсли Операция = "Шифрование" Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Не удалось зашифровать данные.'");
|
||||
|
||||
ИначеЕсли Операция = "Расшифровка" Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Не удалось расшифровать данные.'");
|
||||
Иначе
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Неизвестная операция ""%1"".'"), Операция);
|
||||
КонецЕсли;
|
||||
|
||||
Результат = НСтр("ru = 'Не удалось выполнить операцию на сервисе облачной подписи.'");
|
||||
Результат = Результат + Символы.ПС + Символы.ПС + ТекстОшибки;
|
||||
|
||||
Возврат Результат;
|
||||
Возврат НСтр("ru = 'Облачный сервис'") + ": " + ТекстОшибки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -756,14 +756,9 @@
|
||||
// Возвращаемое значение:
|
||||
// Строка
|
||||
//
|
||||
Функция ТекстОшибкиСервисаПодписьНедействительна(ТекстОшибки = "") Экспорт
|
||||
Функция ТекстОшибкиСервисаПодписьНедействительна() Экспорт
|
||||
|
||||
Результат = НСтр("ru = 'Облачный сервис сообщил, что подпись недействительна.'");
|
||||
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
|
||||
Результат = Результат + Символы.ПС + Символы.ПС + ТекстОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
Возврат НСтр("ru = 'Облачный сервис сообщил, что подпись недействительна.'");
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a66517d6-00ea-11ec-7493-0242ac110002">
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1867d104-06a7-11ec-8986-0242ac110002">
|
||||
<name>БиблиотекаСтандартныхПодсистем</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Библиотека стандартных подсистем, редакция 3.1</value>
|
||||
</synonym>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="a66517e0-00ea-11ec-7493-0242ac110002"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="a6651812-00ea-11ec-7493-0242ac110002"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="a665181c-00ea-11ec-7493-0242ac110002"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="a665181d-00ea-11ec-7493-0242ac110002"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="a665181e-00ea-11ec-7493-0242ac110002"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="a6651826-00ea-11ec-7493-0242ac110002"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="15965e6a-dc0d-411b-8dcd-721cf5b7bbe8"/>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="1867d10e-06a7-11ec-8986-0242ac110002"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="1867d136-06a7-11ec-8986-0242ac110002"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="1867d140-06a7-11ec-8986-0242ac110002"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="1867d141-06a7-11ec-8986-0242ac110002"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="1867d142-06a7-11ec-8986-0242ac110002"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="1867d14a-06a7-11ec-8986-0242ac110002"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="2b0e8014-08b0-4a19-a561-06a2c83b7a1f"/>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<scriptVariant>Russian</scriptVariant>
|
||||
@@ -19,7 +19,7 @@
|
||||
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
|
||||
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
|
||||
<vendor>Фирма "1С"</vendor>
|
||||
<version>3.1.5.163</version>
|
||||
<version>3.1.5.171</version>
|
||||
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<usedMobileApplicationFunctionalities>
|
||||
|
||||
@@ -1 +1 @@
|
||||
{6,1,1,05b8acd4-00eb-11ec-1d9e-0242ac110002,1,ed069584-00ea-11ec-9286-0242ac110002,"3.1.5.163","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6460,1,0,a66517d6-00ea-11ec-7493-0242ac110002,a66517d6-00ea-11ec-7493-0242ac110002,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,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,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,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,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,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,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,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,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,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated
|
||||
{6,1,1,5e836194-06a7-11ec-b291-0242ac110002,1,4dbca118-06a7-11ec-8e83-0242ac110002,"3.1.5.171","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6460,1,0,1867d104-06a7-11ec-8986-0242ac110002,1867d104-06a7-11ec-8986-0242ac110002,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,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,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,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,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,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,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,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,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,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated
|
||||
@@ -388,6 +388,18 @@
|
||||
ДлительныеОперации.ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
|
||||
КонецЕсли;
|
||||
|
||||
ДатаНачала = Неопределено; // Дата
|
||||
ДатаОкончания = Неопределено; // Дата
|
||||
ДатыОтбораУказаны = ОтборЖурналаРегистрации.Свойство("ДатаНачала", ДатаНачала) И ОтборЖурналаРегистрации.Свойство("ДатаОкончания", ДатаОкончания)
|
||||
И ЗначениеЗаполнено(ДатаНачала) И ЗначениеЗаполнено(ОтборЖурналаРегистрации.ДатаОкончания);
|
||||
|
||||
Если ДатыОтбораУказаны И ДатаНачала > ДатаОкончания Тогда
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьСостояниеПоляТабличногоДокумента(Элементы.ПолеИндикаторДлительныхОпераций, "НеИспользовать");
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.ЖурналРегистрации;
|
||||
ВызватьИсключение НСтр("ru = 'Некорректно заданы условия отбора журнала регистрации.
|
||||
|Дата начала не может быть больше даты окончания.'");
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОтчета = ПараметрыОтчета();
|
||||
|
||||
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
|
||||
|
||||
+2
-2
@@ -270,7 +270,7 @@
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("КомментарийНачалоВыбораЗавершение", ЭтотОбъект);
|
||||
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
|
||||
Оповещение, Элементы.Комментарий.ТекстРедактирования, НСтр("ru='Служебный комментарий'"));
|
||||
Оповещение, Элементы.Комментарий.ТекстРедактирования, НСтр("ru = 'Служебный комментарий'"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1257,7 +1257,7 @@
|
||||
Функция ЕстьЦиклПорядкаВыполненияОбработчиков(Сообщать = Истина)
|
||||
|
||||
ЭтотОбработчик = Объект.ОбработчикиОбновления[0].Ссылка;
|
||||
ЕстьЦикл = ЭтотОбъект.ВладелецФормы.ЕстьЦиклПорядкаВыполненияОбработчиков(ЭтотОбработчик, Объект.ПриоритетыВыполнения);
|
||||
ЕстьЦикл = ВладелецФормы.ЕстьЦиклПорядкаВыполненияОбработчиков(ЭтотОбработчик, Объект.ПриоритетыВыполнения);
|
||||
Возврат ЕстьЦикл;
|
||||
|
||||
КонецФункции
|
||||
|
||||
+2
-13
@@ -1376,7 +1376,7 @@
|
||||
Имена.Удалить(Имена.ВГраница());
|
||||
ОписаниеОбработчика.ИмяОбъекта = СтрСоединить(Имена, ".");
|
||||
|
||||
ИнверсныйПорядок = ИнверсныйПорядок();
|
||||
ИнверсныйПорядок = Обработка.ИнверсныйПорядок();
|
||||
Отбор = Новый Структура("Ссылка", ОписаниеОбработчика.Ссылка);
|
||||
Для Каждого ТабличнаяЧасть Из Данные.ТабличныеЧасти Цикл
|
||||
|
||||
@@ -1415,17 +1415,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ИнверсныйПорядок()
|
||||
|
||||
ИнверсныйПорядок = Новый Соответствие;
|
||||
ИнверсныйПорядок.Вставить("До","После");
|
||||
ИнверсныйПорядок.Вставить("После","До");
|
||||
ИнверсныйПорядок.Вставить("Любой","Любой");
|
||||
Возврат ИнверсныйПорядок;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ИнвертироватьПорядок(Обработка, Запись, ИнверсныйПорядок)
|
||||
|
||||
@@ -3851,7 +3840,7 @@
|
||||
Функция ЕстьЦиклПорядкаВыполненияОбработчиков(Знач ЭтотОбработчик, Знач ПриоритетыВыполнения = Неопределено, СообщатьОбОшибках = Истина) Экспорт
|
||||
|
||||
Обработка = ОбъектОбработки();
|
||||
ЕстьЦикл = Обработка.ЕстьЦиклПорядкаВыполненияОбработчика(ЭтотОбработчик, ПриоритетыВыполнения, СообщатьОбОшибках);
|
||||
ЕстьЦикл = Обработка.ЕстьЦиклВыполненияОбработчиков(ЭтотОбработчик, ПриоритетыВыполнения, СообщатьОбОшибках);
|
||||
Возврат ЕстьЦикл;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
Перем МножественноеЧисло Экспорт;
|
||||
Перем ЕдинственноеЧисло Экспорт;
|
||||
Перем МодулиПодсистем Экспорт;
|
||||
Перем ПриоритетыПоИндексам;
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -312,90 +311,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверяет наличие зацикленности выполнения по данным приоритетов для всех обработчиков.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Истина если есть зацикленность выполнения
|
||||
//
|
||||
Функция ЕстьЦиклВыполненияОбработчиков() Экспорт
|
||||
|
||||
ПриоритетыПоИндексам = ПриоритетыВыполнения.Выгрузить();
|
||||
ПриоритетыПоИндексам.Индексы.Добавить("Ссылка, Порядок");
|
||||
ЕстьЦикл = Ложь;
|
||||
Для Каждого Обработчик Из ОбработчикиОбновления Цикл
|
||||
ЕстьЦикл = ЕстьЦиклПорядкаВыполненияОбработчика(Обработчик.Ссылка) ИЛИ ЕстьЦикл;
|
||||
КонецЦикла;
|
||||
Возврат ЕстьЦикл;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверяет наличие зацикленности выполнения по данным приоритетов для конкретного обработчика.
|
||||
//
|
||||
// Параметры:
|
||||
// ЭтотОбработчик - Структура - описание обработчика
|
||||
// ПриоритетыОбработчика - ТаблицаЗначений - выгрузки табличной части ПриоритетыВыполнения
|
||||
// СообщатьОбОшибках - Булево
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Истина если есть зацикленность выполнения
|
||||
//
|
||||
Функция ЕстьЦиклПорядкаВыполненияОбработчика(Знач ЭтотОбработчик, Знач ПриоритетыОбработчика = Неопределено, СообщатьОбОшибках = Ложь) Экспорт
|
||||
|
||||
Если ПриоритетыПоИндексам = Неопределено Тогда
|
||||
ПриоритетыПоИндексам = ПриоритетыВыполнения.Выгрузить();
|
||||
ПриоритетыПоИндексам.Индексы.Добавить("Ссылка, Порядок");
|
||||
КонецЕсли;
|
||||
|
||||
СвязанныеОбработчикиДо = Новый Массив;
|
||||
СвязанныеОбработчикиПосле = Новый Массив;
|
||||
Если ЭтотОбработчик <> Неопределено И ПриоритетыОбработчика = Неопределено Тогда
|
||||
Отбор = Новый Структура("Ссылка", ЭтотОбработчик);
|
||||
ПриоритетыОбработчика = ПриоритетыПоИндексам.НайтиСтроки(Отбор);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Приоритет Из ПриоритетыОбработчика Цикл
|
||||
Связанный = НовыйОбработчик(Приоритет.Обработчик2, Приоритет.Процедура2);
|
||||
Если Приоритет.Порядок = "До" Тогда
|
||||
СвязанныеОбработчикиДо.Добавить(Связанный);
|
||||
|
||||
ИначеЕсли Приоритет.Порядок = "После" Тогда
|
||||
СвязанныеОбработчикиПосле.Добавить(Связанный);
|
||||
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если СвязанныеОбработчикиДо.Количество() = 0 И СвязанныеОбработчикиПосле.Количество() = 0 Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьЦикл = Ложь;
|
||||
Путь = Новый Массив;
|
||||
ПолныйПуть = Новый Массив;
|
||||
Если СвязанныеОбработчикиДо.Количество() > 0 Тогда
|
||||
ЕстьЦикл = ЕстьЦиклВПорядкеОбработчиков(ЭтотОбработчик, СвязанныеОбработчикиДо, "До", Путь, ПолныйПуть);
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ ЕстьЦикл И СвязанныеОбработчикиПосле.Количество() > 0 Тогда
|
||||
ЕстьЦикл = ЕстьЦиклВПорядкеОбработчиков(ЭтотОбработчик, СвязанныеОбработчикиПосле, "После", Путь, ПолныйПуть);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЕстьЦикл Тогда
|
||||
ОписаниеОбработчика = ОбработчикиОбновления.НайтиСтроки(Новый Структура("Ссылка", ЭтотОбработчик));
|
||||
ПолныйПуть.Вставить(0, ОписаниеОбработчика[0].Процедура);
|
||||
ТекстПути = СтрСоединить(ПолныйПуть, Символы.ПС);
|
||||
|
||||
ТекстСообщения = НСтр("ru = 'Обнаружен цикл порядка выполнения:'") + Символы.ПС + "%Путь%";
|
||||
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Путь%", ТекстПути);
|
||||
ДобавитьОшибку(ОписаниеОбработчика[0].Процедура, ТекстСообщения);
|
||||
Если СообщатьОбОшибках Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЕстьЦикл;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ИнициализацияИЗаполнение
|
||||
@@ -1516,7 +1431,7 @@
|
||||
Процедура ВывестиСообщениеОбОшибках(БросатьИсключение = Истина)
|
||||
|
||||
Если БросатьИсключение Тогда
|
||||
ИмяСобытия = НСтр("ru='Построение очереди обработчиков обновления'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
ИмяСобытия = НСтр("ru = 'Построение очереди обработчиков обновления'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
СписокПроблемныхОбработчиков = "";
|
||||
Для Каждого Ошибка Из Ошибки Цикл
|
||||
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Ошибка.ОбъектМетаданных);
|
||||
@@ -1544,68 +1459,357 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область ЕстьЦиклВыполненияОбработчиков
|
||||
|
||||
// Проверяет наличие зацикленности выполнения по данным приоритетов для всех обработчиков.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Истина если есть зацикленность выполнения
|
||||
//
|
||||
Функция ЕстьЦиклВыполненияОбработчиков(ПроверяемыйОбработчик = Неопределено, Знач ПриоритетыОбработчика = Неопределено, СообщатьОбОшибках = Ложь) Экспорт
|
||||
|
||||
СписокРебер = ПриоритетыВыполнения.Выгрузить(, "Ссылка, Обработчик2, Порядок");
|
||||
Если ПриоритетыОбработчика <> Неопределено Тогда
|
||||
ИнверсныйПорядок = ИнверсныйПорядок();
|
||||
Для Каждого НовыйПриоритет Из ПриоритетыОбработчика Цикл
|
||||
|
||||
Отбор = Новый Структура("Ссылка,Обработчик2");
|
||||
ЗаполнитьЗначенияСвойств(Отбор, НовыйПриоритет);
|
||||
НайденныеРебра = СписокРебер.НайтиСтроки(Отбор);
|
||||
Если НайденныеРебра.Количество() = 0 Тогда
|
||||
НовоеРебро = СписокРебер.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(НовоеРебро, НовыйПриоритет);
|
||||
Иначе
|
||||
ЗаполнитьЗначенияСвойств(НайденныеРебра[0], НовыйПриоритет);
|
||||
Отбор.Ссылка = НовыйПриоритет.Обработчик2;
|
||||
Отбор.Обработчик2 = НовыйПриоритет.Ссылка;
|
||||
НайденныеРебра = СписокРебер.НайтиСтроки(Отбор);
|
||||
НайденныеРебра[0].Порядок = ИнверсныйПорядок[НовыйПриоритет.Порядок];
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
СписокРебер.Колонки.Ссылка.Имя = "Начало";
|
||||
СписокРебер.Колонки.Обработчик2.Имя = "Конец";
|
||||
|
||||
ЛюбыеЗависимости = СписокРебер.НайтиСтроки(Новый Структура("Порядок", "Любой"));
|
||||
Для Каждого ЛюбаяЗависимость Из ЛюбыеЗависимости Цикл
|
||||
СписокРебер.Удалить(ЛюбаяЗависимость);
|
||||
КонецЦикла;
|
||||
|
||||
ЗависимостиДо = СписокРебер.НайтиСтроки(Новый Структура("Порядок", "До"));
|
||||
Для Каждого ЗависимостьДо Из ЗависимостиДо Цикл
|
||||
Начало = ЗависимостьДо.Начало;
|
||||
ЗависимостьДо.Начало = ЗависимостьДо.Конец;
|
||||
ЗависимостьДо.Конец = Начало;
|
||||
КонецЦикла;
|
||||
|
||||
СписокРебер.Колонки.Удалить("Порядок");
|
||||
ОптимизироватьСписокРебер(СписокРебер);
|
||||
СписокВершин = СписокВершин(СписокРебер);
|
||||
СписокСмежности = СписокСмежности(СписокРебер, СписокВершин);
|
||||
ИндексПроверяемогоОбработчика = Неопределено;
|
||||
|
||||
Если ПроверяемыйОбработчик <> Неопределено Тогда
|
||||
Отбор = Новый Структура("Значение", ПроверяемыйОбработчик);
|
||||
НайденныеСтроки = СписокВершин.НайтиСтроки(Отбор);
|
||||
Если НайденныеСтроки.Количество() = 0 Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
СтрокаПроверяемогоОбработчика = НайденныеСтроки[0];
|
||||
ИндексПроверяемогоОбработчика = СписокВершин.Индекс(СтрокаПроверяемогоОбработчика);
|
||||
КонецЕсли;
|
||||
|
||||
ЦиклыГрафа = НайтиЦиклыГрафа(СписокВершин, СписокСмежности, ИндексПроверяемогоОбработчика);
|
||||
ЕстьЦикл = ЦиклыГрафа.Количество() > 0;
|
||||
|
||||
Если ЕстьЦикл Тогда
|
||||
|
||||
Для Каждого ЦиклГрафа Из ЦиклыГрафа Цикл
|
||||
|
||||
ПолныйПуть = Новый Массив;
|
||||
Для Каждого Ссылка Из ЦиклГрафа Цикл
|
||||
Описание = ОбработчикиОбновления.Найти(Ссылка, "Ссылка");
|
||||
ПолныйПуть.Добавить(Описание.Процедура);
|
||||
КонецЦикла;
|
||||
ТекстПути = СтрСоединить(ПолныйПуть, Символы.ПС);
|
||||
|
||||
ТекстСообщения = НСтр("ru = 'Обнаружен цикл порядка выполнения:'") + Символы.ПС + "%Путь%";
|
||||
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Путь%", ТекстПути);
|
||||
|
||||
ДобавитьОшибку("", ТекстСообщения);
|
||||
Если СообщатьОбОшибках Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЕстьЦикл;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область ПоискЦиклов
|
||||
|
||||
Процедура ДобавитьЦиклВРезультатПоиска(Параметры)
|
||||
|
||||
НачалоЦикла = Параметры.НачалоЦикла;
|
||||
Вершина = Параметры.КонецЦикла;
|
||||
Путь = Параметры.Путь;
|
||||
|
||||
СтруктураЦикла = Новый Массив;
|
||||
СтруктураЦикла.Добавить(НачалоЦикла);
|
||||
|
||||
Пока Вершина <> НачалоЦикла Цикл
|
||||
СтруктураЦикла.Добавить(Вершина);
|
||||
Вершина = Путь[Вершина];
|
||||
КонецЦикла;
|
||||
|
||||
СтруктураЦикла.Добавить(НачалоЦикла);
|
||||
ПеревернутьМассив(СтруктураЦикла);
|
||||
Параметры.Циклы.Добавить(СтруктураЦикла);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьВершиныЗначениями(МассивВершин, СписокВершин)
|
||||
|
||||
Для ИндексВершины = 0 По МассивВершин.ВГраница() Цикл
|
||||
МассивВершин[ИндексВершины] = СписокВершин[МассивВершин[ИндексВершины]].Значение;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьЦиклыЗначениями(Параметры)
|
||||
|
||||
СписокВершин = Параметры.СписокВершин;
|
||||
|
||||
Для Каждого СтруктураЦикла Из Параметры.Циклы Цикл
|
||||
ЗаполнитьВершиныЗначениями(СтруктураЦикла, СписокВершин);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОптимизироватьСписокРебер(СписокРебер)
|
||||
|
||||
СписокРебер.Свернуть("Начало, Конец");
|
||||
СписокРебер.Индексы.Добавить("Начало");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПеревернутьМассив(Массив)
|
||||
|
||||
ИндексНачала = 0;
|
||||
ИндексКонца = Массив.ВГраница();
|
||||
|
||||
Пока ИндексНачала < ИндексКонца Цикл
|
||||
Значение = Массив[ИндексНачала];
|
||||
Массив[ИндексНачала] = Массив[ИндексКонца];
|
||||
Массив[ИндексКонца] = Значение;
|
||||
ИндексНачала = ИндексНачала + 1;
|
||||
ИндексКонца = ИндексКонца - 1;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПоискВГлубинуГрафа(ВершинаВыхода, Параметры)
|
||||
|
||||
СостоянияВершин = Параметры.СостоянияВершин;
|
||||
СостоянияВершин[ВершинаВыхода] = 1;
|
||||
ВершиныВхода = Параметры.СписокСмежности[ВершинаВыхода];
|
||||
|
||||
Если ВершиныВхода <> Неопределено Тогда
|
||||
Для ИндексВершиныВхода = 0 По ВершиныВхода.Количество() - 1 Цикл
|
||||
ВершинаВхода = ВершиныВхода[ИндексВершиныВхода];
|
||||
СостояниеВершиныВхода = СостоянияВершин[ВершинаВхода];
|
||||
|
||||
Если СостояниеВершиныВхода = Неопределено Тогда
|
||||
Параметры.Путь[ВершинаВхода] = ВершинаВыхода;
|
||||
ПоискВГлубинуГрафа(ВершинаВхода, Параметры);
|
||||
ИначеЕсли СостояниеВершиныВхода = 1 Тогда
|
||||
Параметры.НачалоЦикла = ВершинаВхода;
|
||||
Параметры.КонецЦикла = ВершинаВыхода;
|
||||
ДобавитьЦиклВРезультатПоиска(Параметры);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
СостоянияВершин[ВершинаВыхода] = 2;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УдалитьЛишниеЦиклы(Циклы)
|
||||
|
||||
ИсходныеЦиклы = СоответствиеПредставленийИЗначенийЦиклов(Циклы);
|
||||
НормализованныеЦиклы = Новый Массив;
|
||||
|
||||
Для Каждого ИсходныйЦикл Из ИсходныеЦиклы Цикл
|
||||
НормализованныйЦикл = НормализоватьЦикл(ИсходныйЦикл.Значение);
|
||||
НормализованныеЦиклы.Добавить(НормализованныйЦикл);
|
||||
КонецЦикла;
|
||||
|
||||
УникальныеЦиклы = СоответствиеПредставленийИЗначенийЦиклов(НормализованныеЦиклы);
|
||||
Циклы.Очистить();
|
||||
|
||||
Для Каждого УникальныйЦикл Из УникальныеЦиклы Цикл
|
||||
Циклы.Добавить(УникальныйЦикл.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ИндексМинимальногоЗначенияВМассиве(Массив)
|
||||
|
||||
Если Массив.Количество() = 0 Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Минимум = Массив[0];
|
||||
ИндексМинимума = 0;
|
||||
|
||||
Для Индекс = 1 По Массив.ВГраница() Цикл
|
||||
Значение = Массив[Индекс];
|
||||
|
||||
Если Значение < Минимум Тогда
|
||||
Минимум = Значение;
|
||||
ИндексМинимума = Индекс;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ИндексМинимума;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НайтиЦиклыГрафа(СписокВершин, СписокСмежности, НачальнаяВершина = Неопределено)
|
||||
|
||||
ПараметрыПоиска = НовыеПараметрыПоискаВГлубинуГрафа(СписокВершин, СписокСмежности);
|
||||
КоличествоВершин = СписокВершин.Количество();
|
||||
|
||||
Если НачальнаяВершина = Неопределено Тогда
|
||||
Для ИндексВершиныВыхода = 0 По КоличествоВершин - 1 Цикл
|
||||
ПараметрыПоиска.СостоянияВершин = Новый Массив(КоличествоВершин);
|
||||
ПоискВГлубинуГрафа(ИндексВершиныВыхода, ПараметрыПоиска);
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
ПоискВГлубинуГрафа(НачальнаяВершина, ПараметрыПоиска);
|
||||
КонецЕсли;
|
||||
|
||||
УдалитьЛишниеЦиклы(ПараметрыПоиска.Циклы);
|
||||
ЗаполнитьЦиклыЗначениями(ПараметрыПоиска);
|
||||
|
||||
Возврат ПараметрыПоиска.Циклы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НовыеПараметрыПоискаВГлубинуГрафа(СписокВершин, СписокСмежности)
|
||||
|
||||
КоличествоВершин = СписокВершин.Количество();
|
||||
|
||||
ПараметрыПоиска = Новый Структура;
|
||||
ПараметрыПоиска.Вставить("СписокВершин", СписокВершин);
|
||||
ПараметрыПоиска.Вставить("СписокСмежности", СписокСмежности);
|
||||
ПараметрыПоиска.Вставить("СостоянияВершин", Новый Массив(КоличествоВершин));
|
||||
ПараметрыПоиска.Вставить("Путь", Новый Массив(КоличествоВершин));
|
||||
ПараметрыПоиска.Вставить("Циклы", Новый Массив);
|
||||
ПараметрыПоиска.Вставить("НачалоЦикла");
|
||||
ПараметрыПоиска.Вставить("КонецЦикла");
|
||||
|
||||
Возврат ПараметрыПоиска;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НормализоватьЦикл(СтруктураЦикла)
|
||||
|
||||
СтруктураЦикла.Удалить(СтруктураЦикла.ВГраница());
|
||||
ИндексМинимума = ИндексМинимальногоЗначенияВМассиве(СтруктураЦикла);
|
||||
НормализованныйЦикл = ЦиклическиСдвинутыйМассив(СтруктураЦикла, -ИндексМинимума);
|
||||
НормализованныйЦикл.Добавить(НормализованныйЦикл[0]);
|
||||
|
||||
Возврат НормализованныйЦикл;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СоответствиеПредставленийИЗначенийЦиклов(Циклы)
|
||||
|
||||
Соответствие = Новый Соответствие;
|
||||
|
||||
Для Каждого СтруктураЦикла Из Циклы Цикл
|
||||
ПредставлениеЦикла = СтрСоединить(СтруктураЦикла, " → ");
|
||||
Значение = Соответствие[ПредставлениеЦикла];
|
||||
|
||||
Если Значение = Неопределено Тогда
|
||||
Соответствие[ПредставлениеЦикла] = СтруктураЦикла;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Соответствие;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СписокВершин(СписокРебер)
|
||||
|
||||
ВершиныВыхода = СписокРебер.Скопировать(, "Начало");
|
||||
ВершиныВхода = СписокРебер.Скопировать(, "Конец");
|
||||
ВершиныВхода.Свернуть("Конец");
|
||||
|
||||
Для Каждого ВершинаВхода Из ВершиныВхода Цикл
|
||||
ВершинаВыхода = ВершиныВыхода.Добавить();
|
||||
ВершинаВыхода.Начало = ВершинаВхода.Конец;
|
||||
КонецЦикла;
|
||||
|
||||
ВершиныВыхода.Свернуть("Начало");
|
||||
ВершиныВыхода.Колонки.Начало.Имя = "Значение";
|
||||
ВершиныВыхода.Индексы.Добавить("Значение");
|
||||
|
||||
Возврат ВершиныВыхода;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СписокСмежности(СписокРебер, СписокВершин)
|
||||
|
||||
КоличествоВершин = СписокВершин.Количество();
|
||||
СписокСмежности = Новый Массив(КоличествоВершин);
|
||||
ОтборВСпискеРебер = Новый Структура("Начало");
|
||||
ОтборВСпискеВершин = Новый Структура("Значение");
|
||||
|
||||
Для ИндексВершины = 0 По КоличествоВершин - 1 Цикл
|
||||
ВершинаВыхода = СписокВершин[ИндексВершины].Значение;
|
||||
ОтборВСпискеРебер.Начало = ВершинаВыхода;
|
||||
ВершиныВхода = СписокРебер.НайтиСтроки(ОтборВСпискеРебер);
|
||||
КоличествоВершинВхода = ВершиныВхода.Количество();
|
||||
|
||||
Если КоличествоВершинВхода > 0 Тогда
|
||||
СписокВершинВхода = Новый Массив(КоличествоВершинВхода);
|
||||
СписокСмежности[ИндексВершины] = СписокВершинВхода;
|
||||
|
||||
Для ИндексВершиныВхода = 0 По КоличествоВершинВхода - 1 Цикл
|
||||
ВершинаВхода = ВершиныВхода[ИндексВершиныВхода].Конец;
|
||||
ОтборВСпискеВершин.Значение = ВершинаВхода;
|
||||
СписокВершинВхода[ИндексВершиныВхода] = СписокВершин.Индекс(СписокВершин.НайтиСтроки(ОтборВСпискеВершин)[0]);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СписокСмежности;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЦиклическиСдвинутыйМассив(Массив, Смещение)
|
||||
|
||||
Количество = Массив.Количество();
|
||||
СдвинутыйМассив = Новый Массив(Количество);
|
||||
|
||||
Для Индекс = 0 По Массив.ВГраница() Цикл
|
||||
СмещениеИсточника = Индекс - Смещение + ?(Смещение < 0, 0, Количество);
|
||||
ИндексИсточника = СмещениеИсточника % Количество;
|
||||
СдвинутыйМассив[Индекс] = Массив[ИндексИсточника];
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СдвинутыйМассив;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ЕстьЦиклПорядкаВыполнения
|
||||
|
||||
// Параметры:
|
||||
// Обработчик - Структура - описание обработчика
|
||||
// СвязанныеОбработчики - Массив из ДокументСсылка
|
||||
// НаправлениеОбхода - Строка
|
||||
// Путь - Массив
|
||||
// Возвращаемое значение:
|
||||
// Булево - истина если есть цикл в порядке выполнения обработчиков
|
||||
//
|
||||
Функция ЕстьЦиклВПорядкеОбработчиков(Обработчик, СвязанныеОбработчики, НаправлениеОбхода, Путь, ПолныйПуть)
|
||||
|
||||
Для каждого СвязанныйОбработчик Из СвязанныеОбработчики Цикл
|
||||
|
||||
Если ПолныйПуть.Найти(СвязанныйОбработчик.Процедура) <> Неопределено Тогда
|
||||
ПолныйПуть.Добавить(СвязанныйОбработчик.Процедура);
|
||||
Возврат Ложь; // для предотвращения зацикливания проверки
|
||||
КонецЕсли;
|
||||
ПолныйПуть.Добавить(СвязанныйОбработчик.Процедура);
|
||||
|
||||
Если СвязанныйОбработчик.Ссылка = Обработчик Тогда
|
||||
Путь.Добавить(СвязанныйОбработчик.Процедура);
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
СвязанныеОбработчикиТекущего = СвязанныеОбработчики(СвязанныйОбработчик.Ссылка, НаправлениеОбхода);
|
||||
|
||||
Если СвязанныеОбработчикиТекущего.Количество() > 0 Тогда
|
||||
Если ЕстьЦиклВПорядкеОбработчиков(Обработчик, СвязанныеОбработчикиТекущего, НаправлениеОбхода, Путь, ПолныйПуть) Тогда
|
||||
Путь.Добавить(СвязанныйОбработчик.Процедура);
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ПолныйПуть.Удалить(ПолныйПуть.ВГраница());
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СвязанныеОбработчики(Обработчик, НаправлениеОбхода)
|
||||
|
||||
Отбор = Новый Структура("Ссылка, Порядок", Обработчик, НаправлениеОбхода);
|
||||
ПриоритетыОбработчика = ПриоритетыПоИндексам.НайтиСтроки(Отбор);
|
||||
Результат = Новый Массив;
|
||||
Для Каждого Приоритет Из ПриоритетыОбработчика Цикл
|
||||
Связанный = НовыйОбработчик(Приоритет.Обработчик2, Приоритет.Процедура2);
|
||||
Результат.Добавить(Связанный);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НовыйОбработчик(Ссылка = "", ИмяПроцедуры = "")
|
||||
|
||||
Возврат Новый Структура("Ссылка, Процедура", Ссылка, ИмяПроцедуры);
|
||||
|
||||
КонецФункции
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -1716,6 +1920,21 @@
|
||||
Возврат Новый Структура("РежимВыполненияОтложенныхОбработчиков,ПорядокБиблиотеки");
|
||||
КонецФункции
|
||||
|
||||
// Возвращает соответствие инверсных порядков
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие - прямого порядка инверсному
|
||||
//
|
||||
Функция ИнверсныйПорядок() Экспорт
|
||||
|
||||
ИнверсныйПорядок = Новый Соответствие;
|
||||
ИнверсныйПорядок.Вставить("До","После");
|
||||
ИнверсныйПорядок.Вставить("После","До");
|
||||
ИнверсныйПорядок.Вставить("Любой","Любой");
|
||||
Возврат ИнверсныйПорядок;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
+3
-3
@@ -145,15 +145,15 @@
|
||||
Функция ЗаголовокНастройкиСервисаПереводаТекста(СервисПереводаТекста)
|
||||
|
||||
Если ЗначениеЗаполнено(СервисПереводаТекста) Тогда
|
||||
Шаблон = НСтр("ru = 'Перевод текста с помощью <a href=""ПерейтиКНастройкеСервисаПереводаТекста"">%1</a>'");
|
||||
Шаблон = НСтр("ru = 'Перевод текста с помощью <a href=""%1"">%2</a>'");
|
||||
Иначе
|
||||
Шаблон = НСтр("ru = 'Перевод текста с помощью внешнего сервиса'");
|
||||
КонецЕсли;
|
||||
|
||||
#Если Клиент Тогда
|
||||
Возврат СтроковыеФункцииКлиент.ФорматированнаяСтрока(Шаблон, СервисПереводаТекста);
|
||||
Возврат СтроковыеФункцииКлиент.ФорматированнаяСтрока(Шаблон, "ПерейтиКНастройкеСервисаПереводаТекста", СервисПереводаТекста);
|
||||
#Иначе
|
||||
Возврат СтроковыеФункции.ФорматированнаяСтрока(Шаблон, СервисПереводаТекста);
|
||||
Возврат СтроковыеФункции.ФорматированнаяСтрока(Шаблон, "ПерейтиКНастройкеСервисаПереводаТекста", СервисПереводаТекста);
|
||||
#КонецЕсли
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -38,8 +38,8 @@
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
|
||||
Если КоличествоТомовХранения = 0 Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Нет ни одного тома для размещения файлов.'"));
|
||||
Отказ = Истина;
|
||||
ОписаниеОповещения = Новый ОписаниеОповещения("ПриОткрытииПослеЗакрытияПредупреждения", ЭтотОбъект);
|
||||
ПоказатьПредупреждение(ОписаниеОповещения, НСтр("ru = 'Невозможно перенести файлы между томами, т.к. нет ни одного тома для размещения файлов.'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -170,6 +170,13 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытииПослеЗакрытияПредупреждения(Результат) Экспорт
|
||||
|
||||
Закрыть();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ВыполнитьПереносНаСервере()
|
||||
|
||||
|
||||
@@ -381,10 +381,14 @@
|
||||
|через запуск 1С:Предприятия, либо временно отключать расширения конфигурации.'");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ДлительныеОперации.ВыполнитьВФоне(
|
||||
"РегистрыСведений.ПараметрыРаботыПрограммы.ОбработчикДлительнойОперацииОбновленияПараметровРаботыПрограммы",
|
||||
СообщитьПрогресс,
|
||||
ПараметрыОперации);
|
||||
Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедурыФоновогоЗадания(),
|
||||
СообщитьПрогресс, ПараметрыОперации);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИмяПроцедурыФоновогоЗадания() Экспорт
|
||||
|
||||
Возврат "РегистрыСведений.ПараметрыРаботыПрограммы.ОбработчикДлительнойОперацииОбновленияПараметровРаботыПрограммы";
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -624,6 +624,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>InformationRegister.ДомаЗданияСтроения</name>
|
||||
<right>
|
||||
@@ -3273,93 +3360,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>
|
||||
|
||||
@@ -14,6 +14,37 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<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>Output</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
|
||||
<right>
|
||||
@@ -76,37 +107,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<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>Output</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<restrictionTemplate>
|
||||
<name>ДляОбъекта(ПолеОбъекта)</name>
|
||||
<condition>// ДляОбъекта(ПолеОбъекта = "")
|
||||
|
||||
@@ -937,6 +937,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>InformationRegister.ДомаЗданияСтроения</name>
|
||||
<right>
|
||||
@@ -4651,45 +4690,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>Catalog.ЗначенияСвойствОбъектовИерархия</name>
|
||||
<right>
|
||||
|
||||
+4
-1
@@ -1070,13 +1070,16 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не МетаданныеОбъекта.Иерархический Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если МетаданныеОбъекта.ВидИерархии = ВидыИерархии.ИерархияГруппИЭлементов Тогда
|
||||
ВидИерархии = ВидИерархииИерархияГруппИЭлементов();
|
||||
Иначе
|
||||
ВидИерархии = ВидИерархииИерархияЭлементов();
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ВидыИерархииЗначений.Вставить(ТипЗначения, ВидИерархии);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Reference in new issue
Block a user