3_1_5_385

This commit is contained in:
Компания 1С committed 2022-04-01 14:03:00 +03:00
1 parent 5cb09fb5f8
commit 6262189126
32 files changed
+656 -293

No files matched your search

@@ -764,7 +764,7 @@
Блокировка.Заблокировать(); Блокировка.Заблокировать();
РезультатЗапроса = Запрос.Выполнить(); РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда Если РезультатЗапроса.Пустой() Тогда
ОтменитьТранзакцию(); ЗафиксироватьТранзакцию();
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Выборка = РезультатЗапроса.Выбрать(); Выборка = РезультатЗапроса.Выбрать();
@@ -2530,8 +2530,11 @@
Элементы.СтраницаДоставка.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Доставка (%1)'"), СпособыДоставки); Элементы.СтраницаДоставка.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Доставка (%1)'"), СпособыДоставки);
КонецЕсли; КонецЕсли;
Если Изменения = "" Или Изменения = "ПисьмоВФорматеHTML" Тогда Если ПустаяСтрока(Изменения) Или СтрСравнить(Изменения, "ПисьмоВФорматеHTML") = 0 Тогда
ПереключитьСтраницу(Элементы, "СтраницыТекстПисьма", ?(Объект.ПисьмоВФорматеHTML, "HTML", "ОбычныйТекст"));
Элементы.СтраницыТекстПисьма.ТекущаяСтраница = ?(Объект.ПисьмоВФорматеHTML,
Элементы.СтраницыТекстПисьмаHTML, Элементы.СтраницыТекстПисьмаОбычныйТекст);
КонецЕсли; КонецЕсли;
Если Изменения = "" Или Изменения = "Архивировать" Тогда Если Изменения = "" Или Изменения = "Архивировать" Тогда
@@ -975,7 +975,7 @@
УстановитьЭлемент(ЭтотОбъект, "Шифрование", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты); УстановитьЭлемент(ЭтотОбъект, "Шифрование", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
// Расшифровка. // Расшифровка.
Если ПроверкиНаКлиенте.НаличиеСертификата И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда Если ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
Контекст.МенеджерКриптографии.НачатьРасшифровку(Новый ОписаниеОповещения( Контекст.МенеджерКриптографии.НачатьРасшифровку(Новый ОписаниеОповещения(
"ПроверитьНаСторонеКлиентаПослеРасшифровки", ЭтотОбъект, Контекст, "ПроверитьНаСторонеКлиентаПослеРасшифровки", ЭтотОбъект, Контекст,
"ПроверитьНаСторонеКлиентаПослеОшибкиРасшифровки", ЭтотОбъект), "ПроверитьНаСторонеКлиентаПослеОшибкиРасшифровки", ЭтотОбъект),
@@ -1009,7 +1009,7 @@
УстановитьЭлемент(ЭтотОбъект, "Шифрование", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты); УстановитьЭлемент(ЭтотОбъект, "Шифрование", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
// Расшифровка. // Расшифровка.
Если ПроверкиНаКлиенте.НаличиеСертификата И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда Если ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
МодульСервисКриптографииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииКлиент"); МодульСервисКриптографииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииКлиент");
МодульСервисКриптографииКлиент.Расшифровать(Новый ОписаниеОповещения( МодульСервисКриптографииКлиент.Расшифровать(Новый ОписаниеОповещения(
"ПроверитьНаСторонеКлиентаПослеРасшифровкиВМоделиСервиса", ЭтотОбъект, Контекст, "ПроверитьНаСторонеКлиентаПослеРасшифровкиВМоделиСервиса", ЭтотОбъект, Контекст,
@@ -865,7 +865,7 @@
// outlook.com // outlook.com
Если ИмяСервераВУчетнойЗаписи = "outlook.com" Тогда Если ИмяСервераВУчетнойЗаписи = "outlook.com" Тогда
ВариантНастройки = Результат.Добавить(); ВариантНастройки = Результат.Добавить();
ВариантНастройки.СерверВходящейПочты = "imap-mail.outlook.com"; ВариантНастройки.СерверВходящейПочты = "outlook.office365.com";
ВариантНастройки.ПортСервераВходящейПочты = 993; ВариантНастройки.ПортСервераВходящейПочты = 993;
ВариантНастройки.ИспользоватьЗащищенноеСоединениеДляВходящейПочты = Истина; ВариантНастройки.ИспользоватьЗащищенноеСоединениеДляВходящейПочты = Истина;
Возврат Результат; Возврат Результат;
@@ -882,8 +882,9 @@
// Возвращаемое значение: // Возвращаемое значение:
// Структура - найденные варианты. Содержит поля: // Структура - найденные варианты. Содержит поля:
// * Отказ - Булево - поставщик не доступен. // * Отказ - Булево - поставщик не доступен.
// * ПодробноеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено, если Отказ // * ИсключатьГородИзМуниципальногоАдреса - Булево - Если Ложь, то представление муниципального адреса включает город.
// = Ложь. // // * ПодробноеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено,
// если Отказ = Ложь.
// * КраткоеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено, если Отказ // * КраткоеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено, если Отказ
// = Ложь. // = Ложь.
// * Данные - Структура - адрес. // * Данные - Структура - адрес.
@@ -892,9 +893,10 @@
Данные = Новый Структура; Данные = Новый Структура;
Результат = Новый Структура("Данные", Данные); Результат = Новый Структура("Данные", Данные);
Результат.Вставить("ИсключатьГородИзМуниципальногоАдреса", Ложь);
СтруктураОписанияОшибкиПоставщика(Результат); СтруктураОписанияОшибкиПоставщика(Результат);
Если СведенияОбАдресномОбъекте.Свойство("ЗагруженныеДанные") Тогда Если СведенияОбАдресномОбъекте.Свойство("ЗагруженныеДанные") И ТипЗнч(СведенияОбАдресномОбъекте.ЗагруженныеДанные) = Тип("Булево") Тогда
ЗагруженныеДанные = СведенияОбАдресномОбъекте.ЗагруженныеДанные; ЗагруженныеДанные = СведенияОбАдресномОбъекте.ЗагруженныеДанные;
Иначе Иначе
ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ(); ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ();
@@ -909,6 +911,7 @@
Если ЗагруженныеДанные = Истина Тогда Если ЗагруженныеДанные = Истина Тогда
ЗаполнитьАктуальныеАдресныеСведенияВнутр(Результат.Данные, СведенияОбАдресномОбъекте); ЗаполнитьАктуальныеАдресныеСведенияВнутр(Результат.Данные, СведенияОбАдресномОбъекте);
Результат.ИсключатьГородИзМуниципальногоАдреса = ИсключатьГородИзМуниципальногоАдреса(Результат.Данные);
КонецЕсли; КонецЕсли;
Если АдресПустой(Результат.Данные) Тогда Если АдресПустой(Результат.Данные) Тогда
@@ -924,6 +927,21 @@
КонецФункции КонецФункции
Функция ИсключатьГородИзМуниципальногоАдреса(Адрес) Экспорт
Если АдресПустой(Адрес) Тогда
Возврат Ложь;
КонецЕсли;
УровеньРодительскогоОбъекта = УровеньМуниципальногоРодительскогоОбъектаПоАдресу(Адрес);
Если УровеньРодительскогоОбъекта = 31 Или УровеньРодительскогоОбъекта = 41 Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
// Проверяет данные на соответствие классификатору. // Проверяет данные на соответствие классификатору.
// //
// Параметры: // Параметры:
@@ -4888,6 +4906,8 @@
Адрес = КлючЗначение.Значение; Адрес = КлючЗначение.Значение;
Счетчик = 0; Счетчик = 0;
ИсключатьГород = ИсключатьГородИзМуниципальногоАдреса(Адрес);
// Обратная совместимость // Обратная совместимость
Адрес.munDistrictType = ИсправлениеСокращений(Адрес.munDistrictType); Адрес.munDistrictType = ИсправлениеСокращений(Адрес.munDistrictType);
Адрес.munDistrict = КраткоеНаписаниеМуниципальныхРайонов(Адрес.munDistrict, Адрес.munDistrictType); Адрес.munDistrict = КраткоеНаписаниеМуниципальныхРайонов(Адрес.munDistrict, Адрес.munDistrictType);
@@ -4896,7 +4916,7 @@
Адрес.settlement = КраткоеНаписаниеПоселений(Адрес.settlement, Адрес.settlementType); Адрес.settlement = КраткоеНаписаниеПоселений(Адрес.settlement, Адрес.settlementType);
ПроверяемыеУровниАдреса = Новый Соответствие; ПроверяемыеУровниАдреса = Новый Соответствие;
ИменаУровнейАдреса = ИменаУровнейАдреса(Адрес.AddressType, Истина); ИменаУровнейАдреса = ИменаУровнейАдреса(Адрес.AddressType, Истина, ИсключатьГород);
АдресПоПолям = АдресаПоПолям.Добавить(); АдресПоПолям = АдресаПоПолям.Добавить();
АдресПоПолям.ЭтоМуниципальныйАдрес = ЭтоМуниципальныйАдрес(Адрес.AddressType); АдресПоПолям.ЭтоМуниципальныйАдрес = ЭтоМуниципальныйАдрес(Адрес.AddressType);
@@ -7632,7 +7652,7 @@
Возврат СтрСравнить(ТипАдреса, АдминистративноТерриториальныйАдрес()) = 0; Возврат СтрСравнить(ТипАдреса, АдминистративноТерриториальныйАдрес()) = 0;
КонецФункции КонецФункции
Функция ИменаУровнейАдреса(ТипАдреса, ВключатьУлицу) Функция ИменаУровнейАдреса(ТипАдреса, ВключатьУлицу, ИсключатьГород = Ложь)
Уровни = Новый Массив; Уровни = Новый Массив;
@@ -7648,11 +7668,14 @@
Если ЭтоМуниципальныйАдрес(ТипАдреса) Тогда Если ЭтоМуниципальныйАдрес(ТипАдреса) Тогда
Уровни.Добавить("MunDistrict"); Уровни.Добавить("MunDistrict");
Уровни.Добавить("Settlement"); Уровни.Добавить("Settlement");
Если Не ИсключатьГород Тогда
Уровни.Добавить("City");
КонецЕсли;
Иначе Иначе
Уровни.Добавить("District"); Уровни.Добавить("District");
Уровни.Добавить("City");
КонецЕсли; КонецЕсли;
Уровни.Добавить("City");
Уровни.Добавить("CityDistrict"); Уровни.Добавить("CityDistrict");
Уровни.Добавить("Locality"); Уровни.Добавить("Locality");
Уровни.Добавить("Territory"); Уровни.Добавить("Territory");
@@ -10703,6 +10726,56 @@
// АПК: 1297-вкл // АПК: 1297-вкл
КонецФункции КонецФункции
Функция УровеньМуниципальногоРодительскогоОбъектаПоАдресу(Адрес)
УровеньРодительскогоОбъекта = 0;
ИдентификаторОбъекта = Неопределено;
Если ЗначениеЗаполнено(Адрес.localityId) Тогда
ИдентификаторОбъекта = Адрес.localityId;
ИначеЕсли ЗначениеЗаполнено(Адрес.territoryId) Тогда
ИдентификаторОбъекта = Адрес.territoryId;
КонецЕсли;
Если ИдентификаторОбъекта <> Неопределено Тогда
УровеньРодительскогоОбъекта = УровеньМуниципальногоРодительскогоОбъекта(ИдентификаторОбъекта);
КонецЕсли;
Возврат УровеньРодительскогоОбъекта;
КонецФункции
Функция УровеньМуниципальногоРодительскогоОбъекта(Идентификатор)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| РодительскийАдресныйОбъект.Уровень КАК УровеньРодительскогоОбъекта
|ИЗ
| РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК РодительскийАдресныйОбъект
| ПО АдресныйОбъект.МуниципальныйРодительскийИдентификатор = РодительскийАдресныйОбъект.Идентификатор
|ГДЕ
| АдресныйОбъект.Идентификатор = &Идентификатор";
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат ВыборкаДетальныеЗаписи.УровеньРодительскогоОбъекта;
КонецЕсли;
КонецЕсли;
Возврат 0;
КонецФункции
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -483,8 +483,14 @@
НовоеЗначение.Вставить(РазделениеДанныхМассив[0], МассивЗначенийРазделителей); НовоеЗначение.Вставить(РазделениеДанныхМассив[0], МассивЗначенийРазделителей);
Иначе
Если ТипЗнч(ЗначениеИзСписка.Значение) = Тип("Число") Тогда
НовоеЗначение.Добавить(ЗначениеИзСписка.Значение);
Продолжить;
Иначе Иначе
ЗначенияОтбора = СтрРазделить(ЗначениеИзСписка.Значение, Символы.ПС, Ложь); ЗначенияОтбора = СтрРазделить(ЗначениеИзСписка.Значение, Символы.ПС, Ложь);
КонецЕсли;
Для Каждого ЗначениеОтбора Из ЗначенияОтбора Цикл Для Каждого ЗначениеОтбора Из ЗначенияОтбора Цикл
НовоеЗначение.Добавить(ЗначениеОтбора); НовоеЗначение.Добавить(ЗначениеОтбора);
КонецЦикла; КонецЦикла;
@@ -10,8 +10,8 @@
Функция ЭлементыФормулы(Знач Формула) Экспорт Функция ЭлементыФормулы(Знач Формула) Экспорт
Операнды = Новый Массив; ВсеЭлементы = Новый Массив;
Функции = Новый Массив; ОперандыИФункции = Новый Соответствие;
ЛогическиеОператоры = СтрРазделить("И,ИЛИ,НЕ", ",", Ложь); ЛогическиеОператоры = СтрРазделить("И,ИЛИ,НЕ", ",", Ложь);
@@ -28,10 +28,12 @@
Если ОткрывающихСкобок = 0 И Символ = """" Тогда Если ОткрывающихСкобок = 0 И Символ = """" Тогда
ЭтоСтрокаВКавычках = Не ЭтоСтрокаВКавычках; ЭтоСтрокаВКавычках = Не ЭтоСтрокаВКавычках;
ВсеЭлементы.Добавить(Символ);
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если ЭтоСтрокаВКавычках Тогда Если ЭтоСтрокаВКавычках Тогда
ВсеЭлементы.Добавить(Символ);
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
@@ -45,28 +47,34 @@
Если ЭтоРазделитель И ОткрывающихСкобок = 0 Тогда Если ЭтоРазделитель И ОткрывающихСкобок = 0 Тогда
Если ЗначениеЗаполнено(Операнд) Тогда Если ЗначениеЗаполнено(Операнд) Тогда
ЭтоФункция = Ложь;
Если Символ = "(" И СтрНайти(Операнд, ".") = 0 Если Символ = "(" И СтрНайти(Операнд, ".") = 0
Или ЛогическиеОператоры.Найти(ВРег(Операнд)) <> Неопределено Тогда Или ЛогическиеОператоры.Найти(ВРег(Операнд)) <> Неопределено Тогда
Функции.Добавить(Операнд); ЭтоФункция = Истина;
КонецЕсли; КонецЕсли;
Если Не ОбщегоНазначенияКлиентСервер.ЭтоЧисло(Операнд) Тогда Если ЭтоФункция Или Не ОбщегоНазначенияКлиентСервер.ЭтоЧисло(Операнд) Тогда
Операнды.Добавить(Операнд); ОперандыИФункции.Вставить(ВсеЭлементы.ВГраница() + 1, ЭтоФункция);
КонецЕсли; КонецЕсли;
ВсеЭлементы.Добавить(Операнд);
Операнд = ""; Операнд = "";
КонецЕсли; КонецЕсли;
ВсеЭлементы.Добавить(Символ);
Иначе Иначе
Операнд = Операнд + Символ; Операнд = Операнд + Символ;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Если ЗначениеЗаполнено(Операнд) И Не ОбщегоНазначенияКлиентСервер.ЭтоЧисло(Операнд) Тогда Если ЗначениеЗаполнено(Операнд) И Не ОбщегоНазначенияКлиентСервер.ЭтоЧисло(Операнд) Тогда
Операнды.Добавить(Операнд); ОперандыИФункции.Вставить(ВсеЭлементы.ВГраница() + 1, Ложь);
КонецЕсли; КонецЕсли;
ВсеЭлементы.Добавить(Операнд);
Результат = Новый Структура; Результат = Новый Структура;
Результат.Вставить("Операнды", Операнды); Результат.Вставить("ВсеЭлементы", ВсеЭлементы);
Результат.Вставить("Функции", Функции); Результат.Вставить("ОперандыИФункции", ОперандыИФункции);
Возврат Результат; Возврат Результат;
@@ -236,6 +236,7 @@
Результат.Колонки.Добавить("ТипЗначения", Новый ОписаниеТипов("ОписаниеТипов")); Результат.Колонки.Добавить("ТипЗначения", Новый ОписаниеТипов("ОписаниеТипов"));
Результат.Колонки.Добавить("Картинка", Новый ОписаниеТипов("Картинка")); Результат.Колонки.Добавить("Картинка", Новый ОписаниеТипов("Картинка"));
Результат.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число")); Результат.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число"));
Результат.Колонки.Добавить("ЭтоФункция", Новый ОписаниеТипов("Булево"));
Возврат Результат; Возврат Результат;
@@ -249,6 +250,7 @@
Результат.Колонки.Добавить("ТипЗначения", Новый ОписаниеТипов("ОписаниеТипов")); Результат.Колонки.Добавить("ТипЗначения", Новый ОписаниеТипов("ОписаниеТипов"));
Результат.Колонки.Добавить("Картинка", Новый ОписаниеТипов("Картинка")); Результат.Колонки.Добавить("Картинка", Новый ОписаниеТипов("Картинка"));
Результат.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число")); Результат.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число"));
Результат.Колонки.Добавить("ЭтоФункция", Новый ОписаниеТипов("Булево"));
Возврат Результат; Возврат Результат;
@@ -366,6 +368,8 @@
Реквизит.Папка = Реквизит.ЭтоГруппа; Реквизит.Папка = Реквизит.ЭтоГруппа;
КонецЕсли; КонецЕсли;
Реквизит.ЭтоФункция = ДополнительныеПараметры["ЭтоФункция"];
Если Не ЗначениеЗаполнено(Реквизит.Картинка) Тогда Если Не ЗначениеЗаполнено(Реквизит.Картинка) Тогда
Реквизит.Картинка = КартинкаТипа(ОписаниеПоля.Тип); Реквизит.Картинка = КартинкаТипа(ОписаниеПоля.Тип);
@@ -1153,7 +1157,7 @@
КонецЕсли; КонецЕсли;
Поле.ТипЗначения = СтрокаТаблицы.ТипЗначения; Поле.ТипЗначения = СтрокаТаблицы.ТипЗначения;
ДополнительныеПараметры = Новый Структура("Порядок"); ДополнительныеПараметры = Новый Структура("Порядок,ЭтоФункция");
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, СтрокаТаблицы); ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, СтрокаТаблицы);
ДополнительныеПараметры.Вставить("Картинка", Base64Строка(СтрокаТаблицы.Картинка.ПолучитьДвоичныеДанные())); ДополнительныеПараметры.Вставить("Картинка", Base64Строка(СтрокаТаблицы.Картинка.ПолучитьДвоичныеДанные()));
@@ -1192,7 +1196,7 @@
Поле.Поле = Элемент.Идентификатор; Поле.Поле = Элемент.Идентификатор;
Поле.ТипЗначения = Элемент.ТипЗначения; Поле.ТипЗначения = Элемент.ТипЗначения;
ДополнительныеПараметры = Новый Структура("Порядок,ЭтоГруппа"); ДополнительныеПараметры = Новый Структура("Порядок,ЭтоГруппа,ЭтоФункция");
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, Элемент); ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, Элемент);
ДополнительныеПараметры.ЭтоГруппа = ЭтоГруппа; ДополнительныеПараметры.ЭтоГруппа = ЭтоГруппа;
@@ -1220,25 +1224,34 @@
ЭлементыФормулы = КонструкторФормулКлиентСервер.ЭлементыФормулы(ПредставлениеФормулы); ЭлементыФормулы = КонструкторФормулКлиентСервер.ЭлементыФормулы(ПредставлениеФормулы);
Выражение = ПредставлениеФормулы; Выражение = ПредставлениеФормулы;
ЗаменяемыеЭлементы = Новый Соответствие;
Для Каждого Элемент Из Форма.ПодключенныеСпискиПолей Цикл Для Каждого Элемент Из Форма.ПодключенныеСпискиПолей Цикл
ИмяСпискаПолей = Элемент.ИмяСпискаПолей; ИмяСпискаПолей = Элемент.ИмяСпискаПолей;
КоллекцияПолей = Форма[ИмяСпискаПолей]; КоллекцияПолей = Форма[ИмяСпискаПолей];
СкобкиИдентификаторов = Элемент.СкобкиИдентификаторов; СкобкиИдентификаторов = Элемент.СкобкиИдентификаторов;
Для Каждого ПредставлениеОперанда Из ЭлементыФормулы.Операнды Цикл Для Каждого ОписаниеЭлемента Из ЭлементыФормулы.ОперандыИФункции Цикл
ПредставлениеОперанда = ЭлементыФормулы.ВсеЭлементы[ОписаниеЭлемента.Ключ];
ЭтоФункция = ОписаниеЭлемента.Значение;
ПутьКДанным = ОчиститьКвадратныеСкобки(ПредставлениеОперанда); ПутьКДанным = ОчиститьКвадратныеСкобки(ПредставлениеОперанда);
Реквизит = НайтиРеквизит(Форма, ИмяСпискаПолей, ПутьКДанным, КоллекцияПолей.ПолучитьЭлементы(), Истина); Реквизит = НайтиРеквизит(Форма, ИмяСпискаПолей, ПутьКДанным, КоллекцияПолей.ПолучитьЭлементы(), Истина);
Если Реквизит <> Неопределено Тогда Если Реквизит <> Неопределено Тогда
Операнд = Реквизит.ПутьКДанным; Если ЭтоФункция <> Реквизит.ЭтоФункция Тогда
Продолжить;
КонецЕсли;
Операнд = ОчиститьКвадратныеСкобки(Реквизит.ПутьКДанным);
Если СкобкиИдентификаторов Тогда Если СкобкиИдентификаторов Тогда
Операнд = ОбернутьВКвадратныеСкобки(Операнд); Операнд = ОбернутьВКвадратныеСкобки(Операнд);
КонецЕсли; КонецЕсли;
Выражение = СтрЗаменить(Выражение, ПредставлениеОперанда, Операнд); ЗаменяемыеЭлементы.Вставить(ОписаниеЭлемента.Ключ, Операнд);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЦикла; КонецЦикла;
ЗаменитьЭлементыФормулы(Выражение, ЭлементыФормулы, ЗаменяемыеЭлементы);
Возврат Выражение; Возврат Выражение;
КонецФункции КонецФункции
@@ -1247,25 +1260,34 @@
ЭлементыФормулы = КонструкторФормулКлиентСервер.ЭлементыФормулы(Формула); ЭлементыФормулы = КонструкторФормулКлиентСервер.ЭлементыФормулы(Формула);
Выражение = Формула; Выражение = Формула;
ЗаменяемыеЭлементы = Новый Соответствие;
Для Каждого Элемент Из Форма.ПодключенныеСпискиПолей Цикл Для Каждого Элемент Из Форма.ПодключенныеСпискиПолей Цикл
ИмяСпискаПолей = Элемент.ИмяСпискаПолей; ИмяСпискаПолей = Элемент.ИмяСпискаПолей;
КоллекцияПолей = Форма[ИмяСпискаПолей]; КоллекцияПолей = Форма[ИмяСпискаПолей];
СкобкиПредставлений = Элемент.СкобкиПредставлений; СкобкиПредставлений = Элемент.СкобкиПредставлений;
Для Каждого Операнд Из ЭлементыФормулы.Операнды Цикл Для Каждого ОписаниеЭлемента Из ЭлементыФормулы.ОперандыИФункции Цикл
Операнд = ЭлементыФормулы.ВсеЭлементы[ОписаниеЭлемента.Ключ];
ЭтоФункция = ОписаниеЭлемента.Значение;
ПутьКДанным = ОчиститьКвадратныеСкобки(Операнд); ПутьКДанным = ОчиститьКвадратныеСкобки(Операнд);
Реквизит = НайтиРеквизит(Форма, ИмяСпискаПолей, ПутьКДанным, КоллекцияПолей.ПолучитьЭлементы(), Ложь); Реквизит = НайтиРеквизит(Форма, ИмяСпискаПолей, ПутьКДанным, КоллекцияПолей.ПолучитьЭлементы(), Ложь);
Если Реквизит <> Неопределено Тогда Если Реквизит <> Неопределено Тогда
Если ЭтоФункция <> Реквизит.ЭтоФункция Тогда
Продолжить;
КонецЕсли;
ПредставлениеОперанда = Реквизит.ПредставлениеПутиКДанным; ПредставлениеОперанда = Реквизит.ПредставлениеПутиКДанным;
Если СкобкиПредставлений Тогда Если СкобкиПредставлений Тогда
ПредставлениеОперанда = ОбернутьВКвадратныеСкобки(Реквизит.ПредставлениеПутиКДанным); ПредставлениеОперанда = ОбернутьВКвадратныеСкобки(Реквизит.ПредставлениеПутиКДанным);
КонецЕсли; КонецЕсли;
Выражение = СтрЗаменить(Выражение, Операнд, ПредставлениеОперанда); ЗаменяемыеЭлементы.Вставить(ОписаниеЭлемента.Ключ, ПредставлениеОперанда);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЦикла; КонецЦикла;
ЗаменитьЭлементыФормулы(Выражение, ЭлементыФормулы, ЗаменяемыеЭлементы);
Возврат Выражение; Возврат Выражение;
КонецФункции КонецФункции
@@ -1274,6 +1296,7 @@
ЭлементыФормулы = КонструкторФормулКлиентСервер.ЭлементыФормулы(Выражение); ЭлементыФормулы = КонструкторФормулКлиентСервер.ЭлементыФормулы(Выражение);
Результат = Выражение; Результат = Выражение;
ЗаменяемыеЭлементы = Новый Соответствие;
Для Каждого НастройкиСписка Из СпискиПолей Цикл Для Каждого НастройкиСписка Из СпискиПолей Цикл
КоллекцияПолей = НастройкиСписка.КоллекцияПолей; КоллекцияПолей = НастройкиСписка.КоллекцияПолей;
@@ -1284,19 +1307,27 @@
ЗаполнитьСписокДоступныхРеквизитов(КоллекцияПолей, ИсточникиДоступныхПолей, , ИспользоватьИдентификаторыДляФормул); ЗаполнитьСписокДоступныхРеквизитов(КоллекцияПолей, ИсточникиДоступныхПолей, , ИспользоватьИдентификаторыДляФормул);
КонецЕсли; КонецЕсли;
Для Каждого Операнд Из ЭлементыФормулы.Операнды Цикл Для Каждого ОписаниеЭлемента Из ЭлементыФормулы.ОперандыИФункции Цикл
Операнд = ЭлементыФормулы.ВсеЭлементы[ОписаниеЭлемента.Ключ];
ЭтоФункция = ОписаниеЭлемента.Значение;
ПутьКДанным = ОчиститьКвадратныеСкобки(Операнд); ПутьКДанным = ОчиститьКвадратныеСкобки(Операнд);
Реквизит = НайтиПоле(ПутьКДанным, ПодчиненныеЭлементы(КоллекцияПолей), Ложь, ИсточникиДоступныхПолей, НастройкиСписка); Реквизит = НайтиПоле(ПутьКДанным, ПодчиненныеЭлементы(КоллекцияПолей), Ложь, ИсточникиДоступныхПолей, НастройкиСписка);
Если Реквизит <> Неопределено Тогда Если Реквизит <> Неопределено Тогда
Если ЭтоФункция <> Реквизит.ЭтоФункция Тогда
Продолжить;
КонецЕсли;
ПредставлениеОперанда = Реквизит.ПредставлениеПутиКДанным; ПредставлениеОперанда = Реквизит.ПредставлениеПутиКДанным;
Если НастройкиСписка.СкобкиПредставлений Тогда Если НастройкиСписка.СкобкиПредставлений Тогда
ПредставлениеОперанда = ОбернутьВКвадратныеСкобки(Реквизит.ПредставлениеПутиКДанным); ПредставлениеОперанда = ОбернутьВКвадратныеСкобки(Реквизит.ПредставлениеПутиКДанным);
КонецЕсли; КонецЕсли;
Результат = СтрЗаменить(Результат, Операнд, ПредставлениеОперанда); ЗаменяемыеЭлементы.Вставить(ОписаниеЭлемента.Ключ, ПредставлениеОперанда);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЦикла; КонецЦикла;
ЗаменитьЭлементыФормулы(Результат, ЭлементыФормулы, ЗаменяемыеЭлементы);
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
@@ -1305,16 +1336,24 @@
ЭлементыФормулы = КонструкторФормулКлиентСервер.ЭлементыФормулы(ПредставлениеФормулы); ЭлементыФормулы = КонструкторФормулКлиентСервер.ЭлементыФормулы(ПредставлениеФормулы);
Выражение = ПредставлениеФормулы; Выражение = ПредставлениеФормулы;
ЗаменяемыеЭлементы = Новый Соответствие;
Для Каждого Элемент Из Форма.ПодключенныеСпискиПолей Цикл Для Каждого Элемент Из Форма.ПодключенныеСпискиПолей Цикл
ИмяСпискаПолей = Элемент.ИмяСпискаПолей; ИмяСпискаПолей = Элемент.ИмяСпискаПолей;
КоллекцияПолей = Форма[ИмяСпискаПолей]; КоллекцияПолей = Форма[ИмяСпискаПолей];
СкобкиИдентификаторов = Элемент.СкобкиИдентификаторов; СкобкиИдентификаторов = Элемент.СкобкиИдентификаторов;
Для Каждого ПредставлениеОперанда Из ЭлементыФормулы.Операнды Цикл Для Каждого ОписаниеЭлемента Из ЭлементыФормулы.ОперандыИФункции Цикл
ПредставлениеОперанда = ЭлементыФормулы.ВсеЭлементы[ОписаниеЭлемента.Ключ];
ЭтоФункция = ОписаниеЭлемента.Значение;
ПутьКДанным = ОчиститьКвадратныеСкобки(ПредставлениеОперанда); ПутьКДанным = ОчиститьКвадратныеСкобки(ПредставлениеОперанда);
Реквизит = НайтиРеквизит(Форма, ИмяСпискаПолей, ПутьКДанным, КоллекцияПолей.ПолучитьЭлементы(), Истина); Реквизит = НайтиРеквизит(Форма, ИмяСпискаПолей, ПутьКДанным, КоллекцияПолей.ПолучитьЭлементы(), Истина);
Если Реквизит <> Неопределено Тогда Если Реквизит <> Неопределено Тогда
Если ЭтоФункция <> Реквизит.ЭтоФункция Тогда
Продолжить;
КонецЕсли;
Если ИмяСпискаОперандов = ИмяСпискаПолей Тогда Если ИмяСпискаОперандов = ИмяСпискаПолей Тогда
Операнд = Реквизит.Тип.ПривестиЗначение(1); Операнд = Реквизит.Тип.ПривестиЗначение(1);
Если ТипЗнч(Операнд) = Тип("Строка") Тогда Если ТипЗнч(Операнд) = Тип("Строка") Тогда
@@ -1326,21 +1365,43 @@
Если ТипЗнч(Операнд) = Тип("Дата") Тогда Если ТипЗнч(Операнд) = Тип("Дата") Тогда
Операнд = "'" + Формат(ТекущаяДатаСеанса(), "ДФ=ггггММддЧЧмм") + "'"; // Для использования в выражении Вычислить(). Операнд = "'" + Формат(ТекущаяДатаСеанса(), "ДФ=ггггММддЧЧмм") + "'"; // Для использования в выражении Вычислить().
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ЭтоСсылка(ТипЗнч(Операнд)) Тогда
Операнд = "1";
КонецЕсли;
Иначе Иначе
Операнд = ОчиститьКвадратныеСкобки(Реквизит.ПутьКДанным); Операнд = ОчиститьКвадратныеСкобки(Реквизит.ПутьКДанным);
Если СкобкиИдентификаторов Тогда Если СкобкиИдентификаторов Тогда
Операнд = ОбернутьВКвадратныеСкобки(Операнд); Операнд = ОбернутьВКвадратныеСкобки(Операнд);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Выражение = СтрЗаменить(Выражение, ПредставлениеОперанда, Операнд);
ЗаменяемыеЭлементы.Вставить(ОписаниеЭлемента.Ключ, Операнд);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЦикла; КонецЦикла;
ЗаменитьЭлементыФормулы(Выражение, ЭлементыФормулы, ЗаменяемыеЭлементы);
Возврат Выражение; Возврат Выражение;
КонецФункции КонецФункции
Процедура ЗаменитьЭлементыФормулы(Выражение, ЭлементыФормулы, Значения)
Для Каждого ОписаниеЭлемента Из ЭлементыФормулы.ОперандыИФункции Цикл
Операнд = ЭлементыФормулы.ВсеЭлементы[ОписаниеЭлемента.Ключ];
Значение = Значения[ОписаниеЭлемента.Ключ];
Если Значение = Неопределено Тогда
Значение = Операнд;
КонецЕсли;
ЭлементыФормулы.ВсеЭлементы[ОписаниеЭлемента.Ключ] = Значение;
КонецЦикла;
Выражение = СтрСоединить(ЭлементыФормулы.ВсеЭлементы);
КонецПроцедуры
Функция ОчиститьКвадратныеСкобки(Строка) Функция ОчиститьКвадратныеСкобки(Строка)
Если СтрНачинаетсяС(Строка, "[") И СтрЗаканчиваетсяНа(Строка, "]") Тогда Если СтрНачинаетсяС(Строка, "[") И СтрЗаканчиваетсяНа(Строка, "]") Тогда
@@ -1459,6 +1520,7 @@
Результат.Вставить("СоответствуетОтбору", Новый ОписаниеТипов("Булево")); Результат.Вставить("СоответствуетОтбору", Новый ОписаниеТипов("Булево"));
Результат.Вставить("ПодчиненныйЭлементСоответствуетОтбору", Новый ОписаниеТипов("Булево")); Результат.Вставить("ПодчиненныйЭлементСоответствуетОтбору", Новый ОписаниеТипов("Булево"));
Результат.Вставить("ЭтоГруппа", Новый ОписаниеТипов("Булево")); Результат.Вставить("ЭтоГруппа", Новый ОписаниеТипов("Булево"));
Результат.Вставить("ЭтоФункция", Новый ОписаниеТипов("Булево"));
Возврат Результат; Возврат Результат;
@@ -1630,10 +1692,10 @@
Тип = Новый ОписаниеТипов("Число"); Тип = Новый ОписаниеТипов("Число");
ДобавитьОператорВГруппу(Группа, "Макс", НСтр("ru = 'Максимум'"), Тип); ДобавитьОператорВГруппу(Группа, "Макс", НСтр("ru = 'Максимум'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "Мин", НСтр("ru = 'Минимум'"), Тип); ДобавитьОператорВГруппу(Группа, "Мин", НСтр("ru = 'Минимум'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "Окр", НСтр("ru = 'Округлить'"), Тип); ДобавитьОператорВГруппу(Группа, "Окр", НСтр("ru = 'Округлить'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "Цел", НСтр("ru = 'ЦелаяЧасть'"), Тип); ДобавитьОператорВГруппу(Группа, "Цел", НСтр("ru = 'ЦелаяЧасть'"), Тип, Истина);
КонецПроцедуры КонецПроцедуры
@@ -1647,17 +1709,17 @@
Тип = Новый ОписаниеТипов("Строка"); Тип = Новый ОписаниеТипов("Строка");
ДобавитьОператорВГруппу(Группа, "Строка", НСтр("ru = 'ПреобразоватьВСтроку'"), Тип); ДобавитьОператорВГруппу(Группа, "Строка", НСтр("ru = 'ПреобразоватьВСтроку'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "ВРег", НСтр("ru = 'ВсеПрописные'"), Тип); ДобавитьОператорВГруппу(Группа, "ВРег", НСтр("ru = 'ВсеПрописные'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "НРег", НСтр("ru = 'ВсеСтрочные'"), Тип); ДобавитьОператорВГруппу(Группа, "НРег", НСтр("ru = 'ВсеСтрочные'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "ТРег", НСтр("ru = 'КаждоеСловоСПрописной'"), Тип); ДобавитьОператорВГруппу(Группа, "ТРег", НСтр("ru = 'КаждоеСловоСПрописной'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "Лев", НСтр("ru = 'СимволыСлева'"), Тип); ДобавитьОператорВГруппу(Группа, "Лев", НСтр("ru = 'СимволыСлева'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "Прав", НСтр("ru = 'СимволыСправа'"), Тип); ДобавитьОператорВГруппу(Группа, "Прав", НСтр("ru = 'СимволыСправа'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "СокрЛ", НСтр("ru = 'УбратьПробелыСлева'"), Тип); ДобавитьОператорВГруппу(Группа, "СокрЛ", НСтр("ru = 'УбратьПробелыСлева'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "СокрЛП", НСтр("ru = 'УбратьПробелыСлеваИСправа'"), Тип); ДобавитьОператорВГруппу(Группа, "СокрЛП", НСтр("ru = 'УбратьПробелыСлеваИСправа'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "СокрП", НСтр("ru = 'УбратьПробелыСправа'"), Тип); ДобавитьОператорВГруппу(Группа, "СокрП", НСтр("ru = 'УбратьПробелыСправа'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "СтрЗаменить", НСтр("ru = 'ЗаменитьСимволыВСтроке'"), Тип); ДобавитьОператорВГруппу(Группа, "СтрЗаменить", НСтр("ru = 'ЗаменитьСимволыВСтроке'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "СтрДлина", НСтр("ru = 'ДлинаСтроки'"), Новый ОписаниеТипов("Число")); ДобавитьОператорВГруппу(Группа, "СтрДлина", НСтр("ru = 'ДлинаСтроки'"), Новый ОписаниеТипов("Число"), Истина);
КонецПроцедуры КонецПроцедуры
@@ -1669,14 +1731,14 @@
Группа.Порядок = 6; Группа.Порядок = 6;
Группа.Картинка = БиблиотекаКартинок.ТипФункция; Группа.Картинка = БиблиотекаКартинок.ТипФункция;
ДобавитьОператорВГруппу(Группа, "?", НСтр("ru = 'Условие'"), Новый ОписаниеТипов("Булево")); ДобавитьОператорВГруппу(Группа, "?", НСтр("ru = 'Условие'"), Новый ОписаниеТипов("Булево"), Истина);
ДобавитьОператорВГруппу(Группа, "ПредопределенноеЗначение", НСтр("ru = 'ПредопределенноеЗначение'"), Новый ОписаниеТипов); ДобавитьОператорВГруппу(Группа, "ПредопределенноеЗначение", НСтр("ru = 'ПредопределенноеЗначение'"), Новый ОписаниеТипов, Истина);
ДобавитьОператорВГруппу(Группа, "ЗначениеЗаполнено", НСтр("ru = 'ЗначениеЗаполнено'"), Новый ОписаниеТипов("Булево")); ДобавитьОператорВГруппу(Группа, "ЗначениеЗаполнено", НСтр("ru = 'ЗначениеЗаполнено'"), Новый ОписаниеТипов("Булево"), Истина);
ДобавитьОператорВГруппу(Группа, "Формат", НСтр("ru = 'Формат'"), Новый ОписаниеТипов("Строка")); ДобавитьОператорВГруппу(Группа, "Формат", НСтр("ru = 'Формат'"), Новый ОписаниеТипов("Строка"), Истина);
КонецПроцедуры КонецПроцедуры
Процедура ДобавитьОператорВГруппу(Группа, Идентификатор, Знач Представление = Неопределено, Тип = Неопределено) Процедура ДобавитьОператорВГруппу(Группа, Идентификатор, Знач Представление = Неопределено, Тип = Неопределено, ЭтоФункция = Ложь)
Если Представление = Неопределено Тогда Если Представление = Неопределено Тогда
Представление = Идентификатор; Представление = Идентификатор;
@@ -1687,6 +1749,7 @@
Оператор.Представление = Представление; Оператор.Представление = Представление;
Оператор.ТипЗначения = Тип; Оператор.ТипЗначения = Тип;
Оператор.Картинка = БиблиотекаКартинок.Пустая; Оператор.Картинка = БиблиотекаКартинок.Пустая;
Оператор.ЭтоФункция = ЭтоФункция;
КонецПроцедуры КонецПроцедуры
@@ -1717,7 +1780,7 @@
ДобавитьОператорВГруппу(Группа, Идентификатор, , Тип); ДобавитьОператорВГруппу(Группа, Идентификатор, , Тип);
КонецЦикла; КонецЦикла;
ДобавитьОператорВГруппу(Группа, "В", НСтр("ru = 'В'"), Тип); ДобавитьОператорВГруппу(Группа, "В", НСтр("ru = 'В'"), Тип, Истина);
КонецПроцедуры КонецПроцедуры
@@ -1746,11 +1809,11 @@
Тип = Новый ОписаниеТипов("Число"); Тип = Новый ОписаниеТипов("Число");
ДобавитьОператорВГруппу(Группа, "СУММА", НСтр("ru = 'СУММА'"), Тип); ДобавитьОператорВГруппу(Группа, "СУММА", НСтр("ru = 'СУММА'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "КОЛИЧЕСТВО", НСтр("ru = 'КОЛИЧЕСТВО'"), Тип); ДобавитьОператорВГруппу(Группа, "КОЛИЧЕСТВО", НСтр("ru = 'КОЛИЧЕСТВО'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "МАКСИМУМ", НСтр("ru = 'МАКСИМУМ'"), Тип); ДобавитьОператорВГруппу(Группа, "МАКСИМУМ", НСтр("ru = 'МАКСИМУМ'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "МИНИМУМ", НСтр("ru = 'МИНИМУМ'"), Тип); ДобавитьОператорВГруппу(Группа, "МИНИМУМ", НСтр("ru = 'МИНИМУМ'"), Тип, Истина);
ДобавитьОператорВГруппу(Группа, "СРЕДНЕЕ", НСтр("ru = 'СРЕДНЕЕ'"), Тип); ДобавитьОператорВГруппу(Группа, "СРЕДНЕЕ", НСтр("ru = 'СРЕДНЕЕ'"), Тип, Истина);
КонецПроцедуры КонецПроцедуры
@@ -1751,6 +1751,7 @@
Запрос = Новый Запрос; Запрос = Новый Запрос;
ТекстыЗапроса = Новый Массив; ТекстыЗапроса = Новый Массив;
ТекстыЗапросаРегистров = Новый Массив;
ОтборУстановлен = Ложь; ОтборУстановлен = Ложь;
Для Каждого ОбрабатываемыйТип Из ПолныеИменаОбрабатываемыхОбъектов Цикл Для Каждого ОбрабатываемыйТип Из ПолныеИменаОбрабатываемыхОбъектов Цикл
@@ -1762,12 +1763,14 @@
МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ОбрабатываемыйТип); МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ОбрабатываемыйТип);
ПолноеИмяОбъекта = ОбрабатываемыйТип; ПолноеИмяОбъекта = ОбрабатываемыйТип;
КонецЕсли; КонецЕсли;
ПроверкаРегистра = Ложь;
ИмяОбъекта = СтрРазделить(ПолноеИмяОбъекта,".",Ложь)[1]; ИмяОбъекта = СтрРазделить(ПолноеИмяОбъекта,".",Ложь)[1];
УсловиеОтбораДанных = "ИСТИНА"; УсловиеОтбораДанных = "ИСТИНА";
УсловиеПроверкиРегистратора = "ИСТИНА"; УсловиеПроверкиРегистратора = "ИСТИНА";
Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеОбъекта) Тогда Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеОбъекта) Тогда
ТекстЗапроса = ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 1 "ВЫБРАТЬ ПЕРВЫЕ 1
@@ -1843,6 +1846,7 @@
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстВыборкиИзмерений", ТекстВыборкиИзмерений); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстВыборкиИзмерений", ТекстВыборкиИзмерений);
ИначеЕсли ОбщегоНазначения.ЭтоРегистр(МетаданныеОбъекта) Тогда ИначеЕсли ОбщегоНазначения.ЭтоРегистр(МетаданныеОбъекта) Тогда
ПроверкаРегистра = Истина;
ШаблонЗапросаПроверки = ШаблонЗапросаПроверки =
"ИСТИНА В (ВЫБРАТЬ ПЕРВЫЕ 1 "ИСТИНА В (ВЫБРАТЬ ПЕРВЫЕ 1
@@ -1893,7 +1897,11 @@
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеОтбораДанных", УсловиеОтбораДанных); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеОтбораДанных", УсловиеОтбораДанных);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеПоРегистраторам", УсловиеПроверкиРегистратора); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеПоРегистраторам", УсловиеПроверкиРегистратора);
Если ПроверкаРегистра Тогда
ТекстыЗапросаРегистров.Добавить(ТекстЗапроса);
Иначе
ТекстыЗапроса.Добавить(ТекстЗапроса); ТекстыЗапроса.Добавить(ТекстЗапроса);
КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -1904,6 +1912,11 @@
ТекстЗапроса = СтрСоединить(ТекстыЗапроса, Соединитель); ТекстЗапроса = СтрСоединить(ТекстыЗапроса, Соединитель);
ИтоговыйМассивЗапросов = Новый Массив;
ИтоговыйМассивЗапросов.Добавить(ТекстЗапроса);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИтоговыйМассивЗапросов, ТекстыЗапросаРегистров);
Для Каждого ТекстЗапроса Из ИтоговыйМассивЗапросов Цикл
Если Очередь = Неопределено Тогда Если Очередь = Неопределено Тогда
УсловиеОтбораУзла = " ТаблицаИзменений.Узел ССЫЛКА ПланОбмена.ОбновлениеИнформационнойБазы "; УсловиеОтбораУзла = " ТаблицаИзменений.Узел ССЫЛКА ПланОбмена.ОбновлениеИнформационнойБазы ";
Иначе Иначе
@@ -1925,8 +1938,14 @@
УстановитьОтключениеБезопасногоРежима(Истина); УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Возврат Не Запрос.Выполнить().Пустой(); Если Не Запрос.Выполнить().Пустой() Тогда
Возврат Истина;
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь);
КонецЦикла;
Возврат Ложь;
КонецФункции КонецФункции
// Проверяет, что все данные обработаны. // Проверяет, что все данные обработаны.
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.5.366"; Описание.Версия = "3.1.5.385";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -1107,6 +1107,7 @@
ОписанияБиблиотек = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем().ПоИменам; ОписанияБиблиотек = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем().ПоИменам;
ГруппаОбновления = 1; ГруппаОбновления = 1;
ТекстОшибок = ""; ТекстОшибок = "";
ТекущийРежимВыполнения = "";
ДобавленныеОбработчики = Новый Массив; ДобавленныеОбработчики = Новый Массив;
Для Каждого ИтерацияОбновления Из ИтерацииОбновления Цикл Для Каждого ИтерацияОбновления Из ИтерацииОбновления Цикл
@@ -1183,7 +1184,7 @@
УпорядочитьВерсииОбработчиков(ОбработчикиПоВерсиям); УпорядочитьВерсииОбработчиков(ОбработчикиПоВерсиям);
ДобавитьОтложенныеОбработчики(ИмяБиблиотеки, ОбработчикиПоВерсиям.Строки, ГруппаОбновления, ТекстОшибок); ДобавитьОтложенныеОбработчики(ИмяБиблиотеки, ОбработчикиПоВерсиям.Строки, ГруппаОбновления, ТекстОшибок, ТекущийРежимВыполнения);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -3426,7 +3427,7 @@
КонецПроцедуры КонецПроцедуры
Процедура ДобавитьОтложенныеОбработчики(ИмяБиблиотеки, ОбработчикиПоВерсиям, ГруппаОбновления, ТекстОшибок) Процедура ДобавитьОтложенныеОбработчики(ИмяБиблиотеки, ОбработчикиПоВерсиям, ГруппаОбновления, ТекстОшибок, ТекущийРежимВыполнения = "")
ЭтоПодчиненныйУзелРИБ = ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ(); ЭтоПодчиненныйУзелРИБ = ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ();
ЭтоПодчиненныйУзелРИБСФильтром = ОбщегоНазначения.ЭтоПодчиненныйУзелРИБСФильтром(); ЭтоПодчиненныйУзелРИБСФильтром = ОбщегоНазначения.ЭтоПодчиненныйУзелРИБСФильтром();
@@ -3443,7 +3444,6 @@
ЗависимостьГруппОбработчиков = СведенияОбОбновлении.ЗависимостьГруппОбработчиков; ЗависимостьГруппОбработчиков = СведенияОбОбновлении.ЗависимостьГруппОбработчиков;
ПропуститьПроверку = Ложь; ПропуститьПроверку = Ложь;
ТекущийРежимВыполнения = "";
СоздаватьНовуюИтерацию = Истина; СоздаватьНовуюИтерацию = Истина;
Итерация = 1; Итерация = 1;
ЕстьОбработчикиТолькоГлавногоУзла = Ложь; ЕстьОбработчикиТолькоГлавногоУзла = Ложь;
@@ -3452,6 +3452,11 @@
ЗаполнитьБлокируемыеОбъекты(СтрокаВерсия, СведенияОБлокируемыхОбъектах); ЗаполнитьБлокируемыеОбъекты(СтрокаВерсия, СведенияОБлокируемыхОбъектах);
Если РежимВыполненияОтложенныхОбработчиков = "Последовательно" Тогда Если РежимВыполненияОтложенныхОбработчиков = "Последовательно" Тогда
Если ТекущийРежимВыполнения = "Параллельно" Тогда
// У предыдущей библиотеки был параллельный режим, поэтому
// для текущей создаем отдельную группу обновления.
ГруппаОбновления = ГруппаОбновления + 1;
КонецЕсли;
ЗависимостьГруппОбработчиков.Вставить(ГруппаОбновления, Итерация <> 1); ЗависимостьГруппОбработчиков.Вставить(ГруппаОбновления, Итерация <> 1);
ТекущийРежимВыполнения = "Последовательно"; ТекущийРежимВыполнения = "Последовательно";
ИначеЕсли РежимВыполненияОтложенныхОбработчиков = "Параллельно" И Не ЗначениеЗаполнено(ПараллельноСВерсии) Тогда ИначеЕсли РежимВыполненияОтложенныхОбработчиков = "Параллельно" И Не ЗначениеЗаполнено(ПараллельноСВерсии) Тогда
@@ -3469,6 +3474,11 @@
КонецЕсли; КонецЕсли;
Если Результат < 0 Тогда Если Результат < 0 Тогда
Если ТекущийРежимВыполнения = "Параллельно" Тогда
// У предыдущей библиотеки был параллельный режим, поэтому
// для текущей создаем отдельную группу обновления.
ГруппаОбновления = ГруппаОбновления + 1;
КонецЕсли;
ЗависимостьГруппОбработчиков.Вставить(ГруппаОбновления, Итерация <> 1); ЗависимостьГруппОбработчиков.Вставить(ГруппаОбновления, Итерация <> 1);
ТекущийРежимВыполнения = "Последовательно"; ТекущийРежимВыполнения = "Последовательно";
Иначе Иначе
@@ -3519,9 +3529,6 @@
Итерация = Итерация + 1; Итерация = Итерация + 1;
КонецЦикла; КонецЦикла;
// Обработчики обновления следующей библиотеки добавляются в новую группу.
ГруппаОбновления = ГруппаОбновления + 1;
ЗаписатьСведенияОБлокируемыхОбъектах(СведенияОБлокируемыхОбъектах); ЗаписатьСведенияОБлокируемыхОбъектах(СведенияОБлокируемыхОбъектах);
ТекущееЗначение = Константы.ОтложенноеОбновлениеВГлавномУзлеЗавершеноУспешно.Получить(); ТекущееЗначение = Константы.ОтложенноеОбновлениеВГлавномУзлеЗавершеноУспешно.Получить();
Константы.ОтложенноеОбновлениеВГлавномУзлеЗавершеноУспешно.Установить(ТекущееЗначение И Не ЕстьОбработчикиТолькоГлавногоУзла); Константы.ОтложенноеОбновлениеВГлавномУзлеЗавершеноУспешно.Установить(ТекущееЗначение И Не ЕстьОбработчикиТолькоГлавногоУзла);
@@ -36,10 +36,12 @@
ПараметрыЗапроса.Вставить("msids", Получатели); ПараметрыЗапроса.Вставить("msids", Получатели);
ПараметрыЗапроса.Вставить("message", Текст); ПараметрыЗапроса.Вставить("message", Текст);
ПараметрыЗапроса.Вставить("naming", ИмяОтправителя); ПараметрыЗапроса.Вставить("naming", ИмяОтправителя);
ПараметрыЗапроса.Вставить("login", Логин);
Если ЗначениеЗаполнено(Логин) Тогда Если ЗначениеЗаполнено(Логин) Тогда
ПараметрыЗапроса.Вставить("login", Логин);
ПараметрыЗапроса.Вставить("password", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Пароль)); ПараметрыЗапроса.Вставить("password", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Пароль));
Иначе
ПараметрыЗапроса.Вставить("password", "");
КонецЕсли; КонецЕсли;
РезультатЗапроса = ВыполнитьЗапрос("SendMessages", ПараметрыЗапроса); РезультатЗапроса = ВыполнитьЗапрос("SendMessages", ПараметрыЗапроса);
@@ -84,10 +86,12 @@
ПараметрыЗапроса = Новый Структура; ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("messageID", ИдентификаторСообщения); ПараметрыЗапроса.Вставить("messageID", ИдентификаторСообщения);
ПараметрыЗапроса.Вставить("login", НастройкиОтправкиSMS.Логин);
Если ЗначениеЗаполнено(НастройкиОтправкиSMS.Логин) Тогда Если ЗначениеЗаполнено(НастройкиОтправкиSMS.Логин) Тогда
ПараметрыЗапроса.Вставить("login", НастройкиОтправкиSMS.Логин);
ПараметрыЗапроса.Вставить("password", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(НастройкиОтправкиSMS.Пароль)); ПараметрыЗапроса.Вставить("password", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(НастройкиОтправкиSMS.Пароль));
Иначе
ПараметрыЗапроса.Вставить("password", "");
КонецЕсли; КонецЕсли;
РезультатЗапроса = ВыполнитьЗапрос("GetMessageStatus", ПараметрыЗапроса); РезультатЗапроса = ВыполнитьЗапрос("GetMessageStatus", ПараметрыЗапроса);
@@ -198,14 +202,14 @@
Результат.Вставить("ЗапросВыполнен", Ложь); Результат.Вставить("ЗапросВыполнен", Ложь);
Результат.Вставить("ОтветСервера", ""); Результат.Вставить("ОтветСервера", "");
HTTPЗапрос = ОтправкаSMS.ПодготовитьHTTPЗапрос("/m2m/m2m_api.asmx/" + ИмяМетода, ПараметрыЗапроса, Ложь); HTTPЗапрос = ОтправкаSMS.ПодготовитьHTTPЗапрос("/m2m/m2m_api.asmx/" + ИмяМетода, ПараметрыЗапроса, Истина);
HTTPОтвет = Неопределено; HTTPОтвет = Неопределено;
Попытка Попытка
Соединение = Новый HTTPСоединение("api.mcommunicator.ru", , , , ПолучениеФайловИзИнтернета.ПолучитьПрокси("https"), Соединение = Новый HTTPСоединение("api.mcommunicator.ru", , , , ПолучениеФайловИзИнтернета.ПолучитьПрокси("https"),
60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение()); 60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение());
HTTPОтвет = Соединение.Получить(HTTPЗапрос); HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
Исключение Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
@@ -418,7 +418,7 @@
Возврат Уровни[ИмяУровня]; Возврат Уровни[ИмяУровня];
КонецФункции КонецФункции
Функция ИменаУровнейАдреса(ТипАдреса, ВключатьУровеньУлицы, ВключатьУровеньДома = Ложь) Экспорт Функция ИменаУровнейАдреса(ТипАдреса, ВключатьУровеньУлицы, ВключатьУровеньДома = Ложь, ИсключитьУровеньГорода = Ложь) Экспорт
Уровни = Новый Массив; Уровни = Новый Массив;
@@ -432,21 +432,25 @@
Если ТипАдреса = УправлениеКонтактнойИнформациейКлиентСервер.АдресЕАЭС() Тогда Если ТипАдреса = УправлениеКонтактнойИнформациейКлиентСервер.АдресЕАЭС() Тогда
Уровни.Добавить("District"); Уровни.Добавить("District");
Если Не ИсключитьУровеньГорода Тогда
Уровни.Добавить("City"); Уровни.Добавить("City");
КонецЕсли;
Уровни.Добавить("Locality"); Уровни.Добавить("Locality");
Иначе Иначе
Если ТипАдреса = "Все" Тогда Если ТипАдреса = "Все" Тогда
Уровни.Добавить("District"); Уровни.Добавить("District");
Уровни.Добавить("City");
Уровни.Добавить("MunDistrict"); Уровни.Добавить("MunDistrict");
Уровни.Добавить("Settlement"); Уровни.Добавить("Settlement");
Уровни.Добавить("City");
Иначе Иначе
Если ЭтоМуниципальныйАдрес(ТипАдреса) Тогда Если ЭтоМуниципальныйАдрес(ТипАдреса) Тогда
Уровни.Добавить("MunDistrict"); Уровни.Добавить("MunDistrict");
Уровни.Добавить("Settlement"); Уровни.Добавить("Settlement");
Если Не ИсключитьУровеньГорода Тогда
Уровни.Добавить("City"); Уровни.Добавить("City");
КонецЕсли;
Иначе Иначе
Уровни.Добавить("District"); Уровни.Добавить("District");
Уровни.Добавить("City"); Уровни.Добавить("City");
@@ -473,14 +477,14 @@
КонецФункции КонецФункции
Процедура ОбновитьПредставлениеАдреса(Адрес, ВключатьСтрануВПредставление) Экспорт Процедура ОбновитьПредставлениеАдреса(Адрес, ВключатьСтрануВПредставление, ИсключатьГород = Ложь) Экспорт
Представление = ПредставлениеАдреса(Адрес, ВключатьСтрануВПредставление); Представление = ПредставлениеАдреса(Адрес, ВключатьСтрануВПредставление,, ИсключатьГород);
Адрес.Value = Представление; Адрес.Value = Представление;
КонецПроцедуры КонецПроцедуры
Функция ПредставлениеАдреса(Адрес, ВключатьСтрануВПредставление, ТипАдреса = Неопределено) Экспорт Функция ПредставлениеАдреса(Адрес, ВключатьСтрануВПредставление, ТипАдреса = Неопределено, ИсключатьГород = Ложь) Экспорт
Если ТипЗнч(Адрес) <> Тип("Структура") Тогда Если ТипЗнч(Адрес) <> Тип("Структура") Тогда
ВызватьИсключение НСтр("ru = 'Для формирования представления адреса передан некорректный тип адреса'"); ВызватьИсключение НСтр("ru = 'Для формирования представления адреса передан некорректный тип адреса'");
@@ -527,7 +531,7 @@
СписокЗаполненныхУровней.Добавить(Адрес.ZipCode); СписокЗаполненныхУровней.Добавить(Адрес.ZipCode);
КонецЕсли; КонецЕсли;
Для каждого ИмяУровня Из ИменаУровнейАдреса(ТипАдреса, Истина) Цикл Для Каждого ИмяУровня Из ИменаУровнейАдреса(ТипАдреса, Истина,, ИсключатьГород) Цикл
Если ЗначениеЗаполнено(Адрес[ИмяУровня]) Тогда Если ЗначениеЗаполнено(Адрес[ИмяУровня]) Тогда
@@ -764,6 +768,22 @@
КонецФункции КонецФункции
// Возвращаемое значение:
// Структура:
// * НаселенныйПунктДетально - Структура
// * ИсключатьГородИзМуниципальногоАдреса - Булево
//
Функция ВозвращаемыеДанныеОбАдресе() Экспорт
Результат = Новый Структура();
Результат.Вставить("НаселенныйПунктДетально", Новый Структура);
Результат.Вставить("ИсключатьГородИзМуниципальногоАдреса", Ложь);
Возврат Результат;
КонецФункции
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -535,7 +535,7 @@
ИначеЕсли СервисКриптографииDSSКлиентСервер.ЭтоМобильноеПриложениеДляПодтверждения(КонтекстФормы.СпособПодтверждения) ИначеЕсли СервисКриптографииDSSКлиентСервер.ЭтоМобильноеПриложениеДляПодтверждения(КонтекстФормы.СпособПодтверждения)
И ДанныеПодтверждения.ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_ОфлайнПодтверждение") Тогда И ДанныеПодтверждения.ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_ОфлайнПодтверждение") Тогда
Если КонтекстФормы.ДанныеПодтверждения.ГрафическийКодВладелец = КонтекстФормы.СпособПодтверждения Тогда Если КонтекстФормы.ДанныеПодтверждения.ГрафическийКодВладелец = КонтекстФормы.СпособПодтверждения Тогда
КонтекстФормы.ДанныеПодтверждения.ВторичнаяАвторизация = КонтекстФормы.ГрафическийКодВладелец; КонтекстФормы.ДанныеПодтверждения.ВторичнаяАвторизация = КонтекстФормы.ДанныеПодтверждения.ГрафическийКодВладелец;
КонтекстФормы.ДанныеПодтверждения.ЭтапЦикла = "Ожидание"; КонтекстФормы.ДанныеПодтверждения.ЭтапЦикла = "Ожидание";
Иначе Иначе
КонтекстФормы.ДанныеПодтверждения.ВторичнаяАвторизация = КонтекстФормы.СпособПодтверждения; КонтекстФормы.ДанныеПодтверждения.ВторичнаяАвторизация = КонтекстФормы.СпособПодтверждения;
@@ -603,7 +603,7 @@
// //
Процедура ПодтверждениеОбработкаОжидания(КонтекстФормы, ОписаниеДанных, ЗначениеПароля) Экспорт Процедура ПодтверждениеОбработкаОжидания(КонтекстФормы, ОписаниеДанных, ЗначениеПароля) Экспорт
ОблачныйСертификат = КонтекстФормы.ДанныеСертификата.Облачный; ОблачныйСертификат = ЭтоОперацияОблачнойПодписи(КонтекстФормы);
Если НЕ ОблачныйСертификат Тогда Если НЕ ОблачныйСертификат Тогда
Возврат; Возврат;
@@ -662,10 +662,12 @@
Если НЕ Отказ Тогда Если НЕ Отказ Тогда
ТипОперации = КонтекстФормы.ПодтверждениеТипОперации; ТипОперации = КонтекстФормы.ПодтверждениеТипОперации;
ОблачныйСертификат = КонтекстФормы.ДанныеСертификата.Облачный; ОблачныйСертификат = ЭтоОперацияОблачнойПодписи(КонтекстФормы);
КонтекстФормы.ДанныеПодтверждения.ПараметрыВариантаВстроенного.ПарольВПамяти = ПарольУстановлен;
ДанныеПодтверждения = КонтекстФормы.ДанныеПодтверждения; ДанныеПодтверждения = КонтекстФормы.ДанныеПодтверждения;
Если ЗначениеЗаполнено(ДанныеПодтверждения) Тогда
КонтекстФормы.ДанныеПодтверждения.ПараметрыВариантаВстроенного.ПарольВПамяти = ПарольУстановлен;
ДанныеПодтверждения.ПараметрыВариантаВстроенного.ПакетнаяОперация = ПроверитьПакетнуюОперацию(ТипОперации, ОписаниеДанных, ДанныеПодтверждения); ДанныеПодтверждения.ПараметрыВариантаВстроенного.ПакетнаяОперация = ПроверитьПакетнуюОперацию(ТипОперации, ОписаниеДанных, ДанныеПодтверждения);
КонецЕсли;
УправлениеЭлементамиОбщее(КонтекстФормы, 5); УправлениеЭлементамиОбщее(КонтекстФормы, 5);
Если ТипОперации <> "Проверка" Тогда Если ТипОперации <> "Проверка" Тогда
ФильтроватьСписокСпособов(КонтекстФормы); ФильтроватьСписокСпособов(КонтекстФормы);
@@ -706,10 +708,8 @@
Результат = Ложь; Результат = Ложь;
ДанныеСертификата = КонтекстФормы.ДанныеСертификата; Если ЭтоОперацияОблачнойПодписи(КонтекстФормы) Тогда
ТипОперации = КонтекстФормы.ПодтверждениеТипОперации; ТипОперации = КонтекстФормы.ПодтверждениеТипОперации;
Если ДанныеСертификата.Облачный Тогда
НастройкиПользователя = КонтекстФормы.НастройкиПользователя; НастройкиПользователя = КонтекстФормы.НастройкиПользователя;
ДанныеПодтверждения = КонтекстФормы.ДанныеПодтверждения; ДанныеПодтверждения = КонтекстФормы.ДанныеПодтверждения;
ДатаСеанса = СервисКриптографииDSSСлужебныйКлиент.ДатаСеанса(); ДатаСеанса = СервисКриптографииDSSСлужебныйКлиент.ДатаСеанса();
@@ -756,8 +756,11 @@
// //
Функция ЭтоОперацияОблачнойПодписи(КонтекстФормы) Экспорт Функция ЭтоОперацияОблачнойПодписи(КонтекстФормы) Экспорт
Результат = Ложь;
ДанныеСертификата = КонтекстФормы.ДанныеСертификата; ДанныеСертификата = КонтекстФормы.ДанныеСертификата;
Результат = ДанныеСертификата.Облачный; Если ЗначениеЗаполнено(ДанныеСертификата) Тогда
Результат = СервисКриптографииDSSКлиентСервер.ПолучитьПолеСтруктуры(ДанныеСертификата, "Облачный", Ложь);
КонецЕсли;
Возврат Результат; Возврат Результат;
@@ -1801,7 +1804,7 @@
ИначеЕсли НЕ ЗначениеЗаполнено(ДанныеПодтверждения.ВторичнаяАвторизация) Тогда ИначеЕсли НЕ ЗначениеЗаполнено(ДанныеПодтверждения.ВторичнаяАвторизация) Тогда
ОбщаяСтрока = НСтр("ru = 'Для продолжения укажите способ подтверждения'", КодЯзыка); ОбщаяСтрока = НСтр("ru = 'Для продолжения укажите способ подтверждения'", КодЯзыка);
Иначе ИначеЕсли ЗначениеЗаполнено(НастройкиПользователя.Ссылка) Тогда
СпособОтображения = ОтображениеПодсказки.Кнопка; СпособОтображения = ОтображениеПодсказки.Кнопка;
ПерваяЧасть = НСтр("ru = 'Можно изменить настройки подтверждения в'", КодЯзыка); ПерваяЧасть = НСтр("ru = 'Можно изменить настройки подтверждения в'", КодЯзыка);
ВтораяЧасть = НСтр("ru = 'карточке'", КодЯзыка); ВтораяЧасть = НСтр("ru = 'карточке'", КодЯзыка);
@@ -1813,6 +1816,9 @@
+ ">" + ВтораяЧасть + "</a> " + ТретьяЧасть + " + ">" + ВтораяЧасть + "</a> " + ТретьяЧасть + "
|<span style=""color: ПоясняющийТекст; font: МелкийЗаголовокПодтвержденияШрифт""> </span>"; |<span style=""color: ПоясняющийТекст; font: МелкийЗаголовокПодтвержденияШрифт""> </span>";
Иначе
СпособОтображения = ОтображениеПодсказки.Нет;
КонецЕсли; КонецЕсли;
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(ОбщаяСтрока); Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(ОбщаяСтрока);
@@ -2035,7 +2041,7 @@
СписокГрупп = КонтекстФормы.ИменаГруппКонтейнера; СписокГрупп = КонтекстФормы.ИменаГруппКонтейнера;
ЭлементыФормы = КонтекстФормы.Элементы; ЭлементыФормы = КонтекстФормы.Элементы;
ОблачныйСертификат = КонтекстФормы.ДанныеСертификата.Облачный; ОблачныйСертификат = ЭтоОперацияОблачнойПодписи(КонтекстФормы);
ФормаИсточник = КонтекстФормы.ПодтверждениеТипОперации; ФормаИсточник = КонтекстФормы.ПодтверждениеТипОперации;
Если НЕ ОблачныйСертификат Тогда Если НЕ ОблачныйСертификат Тогда
@@ -906,6 +906,7 @@
ГруппаПодтвержденияОфлайн.ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеЭлемента.Центр; ГруппаПодтвержденияОфлайн.ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеЭлемента.Центр;
ГруппаПодтвержденияОфлайн.ВертикальноеПоложениеПодчиненных = ВертикальноеПоложениеЭлемента.Центр; ГруппаПодтвержденияОфлайн.ВертикальноеПоложениеПодчиненных = ВертикальноеПоложениеЭлемента.Центр;
ГруппаПодтвержденияОфлайн.Высота = 14;
ЭлементФормы = ДобавитьЭлемент(ЭлементыФормы, "ПодтверждениеГрафическийКод", "QR-code", ГруппаПодтвержденияОфлайн, , "ПолеКартинки"); ЭлементФормы = ДобавитьЭлемент(ЭлементыФормы, "ПодтверждениеГрафическийКод", "QR-code", ГруппаПодтвержденияОфлайн, , "ПолеКартинки");
УстановитьПутьКДанным(ЭлементФормы, "ГрафическийКод"); УстановитьПутьКДанным(ЭлементФормы, "ГрафическийКод");
ЭлементФормы.РастягиватьПоГоризонтали = Истина; ЭлементФормы.РастягиватьПоГоризонтали = Истина;
@@ -5549,7 +5549,13 @@
ПараметрыОперации = Новый Структура(); ПараметрыОперации = Новый Структура();
ПараметрыОперации.Вставить("Пароль", ПарольПользователя); ПараметрыОперации.Вставить("Пароль", ПарольПользователя);
ПараметрыОперации.Вставить("ДатаСеанса", ДатаСеанса); ПараметрыОперации.Вставить("ДатаСеанса", ДатаСеанса);
ВидАутентификации = НастройкиПользователя.ПервичнаяАутентификация;
РезультатЗапроса = СервисКриптографииDSS.ПроверитьАутентификацию(НастройкиПользователя, ПараметрыОперации); РезультатЗапроса = СервисКриптографииDSS.ПроверитьАутентификацию(НастройкиПользователя, ПараметрыОперации);
Если НЕ РезультатЗапроса.Выполнено
И ВидАутентификации = Перечисления.СпособыАвторизацииDSS.Первичный_ДвухФакторная
И ТипОперации = "Аутентификация" Тогда
РезультатЗапроса = ОтветСервисаПоУмолчанию(Истина);
КонецЕсли;
// проверка сертификата // проверка сертификата
Если РезультатЗапроса.Выполнено Если РезультатЗапроса.Выполнено
@@ -1345,7 +1345,7 @@
ПараметрыЦикла.Вставить("ДанныеДокумента", ДанныеДокумента); ПараметрыЦикла.Вставить("ДанныеДокумента", ДанныеДокумента);
ПараметрыЦикла.Вставить("ТипШифрования", ТипШифрования); ПараметрыЦикла.Вставить("ТипШифрования", ТипШифрования);
ПараметрыЦикла.Вставить("ИнформацияОДокументе", СвойствоСтруктуры(ПараметрыОперации, "ИнформацияОДокументе", "Расшифровка")); ПараметрыЦикла.Вставить("ИнформацияОДокументе", СвойствоСтруктуры(ПараметрыОперации, "ИнформацияОДокументе", "Расшифровка"));
ПараметрыЦикла.Вставить("ТипДокумента", СвойствоСтруктуры(ПараметрыОперации, "ТипДокумента", "txt")); ПараметрыЦикла.Вставить("ТипДокумента", СвойствоСтруктуры(ПараметрыОперации, "ТипДокумента", "bin"));
ПараметрыЦикла.Вставить("Сертификат", Сертификат); ПараметрыЦикла.Вставить("Сертификат", Сертификат);
ПараметрыЦикла.Вставить("ИдентификаторТранзакции", ИдентификаторТранзакции); ПараметрыЦикла.Вставить("ИдентификаторТранзакции", ИдентификаторТранзакции);
ПараметрыЦикла.Вставить("ПинКод", ПинКод); ПараметрыЦикла.Вставить("ПинКод", ПинКод);
@@ -722,7 +722,6 @@
КонецПроцедуры КонецПроцедуры
// Продолжение процедуры ФайловаяСистемаКлиент.ОткрытьФайлВПрограммеПросмотра.
Процедура ЗапуститьПрограммуПослеПроверкиЭтоКаталог(ЭтоКаталог, Контекст) Экспорт Процедура ЗапуститьПрограммуПослеПроверкиЭтоКаталог(ЭтоКаталог, Контекст) Экспорт
Если ЭтоКаталог Тогда Если ЭтоКаталог Тогда
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ae2f41e0-a5cb-11ec-7a89-0242ac110002"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="50b95502-b1a9-11ec-199c-0242ac110002">
<name>БиблиотекаСтандартныхПодсистем</name> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="ae2f41e1-a5cb-11ec-7a89-0242ac110002"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="50b9550c-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="ae2f4208-a5cb-11ec-7a89-0242ac110002"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="50b9553e-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="ae2f4209-a5cb-11ec-7a89-0242ac110002"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="50b95548-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="ae2f4212-a5cb-11ec-7a89-0242ac110002"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="50b95549-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="ae2f4213-a5cb-11ec-7a89-0242ac110002"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="50b95552-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="ae2f4214-a5cb-11ec-7a89-0242ac110002"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="50b95553-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="bebf3ae5-0d34-4fce-98bf-5700ce350bca"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="69cee446-1edc-48c6-aaf0-83b1ea7d90c8"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.5.366</version> <version>3.1.5.385</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,f44c49d4-a5cb-11ec-3c9d-0242ac110002,1,e3154fda-a5cb-11ec-3681-0242ac110002,"3.1.5.366","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6474,1,0,ae2f41e0-a5cb-11ec-7a89-0242ac110002,ae2f41e0-a5cb-11ec-7a89-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,b4ae8596-b1a9-11ec-9882-0242ac110002,1,9b223fa0-b1a9-11ec-d683-0242ac110002,"3.1.5.385","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6474,1,0,50b95502-b1a9-11ec-199c-0242ac110002,50b95502-b1a9-11ec-199c-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
@@ -24,6 +24,9 @@
Если КонтекстныйВызов Тогда Если КонтекстныйВызов Тогда
ВыполнитьДействияПриКонтекстномОткрытии(); ВыполнитьДействияПриКонтекстномОткрытии();
Иначе Иначе
Если Не ПравоДоступа("Администрирование", Метаданные) Тогда
ВызватьИсключение НСтр("ru = 'Для открытия обработки требуется право администрирования.'")
КонецЕсли;
Заголовок = НСтр("ru = 'Групповое изменение реквизитов'"); Заголовок = НСтр("ru = 'Групповое изменение реквизитов'");
ЗаполнитьСписокТиповОбъектов(); ЗаполнитьСписокТиповОбъектов();
КонецЕсли; КонецЕсли;
@@ -4219,6 +4222,7 @@
// АПК:488-выкл "Вычислить" вместо "ОбщегоНазначения.ВычислитьВБезопасномРежиме()", так как это автономная обработка. // АПК:488-выкл "Вычислить" вместо "ОбщегоНазначения.ВычислитьВБезопасномРежиме()", так как это автономная обработка.
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда
УстановитьБезопасныйРежим(Истина);
Модуль = Вычислить(Имя); Модуль = Вычислить(Имя);
Иначе Иначе
Модуль = Неопределено; Модуль = Неопределено;
@@ -965,7 +965,7 @@
+ СтрЗаменить(СтрЗаменить(Значение, """", """"""), Символы.ПС, Символы.ПС + "|") + """"); + СтрЗаменить(СтрЗаменить(Значение, """", """"""), Символы.ПС, Символы.ПС + "|") + """");
КонецЦикла; КонецЦикла;
Возврат Вычислить(Выражение); Возврат ВычислитьВБезопасномРежиме(Выражение);
КонецФункции КонецФункции
@@ -1342,7 +1342,8 @@
Возврат СтрокаПодстановки; Возврат СтрокаПодстановки;
КонецФункции КонецФункции
// АПК:487-выкл Копия кода ОбщегоНазначения.ВыполнитьВБезопасномРежиме(). т.к. обработка "отторгаемая". // АПК:487-выкл Копия ВыполнитьВБезопасномРежиме() и ВычислитьВБезопасномРежиме() модуля ОбщегоНазначения т.к. обработка
// "отторгаемая".
// Выполняет произвольный алгоритм на встроенном языке 1С:Предприятия, предварительно устанавливая // Выполняет произвольный алгоритм на встроенном языке 1С:Предприятия, предварительно устанавливая
// безопасный режим выполнения кода и безопасный режим разделения данных для всех разделителей, // безопасный режим выполнения кода и безопасный режим разделения данных для всех разделителей,
@@ -1378,6 +1379,51 @@
КонецПроцедуры КонецПроцедуры
// Вычисляет переданное выражение, предварительно устанавливая безопасный режим выполнения кода
// и безопасный режим разделения данных для всех разделителей, присутствующих в составе конфигурации.
//
// Параметры:
// Выражение - Строка - выражение на встроенном языке 1С:Предприятия.
// Параметры - Произвольный - контекст, который требуется для вычисления выражения.
// В тексте выражения обращение к контексту должно происходить по имени "Параметры".
// Например, выражение "Параметры.Значение1 = Параметры.Значение2" обращается к значениям
// "Значение1" и "Значение2" переданные в Параметры, как свойства.
//
// Возвращаемое значение:
// Произвольный - результат вычисления выражения.
//
// Пример:
//
// // Пример 1
// Параметры = Новый Структура;
// Параметры.Вставить("Значение1", 1);
// Параметры.Вставить("Значение2", 10);
// Результат = ОбщегоНазначения.ВычислитьВБезопасномРежиме("Параметры.Значение1 = Параметры.Значение2", Параметры);
//
// // Пример 2
// Результат = ОбщегоНазначения.ВычислитьВБезопасномРежиме("СтандартныеПодсистемыСервер.ВерсияБиблиотеки()");
//
Функция ВычислитьВБезопасномРежиме(Знач Выражение, Знач Параметры = Неопределено) Экспорт
УстановитьБезопасныйРежим(Истина);
Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса");
МассивРазделителей = МодульРаботаВМоделиСервиса.РазделителиКонфигурации();
Иначе
МассивРазделителей = Новый Массив;
КонецЕсли;
Для Каждого ИмяРазделителя Из МассивРазделителей Цикл
УстановитьБезопасныйРежимРазделенияДанных(ИмяРазделителя, Истина);
КонецЦикла;
Возврат Вычислить(Выражение);
КонецФункции
// АПК:487-вкл // АПК:487-вкл
// Возвращает массив существующих в конфигурации разделителей. // Возвращает массив существующих в конфигурации разделителей.
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт Функция ВерсияКалендарей() Экспорт
Возврат 32; Возврат 35;
КонецФункции КонецФункции
@@ -57,7 +57,7 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.1.5.339"; Возврат "3.1.5.375";
КонецФункции КонецФункции
@@ -612,8 +612,7 @@
<Item Calendar="26" Year="2020" DayType="Предпраздничный" Date="20200427" SwapDate=""/> <Item Calendar="26" Year="2020" DayType="Предпраздничный" Date="20200427" SwapDate=""/>
<Item Calendar="26" Year="2020" DayType="Праздник" Date="20200428" SwapDate=""/> <Item Calendar="26" Year="2020" DayType="Праздник" Date="20200428" SwapDate=""/>
<Item Calendar="26" Year="2021" DayType="Праздник" Date="20210511" SwapDate=""/> <Item Calendar="26" Year="2021" DayType="Праздник" Date="20210511" SwapDate=""/>
<Item Calendar="26" Year="2022" DayType="Праздник" Date="20220503" SwapDate="20220504"/> <Item Calendar="26" Year="2022" DayType="Праздник" Date="20220503" SwapDate=""/>
<Item Calendar="26" Year="2022" DayType="Суббота" Date="20220504" SwapDate="20220503"/>
<Item Calendar="31" Year="2020" DayType="Праздник" Date="20200712" SwapDate="20200713"/> <Item Calendar="31" Year="2020" DayType="Праздник" Date="20200712" SwapDate="20200713"/>
<Item Calendar="31" Year="2020" DayType="Воскресенье" Date="20200713" SwapDate="20200712"/> <Item Calendar="31" Year="2020" DayType="Воскресенье" Date="20200713" SwapDate="20200712"/>
<Item Calendar="31" Year="2021" DayType="Праздник" Date="20210712" SwapDate=""/> <Item Calendar="31" Year="2021" DayType="Праздник" Date="20210712" SwapDate=""/>
@@ -714,9 +713,7 @@
<Item Calendar="91" Year="2022" DayType="Предпраздничный" Date="20220317" SwapDate=""/> <Item Calendar="91" Year="2022" DayType="Предпраздничный" Date="20220317" SwapDate=""/>
<Item Calendar="91" Year="2022" DayType="Праздник" Date="20220318" SwapDate=""/> <Item Calendar="91" Year="2022" DayType="Праздник" Date="20220318" SwapDate=""/>
<Item Calendar="91" Year="2022" DayType="Праздник" Date="20220425" SwapDate=""/> <Item Calendar="91" Year="2022" DayType="Праздник" Date="20220425" SwapDate=""/>
<Item Calendar="91" Year="2022" DayType="Праздник" Date="20220502" SwapDate="20220501"/> <Item Calendar="91" Year="2022" DayType="Праздник" Date="20220711" SwapDate=""/>
<Item Calendar="91" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
<Item Calendar="91" Year="2022" DayType="Праздник" Date="20220709" SwapDate=""/>
<Item Calendar="92" Year="2016" DayType="Предпраздничный" Date="20160317" SwapDate=""/> <Item Calendar="92" Year="2016" DayType="Предпраздничный" Date="20160317" SwapDate=""/>
<Item Calendar="92" Year="2016" DayType="Праздник" Date="20160318" SwapDate=""/> <Item Calendar="92" Year="2016" DayType="Праздник" Date="20160318" SwapDate=""/>
<Item Calendar="92" Year="2017" DayType="Предпраздничный" Date="20170317" SwapDate=""/> <Item Calendar="92" Year="2017" DayType="Предпраздничный" Date="20170317" SwapDate=""/>
@@ -4440,6 +4440,19 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>ИсключатьГородИзМуниципальногоАдреса</name>
<id>57</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>КомандаОК</name> <name>КомандаОК</name>
<title> <title>
@@ -344,7 +344,8 @@
ОчиститьАдресКлиент(); ОчиститьАдресКлиент();
Если ТипЗнч(Результат) = Тип("Структура") Тогда Если ТипЗнч(Результат) = Тип("Структура") Тогда
ПолученныйАдрес = ОпределитьАдресПоИдентификатору(Результат); ИсключатьГородИзМуниципальногоАдреса = Ложь;
ПолученныйАдрес = ОпределитьАдресПоИдентификатору(Результат, ИсключатьГородИзМуниципальногоАдреса);
ЗаполнитьЗначенияСвойств(НаселенныйПунктДетально, ПолученныйАдрес); ЗаполнитьЗначенияСвойств(НаселенныйПунктДетально, ПолученныйАдрес);
Если ПустаяСтрока(НаселенныйПунктДетально.ZipCode) Тогда Если ПустаяСтрока(НаселенныйПунктДетально.ZipCode) Тогда
НаселенныйПунктДетально.ZipCode = Формат(Результат.Индекс,"ЧГ=0"); НаселенныйПунктДетально.ZipCode = Формат(Результат.Индекс,"ЧГ=0");
@@ -623,12 +624,18 @@
КонецПроцедуры КонецПроцедуры
// Параметры:
// Результат - см. РаботаСАдресамиКлиентСервер.ВозвращаемыеДанныеОбАдресе
// ДополнительныеПараметры - Неопределено
//
&НаКлиенте &НаКлиенте
Процедура ПослеВводаСведенийНаселенногоПункта(Результат, ДополнительныеПараметры) Экспорт Процедура ПослеВводаСведенийНаселенногоПункта(Результат, ДополнительныеПараметры) Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда Если ТипЗнч(Результат) = Тип("Структура") Тогда
НаселенныйПунктДетально = Результат; НаселенныйПунктДетально = Результат.НаселенныйПунктДетально;
ИсключатьГородИзМуниципальногоАдреса = Результат.ИсключатьГородИзМуниципальногоАдреса;
ОбработкаИзмененияАдреса(); ОбработкаИзмененияАдреса();
КонецЕсли; КонецЕсли;
@@ -746,7 +753,8 @@
Если ТипЗнч(Результат) = Тип("Структура") Тогда Если ТипЗнч(Результат) = Тип("Структура") Тогда
Если Не Результат.Отказ Тогда Если Не Результат.Отказ Тогда
НаселенныйПунктДетально = ОпределитьАдресПоИдентификатору(Результат); ИсключатьГородИзМуниципальногоАдреса = Ложь;
НаселенныйПунктДетально = ОпределитьАдресПоИдентификатору(Результат, ИсключатьГородИзМуниципальногоАдреса);
ОбработкаИзмененияАдреса(); ОбработкаИзмененияАдреса();
КонецЕсли; КонецЕсли;
Иначе Иначе
@@ -778,7 +786,7 @@
КонецЕсли; КонецЕсли;
СведенияОбАдресе.Вставить("Муниципальный", РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(НаселенныйПунктДетально.addressType)); СведенияОбАдресе.Вставить("Муниципальный", РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(НаселенныйПунктДетально.addressType));
НаселенныйПунктУстановитьПоляАдреса(НаселенныйПунктДетально, СведенияОбАдресе, Истина); НаселенныйПунктУстановитьПоляАдреса(НаселенныйПунктДетально, СведенияОбАдресе, Истина, ИсключатьГородИзМуниципальногоАдреса);
ОбработкаИзмененияАдреса(); ОбработкаИзмененияАдреса();
Элементы.Улица.ОбновитьТекстРедактирования(); Элементы.Улица.ОбновитьТекстРедактирования();
@@ -1598,13 +1606,37 @@
Элементы.СтраницаКомментарий.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Комментарий); Элементы.СтраницаКомментарий.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Комментарий);
КонецПроцедуры КонецПроцедуры
// Возвращаемое значение:
// * ВидКонтактнойИнформации - см. УправлениеКонтактнойИнформациейСлужебный.СтруктураВидаКонтактнойИнформации
// * НаселенныйПунктДетально - Структура
// * ОсновнаяСтрана - СправочникСсылка.СтраныМира
// * Страна - СправочникСсылка.СтраныМира
// * ИсключатьГородИзМуниципальногоАдреса - Булево
//
&НаКлиенте
Функция ОписаниеКонтекста()
Контекст = Новый Структура;
Контекст.Вставить("ВидКонтактнойИнформации", Новый Структура);
Контекст.Вставить("НаселенныйПунктДетально", Новый Структура);
Контекст.Вставить("ОсновнаяСтрана", Неопределено);
Контекст.Вставить("Страна", Неопределено);
Контекст.Вставить("ИсключатьГородИзМуниципальногоАдреса", Ложь);
ЗаполнитьЗначенияСвойств(Контекст, ЭтотОбъект);
Возврат Контекст;
КонецФункции
&НаКлиенте &НаКлиенте
Процедура ПодтвердитьИЗакрыть(Результат = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт Процедура ПодтвердитьИЗакрыть(Результат = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт
Если Модифицированность Тогда // При немодифицированности работает как "отмена". Если Модифицированность Тогда // При немодифицированности работает как "отмена".
Контекст = Новый Структура("ВидКонтактнойИнформации, НаселенныйПунктДетально, ОсновнаяСтрана, Страна"); Контекст = ОписаниеКонтекста();
ЗаполнитьЗначенияСвойств(Контекст, ЭтотОбъект);
Результат = РезультатВыбора(Контекст, ВозвращатьСписокЗначений); Результат = РезультатВыбора(Контекст, ВозвращатьСписокЗначений);
// Флаги вида были прочитаны заново. // Флаги вида были прочитаны заново.
@@ -1827,11 +1859,7 @@
КонецПроцедуры КонецПроцедуры
// Параметры: // Параметры:
// Контекст - Структура: // Контекст - см. ОписаниеКонтекста
// * ВидКонтактнойИнформации - см. УправлениеКонтактнойИнформациейСлужебный.СтруктураВидаКонтактнойИнформации
// * НаселенныйПунктДетально - Структура
// * ОсновнаяСтрана - СправочникСсылка.СтраныМира
// * Страна - СправочникСсылка.СтраныМира
// //
// ВозвращатьСписокЗначений - Булево // ВозвращатьСписокЗначений - Булево
// Возвращаемое значение: // Возвращаемое значение:
@@ -1860,7 +1888,8 @@
НаселенныйПунктДетально = Контекст.НаселенныйПунктДетально; НаселенныйПунктДетально = Контекст.НаселенныйПунктДетально;
Результат = Новый Структура("ДанныеВыбора, ОшибкиЗаполнения"); Результат = Новый Структура("ДанныеВыбора, ОшибкиЗаполнения");
НаселенныйПунктДетально.Value = РаботаСАдресамиКлиентСервер.ПредставлениеАдреса(НаселенныйПунктДетально, ВидКИ.ВключатьСтрануВПредставление); НаселенныйПунктДетально.Value = РаботаСАдресамиКлиентСервер.ПредставлениеАдреса(НаселенныйПунктДетально, ВидКИ.ВключатьСтрануВПредставление,,
Контекст.ИсключатьГородИзМуниципальногоАдреса);
Если ВозвращатьСписокЗначений Тогда Если ВозвращатьСписокЗначений Тогда
ДанныеВыбора = Обработки.РасширенныйВводКонтактнойИнформации.КонтактнаяИнформацияВСтаруюСтруктуру(НаселенныйПунктДетально); ДанныеВыбора = Обработки.РасширенныйВводКонтактнойИнформации.КонтактнаяИнформацияВСтаруюСтруктуру(НаселенныйПунктДетально);
@@ -2185,6 +2214,13 @@
&НаСервере &НаСервере
Процедура УстановитьЗначенияНациональныхРеквизитовКонтактнойИнформации(ДанныеАдреса) Процедура УстановитьЗначенияНациональныхРеквизитовКонтактнойИнформации(ДанныеАдреса)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный");
ИсключатьГородИзМуниципальногоАдреса = МодульАдресныйКлассификаторСлужебный.ИсключатьГородИзМуниципальногоАдреса(ДанныеАдреса);
Иначе
ИсключатьГородИзМуниципальногоАдреса = Ложь;;
КонецЕсли;
// Индекс просто ставим // Индекс просто ставим
Если ДанныеАдреса.Свойство("ZIPCode") Тогда Если ДанныеАдреса.Свойство("ZIPCode") Тогда
Индекс = Формат(ДанныеАдреса.ZIPCode, "ЧГ="); Индекс = Формат(ДанныеАдреса.ZIPCode, "ЧГ=");
@@ -2897,12 +2933,12 @@
КонецПроцедуры КонецПроцедуры
&НаСервереБезКонтекста &НаСервереБезКонтекста
Процедура НаселенныйПунктУстановитьПоляАдреса(НаселенныйПунктДетально, Знач ВыбранноеЗначение, Знач ВключатьУлица) Процедура НаселенныйПунктУстановитьПоляАдреса(НаселенныйПунктДетально, Знач ВыбранноеЗначение, Знач ВключатьУлица, ИсключатьГородИзМуниципальногоАдреса)
Если ВыбранноеЗначение.Свойство("Адрес") И ЗначениеЗаполнено(ВыбранноеЗначение.Адрес) Тогда Если ВыбранноеЗначение.Свойство("Адрес") И ЗначениеЗаполнено(ВыбранноеЗначение.Адрес) Тогда
ПолученныйАдрес = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(ВыбранноеЗначение.Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес); ПолученныйАдрес = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(ВыбранноеЗначение.Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес);
Иначе Иначе
ПолученныйАдрес = ОпределитьАдресПоИдентификатору(ВыбранноеЗначение); ПолученныйАдрес = ОпределитьАдресПоИдентификатору(ВыбранноеЗначение, ИсключатьГородИзМуниципальногоАдреса);
КонецЕсли; КонецЕсли;
Если Не ВключатьУлица Тогда Если Не ВключатьУлица Тогда
@@ -3256,8 +3292,8 @@
КонецФункции КонецФункции
&НаСервереБезКонтекста &НаСервереБезКонтекста
Функция ОпределитьАдресПоИдентификатору(СведенияОбАдреса) Функция ОпределитьАдресПоИдентификатору(СведенияОбАдреса, ИсключатьГородИзМуниципальногоАдреса = Ложь)
Возврат Обработки.РасширенныйВводКонтактнойИнформации.СписокРеквизитовНаселенныйПункт(СведенияОбАдреса); Возврат Обработки.РасширенныйВводКонтактнойИнформации.СписокРеквизитовНаселенныйПункт(СведенияОбАдреса, ИсключатьГородИзМуниципальногоАдреса);
КонецФункции КонецФункции
&НаСервереБезКонтекста &НаСервереБезКонтекста
@@ -3460,7 +3496,7 @@
&НаКлиенте &НаКлиенте
Процедура УстановитьНаселенныйПунктПослеВыбора(Знач ДанныеОбАдресе) Процедура УстановитьНаселенныйПунктПослеВыбора(Знач ДанныеОбАдресе)
НаселенныйПунктУстановитьПоляАдреса(НаселенныйПунктДетально, ДанныеОбАдресе, Ложь); НаселенныйПунктУстановитьПоляАдреса(НаселенныйПунктДетально, ДанныеОбАдресе, Ложь, ИсключатьГородИзМуниципальногоАдреса);
ОбработкаИзмененияАдреса(); ОбработкаИзмененияАдреса();
УстановитьФлагиВМенюПоТипуАдреса(); УстановитьФлагиВМенюПоТипуАдреса();
@@ -3598,7 +3634,7 @@
&НаКлиенте &НаКлиенте
Процедура ОбновитьПредставлениеАдреса() Процедура ОбновитьПредставлениеАдреса()
РаботаСАдресамиКлиентСервер.ОбновитьПредставлениеАдреса(НаселенныйПунктДетально, ВидКонтактнойИнформации.ВключатьСтрануВПредставление); РаботаСАдресамиКлиентСервер.ОбновитьПредставлениеАдреса(НаселенныйПунктДетально, ВидКонтактнойИнформации.ВключатьСтрануВПредставление, ИсключатьГородИзМуниципальногоАдреса);
ПредставлениеАдреса = НаселенныйПунктДетально.Value; ПредставлениеАдреса = НаселенныйПунктДетально.Value;
Если ВидКонтактнойИнформации.ВключатьСтрануВПредставление И УправлениеКонтактнойИнформациейКлиентСервер.ЭтоАдресВСвободнойФорме(НаселенныйПунктДетально.AddressType) Тогда Если ВидКонтактнойИнформации.ВключатьСтрануВПредставление И УправлениеКонтактнойИнформациейКлиентСервер.ЭтоАдресВСвободнойФорме(НаселенныйПунктДетально.AddressType) Тогда
УдалитьСтрануИзПредставления(); УдалитьСтрануИзПредставления();
@@ -3788,7 +3824,7 @@
СписокЗаполненныхУровней = Новый Массив; СписокЗаполненныхУровней = Новый Массив;
Для каждого ИмяУровня Из РаботаСАдресамиКлиентСервер.ИменаУровнейАдреса(Адрес.AddressType, Ложь) Цикл Для каждого ИмяУровня Из РаботаСАдресамиКлиентСервер.ИменаУровнейАдреса(Адрес.AddressType, Ложь,, ИсключатьГородИзМуниципальногоАдреса) Цикл
Если ЗначениеЗаполнено(Адрес[ИмяУровня]) Тогда Если ЗначениеЗаполнено(Адрес[ИмяУровня]) Тогда
@@ -928,6 +928,19 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>ИсключатьГородИзМуниципальногоАдреса</name>
<id>21</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>КомандаОК</name> <name>КомандаОК</name>
<title> <title>
@@ -43,6 +43,14 @@
Поселение = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Settlement"); Поселение = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Settlement");
ВнутригородскойРайон = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "CityDistrict"); ВнутригородскойРайон = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "CityDistrict");
Территория = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Territory"); Территория = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Territory");
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный");
ИсключатьГородИзМуниципальногоАдреса = МодульАдресныйКлассификаторСлужебный.ИсключатьГородИзМуниципальногоАдреса(НаселенныйПунктДетально);
Иначе
ИсключатьГородИзМуниципальногоАдреса = Ложь;
КонецЕсли;
Иначе Иначе
ИспользоватьАвтоподбор = Ложь; ИспользоватьАвтоподбор = Ложь;
КонецЕсли; КонецЕсли;
@@ -50,7 +58,15 @@
Регион = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Area"); Регион = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Area");
Район = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "District"); Район = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "District");
НаселенныйПункт = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Locality"); НаселенныйПункт = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Locality");
Если РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса) Тогда
Если Не ИсключатьГородИзМуниципальногоАдреса Тогда
Город = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "City"); Город = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "City");
Иначе
Город = "";
КонецЕсли;
Иначе
Город = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "City");
КонецЕсли;
Иначе Иначе
ТипАдреса = РаботаСАдресамиКлиентСервер.МуниципальныйАдрес(); ТипАдреса = РаботаСАдресамиКлиентСервер.МуниципальныйАдрес();
@@ -111,6 +127,7 @@
НаселенныйПунктДетально.AddressType = ?(ТипАдреса = "Муниципальный", РаботаСАдресамиКлиентСервер.МуниципальныйАдрес(), РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес()); НаселенныйПунктДетально.AddressType = ?(ТипАдреса = "Муниципальный", РаботаСАдресамиКлиентСервер.МуниципальныйАдрес(), РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес());
ОтобразитьПоляПоТипуАдреса(); ОтобразитьПоляПоТипуАдреса();
ОпределитьПоляАдреса();
КонецПроцедуры КонецПроцедуры
@@ -284,7 +301,7 @@
Процедура КомандаОК(Команда) Процедура КомандаОК(Команда)
Если Модифицированность Тогда Если Модифицированность Тогда
Закрыть(НаселенныйПунктДетально); Закрыть(ВозвращаемыеДанныеОбАдресе());
Иначе Иначе
Закрыть(); Закрыть();
КонецЕсли; КонецЕсли;
@@ -312,6 +329,18 @@
КонецФункции КонецФункции
&НаКлиенте
Функция ВозвращаемыеДанныеОбАдресе()
Результат = РаботаСАдресамиКлиентСервер.ВозвращаемыеДанныеОбАдресе();
Результат.НаселенныйПунктДетально = НаселенныйПунктДетально;
Результат.ИсключатьГородИзМуниципальногоАдреса = ИсключатьГородИзМуниципальногоАдреса;
Возврат Результат;
КонецФункции
&НаКлиенте &НаКлиенте
Процедура ОткрытьФормуВыбораАдресныхОбъектов(Элемент, ДанныеВыбора, СтандартнаяОбработка) Процедура ОткрытьФормуВыбораАдресныхОбъектов(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
@@ -337,7 +366,11 @@
Регион = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Area"); Регион = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Area");
Район = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "District"); Район = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "District");
МуниципальныйРайон = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "MunDistrict"); МуниципальныйРайон = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "MunDistrict");
Если ИсключатьГородИзМуниципальногоАдреса И РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса) Тогда
Город = "";
Иначе
Город = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "City"); Город = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "City");
КонецЕсли;
Поселение = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Settlement"); Поселение = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Settlement");
ВнутригородскойРайон = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "CityDistrict"); ВнутригородскойРайон = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "CityDistrict");
НаселенныйПункт = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Locality"); НаселенныйПункт = ПредставлениеУровняАдреса(НаселенныйПунктДетально, "Locality");
@@ -497,7 +530,7 @@
СведенияОбАдресе.Идентификатор = Идентификатор; СведенияОбАдресе.Идентификатор = Идентификатор;
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
НаселенныйПунктДетально = НаселенныйПунктДетальноПоИдентификатору(СведенияОбАдресе); НаселенныйПунктДетально = НаселенныйПунктДетальноПоИдентификатору(СведенияОбАдресе, ИсключатьГородИзМуниципальногоАдреса);
ОпределитьПоляАдреса(); ОпределитьПоляАдреса();
Элемент.ОбновитьТекстРедактирования(); Элемент.ОбновитьТекстРедактирования();
@@ -568,8 +601,8 @@
КонецПроцедуры КонецПроцедуры
&НаСервереБезКонтекста &НаСервереБезКонтекста
Функция НаселенныйПунктДетальноПоИдентификатору(ИдентификаторНаселенногоПункта) Функция НаселенныйПунктДетальноПоИдентификатору(ИдентификаторНаселенногоПункта, ИсключатьГородИзМуниципальногоАдреса)
Возврат Обработки.РасширенныйВводКонтактнойИнформации.СписокРеквизитовНаселенныйПункт(ИдентификаторНаселенногоПункта); Возврат Обработки.РасширенныйВводКонтактнойИнформации.СписокРеквизитовНаселенныйПункт(ИдентификаторНаселенногоПункта, ИсключатьГородИзМуниципальногоАдреса);
КонецФункции КонецФункции
&НаКлиенте &НаКлиенте
@@ -165,7 +165,7 @@
// Возвращаемое значение: // Возвращаемое значение:
// Структура - описание населенного пункта. // Структура - описание населенного пункта.
// //
Функция СписокРеквизитовНаселенныйПункт(СведенияОбАдресномОбъекте = Неопределено) Экспорт Функция СписокРеквизитовНаселенныйПункт(СведенияОбАдресномОбъекте = Неопределено, ИсключатьГородИзМуниципальногоАдреса = Ложь) Экспорт
Адрес = УправлениеКонтактнойИнформацией.ОписаниеНовойКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.Адрес); Адрес = УправлениеКонтактнойИнформацией.ОписаниеНовойКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.Адрес);
@@ -183,6 +183,8 @@
Возврат Адрес; Возврат Адрес;
КонецЕсли; КонецЕсли;
ИсключатьГородИзМуниципальногоАдреса = МодульАдресныйКлассификаторСлужебный.ИсключатьГородИзМуниципальногоАдреса(АдресныеСведения.Данные);
ЗаполнитьЗначенияСвойств(Адрес, АдресныеСведения.Данные, "addressType,codeKLADR,id,ifnsFLAreaCode,ifnsFLCode,ifnsULAreaCode,ifnsULCode,okato,oktmo,ZIPCode,value"); ЗаполнитьЗначенияСвойств(Адрес, АдресныеСведения.Данные, "addressType,codeKLADR,id,ifnsFLAreaCode,ifnsFLCode,ifnsULAreaCode,ifnsULCode,okato,oktmo,ZIPCode,value");
Если ПустаяСтрока(Адрес.Country) Тогда Если ПустаяСтрока(Адрес.Country) Тогда
@@ -680,10 +682,6 @@
// //
Функция ПредставлениеНаселенногоПункта(ОбъектАдреса) Экспорт Функция ПредставлениеНаселенногоПункта(ОбъектАдреса) Экспорт
АдресныеУровниБезСокращений = Новый Соответствие();
АдресныеУровниБезСокращений.Вставить("MunDistrict", Истина);
АдресныеУровниБезСокращений.Вставить("Settlement", Истина);
ЭтоМуниципальныйАдрес = РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ОбъектАдреса.AddressType); ЭтоМуниципальныйАдрес = РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ОбъектАдреса.AddressType);
Если НЕ ОбъектАдреса.Свойство("AddressType") Тогда Если НЕ ОбъектАдреса.Свойство("AddressType") Тогда
СписокПолейАдреса = "Area,City"; СписокПолейАдреса = "Area,City";
@@ -705,8 +703,16 @@
Если ОбъектАдреса.Свойство(ИмяПоля) И ЗначениеЗаполнено(ОбъектАдреса[ИмяПоля]) Тогда Если ОбъектАдреса.Свойство(ИмяПоля) И ЗначениеЗаполнено(ОбъектАдреса[ИмяПоля]) Тогда
ПредставлениеУровня = ОбъектАдреса[ИмяПоля] Если СтрСравнить(ИмяПоля, "MunDistrict") = 0 Тогда
+ ?(АдресныеУровниБезСокращений.Получить(ИмяПоля) = Неопределено, " " + ОбъектАдреса[ИмяПоля + "Type"], ""); НаименованиеУровня = РаботаСАдресамиКлиентСервер.КраткоеНаписаниеМуниципальныхРайонов(ОбъектАдреса[ИмяПоля], ОбъектАдреса[ИмяПоля + "Type"]);
ИначеЕсли СтрСравнить(ИмяПоля, "Settlement") = 0 Тогда
НаименованиеУровня = РаботаСАдресамиКлиентСервер.КраткоеНаписаниеПоселений(ОбъектАдреса[ИмяПоля], ОбъектАдреса[ИмяПоля + "Type"]);
Иначе
НаименованиеУровня = ОбъектАдреса[ИмяПоля];
КонецЕсли;
ПредставлениеУровня = НаименованиеУровня + " " + ОбъектАдреса[ИмяПоля + "Type"];
Адрес.Добавить(СокрЛП(ПредставлениеУровня)); Адрес.Добавить(СокрЛП(ПредставлениеУровня));
КонецЕсли; КонецЕсли;
@@ -1731,6 +1731,93 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>InformationRegister.ЗагруженныеВерсииАдресныхСведений</name> <name>InformationRegister.ЗагруженныеВерсииАдресныхСведений</name>
<right> <right>
@@ -3457,93 +3544,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Constant.ИспользоватьНесколькоПроизводственныхКалендарей</name> <name>Constant.ИспользоватьНесколькоПроизводственныхКалендарей</name>
<right> <right>
@@ -21,6 +21,37 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name> <name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name>
<right> <right>
@@ -76,37 +107,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name> <name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "") <condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -2405,6 +2405,45 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </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> <object>
<name>InformationRegister.ЗагруженныеВерсииАдресныхСведений</name> <name>InformationRegister.ЗагруженныеВерсииАдресныхСведений</name>
<right> <right>
@@ -4947,45 +4986,6 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </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> <object>
<name>Constant.ИспользоватьНесколькоПроизводственныхКалендарей</name> <name>Constant.ИспользоватьНесколькоПроизводственныхКалендарей</name>
<right> <right>