3_1_9_209

This commit is contained in:
Компания 1С committed 2023-11-10 17:00:00 +03:00
1 parent 6c5693ada5
commit 52592ab0ef
122 files changed
+2494 -1538

No files matched your search

@@ -51,9 +51,9 @@
// Заполнение имени отчета для команды "Просмотр".
Если Объект.ТипОтчета = Перечисления.ТипыОтчетов.Внутренний
Или Объект.ТипОтчета = Перечисления.ТипыОтчетов.Расширение Тогда
ИмяОтчета = Объект.Отчет.Имя;
ИмяОтчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Отчет, "Имя");
ИначеЕсли Объект.ТипОтчета = Перечисления.ТипыОтчетов.Дополнительный Тогда
ИмяОтчета = Объект.Отчет.ИмяОбъекта;
ИмяОтчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Отчет, "ИмяОбъекта");
Иначе
ИмяОтчета = Объект.Отчет;
КонецЕсли;
@@ -53,7 +53,7 @@
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
ПользователемИзмененаПометкаУдаления = (Не ЭтоНовый() И ПометкаУдаления <> Ссылка.ПометкаУдаления
ПользователемИзмененаПометкаУдаления = (Не ЭтоНовый() И ПометкаУдаления <> ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ПометкаУдаления")
И Не ДополнительныеСвойства.Свойство("ЗаполнениеПредопределенных"));
Если Не Пользовательский И ПользователемИзмененаПометкаУдаления Тогда
@@ -219,12 +219,15 @@
// Удаление из табличной части подсистем, помеченных на удаление.
УдаляемыеСтроки = Новый Массив;
Для Каждого СтрокаРазмещения Из Размещение Цикл
Если СтрокаРазмещения.Подсистема.ПометкаУдаления = Истина Тогда
УдаляемыеСтроки.Добавить(СтрокаРазмещения);
Подсистемы = Размещение.ВыгрузитьКолонку("Подсистема");
Подсистемы = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Подсистемы, "ПометкаУдаления");
Для Каждого Подсистема Из Подсистемы Цикл
Если Подсистема.Значение Тогда
СтрокаРазмещения = Размещение.Найти(Подсистема.Ключ, "Подсистема");
Если СтрокаРазмещения <> Неопределено Тогда
УдаляемыеСтроки.Добавить(СтрокаРазмещения);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаРазмещения Из УдаляемыеСтроки Цикл
@@ -49,9 +49,11 @@
Объект.Наименование = "";
Объект.ОбъектАвторизации = Неопределено;
ПользовательИБАдресЭлектроннойПочты = "";
ИдентификаторКопируемогоПользователяИБ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
ЗначениеКопирования, "ИдентификаторПользователяИБ");
Если Не ПользователиСлужебный.УровеньДоступаПользователяВыше(ЗначениеКопирования, УровеньДоступа) Тогда
ПрочитатьПользователяИБ(ЗначениеЗаполнено(ЗначениеКопирования.ИдентификаторПользователяИБ));
ПрочитатьПользователяИБ(ЗначениеЗаполнено(ИдентификаторКопируемогоПользователяИБ));
Иначе
ПрочитатьПользователяИБ();
КонецЕсли;
@@ -398,9 +400,12 @@
// СтандартныеПодсистемы.КонтактнаяИнформация
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
МодульУправлениеКонтактнойИнформацией.ПередЗаписьюНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда
ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
МодульУправлениеКонтактнойИнформацией.ПередЗаписьюНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
КонецЕсли;
КонецЕсли;
// Конец СтандартныеПодсистемы.КонтактнаяИнформация
@@ -87,7 +87,7 @@
Блокировка.Добавить("Справочник.ГруппыВнешнихПользователей");
Блокировка.Заблокировать();
ОбъектГруппы = ДополнительныеСвойства.ГруппаНовогоВнешнегоПользователя.ПолучитьОбъект(); // СправочникСсылка.ГруппыВнешнихПользователей
ОбъектГруппы = ДополнительныеСвойства.ГруппаНовогоВнешнегоПользователя.ПолучитьОбъект(); // СправочникОбъект.ГруппыВнешнихПользователей
ОбъектГруппы.Состав.Добавить().ВнешнийПользователь = Ссылка;
ОбъектГруппы.Записать();
КонецЕсли;
@@ -90,8 +90,13 @@
ОбновитьСписокНедействительныхПользователей(Истина);
ЗаполнитьСтатусПользователей();
Если ЗначениеЗаполнено(Объект.Родитель) И РеквизитФормыВЗначение("Объект").ЭтоНовый() Тогда
Объект.Назначение.Загрузить(Объект.Родитель.Назначение.Выгрузить());
Если ЗначениеЗаполнено(Объект.Родитель) И Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
НазначениеРодителя = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Родитель, "Назначение");
Если ТипЗнч(НазначениеРодителя) = Тип("РезультатЗапроса") Тогда
Объект.Назначение.Загрузить(НазначениеРодителя.Выгрузить());
Иначе
Объект.Назначение.Очистить();
КонецЕсли;
КонецЕсли;
ПользователиСлужебный.ОбновитьНазначениеПриСозданииНаСервере(ЭтотОбъект, Ложь);
@@ -258,7 +258,7 @@
Возврат
НСтр("ru = 'Невозможно добавить подгруппу к предопределенной группе ""Все внешние пользователи"".'");
ИначеЕсли Родитель.ВсеОбъектыАвторизации Тогда
ИначеЕсли ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Родитель, "ВсеОбъектыАвторизации") = Истина Тогда
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Невозможно добавить подгруппу к группе ""%1"",
|так как в число ее участников входят все пользователи.'"), Родитель);
@@ -1067,14 +1067,19 @@
Назначение.Очистить();
НазначениеПредставление = "";
Для Каждого Участник Из Объект.Профиль.Назначение Цикл
Если Участник.ТипПользователей <> Неопределено Тогда
Назначение.Добавить(Участник.ТипПользователей);
ПредставлениеТипа = Участник.ТипПользователей.Метаданные().Синоним;
НазначениеПредставление = ?(ПустаяСтрока(НазначениеПредставление),
ПредставлениеТипа, НазначениеПредставление + ", " + ПредставлениеТипа);
КонецЕсли;
КонецЦикла;
ПрофильНазначение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Профиль, "Назначение");
Если ТипЗнч(ПрофильНазначение) = Тип("РезультатЗапроса") Тогда
НазначениеПрофиля = ПрофильНазначение.Выгрузить();
Для Каждого Участник Из НазначениеПрофиля Цикл
Если Участник.ТипПользователей <> Неопределено Тогда
Назначение.Добавить(Участник.ТипПользователей);
ПредставлениеТипа = Участник.ТипПользователей.Метаданные().Синоним;
НазначениеПредставление = ?(ПустаяСтрока(НазначениеПредставление),
ПредставлениеТипа, НазначениеПредставление + ", " + ПредставлениеТипа);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Элементы.Пользователи.Подсказка = НСтр("ru = 'Допустимые участники:'") + " " + НазначениеПредставление;
КонецПроцедуры
@@ -1088,9 +1093,20 @@
КонецЦикла;
ДеревоПользователей = ПользователиГруппы.ПолучитьЭлементы();
СсылкиСОбъектомАвторизации = Новый Массив; // Массив из СправочникСсылка.ВнешниеПользователи
Для Каждого СтрокаДерева Из ДеревоПользователей Цикл
Если ТипЗнч(СтрокаДерева.Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
СсылкиСОбъектомАвторизации.Добавить(СтрокаДерева.Пользователь);
КонецЕсли;
Если ТипЗнч(СтрокаДерева.Пользователь) = Тип("СправочникСсылка.ГруппыВнешнихПользователей") Тогда
Для Каждого УчастникГруппы Из СтрокаДерева.ПолучитьЭлементы() Цикл
СсылкиСОбъектомАвторизации.Добавить(УчастникГруппы.Пользователь);
КонецЦикла;
КонецЕсли;
КонецЦикла;
ОбъектыАвторизации = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(СсылкиСОбъектомАвторизации, "ОбъектАвторизации");
Индекс = ДеревоПользователей.Количество() - 1;
Пока Индекс >= 0 Цикл
СтрокаДерева = ДеревоПользователей.Получить(Индекс);
@@ -1103,15 +1119,15 @@
УдалитьСтроку = Истина;
ИначеЕсли ТипЗнч(СтрокаДерева.Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи")
И МассивТипов.Найти(ТипЗнч(СтрокаДерева.Пользователь.ОбъектАвторизации)) = Неопределено Тогда
И МассивТипов.Найти(ТипЗнч(ОбъектыАвторизации.Получить(СтрокаДерева.Пользователь))) = Неопределено Тогда
ДеревоПользователей.Удалить(Индекс);
УдалитьСтроку = Истина;
ИначеЕсли ТипЗнч(СтрокаДерева.Пользователь) = Тип("СправочникСсылка.ГруппыВнешнихПользователей") Тогда
Для Каждого УчастникГруппы Из СтрокаДерева.ПолучитьЭлементы() Цикл
Если МассивТипов.Найти(ТипЗнч(УчастникГруппы.Пользователь.ОбъектАвторизации)) = Неопределено Тогда
Если МассивТипов.Найти(ТипЗнч(ОбъектыАвторизации.Получить(УчастникГруппы.Пользователь))) = Неопределено Тогда
УдалитьСтроку = Истина;
Прервать;
КонецЕсли;
@@ -362,7 +362,7 @@
| И НЕ(&Профиль = &ПрофильАдминистратор
| И ГруппыДоступа.Ссылка = &ГруппаДоступаАдминистраторы))";
Запрос.УстановитьПараметр("Профиль", Профиль.Ссылка);
Запрос.УстановитьПараметр("Профиль", Профиль);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
@@ -252,16 +252,8 @@
Процедура ОбновитьРолиПользователейПриИзмененииГруппыДоступа()
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
Иначе
СеансЗапущенБезРазделителей = Истина;
КонецЕсли;
Если ОбщегоНазначения.РазделениеВключено()
И Ссылка = УправлениеДоступом.ГруппаДоступаАдминистраторы()
И Не СеансЗапущенБезРазделителей
И ДополнительныеСвойства.Свойство("ПарольПользователяСервиса") Тогда
ПарольПользователяСервиса = ДополнительныеСвойства.ПарольПользователяСервиса;
@@ -1153,12 +1153,18 @@
ФильтрПоОбъектамМетаданных.ЗагрузитьЗначения(ТаблицаОбъектовМетаданных.ВыгрузитьКолонку("ПолноеИмя"));
ВыбранныеОбъектыМетаданных = Новый СписокЗначений;
ОбъектыНазначения = Новый Массив;
Для Каждого ЭлементНазначение Из Объект.Назначение Цикл
Если ТаблицаОбъектовМетаданных.Найти(ЭлементНазначение.ОбъектНазначения, "Ссылка") <> Неопределено Тогда
ВыбранныеОбъектыМетаданных.Добавить(ЭлементНазначение.ОбъектНазначения.ПолноеИмя);
ОбъектыНазначения.Добавить(ЭлементНазначение.ОбъектНазначения);
КонецЕсли;
КонецЦикла;
ПолныеИменаОбъектовНазначения = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(ОбъектыНазначения, "ПолноеИмя");
Для Каждого КлючИЗначение Из ПолныеИменаОбъектовНазначения Цикл
ВыбранныеОбъектыМетаданных.Добавить(КлючИЗначение.Значение);
КонецЦикла;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФильтрПоОбъектамМетаданных", ФильтрПоОбъектамМетаданных);
ПараметрыФормы.Вставить("ВыбранныеОбъектыМетаданных", ВыбранныеОбъектыМетаданных);
@@ -234,7 +234,7 @@
// Очистка заданий по командам, которые были удалены из таблицы.
Если Не ЭтоНовый() Тогда
Для Каждого СтараяКоманда Из Ссылка.Команды Цикл
Для Каждого СтараяКоманда Из ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Команды").Выгрузить() Цикл
Если ЗначениеЗаполнено(СтараяКоманда.РегламентноеЗаданиеGUID)
И ТаблицаКоманд.Найти(СтараяКоманда.РегламентноеЗаданиеGUID, "РегламентноеЗаданиеGUID") = Неопределено Тогда
РегламентныеЗаданияСервер.УдалитьЗадание(СтараяКоманда.РегламентноеЗаданиеGUID);
@@ -354,7 +354,7 @@
СсылкиОбъектовМетаданных = ТаблицаНазначение.ВыгрузитьКолонку("ОбъектНазначения");
Если НЕ ЭтоНовый() Тогда
Для Каждого СтрокаТаблицы Из Ссылка.Назначение Цикл
Для Каждого СтрокаТаблицы Из ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Назначение").Выгрузить() Цикл
Если СсылкиОбъектовМетаданных.Найти(СтрокаТаблицы.ОбъектНазначения) = Неопределено Тогда
СсылкиОбъектовМетаданных.Добавить(СтрокаТаблицы.ОбъектНазначения);
КонецЕсли;
@@ -2075,7 +2075,8 @@
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"].ЛицоБезДоверенности) Тогда
Если ЗначениеЗаполнено(ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"].ЛицоБезДоверенности)
Или ЗначениеЗаполнено(ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"].РеквизитыЛицаБезДоверенности) Тогда
ЗаполнитьТипОрганизации(ИмяЭлементаРуководитель, "ФизическоеЛицо");
ЭтотОбъект[ИмяЭлементаРуководитель] = ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"].ЛицоБезДоверенности;
@@ -2084,7 +2085,7 @@
ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"].РеквизитыЛицаБезДоверенности;
УстановитьОтображениеРеквизитовЗависимыхОтОрганизации(ИмяЭлементаРуководитель);
ОбновитьСтрокуДоверителейПредставителей(ИмяЭлементаРуководитель);
Иначе
ИначеЕсли ЗначениеЗаполнено(ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"].ЛицоБезДоверенности) Тогда
ПриИзмененииОрганизацииНаСервере(ИмяЭлементаРуководитель, Загрузка);
КонецЕсли;
КонецЕсли;
@@ -102,9 +102,11 @@
// Копирование элемента.
ЗначениеКопирования = Параметры.ЗначениеКопирования;
Объект.Наименование = "";
ИдентификаторКопируемогоПользователяИБ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
ЗначениеКопирования, "ИдентификаторПользователяИБ");
Если Не ПользователиСлужебный.УровеньДоступаПользователяВыше(ЗначениеКопирования, УровеньДоступа) Тогда
ПрочитатьПользователяИБ(ЗначениеЗаполнено(ЗначениеКопирования.ИдентификаторПользователяИБ));
ПрочитатьПользователяИБ(ЗначениеЗаполнено(ИдентификаторКопируемогоПользователяИБ));
Иначе
ПрочитатьПользователяИБ();
КонецЕсли;
@@ -268,6 +268,17 @@
ПараметрыПолучателей.ТипПолучателейРассылки = ИдентификаторОбъектаМетаданных;
ПараметрыПолучателей.Получатели = Получатели;
ПолучателиМетаданные = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ИдентификаторОбъектаМетаданных, Ложь);
Если ПолучателиМетаданные.Иерархический Тогда
МассивПолучателей = Новый Массив;
Для Каждого ПолучательРассылки Из Получатели Цикл
МассивПолучателей.Добавить(ПолучательРассылки.Получатель);
КонецЦикла;
ПолучателиРеквизитЭтоГруппа = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(МассивПолучателей, "ЭтоГруппа");
Иначе
ПолучателиРеквизитЭтоГруппа = Неопределено;
КонецЕсли;
ПолучателиРассылки = РассылкаОтчетов.СформироватьСписокПолучателейРассылки(ПараметрыПолучателей);
Для каждого ПолучательРассылки Из Получатели Цикл
Если ПолучателиРассылки.Количество() = 0 Тогда
@@ -278,7 +289,9 @@
ПочтаПолучателя = ПолучателиРассылки.Получить(ПолучательРассылки.Получатель);
ПолучательРассылки.Адрес = ?(ПочтаПолучателя <> Неопределено, ПочтаПолучателя, "")
КонецЕсли;
Если ПолучательРассылки.Получатель.ЭтоГруппа Или ТипЗнч(ПолучательРассылки.Получатель) = Тип("СправочникСсылка.ГруппыПользователей") Тогда
ЭтоГруппа = ?(ПолучателиРеквизитЭтоГруппа <> Неопределено, ПолучателиРеквизитЭтоГруппа.Получить(ПолучательРассылки.Получатель), Ложь);
ЭтоГруппа = ?(ЭтоГруппа <> Неопределено, ЭтоГруппа, Ложь);
Если ЭтоГруппа Или ТипЗнч(ПолучательРассылки.Получатель) = Тип("СправочникСсылка.ГруппыПользователей") Тогда
ПолучательРассылки.ИндексКартинки = 3;
Иначе
ПолучательРассылки.ИндексКартинки = 1;
@@ -4092,7 +4092,9 @@
СписокПолучателейРассылки = РассылкаОтчетов.СформироватьСписокПолучателейРассылки(ПараметрыПолучателей, Неопределено);
ПолучателиМетаданные = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Объект.ТипПолучателейРассылки, Ложь);
ТипПолучателей = Объект.ТипПолучателейРассылки.КлючОбъектаМетаданных.Получить();
КлючОбъектаМетаданных = ?(ЗначениеЗаполнено(Объект.ТипПолучателейРассылки),
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ТипПолучателейРассылки, "КлючОбъектаМетаданных"), Неопределено);
ТипПолучателей = ?(КлючОбъектаМетаданных <> Неопределено, КлючОбъектаМетаданных.Получить(), Неопределено);
ПервыйПолучатель = Новый Структура ("Наименование, Ссылка", "", Новый (ТипПолучателей));
@@ -4389,7 +4391,8 @@
&НаСервере
Процедура ПрочитатьРасписаниеРегламентногоЗадания()
УстановитьПривилегированныйРежим(Истина);
ИдентификаторЗадания = ?(СозданКопированием, РассылкаОснование.РегламентноеЗадание, Объект.РегламентноеЗадание);
ИдентификаторЗадания = ?(СозданКопированием, ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РассылкаОснование,
"РегламентноеЗадание"), Объект.РегламентноеЗадание);
Если ТипЗнч(ИдентификаторЗадания) = Тип("УникальныйИдентификатор") Тогда
Задание = РегламентныеЗаданияСервер.Задание(ИдентификаторЗадания);
Если Задание <> Неопределено Тогда
@@ -4405,10 +4408,11 @@
&НаСервере
Процедура ПрочитатьНастройкиОтчетовОбъектаКопирования()
КоличествоСтрок = Объект.Отчеты.Количество();
ОтчетыРассылкиОснования = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РассылкаОснование, "Отчеты").Выгрузить();
Для ОбратныйИндекс = 1 По КоличествоСтрок Цикл
Индекс = КоличествоСтрок - ОбратныйИндекс;
СтрокаОтчеты = Объект.Отчеты.Получить(Индекс);
СтрокаОтчетыОбъектаКопирования = РассылкаОснование.Отчеты.Получить(Индекс);
СтрокаОтчетыОбъектаКопирования = ОтчетыРассылкиОснования.Получить(Индекс);
ПользовательскиеНастройкиКД = СтрокаОтчетыОбъектаКопирования.Настройки.Получить();
@@ -32,7 +32,7 @@
ДоступнаПечатьСоШтампом =
ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись")
И Объект.Расширение = "mxl"
И (НРег(Объект.Расширение) = "mxl" Или НРег(Объект.Расширение) = "docx")
И Объект.ПодписанЭП;
Элементы.ПечатьСоШтампом.Видимость = ДоступнаПечатьСоШтампом;
@@ -954,8 +954,8 @@
Процедура ПечатьСоШтампом(Команда)
Если ЗначениеЗаполнено(Объект.Ссылка) Или Записать() Тогда
ДокументСоШтампом = РаботаСФайламиСлужебныйВызовСервера.ТабличныйДокументСоШтампом(Объект.Ссылка);
РаботаСФайламиСлужебныйКлиент.ПечатьФайлаСоШтампом(ДокументСоШтампом);
ДокументСоШтампом = РаботаСФайламиСлужебныйВызовСервера.ДокументСоШтампом(Объект.Ссылка);
РаботаСФайламиСлужебныйКлиент.ПечатьФайлаСоШтампом(ДокументСоШтампом, Объект.Наименование);
КонецЕсли;
КонецПроцедуры
@@ -11,6 +11,11 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не ЗначениеЗаполнено(Параметры.Шаблон) Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
Предмет = Параметры.Предмет;
ДобавитьЭлементыФормыПараметровШаблона(Параметры.Шаблон);
@@ -39,33 +44,9 @@
Процедура ДобавитьЭлементыФормыПараметровШаблона(Шаблон)
ДобавляемыеРеквизиты = Новый Массив;
Если Шаблон.ШаблонПоВнешнейОбработке Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки");
ВнешнийОбъект = МодульДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки(Шаблон.ВнешняяОбработка);
ПараметрыШаблона = ВнешнийОбъект.ПараметрыШаблона();
ТаблицаПараметрыШаблона = Новый ТаблицаЗначений;
ТаблицаПараметрыШаблона.Колонки.Добавить("Имя" , Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(50, ДопустимаяДлина.Переменная)));
ТаблицаПараметрыШаблона.Колонки.Добавить("Тип" , Новый ОписаниеТипов("ОписаниеТипов"));
ТаблицаПараметрыШаблона.Колонки.Добавить("Представление" , Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150, ДопустимаяДлина.Переменная)));
Для каждого ПараметрШаблона Из ПараметрыШаблона Цикл
ОписаниеТипа = ПараметрШаблона.ОписаниеТипа.Типы();
Если ОписаниеТипа.Количество() > 0 Тогда
Если ОписаниеТипа[0] <> ТипЗнч(Предмет) Тогда
НовыйПараметр = ТаблицаПараметрыШаблона.Добавить();
НовыйПараметр.Имя = ПараметрШаблона.ИмяПараметра;
НовыйПараметр.Представление = ПараметрШаблона.ПредставлениеПараметра;
НовыйПараметр.Тип = ПараметрШаблона.ОписаниеТипа;
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ПараметрШаблона.ИмяПараметра, ПараметрШаблона.ОписаниеТипа,, ПараметрШаблона.ПредставлениеПараметра));
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Иначе
Сведения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Шаблон, "ШаблонПоВнешнейОбработке, ВнешняяОбработка");
Если Сведения.ШаблонПоВнешнейОбработке <> Истина Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
@@ -95,6 +76,30 @@
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(Реквизит.Имя, ОписаниеТипаПараметра,, Реквизит.Представление));
КонецЦикла;
ИначеЕсли ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки")
И Сведения.ВнешняяОбработка <> Неопределено Тогда
МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки");
ВнешнийОбъект = МодульДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки(Сведения.ВнешняяОбработка);
ПараметрыШаблона = ВнешнийОбъект.ПараметрыШаблона();
ТаблицаПараметрыШаблона = Новый ТаблицаЗначений;
ТаблицаПараметрыШаблона.Колонки.Добавить("Имя" , Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(50, ДопустимаяДлина.Переменная)));
ТаблицаПараметрыШаблона.Колонки.Добавить("Тип" , Новый ОписаниеТипов("ОписаниеТипов"));
ТаблицаПараметрыШаблона.Колонки.Добавить("Представление" , Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150, ДопустимаяДлина.Переменная)));
Для каждого ПараметрШаблона Из ПараметрыШаблона Цикл
ОписаниеТипа = ПараметрШаблона.ОписаниеТипа.Типы();
Если ОписаниеТипа.Количество() > 0 Тогда
Если ОписаниеТипа[0] <> ТипЗнч(Предмет) Тогда
НовыйПараметр = ТаблицаПараметрыШаблона.Добавить();
НовыйПараметр.Имя = ПараметрШаблона.ИмяПараметра;
НовыйПараметр.Представление = ПараметрШаблона.ПредставлениеПараметра;
НовыйПараметр.Тип = ПараметрШаблона.ОписаниеТипа;
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ПараметрШаблона.ИмяПараметра, ПараметрШаблона.ОписаниеТипа,, ПараметрШаблона.ПредставлениеПараметра));
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
@@ -1901,7 +1901,12 @@
ОчиститьШаблон(ЭтотОбъект);
ВнешнийОбъект = МодульДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки(Объект.ВнешняяОбработка);
Если Не МодульДополнительныеОтчетыИОбработки.ЭтоВидОбработкиДляШаблоновСообщений(Объект.ВнешняяОбработка.Вид) Тогда
Если ВнешнийОбъект = Неопределено Тогда
Возврат;
КонецЕсли;
ВидОбработки = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ВнешняяОбработка, "Вид");
Если Не МодульДополнительныеОтчетыИОбработки.ЭтоВидОбработкиДляШаблоновСообщений(ВидОбработки) Тогда
Возврат;
КонецЕсли;
@@ -1957,8 +1962,6 @@
&НаКлиентеНаСервереБезКонтекста
Функция ОпределитьПредметШаблонаСообщений(ИмяВНазначение, Знач НастройкиШаблоновСообщений)
Перем НазначениеШаблона;
НазначениеШаблона = НастройкиШаблоновСообщений.ПредметыШаблонов.Найти(ИмяВНазначение, "Представление");
Если НазначениеШаблона = Неопределено Тогда
НазначениеШаблона = НастройкиШаблоновСообщений.ПредметыШаблонов.Найти(ИмяВНазначение, "Имя");
@@ -29,11 +29,19 @@
Процедура ЗаполнитьНаОснованииЭлектронноеПисьмоИсходящее(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
ТемаПисьма = ДанныеЗаполнения.Тема;
ТекстШаблонаПисьмаHTML = ДанныеЗаполнения.ТекстHTML;
ТекстШаблонаПисьма = ДанныеЗаполнения.Текст;
ТемаПисьма = ДанныеЗаполнения.Тема;
Наименование = ДанныеЗаполнения.Тема;
РеквизитыШаблона = Новый Массив;
РеквизитыШаблона.Добавить("Тема");
РеквизитыШаблона.Добавить("ТекстHTML");
РеквизитыШаблона.Добавить("Текст");
РеквизитыШаблона.Добавить("ТипТекста");
СведенияОбШаблоне = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДанныеЗаполнения, РеквизитыШаблона);
ТемаПисьма = СведенияОбШаблоне.Тема;
ТекстШаблонаПисьмаHTML = СведенияОбШаблоне.ТекстHTML;
ТекстШаблонаПисьма = СведенияОбШаблоне.Текст;
ТемаПисьма = СведенияОбШаблоне.Тема;
Наименование = СведенияОбШаблоне.Тема;
ПредназначенДляЭлектронныхПисем = Истина;
ПредназначенДляSMS = Ложь;
ПолноеИмяТипаПараметраВводаНаОсновании = НСтр("ru = 'Общий'");
@@ -44,8 +52,8 @@
ТипыТекстовЭлектронныхПисемHTML = МодульРаботаСПочтовымиСообщениямиСлужебный.ТипТекстовЭлектронныхПисем("HTML");
ТипыТекстовЭлектронныхПисемHTMLСКартинками = МодульРаботаСПочтовымиСообщениямиСлужебный.ТипТекстовЭлектронныхПисем("HTMLСКартинками");
Если ДанныеЗаполнения.ТипТекста = ТипыТекстовЭлектронныхПисемHTML
ИЛИ ДанныеЗаполнения.ТипТекста = ТипыТекстовЭлектронныхПисемHTMLСКартинками Тогда
Если СведенияОбШаблоне.ТипТекста = ТипыТекстовЭлектронныхПисемHTML
ИЛИ СведенияОбШаблоне.ТипТекста = ТипыТекстовЭлектронныхПисемHTMLСКартинками Тогда
ТипТекстаПисьма = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML;
КонецЕсли;
@@ -47,7 +47,7 @@
Родитель = НаборСвойств;
КонецЕсли;
НаборДополнительныхРеквизитов = Родитель.ДополнительныеРеквизиты;
НаборДополнительныхРеквизитов = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Родитель, "ДополнительныеРеквизиты").Выгрузить();
ПредопределенныеНаборыСвойств = УправлениеСвойствамиПовтИсп.ПредопределенныеНаборыСвойств();
ОписаниеНабора = ПредопределенныеНаборыСвойств.Получить(Родитель); // см. Справочники.НаборыДополнительныхРеквизитовИСведений.СвойстваНабора
@@ -752,6 +752,20 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ИмяКолонкиСостава</name>
<id>6</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ЗаписатьИЗакрыть</name>
<title>
@@ -26,6 +26,7 @@
ЭтоВнешниеПользователи = Параметры.ВнешниеПользователи;
РежимОткрытияИзКарточкиПользователя = Ложь;
КонецЕсли;
ИмяКолонкиСостава = ?(ЭтоВнешниеПользователи, "ВнешнийПользователь", "Пользователь");
КоличествоПользователей = МассивПользователей.Количество();
Если КоличествоПользователей = 0 Тогда
@@ -221,12 +222,13 @@
КонецЕсли;
ГруппыПользователей = Неопределено;
ПодчиненныеГруппы = Новый Массив;
ПодчиненныеГруппы = Новый Массив; // Массив из СтрокаТаблицыЗначений: см. ПолучитьГруппыВнешнихПользователей.ГруппыПользователей
МассивРодителей = Новый Массив;
Если ЭтоВнешниеПользователи Тогда
ПустаяГруппа = Справочники.ГруппыВнешнихПользователей.ПустаяСсылка();
ПолучитьГруппыВнешнихПользователей(ГруппыПользователей);
ОбъектыАвторизации = ОбъектыАвторизацииПользователей(СписокПользователей.МассивПользователей);
Иначе
ПустаяГруппа = Справочники.ГруппыПользователей.ПустаяСсылка();
ПолучитьГруппыПользователей(ГруппыПользователей);
@@ -238,12 +240,7 @@
КонецЕсли;
ПолучитьПодчиненныеГруппы(ГруппыПользователей, ПодчиненныеГруппы, ПустаяГруппа);
Если ТипЗнч(СписокПользователей.МассивПользователей[0]) = Тип("СправочникСсылка.Пользователи") Тогда
ТипПользователя = "Пользователь";
Иначе
ТипПользователя = "ВнешнийПользователь";
КонецЕсли;
СоставГрупп = СоставГрупп();
Пока ПодчиненныеГруппы.Количество() > 0 Цикл
МассивРодителей.Очистить();
@@ -253,29 +250,24 @@
Если Группа.Родитель = ПустаяГруппа Тогда
НоваяСтрокаГрупп = ДеревоГруппПриемник.Строки.Добавить();
НоваяСтрокаГрупп.Группа = Группа.Ссылка;
НоваяСтрокаГрупп.Картинка = ?(ТипПользователя = "Пользователь", 3, 9);
НоваяСтрокаГрупп.Картинка = ?(ЭтоВнешниеПользователи, 9, 3);
Если СписокПользователей.КоличествоПользователей = 1 Тогда
ПользовательКосвенноВключенВГруппу = Ложь;
ПользовательСсылка = СписокПользователей.МассивПользователей[0];
Если ТипПользователя = "ВнешнийПользователь" Тогда
Тип = ТипЗнч(ПользовательСсылка.ОбъектАвторизации);
Если ЭтоВнешниеПользователи И Группа.ВсеОбъектыАвторизации Тогда
Тип = ТипЗнч(ОбъектыАвторизации.Получить(ПользовательСсылка));
ОписаниеТипаСсылки = Новый ОписаниеТипов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Тип));
Значение = ОписаниеТипаСсылки.ПривестиЗначение(Неопределено);
Назначение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Группа.Ссылка, "Назначение").Выгрузить();
Отбор = Новый Структура;
Отбор.Вставить("ТипПользователей", Значение);
ПользовательКосвенноВключенВГруппу = Группа.ВсеОбъектыАвторизации
И Назначение.НайтиСтроки(Отбор).Количество() <> 0;
НоваяСтрокаГрупп.ГруппаНеИзменяется = ПользовательКосвенноВключенВГруппу;
Отбор = Новый Структура("ТипПользователей", Значение);
ПользовательКосвенноВключенВГруппу = ЗначениеЗаполнено(Группа.Назначение.НайтиСтроки(Отбор));
НоваяСтрокаГрупп.ГруппаНеИзменяется = Истина;
КонецЕсли;
НайденныйПользователь = Группа.Ссылка.Состав.Найти(ПользовательСсылка, ТипПользователя);
НоваяСтрокаГрупп.Пометка = ?(НайденныйПользователь <> Неопределено Или ПользовательКосвенноВключенВГруппу, 1, 0);
НоваяСтрокаГрупп.Пометка = ?(ПользовательВГруппе(СоставГрупп,
Группа.Ссылка, ПользовательСсылка) Или ПользовательКосвенноВключенВГруппу, 1, 0);
Иначе
НоваяСтрокаГрупп.Пометка = 2;
КонецЕсли;
@@ -285,11 +277,11 @@
ДеревоГруппПриемник.Строки.НайтиСтроки(Новый Структура("Группа", Группа.Родитель), Истина);
НоваяСтрокаПодчиненныхГрупп = ГруппаРодитель[0].Строки.Добавить();
НоваяСтрокаПодчиненныхГрупп.Группа = Группа.Ссылка;
НоваяСтрокаПодчиненныхГрупп.Картинка = ?(ТипПользователя = "Пользователь", 3, 9);
НоваяСтрокаПодчиненныхГрупп.Картинка = ?(ЭтоВнешниеПользователи, 9, 3);
Если СписокПользователей.КоличествоПользователей = 1 Тогда
НоваяСтрокаПодчиненныхГрупп.Пометка = ?(Группа.Ссылка.Состав.Найти(
СписокПользователей.МассивПользователей[0], ТипПользователя) = Неопределено, 0, 1);
НоваяСтрокаПодчиненныхГрупп.Пометка = ?(ПользовательВГруппе(СоставГрупп,
Группа.Ссылка, СписокПользователей.МассивПользователей[0]), 1, 0);
Иначе
НоваяСтрокаПодчиненныхГрупп.Пометка = 2;
КонецЕсли;
@@ -341,15 +333,20 @@
// * Ссылка - СправочникСсылка.ГруппыВнешнихПользователей
// * Родитель - СправочникСсылка.ГруппыВнешнихПользователей
// * ВсеОбъектыАвторизации - Булево
// * Назначение - ТаблицаЗначений:
// ** ТипПользователей - ОпределяемыйТип.ВнешнийПользователь
//
&НаСервере
Процедура ПолучитьГруппыВнешнихПользователей(ГруппыПользователей)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
Запрос.Текст =
"ВЫБРАТЬ
| ГруппыВнешнихПользователей.Ссылка,
| ГруппыВнешнихПользователей.Родитель,
| ГруппыВнешнихПользователей.ВсеОбъектыАвторизации
| ГруппыВнешнихПользователей.ВсеОбъектыАвторизации,
| ГруппыВнешнихПользователей.Назначение.(
| ТипПользователей)
|ИЗ
| Справочник.ГруппыВнешнихПользователей КАК ГруппыВнешнихПользователей
|ГДЕ
@@ -363,7 +360,7 @@
//
// Параметры:
// ГруппыПользователей - см. ПолучитьГруппыВнешнихПользователей.ГруппыПользователей
// ПодчиненныеГруппы - Массив
// ПодчиненныеГруппы - Массив из СтрокаТаблицыЗначений: см. ПолучитьГруппыВнешнихПользователей.ГруппыПользователей
// ГруппаРодитель - СправочникСсылка.ГруппыПользователей
// - СправочникСсылка.ГруппыВнешнихПользователей
//
@@ -385,13 +382,83 @@
КонецПроцедуры
&НаСервере
Функция ОбъектыАвторизацииПользователей(МассивПользователей)
Запрос = Новый Запрос;
Запрос.Параметры.Вставить("МассивПользователей", МассивПользователей);
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВнешниеПользователи.Ссылка КАК Ссылка,
| ВнешниеПользователи.ОбъектАвторизации КАК ОбъектАвторизации
|ИЗ
| Справочник.ВнешниеПользователи КАК ВнешниеПользователи
|ГДЕ
| ВнешниеПользователи.Ссылка В (&МассивПользователей)";
Выборка = Запрос.Выполнить().Выбрать();
Результат = Новый Соответствие;
Пока Выборка.Следующий() Цикл
Результат.Вставить(Выборка.Ссылка, Выборка.ОбъектАвторизации);
КонецЦикла;
Возврат Результат;
КонецФункции
&НаСервере
Функция СоставГрупп()
Запрос = Новый Запрос;
Если ЭтоВнешниеПользователи Тогда
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоставГрупп.Ссылка КАК Группа,
| СоставГрупп.ВнешнийПользователь КАК Пользователь
|ИЗ
| Справочник.ГруппыВнешнихПользователей.Состав КАК СоставГрупп";
Иначе
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоставГрупп.Ссылка КАК Группа,
| СоставГрупп.Пользователь КАК Пользователь
|ИЗ
| Справочник.ГруппыПользователей.Состав КАК СоставГрупп";
КонецЕсли;
Выгрузка = Запрос.Выполнить().Выгрузить();
Выгрузка.Индексы.Добавить("Группа, Пользователь");
Возврат Выгрузка;
КонецФункции
&НаСервере
Функция ПользовательВГруппе(СоставГрупп, Группа, Пользователь)
Отбор = Новый Структура;
Отбор.Вставить("Группа", Группа);
Отбор.Вставить("Пользователь", Пользователь);
Возврат ЗначениеЗаполнено(СоставГрупп.НайтиСтроки(Отбор));
КонецФункции
// Параметры:
// УведомлениеПользователя - Структура:
// * Сообщение - Строка
// * ЕстьОшибки - Булево
// * ПолныйТекстСообщения - Строка
//
&НаСервере
Процедура ЗаписатьИзменения(УведомлениеПользователя)
МассивПользователей = Неопределено;
НеПеремещенныеПользователи = Новый Соответствие;
ДеревоГруппИсточник = ДеревоГрупп.ПолучитьЭлементы();
ПерезаполнитьСоставГрупп(ДеревоГруппИсточник, МассивПользователей, НеПеремещенныеПользователи);
ПерезаполнитьСоставГрупп(ДеревоГруппИсточник, СоставГрупп(), МассивПользователей, НеПеремещенныеПользователи);
СформироватьТекстСообщения(МассивПользователей, УведомлениеПользователя, НеПеремещенныеПользователи)
КонецПроцедуры
@@ -401,13 +468,14 @@
// Параметры:
// ДеревоГруппИсточник - ДанныеФормыКоллекцияЭлементовДерева
// МассивПеремещенныхПользователей - Массив из СправочникСсылка.Пользователи
// - Массив из СправочникСсылка.ВнешниеПользователи
// НеПеремещенныеПользователи - Соответствие из КлючИЗначение:
// * Ключ - СправочникСсылка.Пользователи
// * Значение - Массив из СправочникСсылка.ГруппыПользователей
// - СправочникСсылка.ГруппыВнешнихПользователей
//
&НаСервере
Процедура ПерезаполнитьСоставГрупп(ДеревоГруппИсточник, МассивПеремещенныхПользователей, НеПеремещенныеПользователи)
Процедура ПерезаполнитьСоставГрупп(ДеревоГруппИсточник, СоставГрупп, МассивПеремещенныхПользователей, НеПеремещенныеПользователи)
МассивПользователей = СписокПользователей.МассивПользователей; // Массив из СправочникСсылка.Пользователи
Если МассивПеремещенныхПользователей = Неопределено Тогда
@@ -421,10 +489,7 @@
Для Каждого ПользовательСсылка Из МассивПользователей Цикл
Если ТипЗнч(ПользовательСсылка) = Тип("СправочникСсылка.Пользователи") Тогда
ТипПользователя = "Пользователь";
Иначе
ТипПользователя = "ВнешнийПользователь";
Если ЭтоВнешниеПользователи Тогда
ПеремещениеВозможно = ПользователиСлужебный.ВозможноПеремещениеПользователя(СтрокаДерева.Группа, ПользовательСсылка);
Если Не ПеремещениеВозможно Тогда
@@ -438,18 +503,16 @@
Продолжить;
КонецЕсли;
КонецЕсли;
Добавлять = ?(СтрокаДерева.Группа.Состав.Найти(
ПользовательСсылка, ТипПользователя) = Неопределено, Истина, Ложь);
Если Добавлять Тогда
ПользователиСлужебный.ДобавитьПользователяВГруппу(СтрокаДерева.Группа, ПользовательСсылка, ТипПользователя);
Если Не ПользовательВГруппе(СоставГрупп, СтрокаДерева.Группа, ПользовательСсылка) Тогда
Добавлен = Ложь;
ПользователиСлужебный.ДобавитьПользователяВГруппу(СтрокаДерева.Группа,
ПользовательСсылка, ИмяКолонкиСостава, Добавлен);
Если МассивПеремещенныхПользователей.Найти(ПользовательСсылка) = Неопределено Тогда
Если Добавлен И МассивПеремещенныхПользователей.Найти(ПользовательСсылка) = Неопределено Тогда
МассивПеремещенныхПользователей.Добавить(ПользовательСсылка);
КонецЕсли;
КонецЕсли;
КонецЦикла;
@@ -459,21 +522,14 @@
Для Каждого ПользовательСсылка Из МассивПользователей Цикл
Если ТипЗнч(ПользовательСсылка) = Тип("СправочникСсылка.Пользователи") Тогда
ТипПользователя = "Пользователь";
Иначе
ТипПользователя = "ВнешнийПользователь";
КонецЕсли;
Удалять = ?(СтрокаДерева.Группа.Состав.Найти(
ПользовательСсылка, ТипПользователя) <> Неопределено, Истина, Ложь);
Если Удалять Тогда
ПользователиСлужебный.УдалитьПользователяИзГруппы(СтрокаДерева.Группа, ПользовательСсылка, ТипПользователя);
Если ПользовательВГруппе(СоставГрупп, СтрокаДерева.Группа, ПользовательСсылка) Тогда
Удален = Ложь;
ПользователиСлужебный.УдалитьПользователяИзГруппы(СтрокаДерева.Группа,
ПользовательСсылка, ИмяКолонкиСостава, Удален);
Если МассивПеремещенныхПользователей.Найти(ПользовательСсылка) = Неопределено Тогда
Если Удален И МассивПеремещенныхПользователей.Найти(ПользовательСсылка) = Неопределено Тогда
МассивПеремещенныхПользователей.Добавить(ПользовательСсылка);
КонецЕсли;
КонецЕсли;
КонецЦикла;
@@ -482,12 +538,17 @@
ЭлементыСтрокиДерева = СтрокаДерева.ПолучитьЭлементы();
// Рекурсия
ПерезаполнитьСоставГрупп(ЭлементыСтрокиДерева, МассивПеремещенныхПользователей, НеПеремещенныеПользователи);
ПерезаполнитьСоставГрупп(ЭлементыСтрокиДерева, СоставГрупп, МассивПеремещенныхПользователей, НеПеремещенныеПользователи);
КонецЦикла;
КонецПроцедуры
// Параметры:
// МассивПеремещенныхПользователей - см. ПерезаполнитьСоставГрупп.МассивПеремещенныхПользователей
// УведомлениеПользователя - см. ЗаписатьИзменения.УведомлениеПользователя
// НеПеремещенныеПользователи - см. ПерезаполнитьСоставГрупп.НеПеремещенныеПользователи
//
&НаСервере
Процедура СформироватьТекстСообщения(МассивПеремещенныхПользователей, УведомлениеПользователя, НеПеремещенныеПользователи)
@@ -230,7 +230,7 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Close</commandName>
<commandName>Form.Command.ОтменитьИЗакрыть</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
@@ -312,6 +312,41 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ОтменятьПриЗакрытии</name>
<id>2</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ОтменитьИЗакрыть</name>
<title>
<key>ru</key>
<value>Отменить и закрыть</value>
</title>
<id>1</id>
<toolTip>
<key>ru</key>
<value>Отменить и закрыть</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ОтменитьИЗакрыть</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters>
<name>ОжидатьЗавершение</name>
<valueType>
@@ -402,6 +437,14 @@
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>РежимОткрытияОкнаОжидания</name>
<valueType/>
</parameters>
<parameters>
<name>ОтменятьПриЗакрытииФормыВладельца</name>
<valueType/>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -27,11 +27,23 @@
Элементы.ДекорацияПоясняющийТекстДлительнойОперации.Заголовок = ТекстСообщения;
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.Заголовок) Тогда
Если Не ЗначениеЗаполнено(Параметры.Заголовок) Тогда
Элементы.СообщениеОперации.ОтображатьЗаголовок = Ложь;
ИначеЕсли Параметры.РежимОткрытияОкнаОжидания = РежимОткрытияОкнаФормы.Независимый Тогда
Заголовок = Параметры.Заголовок;
Элементы.СообщениеОперации.ОтображатьЗаголовок = Ложь;
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Верх;
КоманднаяПанель.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Лево;
Иначе
Элементы.СообщениеОперации.Заголовок = Параметры.Заголовок;
Элементы.СообщениеОперации.ОтображатьЗаголовок = Истина;
КонецЕсли;
Если ТипЗнч(Параметры.ОтменятьПриЗакрытииФормыВладельца) = Тип("Булево") Тогда
ОтменятьПриЗакрытии = Параметры.ОтменятьПриЗакрытииФормыВладельца;
Иначе
Элементы.СообщениеОперации.ОтображатьЗаголовок = Ложь;
ОтменятьПриЗакрытии = Истина;
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.ИдентификаторЗадания) Тогда
@@ -108,7 +120,7 @@
КонецЕсли;
Если СтандартноеОповещениеОЗакрытии Тогда
ДлительнаяОперация = ПроверитьИОтменитьЕслиВыполняется(ИдентификаторЗадания);
ДлительнаяОперация = ПроверитьИОтменитьЕслиВыполняется(ИдентификаторЗадания, ОтменятьПриЗакрытии);
ЗавершитьДлительнуюОперациюИЗакрытьФорму(ДлительнаяОперация);
Иначе
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
@@ -118,6 +130,18 @@
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ОтменитьИЗакрыть(Команда)
ОтменятьПриЗакрытии = Истина;
Закрыть();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
@@ -235,7 +259,7 @@
ФормаЗакрывается = Истина;
ДлительнаяОперация = ПроверитьИОтменитьЕслиВыполняется(ИдентификаторЗадания);
ДлительнаяОперация = ПроверитьИОтменитьЕслиВыполняется(ИдентификаторЗадания, ОтменятьПриЗакрытии);
ЗавершитьДлительнуюОперациюИЗакрытьФорму(ДлительнаяОперация);
КонецПроцедуры
@@ -252,11 +276,11 @@
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьИОтменитьЕслиВыполняется(ИдентификаторЗадания)
Функция ПроверитьИОтменитьЕслиВыполняется(ИдентификаторЗадания, ОтменятьПриЗакрытии)
ДлительнаяОперация = ДлительныеОперации.ОперацияВыполнена(ИдентификаторЗадания);
Если ДлительнаяОперация.Статус = "Выполняется" Тогда
Если ДлительнаяОперация.Статус = "Выполняется" И ОтменятьПриЗакрытии Тогда
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
ДлительнаяОперация.Статус = "Отменено";
КонецЕсли;
@@ -12,9 +12,9 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.НеразделенныйПользователь.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Просмотр сведений о пользователе %1 не доступен, т.к. это
НСтр("ru = 'Просмотр сведений о пользователе ""%1"" не доступен, т.к. это
|служебная учетная запись, предусмотренная для администраторов сервиса.'"),
Параметры.Ключ.Наименование);
Строка(Параметры.Ключ));
КонецПроцедуры
@@ -86,14 +86,14 @@
ИскатьВоВсехРазделах = Истина;
КонецЕсли;
// Заполнение панели.
ОпределитьПодсистемыИЗаголовок(Параметры);
ДлительнаяОперация = ОбновитьПанельОтчетовНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ДлительнаяОперация.Статус = "Выполняется" Тогда
Если ДлительнаяОперация <> Неопределено И ДлительнаяОперация.Статус = "Выполняется" Тогда
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
Завершение = Новый ОписаниеОповещения("ОбновитьПанельОтчетовЗавершение", ЭтотОбъект);
@@ -495,6 +495,10 @@
КонецЕсли;
Элементы.Страницы.ТекущаяСтраница = Элементы.Ожидание;
Если ДлительнаяОперация <> Неопределено И ДлительнаяОперация.Статус = "Выполняется" Тогда
Возврат Ложь;
КонецЕсли;
ДлительнаяОперация = ОбновитьПанельОтчетовНаСервере(Событие);
Если ДлительнаяОперация <> Неопределено И ДлительнаяОперация.Статус = "Выполняется" Тогда
Завершение = Новый ОписаниеОповещения("ОбновитьПанельОтчетовЗавершение", ЭтотОбъект);
@@ -508,11 +512,8 @@
ЗакончитьЗамер(Замер);
КонецЕсли;
Если ДлительнаяОперация = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
Возврат ДлительнаяОперация <> Неопределено;
КонецФункции
&НаКлиенте
@@ -660,10 +661,6 @@
&НаСервере
Функция ОбновитьПанельОтчетовНаСервере(Знач Событие = "")
Если ЗначениеЗаполнено(Событие) И ДлительнаяОперация <> Неопределено И ДлительнаяОперация.Статус = "Выполняется" Тогда
Возврат Неопределено;
КонецЕсли;
Если Событие = "СброситьНастройки" Тогда
РегистрыСведений.НастройкиВариантовОтчетов.СброситьНастройкиПользователяВРазделе(ТекущийРазделСсылка);
КонецЕсли;
@@ -738,8 +735,8 @@
СтрокаТаблицы.ВидимыхВариантов = 0;
КонецЦикла;
// Заполнение панели отчетов
Возврат ЗаполнитьПанельОтчетовВФоне();
КонецФункции
////////////////////////////////////////////////////////////////////////////////
@@ -972,16 +969,16 @@
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.ЗапуститьНеВФоне = (ВариантыОтчетов.ПредставленияЗаполнены() = "Заполнены");
ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне("ВариантыОтчетов.НайтиВариантыОтчетовДляВывода", ПараметрыПоиска, ПараметрыВыполнения);
Если ДлительнаяОперация.Статус = "Ошибка" Тогда
ВызватьИсключение ДлительнаяОперация.КраткоеПредставлениеОшибки;
Результат = ДлительныеОперации.ВыполнитьВФоне("ВариантыОтчетов.НайтиВариантыОтчетовДляВывода", ПараметрыПоиска, ПараметрыВыполнения);
Если Результат.Статус = "Ошибка" Тогда
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
КонецЕсли;
Если ДлительнаяОперация.Статус <> "Выполнено" Тогда
Возврат ДлительнаяОперация;
Если Результат.Статус <> "Выполнено" Тогда
Возврат Результат;
КонецЕсли;
ЗаполнитьПанельОтчетов(ДлительнаяОперация.АдресРезультата);
Возврат ДлительнаяОперация;
ЗаполнитьПанельОтчетов(Результат.АдресРезультата);
Возврат Результат;
КонецФункции
@@ -53,8 +53,10 @@
КонецЕсли;
Если Параметры.КоллекцияПечатныхФорм = Неопределено Тогда
Отказ = Истина;
Возврат;
КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Иначе
КоллекцияПечатныхФорм = Параметры.КоллекцияПечатныхФорм;
ИсключитьОфисныеДокументыИзКомплектов(КоллекцияПечатныхФорм);
@@ -920,9 +922,7 @@
НовыйЭлемент.Вид = ВидПоляФормы.ПолеТабличногоДокумента;
НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
НовыйЭлемент.ПутьКДанным = ИмяРеквизита;
НовыйЭлемент.Вывод = ВычислитьИспользованиеВывода(ОписаниеПечатнойФормы.ТабличныйДокумент);
НовыйЭлемент.Редактирование = НовыйЭлемент.Вывод = ИспользованиеВывода.Разрешить И Не ОписаниеПечатнойФормы.ТабличныйДокумент.ТолькоПросмотр;
НовыйЭлемент.Защита = Не Пользователи.РолиДоступны("РедактированиеПечатныхФорм");
УстановитьПараметрыПоляТабличногоДокумента(НовыйЭлемент, ОписаниеПечатнойФормы.ТабличныйДокумент);
// Таблица настроек печатных форм (продолжение).
НоваяНастройкаПечатнойФормы.ИмяСтраницы = ИмяСтраницы;
@@ -944,6 +944,15 @@
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыПоляТабличногоДокумента(ПолеТабличногоДокумента, ТабличныйДокумент)
ПолеТабличногоДокумента.Вывод = ВычислитьИспользованиеВывода(ТабличныйДокумент);
ПолеТабличногоДокумента.Редактирование = ПолеТабличногоДокумента.Вывод = ИспользованиеВывода.Разрешить И Не ТабличныйДокумент.ТолькоПросмотр;
ПолеТабличногоДокумента.Защита = ТабличныйДокумент.Защита Или Не Пользователи.РолиДоступны("РедактированиеПечатныхФорм");
КонецПроцедуры
&НаСервере
Процедура СохранитьНастройкиКомплектаПоУмолчанию()
Для Каждого НастройкаПечатнойФормы Из НастройкиПечатныхФорм Цикл
@@ -1977,6 +1986,7 @@
Если ПечатнаяФорма.ИмяМакета = ИмяМакета Тогда
ЭтотОбъект[ИмяРеквизита] = ПечатнаяФорма.ТабличныйДокумент;
ТекстОшибкиФормирования = ПечатнаяФорма.ТекстОшибкиФормирования;
УстановитьПараметрыПоляТабличногоДокумента(Элементы[ИмяРеквизита], ПечатнаяФорма.ТабличныйДокумент);
КонецЕсли;
КонецЦикла;
@@ -173,9 +173,12 @@
&НаСервере
Процедура ЗаполнитьМетки()
ДополнительныеРеквизиты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
СсылкаНаОбъект, "ДополнительныеРеквизиты", Истина);
Метки.Очистить();
ЗначенияМеток = УправлениеСвойствамиСлужебный.ЗначенияСвойств(
СсылкаНаОбъект.ДополнительныеРеквизиты,
ДополнительныеРеквизиты.Выгрузить(),
ДоступныеНаборыСвойств,
Перечисления.ВидыСвойств.Метки);
@@ -524,7 +524,7 @@
Если Не ЗначениеЗаполнено(Результат.Ошибка) Тогда
Для Каждого ТекущийСертификат Из Результат.Сертификаты Цикл
СертификатКриптографии = Новый СертификатКриптографии();
СертификатКриптографии.ИнициализироватьАсинх(
Ждать СертификатКриптографии.ИнициализироватьАсинх(
Base64Значение(ПолучитьИзВременногоХранилища(ТекущийСертификат.ДанныеСертификата)));
НоваяСтрока = ПутьСертификации.Вставить(0);
НоваяСтрока.Представление = ЭлектроннаяПодписьКлиент.ПредставлениеСертификата(СертификатКриптографии);
@@ -123,6 +123,32 @@
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаПродолжитьПопыткуУстановки</name>
<id>102</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаПродолжитьПопыткуУстановкиРасширеннаяПодсказка</name>
<id>103</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ПродолжитьПопыткуУстановки</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>Закрыть</name>
<id>100</id>
@@ -168,6 +194,24 @@
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<formCommands>
<name>ПродолжитьПопыткуУстановки</name>
<title>
<key>ru</key>
<value>Продолжить попытку установки</value>
</title>
<id>1</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПродолжитьПопыткуУстановки</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters>
<name>ТекстПояснения</name>
<valueType>
@@ -18,6 +18,17 @@
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПродолжитьПопыткуУстановки(Команда)
Закрыть(Истина);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
@@ -327,7 +327,7 @@
УдалитьРасширенияНаСервере(Контекст.ИдентификаторыРасширений);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
ОбработкаОшибок.ПоказатьИнформациюОбОшибке(ИнформацияОбОшибке);
СтандартныеПодсистемыКлиент.ПоказатьИнформациюОбОшибкеИПродолжить(ИнформацияОбОшибке);
КонецПопытки;
КонецПроцедуры
@@ -1415,7 +1415,7 @@
Асинх Процедура Сформировать()
Если ЗначениеЗаполнено(ПутьКФайлуВнешнегоОтчетаНаКлиенте) И Не ЗначениеЗаполнено(АдресДвоичныхДанныхВнешнегоОтчета) Тогда
Результат = Ждать ПоместитьФайлНаСерверАсинх(,,, ПутьКФайлуВнешнегоОтчетаНаКлиенте, УникальныйИдентификатор);
Результат = Ждать ПоместитьФайлНаСерверАсинх(,,, ПутьКФайлуВнешнегоОтчетаНаКлиенте, УникальныйИдентификатор); // ОписаниеПомещенногоФайла
Если ТипЗнч(Результат) = Тип("ОписаниеПомещенногоФайла") И Не Результат.ПомещениеФайлаОтменено Тогда
АдресДвоичныхДанныхВнешнегоОтчета = Результат.Адрес;
КонецЕсли;
@@ -879,8 +879,7 @@
КаталогЗапуска = КаталогИсполняемыхФайловПлатформы();
Клиент = КаталогЗапуска + "rac";
СисИнфо = Новый СистемнаяИнформация();
Если (СисИнфо.ТипПлатформы = ТипПлатформы.Windows_x86) Или (СисИнфо.ТипПлатформы = ТипПлатформы.Windows_x86_64) Тогда
Если ОбщегоНазначения.ЭтоWindowsСервер() Тогда
Клиент = Клиент + ".exe";
КонецЕсли;
@@ -336,6 +336,8 @@
// * КодУчасткаИФНСЮЛ - Строка - код территориального участка инспекции ФНС, обслуживающей юридические лица.
// * OKATO - Строка - код общероссийского классификатора объектов административно-территориального деления.
// * ОКТМО - Строка - код общероссийского классификатора территорий муниципальных образований.
// * ОКТМОБюджетополучателя- Строка - код бюджетополучателя общероссийского классификатора
// территорий муниципальных образований.
//
Функция КодыАдреса(Адрес, Источник = Неопределено) Экспорт
@@ -265,6 +265,18 @@
КонецФункции
// Возвращает признак, что допустимо использование только загруженных данных.
//
// Возвращаемое значение:
// Булево - если Истина, то веб-сервис для проверки и подбора адресов не используется.
//
Функция ИспользоватьТолькоЗагруженныеДанные() Экспорт
Возврат Не АдресныйКлассификаторСлужебный.ИспользоватьВебСервис();
КонецФункции
Функция СокращенияНаименованийДомов() Экспорт
Результат = Новый Соответствие;
@@ -781,15 +781,15 @@
ИзвлечьСтроенияВОписаниеДома(ОписаниеДома, СведенияОДоме);
ОписаниеДома.ИдентификаторДома = СведенияОДоме.id;
ОписаниеДома.Индекс = Формат(СведенияОДоме.ZipCode, "ЧГ=0");
ОписаниеДома.ОКТМО = Формат(СведенияОДоме.oktmo, "ЧГ=0");
ОписаниеДома.ОКАТО = Формат(СведенияОДоме.okato, "ЧГ=0");
ОписаниеДома.КодИФНСФЛ = Формат(СведенияОДоме.ifnsFlCode, "ЧГ=0");
ОписаниеДома.КодИФНСЮЛ = Формат(СведенияОДоме.ifnsUlCode, "ЧГ=0");
ОписаниеДома.КодУчасткаИФНСФЛ = Формат(СведенияОДоме.ifnsFlAreaCode, "ЧГ=0");
ОписаниеДома.КодУчасткаИФНСЮЛ = Формат(СведенияОДоме.ifnsUlAreaCode, "ЧГ=0");
ОписаниеДома.ЗагруженныеДанные = Ложь;
ОписаниеДома.ИдентификаторДома = СведенияОДоме.id;
ОписаниеДома.Индекс = Формат(СведенияОДоме.ZipCode, "ЧГ=0");
ОписаниеДома.ОКТМО = Формат(СведенияОДоме.oktmo, "ЧГ=0");
ОписаниеДома.ОКАТО = Формат(СведенияОДоме.okato, "ЧГ=0");
ОписаниеДома.КодИФНСФЛ = Формат(СведенияОДоме.ifnsFlCode, "ЧГ=0");
ОписаниеДома.КодИФНСЮЛ = Формат(СведенияОДоме.ifnsUlCode, "ЧГ=0");
ОписаниеДома.КодУчасткаИФНСФЛ = Формат(СведенияОДоме.ifnsFlAreaCode, "ЧГ=0");
ОписаниеДома.КодУчасткаИФНСЮЛ = Формат(СведенияОДоме.ifnsUlAreaCode, "ЧГ=0");
ОписаниеДома.ЗагруженныеДанные = Ложь;
ДобавитьИнформациюОДоме(ВариантыДомов, ОписаниеДома, НаименованиеЗданийИСтроений, СтрокаПоиска);
КонецЦикла;
@@ -854,15 +854,15 @@
ОписаниеУчастка = ОписаниеДомаИЗемельногоУчастка();
ОписаниеУчастка.ИдентификаторДома = СведенияОДоме.id;
ОписаниеУчастка.НомерДома = СведенияОДоме.steadNumber;
ОписаниеУчастка.Индекс = Формат(СведенияОДоме.ZipCode, "ЧГ=0");
ОписаниеУчастка.ОКТМО = Формат(СведенияОДоме.oktmo, "ЧГ=0");
ОписаниеУчастка.ОКАТО = Формат(СведенияОДоме.okato, "ЧГ=0");
ОписаниеУчастка.КодИФНСФЛ = Формат(СведенияОДоме.ifnsFlCode, "ЧГ=0");
ОписаниеУчастка.КодИФНСЮЛ = Формат(СведенияОДоме.ifnsUlCode, "ЧГ=0");
ОписаниеУчастка.КодУчасткаИФНСФЛ = Формат(СведенияОДоме.ifnsFlAreaCode, "ЧГ=0");
ОписаниеУчастка.КодУчасткаИФНСЮЛ = Формат(СведенияОДоме.ifnsUlAreaCode, "ЧГ=0");
ОписаниеУчастка.ИдентификаторДома = СведенияОДоме.id;
ОписаниеУчастка.НомерДома = СведенияОДоме.steadNumber;
ОписаниеУчастка.Индекс = Формат(СведенияОДоме.ZipCode, "ЧГ=0");
ОписаниеУчастка.ОКТМО = Формат(СведенияОДоме.oktmo, "ЧГ=0");
ОписаниеУчастка.ОКАТО = Формат(СведенияОДоме.okato, "ЧГ=0");
ОписаниеУчастка.КодИФНСФЛ = Формат(СведенияОДоме.ifnsFlCode, "ЧГ=0");
ОписаниеУчастка.КодИФНСЮЛ = Формат(СведенияОДоме.ifnsUlCode, "ЧГ=0");
ОписаниеУчастка.КодУчасткаИФНСФЛ = Формат(СведенияОДоме.ifnsFlAreaCode, "ЧГ=0");
ОписаниеУчастка.КодУчасткаИФНСЮЛ = Формат(СведенияОДоме.ifnsUlAreaCode, "ЧГ=0");
НовыйУчасток = ВариантыЗемельныхУчастков.Добавить();
НовыйУчасток.Значение = ОписаниеУчастка;
@@ -1261,8 +1261,8 @@
Результат.Country = НаименованиеСтраны;
Результат.ZIPCode = ПочтовыйИндексАдреса(АдресРФ);
Результат.OKTMO = Формат(АдресРФ.ОКТМО, "ЧГ=0");
Результат.OKATO = Формат(АдресРФ.ОКАТО, "ЧГ=0");
Результат.oktmo = Формат(АдресРФ.ОКТМО, "ЧГ=0");
Результат.okato = Формат(АдресРФ.ОКАТО, "ЧГ=0");
СубъектРФ = НаименованиеИТипОбъекта(АдаптацияНазванияРегиона(АдресРФ.СубъектРФ));
Результат.Area = Строка(СубъектРФ.Наименование);
@@ -1508,11 +1508,12 @@
КонецФункции
// Определение кодов ОКАТО, ОКТМО, налоговых инспекций ФНС и др. адреса
// Определение кодов ОКАТО, ОКТМО, налоговых инспекций ФНС и др. адреса.
//
// Параметры:
// Адрес - Строка - адрес в формате JSON или XML
// Источник - Строка - устарело. Код сначала ищется в загруженных данных и если не найден, то в веб-сервисе.
// Источник - Строка - источник получения кодов адреса, Варианты: "Сервис1С", "ЗагруженныеДанные".
// Если не указан, то код сначала ищется в загруженных данных и если не найден, то в веб-сервисе.
//
// Возвращаемое значение:
// Структура - коды адреса.
@@ -1640,12 +1641,18 @@
Результат.КодыАдреса.КодКЛАДР = Сведения.codeKLADR;
Результат.КодыАдреса.Идентификатор = ИдентификаторАдресногоОбъекта(Сведения);
Результат.КодыАдреса.ИдентификаторДома = ?(ЗначениеЗаполнено(Сведения.houseId), Сведения.houseId, "");
Результат.КодыАдреса.ОКАТО = Сведения.okato;
Результат.КодыАдреса.ОКТМО = Сведения.oktmo;
Результат.КодыАдреса.КодИФНСФЛ = Сведения.ifnsFlCode;
Результат.КодыАдреса.КодИФНСЮЛ = Сведения.ifnsUlCode;
Результат.КодыАдреса.КодУчасткаИФНСФЛ = Сведения.ifnsFlAreaCode;
Результат.КодыАдреса.КодУчасткаИФНСЮЛ = Сведения.ifnsUlAreaCode;
Результат.КодыАдреса.ОКАТО = Сведения.okato;
Результат.КодыАдреса.ОКТМО = Сведения.oktmo;
Результат.КодыАдреса.КодИФНСФЛ = Сведения.ifnsFlCode;
Результат.КодыАдреса.КодИФНСЮЛ = Сведения.ifnsUlCode;
Результат.КодыАдреса.КодУчасткаИФНСФЛ = Сведения.ifnsFlAreaCode;
Результат.КодыАдреса.КодУчасткаИФНСЮЛ = Сведения.ifnsUlAreaCode;
// Свойство присутствует только в новой версии веб-сервиса адресов.
Если Сведения.Свойство("oktmoBudget") Тогда
Результат.КодыАдреса.ОКТМОБюджетополучателя = Сведения.oktmoBudget;
КонецЕсли;
КонецЕсли;
@@ -1992,6 +1999,32 @@
Возврат ПравоДоступа("Изменение", Метаданные.РегистрыСведений.АдресныеОбъекты);
КонецФункции
// Устанавливает настройку использования веб-сервиса.
//
// Параметры:
// Использовать - Булево - если Ложь, то используются только загруженные данные из приложения.
// Иначе используется одновременно веб-сервис адресов и загруженные данные.
//
Процедура УстановитьИспользованиеВебСервиса(Использовать) Экспорт
Источник = ?(Использовать, "Авто", "Приложение");
Константы.ИсточникДанныхАдресногоКлассификатора.Установить(Источник);
КонецПроцедуры
// Возвращает настройку использования веб-сервиса.
//
// Возвращаемое значение:
// Булево - если Ложь, то для подбора и проверки адресов используются только загруженные данные.
// Иначе одновременно используются веб-сервис и загруженные данные.
//
Функция ИспользоватьВебСервис() Экспорт
Источник = Константы.ИсточникДанныхАдресногоКлассификатора.Получить();
Возврат СтрСравнить(Источник, "Приложение") <> 0;
КонецФункции
// Сведения об адресном объекта.
//
// Параметры:
@@ -2219,7 +2252,7 @@
// Строка - описание источника. Пустая строка - используются загружаемые в регистр данные.
//
Функция ИсточникДанныхАдресногоКлассификатора()
Возврат ПолучитьФункциональнуюОпцию("ИсточникДанныхАдресногоКлассификатора");
КонецФункции
@@ -3561,6 +3594,7 @@
| ДомаЗданияСтроения.Строения КАК Строения,
| ДополнительныеСведения.ПочтовыйИндекс КАК ПочтовыйИндекс,
| ДополнительныеСведения.ОКТМО КАК ОКТМО,
| ДополнительныеСведения.ОКТМОБюджетополучателя КАК ОКТМОБюджетополучателя,
| ДополнительныеСведения.OKATO КАК ОКАТО,
| ДополнительныеСведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ,
| ДополнительныеСведения.КодУчасткаИФНСФЛ КАК КодУчасткаИФНСФЛ,
@@ -3589,6 +3623,7 @@
"ВЫБРАТЬ
| ДополнительныеСведения.ПочтовыйИндекс КАК ПочтовыйИндекс,
| ДополнительныеСведения.ОКТМО КАК ОКТМО,
| ДополнительныеСведения.ОКТМОБюджетополучателя КАК ОКТМОБюджетополучателя,
| ДополнительныеСведения.OKATO КАК ОКАТО,
| ДополнительныеСведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ,
| ДополнительныеСведения.КодУчасткаИФНСФЛ КАК КодУчасткаИФНСФЛ,
@@ -6021,6 +6056,7 @@
Адрес.Вставить("munDistrictType");
Адрес.Вставить("okato");
Адрес.Вставить("oktmo");
Адрес.Вставить("oktmoBudget");
Адрес.Вставить("settlement");
Адрес.Вставить("settlementId");
Адрес.Вставить("settlementType");
@@ -6802,6 +6838,10 @@
//
Процедура ОпределитьИдентификаторыАдресаСервис1С(Результат, АдресДляПроверки)
Если АдресныйКлассификаторПовтИсп.ИспользоватьТолькоЗагруженныеДанные() Тогда
Возврат;
КонецЕсли;
Сервис = АдресныйКлассификаторПовтИсп.СервисКлассификатора1С();
СписокДляПроверки = Сервис.ФабрикаXDTO.Создать(Сервис.ФабрикаXDTO.Тип(ПространствоИмен(), "AddressList"));
@@ -6845,7 +6885,11 @@
ЭтоУстановкаИдентификаторов = Истина)
Результат = РезультатИзВебСервиса();
Если АдресныйКлассификаторПовтИсп.ИспользоватьТолькоЗагруженныеДанные() Тогда
Возврат Результат;
КонецЕсли;
Сервис = АдресныйКлассификаторПовтИсп.СервисКлассификатора1С(20);
ПрефиксВерсииЗапроса = ПрефиксВерсииЗапроса();
@@ -7078,15 +7122,16 @@
Результат.Вставить("КодыКЛАДР", КодыКЛАДР);
Коды = Новый Структура;
Коды.Вставить("КодКЛАДР", "");
Коды.Вставить("Идентификатор", "");
Коды.Вставить("ИдентификаторДома", "");
Коды.Вставить("ОКАТО", "");
Коды.Вставить("ОКТМО", "");
Коды.Вставить("КодИФНСФЛ", "");
Коды.Вставить("КодИФНСЮЛ", "");
Коды.Вставить("КодУчасткаИФНСФЛ", "");
Коды.Вставить("КодУчасткаИФНСЮЛ", "");
Коды.Вставить("КодКЛАДР", "");
Коды.Вставить("Идентификатор", "");
Коды.Вставить("ИдентификаторДома", "");
Коды.Вставить("ОКАТО", "");
Коды.Вставить("ОКТМО", "");
Коды.Вставить("ОКТМОБюджетополучателя", "");
Коды.Вставить("КодИФНСФЛ", "");
Коды.Вставить("КодИФНСЮЛ", "");
Коды.Вставить("КодУчасткаИФНСФЛ", "");
Коды.Вставить("КодУчасткаИФНСЮЛ", "");
Результат.Вставить("КодыАдреса", Коды);
@@ -7802,18 +7847,18 @@
ОписаниеДома.Вставить("ДополнительныйТипДома1", 0);
ОписаниеДома.Вставить("ДополнительныйТипДома2", 0);
ОписаниеДома.Вставить("ТипДома", 0);
ОписаниеДома.Вставить("ДомЧислом", 0);
ОписаниеДома.Вставить("ИдентификаторДома", Неопределено);
ОписаниеДома.Вставить("Индекс", "");
ОписаниеДома.Вставить("ОКТМО", "");
ОписаниеДома.Вставить("ОКАТО", "");
ОписаниеДома.Вставить("КодИФНСФЛ", "");
ОписаниеДома.Вставить("КодИФНСЮЛ", "");
ОписаниеДома.Вставить("КодУчасткаИФНСФЛ", "");
ОписаниеДома.Вставить("КодУчасткаИФНСЮЛ", "");
ОписаниеДома.Вставить("КодКЛАДР", "");
ОписаниеДома.Вставить("ЗагруженныеДанные", Ложь);
ОписаниеДома.Вставить("ТипДома", 0);
ОписаниеДома.Вставить("ДомЧислом", 0);
ОписаниеДома.Вставить("ИдентификаторДома", Неопределено);
ОписаниеДома.Вставить("Индекс", "");
ОписаниеДома.Вставить("ОКТМО", "");
ОписаниеДома.Вставить("ОКАТО", "");
ОписаниеДома.Вставить("КодИФНСФЛ", "");
ОписаниеДома.Вставить("КодИФНСЮЛ", "");
ОписаниеДома.Вставить("КодУчасткаИФНСФЛ", "");
ОписаниеДома.Вставить("КодУчасткаИФНСЮЛ", "");
ОписаниеДома.Вставить("КодКЛАДР", "");
ОписаниеДома.Вставить("ЗагруженныеДанные", Ложь);
Возврат ОписаниеДома;
@@ -8105,7 +8150,8 @@
Для Каждого КлючЗначение Из Результат Цикл
Если СтрСравнить(КлючЗначение.Ключ, "Идентификатор") <> 0 Тогда
Результат[КлючЗначение.Ключ] = Формат(КлючЗначение.Значение, "ЧГ=0");
Если СтрСравнить(КлючЗначение.Ключ, "ОКТМО") = 0
Если (СтрСравнить(КлючЗначение.Ключ, "ОКТМО") = 0
Или СтрСравнить(КлючЗначение.Ключ, "ОКТМОБюджетополучателя") = 0)
И СтрДлина(Результат[КлючЗначение.Ключ]) <> 8
И СтрДлина(Результат[КлючЗначение.Ключ]) <> 11 Тогда
Результат[КлючЗначение.Ключ] = "0" + Результат[КлючЗначение.Ключ];
@@ -8123,10 +8169,15 @@
КонецФункции
Функция ВыполнитьЗапросЧерезВебСервис(СтрокаЗапроса, ВремяОжидания = 60)
Результат = НовыйОтветИзВебСервиса();
Если АдресныйКлассификаторПовтИсп.ИспользоватьТолькоЗагруженныеДанные() Тогда
Возврат Результат;
КонецЕсли;
Сервис = АдресныйКлассификаторПовтИсп.СервисКлассификатора1С(ВремяОжидания);
Результат = НовыйОтветИзВебСервиса();
ТекстURL = ПрефиксВерсииЗапроса() + СтрокаЗапроса;
HTTPЗапрос = Новый HTTPЗапрос(ТекстURL);
@@ -8372,51 +8423,52 @@
Результат.Вставить("type", "Адрес");
Результат.Вставить("country", "");
Результат.Вставить("addressType", АдресВСвободнойФорме());
Результат.Вставить("countryCode", "");
Результат.Вставить("ZIPcode", "");
Результат.Вставить("area", "");
Результат.Вставить("areaType", "");
Результат.Вставить("areaValue", "");
Результат.Вставить("city", "");
Результат.Вставить("cityType", "");
Результат.Вставить("street", "");
Результат.Вставить("streetType", "");
Результат.Вставить("id", "");
Результат.Вставить("areaCode", "");
Результат.Вставить("areaId", "");
Результат.Вставить("district", "");
Результат.Вставить("districtType", "");
Результат.Вставить("districtId", "");
Результат.Вставить("munDistrict", "");
Результат.Вставить("munDistrictType", "");
Результат.Вставить("munDistrictId", "");
Результат.Вставить("cityId", "");
Результат.Вставить("settlement", "");
Результат.Вставить("settlementType", "");
Результат.Вставить("settlementId", "");
Результат.Вставить("cityDistrict", "");
Результат.Вставить("countryCode", "");
Результат.Вставить("ZIPcode", "");
Результат.Вставить("area", "");
Результат.Вставить("areaType", "");
Результат.Вставить("areaValue", "");
Результат.Вставить("city", "");
Результат.Вставить("cityType", "");
Результат.Вставить("street", "");
Результат.Вставить("streetType", "");
Результат.Вставить("id", "");
Результат.Вставить("areaCode", "");
Результат.Вставить("areaId", "");
Результат.Вставить("district", "");
Результат.Вставить("districtType", "");
Результат.Вставить("districtId", "");
Результат.Вставить("munDistrict", "");
Результат.Вставить("munDistrictType", "");
Результат.Вставить("munDistrictId", "");
Результат.Вставить("cityId", "");
Результат.Вставить("settlement", "");
Результат.Вставить("settlementType", "");
Результат.Вставить("settlementId", "");
Результат.Вставить("cityDistrict", "");
Результат.Вставить("cityDistrictType", "");
Результат.Вставить("cityDistrictId", "");
Результат.Вставить("territory", "");
Результат.Вставить("territoryType", "");
Результат.Вставить("territoryId", "");
Результат.Вставить("locality", "");
Результат.Вставить("localityType", "");
Результат.Вставить("localityId", "");
Результат.Вставить("streetId", "");
Результат.Вставить("houseType", "");
Результат.Вставить("houseNumber", "");
Результат.Вставить("houseId", "");
Результат.Вставить("stead", "");
Результат.Вставить("steadId", "");
Результат.Вставить("cityDistrictId", "");
Результат.Вставить("territory", "");
Результат.Вставить("territoryType", "");
Результат.Вставить("territoryId", "");
Результат.Вставить("locality", "");
Результат.Вставить("localityType", "");
Результат.Вставить("localityId", "");
Результат.Вставить("streetId", "");
Результат.Вставить("houseType", "");
Результат.Вставить("houseNumber", "");
Результат.Вставить("houseId", "");
Результат.Вставить("stead", "");
Результат.Вставить("steadId", "");
Результат.Вставить("buildings", Новый Массив);
Результат.Вставить("apartments", Новый Массив);
Результат.Вставить("codeKLADR", "");
Результат.Вставить("oktmo", "");
Результат.Вставить("okato", "");
Результат.Вставить("asInDocument", "");
Результат.Вставить("ifnsFLCode", "");
Результат.Вставить("ifnsULCode", "");
Результат.Вставить("codeKLADR", "");
Результат.Вставить("oktmo", "");
Результат.Вставить("oktmoBudget", "");
Результат.Вставить("okato", "");
Результат.Вставить("asInDocument", "");
Результат.Вставить("ifnsFLCode", "");
Результат.Вставить("ifnsULCode", "");
Результат.Вставить("ifnsFLAreaCode", "");
Результат.Вставить("ifnsULAreaCode", "");
Результат.Вставить("admLevels", Новый Массив);
@@ -10295,16 +10347,16 @@
Запись = Набор.Добавить();
Запись.КодСубъектаРФ = КодСубъектаРФ;
Запись.Идентификатор = УникальныйИдентификаторИзСтроки64(ТекущаяЗапись.ЗначениеАтрибута("EXTRAGUID"));
Запись.ПочтовыйИндекс = ТекущаяЗапись.ЗначениеАтрибута("POSTALCODE");
Запись.OKATO = ТекущаяЗапись.ЗначениеАтрибута("OKATO");
Запись.ОКТМО = ТекущаяЗапись.ЗначениеАтрибута("OKTMO");
Запись.КодИФНСФЛ = ТекущаяЗапись.ЗначениеАтрибута("IFNSFL");
Запись.КодИФНСЮЛ = ТекущаяЗапись.ЗначениеАтрибута("IFNSUL");
Запись.КодУчасткаИФНСФЛ = ТекущаяЗапись.ЗначениеАтрибута("TERRIFNSFL");
Запись.КодУчасткаИФНСЮЛ = ТекущаяЗапись.ЗначениеАтрибута("TERRIFNSUL");
Запись.КодСубъектаРФ = КодСубъектаРФ;
Запись.Идентификатор = УникальныйИдентификаторИзСтроки64(ТекущаяЗапись.ЗначениеАтрибута("EXTRAGUID"));
Запись.ПочтовыйИндекс = ТекущаяЗапись.ЗначениеАтрибута("POSTALCODE");
Запись.OKATO = ТекущаяЗапись.ЗначениеАтрибута("OKATO");
Запись.ОКТМО = ТекущаяЗапись.ЗначениеАтрибута("OKTMO");
Запись.ОКТМОБюджетополучателя = ТекущаяЗапись.ЗначениеАтрибута("OKTMOBUDGET");
Запись.КодИФНСФЛ = ТекущаяЗапись.ЗначениеАтрибута("IFNSFL");
Запись.КодИФНСЮЛ = ТекущаяЗапись.ЗначениеАтрибута("IFNSUL");
Запись.КодУчасткаИФНСФЛ = ТекущаяЗапись.ЗначениеАтрибута("TERRIFNSFL");
Запись.КодУчасткаИФНСЮЛ = ТекущаяЗапись.ЗначениеАтрибута("TERRIFNSUL");
КонецЦикла;
ЗакрытьФайлЗагрузкиСубъектаРФ(ФайлЗагрузки);
@@ -2589,9 +2589,11 @@
//
Процедура ЗаполнитьНаименованиеПредопределенногоЭлементаВсеОбъектыАдресации() Экспорт
Ссылка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПланыВидовХарактеристик.ОбъектыАдресацииЗадач.ВсеОбъектыАдресации, "Ссылка");
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("ПланВидовХарактеристик.ОбъектыАдресацииЗадач");
ЭлементБлокировки.УстановитьЗначение("Ссылка", ПланыВидовХарактеристик.ОбъектыАдресацииЗадач.ВсеОбъектыАдресации.Ссылка);
ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
НачатьТранзакцию();
Попытка
@@ -820,6 +820,8 @@
Возврат РеквизитыКомпоненты.Linux_x86;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64 Тогда
Возврат РеквизитыКомпоненты.Linux_x86_64;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86 Тогда
Возврат РеквизитыКомпоненты.MacOS_x86;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86_64 Тогда
Возврат РеквизитыКомпоненты.MacOS_x86_64;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда
@@ -37,7 +37,7 @@
Процедура ПроверитьДоступностьКомпоненты(Оповещение, Контекст) Экспорт
ПутьКМакетуДляПоискаПоследнейВерсии = Неопределено;
ИскатьКомпонентуПоследнейВерсии = ЗначениеЗаполнено(Контекст.ИсходноеМестоположение) И НЕ Контекст.ВыполненПоискНовойВерсии;
ИскатьКомпонентуПоследнейВерсии = ЗначениеЗаполнено(Контекст.ИсходноеМестоположение) И Не Контекст.ВыполненПоискНовойВерсии;
Если ИскатьКомпонентуПоследнейВерсии Тогда
ПутьКМакетуДляПоискаПоследнейВерсии = Контекст.ИсходноеМестоположение;
КонецЕсли;
@@ -86,35 +86,40 @@
Иначе
Если ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты) Тогда
Результат.Вставить("Версия", Информация.Реквизиты.Версия);
Результат.Доступна = Истина;
Результат.Вставить("Версия", Информация.Реквизиты.Версия);
Если ИскатьКомпонентуПоследнейВерсии Тогда
ЧастиВерсии = СтрРазделить(Результат.Версия, ".");
Если ЧастиВерсии.Количество() = 4 Тогда
// Версия внешней компоненты больше, чем версия макета.
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Результат.Версия,
Результат.КомпонентаПоследнейВерсии.Версия) > 0 Тогда
Результат.КомпонентаПоследнейВерсии = Новый Структура("Идентификатор, Версия, Местоположение",
Контекст.Идентификатор, Результат.Версия, Информация.Местоположение);
КонецЕсли;
Иначе
// Если номер версии компоненты не соответствует шаблону, используется компонента из справочника.
Если ИскатьКомпонентуПоследнейВерсии Тогда
ЧастиВерсии = СтрРазделить(Результат.Версия, ".");
Если ЧастиВерсии.Количество() = 4 Тогда
// Версия внешней компоненты больше, чем версия макета.
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Результат.Версия,
Результат.КомпонентаПоследнейВерсии.Версия) > 0 Тогда
Результат.КомпонентаПоследнейВерсии = Новый Структура("Идентификатор, Версия, Местоположение",
Контекст.Идентификатор, Результат.Версия, Информация.Местоположение);
КонецЕсли;
Иначе
// Если номер версии компоненты не соответствует шаблону, используется компонента из справочника.
Результат.КомпонентаПоследнейВерсии = Новый Структура("Идентификатор, Версия, Местоположение",
Контекст.Идентификатор, Результат.Версия, Информация.Местоположение);
КонецЕсли;
КонецЕсли;
Если ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты) Тогда
Результат.Доступна = Истина;
ВыполнитьОбработкуОповещения(Оповещение, Результат);
Иначе
ПараметрыОповещения = Новый Структура;
ПараметрыОповещения.Вставить("Оповещение", Оповещение);
ПараметрыОповещения.Вставить("Результат", Результат);
ОповещениеФормы = Новый ОписаниеОповещения(
"ПроверитьДоступностьКомпонентыПослеОтображенияДоступныхВидовКлиентов",
ЭтотОбъект,
Оповещение);
ПараметрыОповещения);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ТекстПояснения", Контекст.ТекстПояснения);
@@ -132,7 +137,7 @@
// Параметры:
// Контекст - см. ОбщегоНазначенияСлужебныйКлиент.КонтекстПодключенияКомпоненты
//
Функция РезультатПроверкиДоступностиКомпоненты(Контекст) Экспорт
Асинх Функция РезультатПроверкиДоступностиКомпоненты(Контекст) Экспорт
ПутьКМакетуДляПоискаПоследнейВерсии = Неопределено;
ИскатьКомпонентуПоследнейВерсии = ЗначениеЗаполнено(Контекст.ИсходноеМестоположение) И Не Контекст.ВыполненПоискНовойВерсии;
@@ -168,32 +173,53 @@
Иначе
Если ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты) Тогда
Результат.Вставить("Версия", Информация.Реквизиты.Версия);
Результат.Доступна = Истина;
Результат.Вставить("Версия", Информация.Реквизиты.Версия);
Если ИскатьКомпонентуПоследнейВерсии Тогда
ЧастиВерсии = СтрРазделить(Результат.Версия, ".");
Если ЧастиВерсии.Количество() = 4 Тогда
// Версия внешней компоненты больше, чем версия макета.
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Результат.Версия,
Результат.КомпонентаПоследнейВерсии.Версия) > 0 Тогда
Результат.КомпонентаПоследнейВерсии = Новый Структура("Идентификатор, Версия, Местоположение",
Контекст.Идентификатор, Результат.Версия, Информация.Местоположение);
КонецЕсли;
Иначе
// Если номер версии компоненты не соответствует шаблону, используется компонента из справочника.
Если ИскатьКомпонентуПоследнейВерсии Тогда
ЧастиВерсии = СтрРазделить(Результат.Версия, ".");
Если ЧастиВерсии.Количество() = 4 Тогда
// Версия внешней компоненты больше, чем версия макета.
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Результат.Версия,
Результат.КомпонентаПоследнейВерсии.Версия) > 0 Тогда
Результат.КомпонентаПоследнейВерсии = Новый Структура("Идентификатор, Версия, Местоположение",
Контекст.Идентификатор, Результат.Версия, Информация.Местоположение);
КонецЕсли;
Иначе
// Если номер версии компоненты не соответствует шаблону, используется компонента из справочника.
Результат.КомпонентаПоследнейВерсии = Новый Структура("Идентификатор, Версия, Местоположение",
Контекст.Идентификатор, Результат.Версия, Информация.Местоположение);
КонецЕсли;
КонецЕсли;
Если ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты) Тогда
Результат.Доступна = Истина;
Возврат Результат;
Иначе
Результат.ОписаниеОшибки = ТекстУстановкаВнешнейКомпонентыНевозможна(Контекст.ТекстПояснения);
КнопкиВопроса = Новый СписокЗначений;
КнопкиВопроса.Добавить("Закрыть", НСтр("ru = 'Закрыть'"));
КнопкиВопроса.Добавить("ПродолжитьПопыткуУстановки", НСтр("ru = 'Продолжить попытку установки'"));
ЗаголовокВопроса = Контекст.ТекстПояснения;
Если ПустаяСтрока(ЗаголовокВопроса) Тогда
ЗаголовокВопроса = НСтр("ru = 'Установка внешней компоненты невозможна.'");
КонецЕсли;
ОписаниеОшибки = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
НСтр("ru = 'Не предусмотрена работа внешней компоненты
|в клиентском приложении <b>%1</b>.
|Обратитесь к разработчику внешней компоненты.'"), ПредставлениеТекущегоКлиента());
Ответ = Ждать ВопросАсинх(ОписаниеОшибки, КнопкиВопроса,, "Закрыть", ЗаголовокВопроса);
Если Ответ = "ПродолжитьПопыткуУстановки" Тогда
Результат.Доступна = Истина;
Иначе
Результат.Доступна = Ложь;
Результат.ОписаниеОшибки = ОписаниеОшибки;
КонецЕсли;
КонецЕсли;
@@ -238,9 +264,11 @@
КонецПроцедуры
Процедура ПроверитьДоступностьКомпонентыПослеОтображенияДоступныхВидовКлиентов(Результат, Оповещение) Экспорт
Процедура ПроверитьДоступностьКомпонентыПослеОтображенияДоступныхВидовКлиентов(Результат, Контекст) Экспорт
ВыполнитьОбработкуОповещения(Оповещение, РезультатДоступностиКомпоненты());
РезультатДоступностиКомпоненты = Контекст.Результат;
РезультатДоступностиКомпоненты.Доступна = Результат = Истина;
ВыполнитьОбработкуОповещения(Контекст.Оповещение, РезультатДоступностиКомпоненты);
КонецПроцедуры
@@ -493,7 +521,7 @@
//
Асинх Функция ПодключитьКомпонентуАсинх(Контекст) Экспорт
Результат = РезультатПроверкиДоступностиКомпоненты(Контекст);
Результат = Ждать РезультатПроверкиДоступностиКомпоненты(Контекст);
Если Результат.Доступна Тогда
Возврат Ждать ОбщегоНазначенияСлужебныйКлиент.ПодключитьКомпонентуАсинх(Контекст);
@@ -789,7 +817,7 @@
//
Асинх Функция УстановитьКомпонентуАсинх(Контекст) Экспорт
РезультатПроверки = РезультатПроверкиДоступностиКомпоненты(Контекст);
РезультатПроверки = Ждать РезультатПроверкиДоступностиКомпоненты(Контекст);
Если РезультатПроверки.Доступна Тогда
Возврат Ждать ОбщегоНазначенияСлужебныйКлиент.УстановитьКомпонентуАсинх(Контекст);
@@ -83,7 +83,7 @@
ОткрытьФорму("ОбщаяФорма.ДлительнаяОперация", РасширенныеПараметры,
?(ПараметрыОжидания <> Неопределено, ПараметрыОжидания.ФормаВладелец, Неопределено),
,,,ОповещениеОЗакрытии);
,,,ОповещениеОЗакрытии, РасширенныеПараметры.РежимОткрытияОкнаОжидания);
Иначе
РасширенныеПараметры.Вставить("НакопленныеСообщения", Новый Массив);
РасширенныеПараметры.Вставить("ОповещениеОЗавершении", ОповещениеОЗавершении);
@@ -146,7 +146,7 @@
// центр оповещений.
//
// * ОтменятьПриЗакрытииФормыВладельца - Булево - по умолчанию ФормаВладелец.Открыта(), Ложь если форма не указана.
// Если Ложь, тогда длительная операция не будет отменена при закрытии формы владельца.
// Если Ложь, тогда длительная операция не будет отменена при закрытии формы владельца и при закрытии окна ожидания.
//
// * ПолучатьРезультат - Булево - служебный параметр. Не предназначен для использования.
//
@@ -158,6 +158,7 @@
Результат.Вставить("Заголовок", "");
Результат.Вставить("НомерПопытки", 1);
Результат.Вставить("ВыводитьОкноОжидания", Истина);
Результат.Вставить("РежимОткрытияОкнаОжидания", Неопределено);
Результат.Вставить("ВыводитьПрогрессВыполнения", Ложь);
Результат.Вставить("ОповещениеОПрогрессеВыполнения", Неопределено);
Результат.Вставить("ВыводитьСообщения", Ложь);
@@ -631,7 +632,7 @@
НСтр("ru = 'Длительные операции.Ошибка вызова обработчика события'",
ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
"Ошибка", ТекстОшибки,, Истина);
ОбработкаОшибок.ПоказатьИнформациюОбОшибке(ИнформацияОбОшибке);
СтандартныеПодсистемыКлиент.ПоказатьИнформациюОбОшибкеИПродолжить(ИнформацияОбОшибке)
КонецПопытки;
КонецПроцедуры
@@ -139,8 +139,9 @@
КонецЕсли;
// Получение экземпляра объекта.
Если Ссылка.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет
ИЛИ Ссылка.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет Тогда
Вид = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Вид");
Если Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет
ИЛИ Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет Тогда
Менеджер = ВнешниеОтчеты;
Иначе
Менеджер = ВнешниеОбработки;
@@ -145,7 +145,7 @@
КонецФункции
// Параметры:
// Объект - СправочникСсылка.ДополнительныеОтчетыИОбработки
// Объект - СправочникОбъект.ДополнительныеОтчетыИОбработки
// ЗначениеФО - Булево
// - Неопределено
// ПометкаУдаления - Булево
@@ -524,8 +524,7 @@
Набор.Записать();
Если ПоставляемаяОбработкаСуществует Тогда
АктуальныеКоманды = ПоставляемаяОбработка.Команды.Выгрузить();
АктуальныеКоманды = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПоставляемаяОбработка, "Команды").Выгрузить();
АктуальныеКоманды.Колонки.Добавить("РегламентноеЗаданиеРасписание", Новый ОписаниеТипов("СписокЗначений"));
АктуальныеКоманды.Колонки.Добавить("РегламентноеЗаданиеИспользование", Новый ОписаниеТипов("Булево"));
АктуальныеКоманды.Колонки.Добавить("РегламентноеЗаданиеGUID", Новый ОписаниеТипов("УникальныйИдентификатор"));
@@ -95,4 +95,12 @@
Возврат НСтр("ru = 'Да'");
КонецФункции
Функция ПрефиксТаблицыСопоставления() Экспорт
Возврат "ТаблицаСопоставленияДанных";
КонецФункции
Функция ПрефиксТабличнойЧасти() Экспорт
Возврат "ТЧ";
КонецФункции
#КонецОбласти
@@ -101,13 +101,21 @@
// См. ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки.
Процедура ПриОбработкеРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка) Экспорт
Если ФормаОтчета.НастройкиОтчета.ПолноеИмя = "Отчет.РезультатыПроверкиУчета" Тогда
Расшифровка = ФормаОтчета.ОтчетТабличныйДокумент.ТекущаяОбласть.Расшифровка;
Результат = КонтрольВеденияУчетаВызовСервера.РасшифровкаВыделеннойЯчейки(ФормаОтчета.ОтчетДанныеРасшифровки, ФормаОтчета.ОтчетТабличныйДокумент, Расшифровка);
Если Результат <> Неопределено Тогда
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(, Результат.ПроблемныйОбъект);
КонецЕсли;
Если ФормаОтчета.НастройкиОтчета.ПолноеИмя <> "Отчет.РезультатыПроверкиУчета" Тогда
Возврат;
КонецЕсли;
ТекущаяОбласть = ФормаОтчета.ОтчетТабличныйДокумент.ТекущаяОбласть;
Если ТипЗнч(ТекущаяОбласть) <> Тип("ОбластьЯчеекТабличногоДокумента")
Или ТекущаяОбласть.ТипОбласти <> ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
Возврат;
КонецЕсли;
Результат = КонтрольВеденияУчетаВызовСервера.РасшифровкаВыделеннойЯчейки(ФормаОтчета.ОтчетДанныеРасшифровки,
ФормаОтчета.ОтчетТабличныйДокумент, ТекущаяОбласть.Расшифровка);
Если Результат <> Неопределено Тогда
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(, Результат.ПроблемныйОбъект);
КонецЕсли;
КонецПроцедуры
@@ -120,35 +128,45 @@
//
Процедура ПриОбработкеКоманды(ФормаОтчета, Команда, Результат) Экспорт
Если ФормаОтчета.НастройкиОтчета.ПолноеИмя = "Отчет.РезультатыПроверкиУчета" Тогда
ТекстНеуспешногоДействия = НСтр("ru = 'Выберите строку с проблемным объектом.'");
Расшифровка = ?(ФормаОтчета.ОтчетТабличныйДокумент.ТекущаяОбласть.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник,
ФормаОтчета.ОтчетТабличныйДокумент.ТекущаяОбласть.Расшифровка, Неопределено);
Если Команда.Имя = "КонтрольВеденияУчетаИсторияИзмененийОбъекта" Тогда
Результат = КонтрольВеденияУчетаВызовСервера.ДанныеДляИсторииИзмененийОбъекта(ФормаОтчета.ОтчетДанныеРасшифровки, ФормаОтчета.ОтчетТабличныйДокумент, Расшифровка);
Если Результат <> Неопределено Тогда
Если Результат.Версионируется Тогда
МодульВерсионированиеОбъектовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ВерсионированиеОбъектовКлиент");
МодульВерсионированиеОбъектовКлиент.ПоказатьИсториюИзменений(Результат.Ссылка, ФормаОтчета);
Иначе
События = Новый Массив;
События.Добавить("_$Data$_.Delete");
События.Добавить("_$Data$_.New");
События.Добавить("_$Data$_.Update");
Отбор = Новый Структура;
Отбор.Вставить("Данные", Результат.Ссылка);
Отбор.Вставить("СобытиеЖурналаРегистрации", События);
Отбор.Вставить("ДатаНачала", НачалоМесяца(ТекущаяДата())); // АПК:143 ТекущаяДата() для отбора журнала регистрации
ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации(Отбор);
КонецЕсли;
Иначе
ПоказатьПредупреждение(, ТекстНеуспешногоДействия);
КонецЕсли;
ИначеЕсли Команда.Имя = "КонтрольВеденияУчетаИгнорироватьПроблему" Тогда
ПроблемаПроигнорирована = КонтрольВеденияУчетаВызовСервера.ИгнорироватьПроблему(ФормаОтчета.ОтчетДанныеРасшифровки, ФормаОтчета.ОтчетТабличныйДокумент, Расшифровка);
Если Не ПроблемаПроигнорирована Тогда
ПоказатьПредупреждение(, ТекстНеуспешногоДействия);
КонецЕсли;
Если ФормаОтчета.НастройкиОтчета.ПолноеИмя <> "Отчет.РезультатыПроверкиУчета" Тогда
Возврат;
КонецЕсли;
ТекстНеуспешногоДействия = НСтр("ru = 'Выберите строку с проблемным объектом.'");
ТекущаяОбласть = ФормаОтчета.ОтчетТабличныйДокумент.ТекущаяОбласть;
Если ТипЗнч(ТекущаяОбласть) <> Тип("ОбластьЯчеекТабличногоДокумента")
Или ТекущаяОбласть.ТипОбласти <> ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
ПоказатьПредупреждение(, ТекстНеуспешногоДействия);
Возврат;
КонецЕсли;
Если Команда.Имя = "КонтрольВеденияУчетаИсторияИзмененийОбъекта" Тогда
Результат = КонтрольВеденияУчетаВызовСервера.ДанныеДляИсторииИзмененийОбъекта(ФормаОтчета.ОтчетДанныеРасшифровки,
ФормаОтчета.ОтчетТабличныйДокумент, ТекущаяОбласть.Расшифровка);
Если Результат = Неопределено Тогда
ПоказатьПредупреждение(, ТекстНеуспешногоДействия);
Возврат;
КонецЕсли;
Если Результат.Версионируется Тогда
МодульВерсионированиеОбъектовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ВерсионированиеОбъектовКлиент");
МодульВерсионированиеОбъектовКлиент.ПоказатьИсториюИзменений(Результат.Ссылка, ФормаОтчета);
Иначе
События = Новый Массив;
События.Добавить("_$Data$_.Delete");
События.Добавить("_$Data$_.New");
События.Добавить("_$Data$_.Update");
Отбор = Новый Структура;
Отбор.Вставить("Данные", Результат.Ссылка);
Отбор.Вставить("СобытиеЖурналаРегистрации", События);
Отбор.Вставить("ДатаНачала", НачалоМесяца(ТекущаяДата())); // АПК:143 ТекущаяДата() для отбора журнала регистрации
ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации(Отбор);
КонецЕсли;
ИначеЕсли Команда.Имя = "КонтрольВеденияУчетаИгнорироватьПроблему" Тогда
ПроблемаПроигнорирована = КонтрольВеденияУчетаВызовСервера.ИгнорироватьПроблему(ФормаОтчета.ОтчетДанныеРасшифровки,
ФормаОтчета.ОтчетТабличныйДокумент, ТекущаяОбласть.Расшифровка);
Если Не ПроблемаПроигнорирована Тогда
ПоказатьПредупреждение(, ТекстНеуспешногоДействия);
КонецЕсли;
КонецЕсли;
@@ -83,7 +83,7 @@
// * Фамилия - Строка
// * Имя - Строка
// * Отчество - Строка
// * Пол - Строка
// * Пол - Число - 1 - мужской, 2 - женский
// * ИННФЛ - Строка
// * СтраховойНомерПФР - Строка
// * АдресРегистрации - Строка
@@ -103,6 +103,7 @@
// * ДокументКодПодразделения - Строка
// * ДокументСрокДействия - Строка
// * Гражданство - СправочникСсылка.СтраныМира
// * БезГражданства - Булево
// * МестоРождения - Строка
// * НомерЗаписиЕдиногоРегистраНаселения - Строка
//
@@ -1235,38 +1235,95 @@
МодульОрганизацииСервер = ОбщегоНазначения.ОбщийМодуль("ОрганизацииСервер");
СведенияОбОрганизации = МодульОрганизацииСервер.СведенияОбОрганизации(Реквизиты.Ссылка,, ТекущаяДатаСеанса());
Реквизиты.ИНН = СведенияОбОрганизации.ИНН;
Реквизиты.НаименованиеПолное = СведенияОбОрганизации.НаименованиеПолное;
Реквизиты.НаименованиеСокращенное = СведенияОбОрганизации.НаименованиеСокращенное;
Реквизиты.ОГРН = СведенияОбОрганизации.ОГРН;
Реквизиты.Телефон = СведенияОбОрганизации.ТелефонОрганизации;
Реквизиты.ЮридическийАдрес = СведенияОбОрганизации.АдресОрганизации;
Реквизиты.ЛицоБезДоверенности = СведенияОбОрганизации.Директор;
ЭтоИП = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ЭтоИП", Ложь);
Если Реквизиты.ЭтоИндивидуальныйПредприниматель Тогда
Реквизиты.ЛицоБезДоверенности = СведенияОбОрганизации.ИндивидуальныйПредприниматель;
ВидУчастника = "ИндивидуальныйПредприниматель";
Иначе
Если ЗначениеЗаполнено(СведенияОбОрганизации.Директор) Тогда
Реквизиты.ЛицоБезДоверенности = СведенияОбОрганизации.Директор;
ВидУчастника = "ДолжностноеЛицо";
Если ЭтоИП Тогда
Реквизиты.ЭтоИндивидуальныйПредприниматель = Истина;
Реквизиты.НаименованиеПолное = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПНаименование", "");
Реквизиты.НаименованиеСокращенное = Реквизиты.НаименованиеПолное;
Реквизиты.ИНН = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИндивидуальныйПредпринимательИНН", "");
Реквизиты.ОГРН = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ОГРН", "");
Реквизиты.ЭлектроннаяПочта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПАдресЭлектроннойПочты", "");
Если ЗначениеЗаполнено(Реквизиты.ЭлектроннаяПочта) И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
Реквизиты.ЭлектроннаяПочтаЗначение = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(
Реквизиты.ЭлектроннаяПочта, Перечисления["ТипыКонтактнойИнформации"].АдресЭлектроннойПочты);
КонецЕсли;
Реквизиты.КПП = СведенияОбОрганизации.КПП;
КонецЕсли;
Если ЗначениеЗаполнено(Реквизиты.ЛицоБезДоверенности) Тогда
РеквизитыЛицаБезДоверенности = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастника(
"ФизическоеЛицо", Реквизиты.ЛицоБезДоверенности, ВидУчастника, Истина);
Если ВидУчастника = "ДолжностноеЛицо" Тогда
РеквизитыЛицаБезДоверенности.ДолжностьЛицаБезДоверенности = НСтр("ru = 'Генеральный директор'");
Реквизиты.Телефон = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ТелефонОрганизации", "");
Если ЗначениеЗаполнено(Реквизиты.Телефон) И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
Реквизиты.ТелефонЗначение = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(
Реквизиты.Телефон, Перечисления["ТипыКонтактнойИнформации"].Телефон);
КонецЕсли;
Реквизиты.ЛицоБезДоверенности = Неопределено;
РеквизитыЛицаБезДоверенности = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастника("ФизическоеЛицо", Неопределено, "ИндивидуальныйПредприниматель");
ФИО = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ФизическоеЛицоНаименование", "");
Если ЗначениеЗаполнено(ФИО) Тогда
ФИО = ФизическиеЛицаКлиентСервер.ЧастиИмени(ФИО);
РеквизитыЛицаБезДоверенности.Фамилия = ФИО.Фамилия;
РеквизитыЛицаБезДоверенности.Имя = ФИО.Имя;
РеквизитыЛицаБезДоверенности.Отчество = ФИО.Имя;
Иначе
РеквизитыЛицаБезДоверенности.Фамилия = "";
РеквизитыЛицаБезДоверенности.Имя = "";
РеквизитыЛицаБезДоверенности.Отчество = "";
КонецЕсли;
РеквизитыЛицаБезДоверенности.Пол = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ФизическоеЛицоПол", "");
РеквизитыЛицаБезДоверенности.СтраховойНомерПФР = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПРегистрационныйНомерПФР", "");
РеквизитыЛицаБезДоверенности.АдресРегистрации = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "АдресРегистрации", "");
РеквизитыЛицаБезДоверенности.АдресРегистрацииЗначение = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "АдресРегистрацииJSON", "");
РеквизитыЛицаБезДоверенности.ЭлектроннаяПочта = Реквизиты.ЭлектроннаяПочта;
РеквизитыЛицаБезДоверенности.ЭлектроннаяПочтаЗначение = Реквизиты.ЭлектроннаяПочтаЗначение;
РеквизитыЛицаБезДоверенности.Телефон = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ДомашнийТелефонФизЛица", "");
Если ЗначениеЗаполнено(РеквизитыЛицаБезДоверенности.Телефон) И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
РеквизитыЛицаБезДоверенности.ТелефонЗначение = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(
Реквизиты.Телефон, Перечисления["ТипыКонтактнойИнформации"].Телефон);
КонецЕсли;
РеквизитыЛицаБезДоверенности.ЭтоДолжностноеЛицо = ВидУчастника = "ДолжностноеЛицо";
РеквизитыЛицаБезДоверенности.ЭтоИндивидуальныйПредприниматель = ВидУчастника = "ИндивидуальныйПредприниматель";
МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовФизическогоЛица(Реквизиты.ЛицоБезДоверенности,
РеквизитыЛицаБезДоверенности);
Реквизиты.РеквизитыЛицаБезДоверенности = РеквизитыЛицаБезДоверенности;
КонецЕсли;
РеквизитыЛицаБезДоверенности.ДатаРождения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПДатаРождения", "");
РеквизитыЛицаБезДоверенности.ДокументВид = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПКодУдостоверенияЛичности", "");
РеквизитыЛицаБезДоверенности.ДокументНомер = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПСерияУдостоверенияЛичности", "")
+ ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПНомерУдостоверенияЛичности", "");
РеквизитыЛицаБезДоверенности.ДокументКемВыдан = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПКемВыданУдостоверенияЛичности", "");
РеквизитыЛицаБезДоверенности.ДокументДатаВыдачи = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПДатаВыдачиУдостоверенияЛичности", "");
РеквизитыЛицаБезДоверенности.ДокументКодПодразделения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПКодПодразделенияУдостоверенияЛичности", "");
РеквизитыЛицаБезДоверенности.ДокументСрокДействия = Дата(1,1,1);
КодСтраны = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПГражданствоКод", "");
НаименованиеСтраны = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПГражданствоНаименование", "");
Если ЗначениеЗаполнено(КодСтраны) Или ЗначениеЗаполнено(НаименованиеСтраны) Тогда
ДанныеСтраныМира = УправлениеКонтактнойИнформацией.ДанныеСтраныМира(КодСтраны, НаименованиеСтраны);
Если ДанныеСтраныМира <> Неопределено Тогда
РеквизитыЛицаБезДоверенности.Гражданство = ДанныеСтраныМира.Ссылка;
КонецЕсли;
КонецЕсли;
РеквизитыЛицаБезДоверенности.БезГражданства = Ложь;
РеквизитыЛицаБезДоверенности.МестоРождения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПМестоРождения", "");
РеквизитыЛицаБезДоверенности.НомерЗаписиЕдиногоРегистраНаселения = "";
Реквизиты.РеквизитыЛицаБезДоверенности = РеквизитыЛицаБезДоверенности;
Иначе
Реквизиты.ИНН = СведенияОбОрганизации.ИНН;
Реквизиты.НаименованиеПолное = СведенияОбОрганизации.НаименованиеПолное;
Реквизиты.НаименованиеСокращенное = СведенияОбОрганизации.НаименованиеСокращенное;
Реквизиты.ОГРН = СведенияОбОрганизации.ОГРН;
Реквизиты.Телефон = СведенияОбОрганизации.ТелефонОрганизации;
Реквизиты.ЮридическийАдрес = СведенияОбОрганизации.АдресОрганизации;
Реквизиты.КПП = СведенияОбОрганизации.КПП;
КонецЕсли;
КонецПроцедуры
Функция ПроверитьСведенияОбОрганизации(Форма, ПолеСообщения = "", ШаблонСообщения = "%1:", СведенияОбОрганизации = Неопределено) Экспорт
@@ -31,6 +31,7 @@
Если Не МодульАдресныйКлассификаторСлужебный.ЕстьПравоДобавлениеИзменениеАдресныхСведений() Тогда
Элементы.АдресныйКлассификаторНастройки.Видимость = Ложь;
КонецЕсли;
Форма.ИспользоватьВебСервисАдресов = МодульАдресныйКлассификаторСлужебный.ИспользоватьВебСервис();
Иначе
Элементы.АдресныйКлассификаторНастройки.Видимость = Ложь;
КонецЕсли;
@@ -151,6 +152,24 @@
КонецПроцедуры
// Сохраняет значение константы использования веб-сервиса адресов
// в панели администрирования "Интернет-поддержка и сервисы" БСП и БИП.
//
// Параметры:
// ИспользоватьВебСервисАдресов - Булево - если Ложь, то используются только загруженные данные.
//
Процедура ИнтернетПоддержкаИСервисыУстановитьИспользованиеВебСервиса(ИспользоватьВебСервисАдресов) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный");
МодульАдресныйКлассификаторСлужебный.УстановитьИспользованиеВебСервиса(ИспользоватьВебСервисАдресов);
ОбновитьПовторноИспользуемыеЗначения();
КонецЕсли;
КонецПроцедуры
// Выполняет обработку события ПриИзменении() элементов формы БСП ЦентрМониторингаРазрешитьОтправлятьДанные,
// ЦентрМониторингаРазрешитьОтправлятьДанныеСтороннему, ЦентрМониторингаЗапретитьОтправлятьДанные панели
// администрирования "Интернет-поддержка и сервисы" БСП и БИП.
@@ -2356,9 +2356,19 @@
КонецЕсли;
ИменаИзмерений.Добавить("ТаблицаИзменений." + Измерение.Имя);
ПсевдонимыИзмерений.Добавить(Измерение.Имя);
Если НЕ (Измерение.Тип.Типы().Количество() > 1
И (Измерение.Тип.Типы().Найти(Тип("Булево")) <> Неопределено
ИЛИ Измерение.Тип.Типы().Найти(Тип("Строка")) <> Неопределено
ИЛИ Измерение.Тип.Типы().Найти(Тип("Дата")) <> Неопределено)) Тогда
ПсевдонимыИзмерений.Добавить(Измерение.Имя);
КонецЕсли;
КонецЦикла;
Если ПсевдонимыИзмерений.Количество() = 0 Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ИНДЕКСИРОВАТЬ ПО", "");
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИндексируемыеИзмерения", УпорядочиванияДляЗапроса(ПсевдонимыИзмерений));
КонецЕсли;
@@ -6722,25 +6732,19 @@
Возврат;
КонецЕсли;
ПараметрыОбработчикаОбновления = ПараметрыСеанса.ПараметрыОбработчикаОбновления;
НовыеПараметрыСеанса = ОбновлениеИнформационнойБазыСлужебный.НовыеПараметрыОбработчикаОбновления();
ЗаполнитьЗначенияСвойств(НовыеПараметрыСеанса, ПараметрыСеанса.ПараметрыОбработчикаОбновления);
НовыеПараметрыСеанса.ОбработаноОбъектов = НовыеПараметрыСеанса.ОбработаноОбъектов + ОбъектовОбработано;
ТекущаяДата = ТекущаяДатаСеанса();
ИнтервалЧас = НачалоЧаса(ТекущаяДата);
МенеджерЗаписи = РегистрыСведений.ПрогрессОбновления.СоздатьМенеджерЗаписи();
МенеджерЗаписи.ИмяОбработчика = ПараметрыОбработчикаОбновления.ИмяОбработчика;
МенеджерЗаписи.КлючЗаписи = ПараметрыОбработчикаОбновления.КлючЗаписиПрогрессаОбновления;
МенеджерЗаписи.ИнтервалЧас = ИнтервалЧас;
МенеджерЗаписи.Прочитать();
Если Не МенеджерЗаписи.Выбран() Тогда
МенеджерЗаписи.ИмяОбработчика = ПараметрыОбработчикаОбновления.ИмяОбработчика;
МенеджерЗаписи.КлючЗаписи = ПараметрыОбработчикаОбновления.КлючЗаписиПрогрессаОбновления;
МенеджерЗаписи.ИнтервалЧас = ИнтервалЧас;
МенеджерЗаписи.ОбъектовОбработано = ОбъектовОбработано;
Иначе
МенеджерЗаписи.ОбъектовОбработано = МенеджерЗаписи.ОбъектовОбработано + ОбъектовОбработано;
Если НовыеПараметрыСеанса.ДатаПоследнейЗаписиПрогресса = Неопределено
Или ТекущаяДатаСеанса() - НовыеПараметрыСеанса.ДатаПоследнейЗаписиПрогресса > 15 Тогда // Больше 15 секунд с последней записи прогресса.
ОбновлениеИнформационнойБазыСлужебный.ЗаписатьПрогрессВыполненияОбработчика(НовыеПараметрыСеанса);
НовыеПараметрыСеанса.ОбработаноОбъектов = 0;
НовыеПараметрыСеанса.ДатаПоследнейЗаписиПрогресса = ТекущаяДатаСеанса();
КонецЕсли;
МенеджерЗаписи.Записать();
ПараметрыСеанса.ПараметрыОбработчикаОбновления = Новый ФиксированнаяСтруктура(НовыеПараметрыСеанса);
КонецПроцедуры
@@ -45,7 +45,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.9.199";
Описание.Версия = "3.1.9.209";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -10966,6 +10966,8 @@
Параметры = КонтекстОбработчика.Параметры;
ЗаписатьПрогрессВыполненияОбработчика(КонтекстОбработчика.ПараметрыОбработчикаОбновления);
// Если обработчик обновления передал параметры, их нужно сохранить.
ПереданныеПараметры = ПереданныеПараметрыОбработчикаОбновления(Параметры);
СтатистикаВыполнения = ОбработчикОбновления.СтатистикаВыполнения.Получить();
@@ -11433,6 +11435,8 @@
ПараметрыОбработчикаОбновления.Вставить("АктуальныеДанные", Неопределено);
ПараметрыОбработчикаОбновления.Вставить("ОбработаныАктуальныеДанные", Неопределено);
ПараметрыОбработчикаОбновления.Вставить("ОбработанныеТаблицыРегистраторов", Неопределено);
ПараметрыОбработчикаОбновления.Вставить("ДатаПоследнейЗаписиПрогресса", Неопределено);
ПараметрыОбработчикаОбновления.Вставить("ОбработаноОбъектов", 0);
Возврат ПараметрыОбработчикаОбновления;
КонецФункции
@@ -12051,4 +12055,49 @@
КонецФункции
Процедура ЗаписатьПрогрессВыполненияОбработчика(ПараметрыОбработчика) Экспорт
Если ПараметрыОбработчика = Неопределено
Или ПараметрыОбработчика.ОбработаноОбъектов = 0 Тогда
Возврат;
КонецЕсли;
ТекущаяДата = ТекущаяДатаСеанса();
ИнтервалЧас = НачалоЧаса(ТекущаяДата);
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.ПрогрессОбновления");
ЭлементБлокировкиДанных.УстановитьЗначение("ИмяОбработчика", ПараметрыОбработчика.ИмяОбработчика);
ЭлементБлокировкиДанных.УстановитьЗначение("КлючЗаписи", ПараметрыОбработчика.КлючЗаписиПрогрессаОбновления);
ЭлементБлокировкиДанных.УстановитьЗначение("ИнтервалЧас", ИнтервалЧас);
НачатьТранзакцию();
Попытка
БлокировкаДанных.Заблокировать();
НаборЗаписей = РегистрыСведений.ПрогрессОбновления.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.ИмяОбработчика.Установить(ПараметрыОбработчика.ИмяОбработчика);
НаборЗаписей.Отбор.КлючЗаписи.Установить(ПараметрыОбработчика.КлючЗаписиПрогрессаОбновления);
НаборЗаписей.Отбор.ИнтервалЧас.Установить(ИнтервалЧас);
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество() = 0 Тогда
Запись = НаборЗаписей.Добавить();
Запись.ИмяОбработчика = ПараметрыОбработчика.ИмяОбработчика;
Запись.КлючЗаписи = ПараметрыОбработчика.КлючЗаписиПрогрессаОбновления;
Запись.ИнтервалЧас = ИнтервалЧас;
Запись.ОбъектовОбработано = ПараметрыОбработчика.ОбработаноОбъектов;
Иначе
Запись = НаборЗаписей[0];
Запись.ОбъектовОбработано = Запись.ОбъектовОбработано + ПараметрыОбработчика.ОбработаноОбъектов;
КонецЕсли;
НаборЗаписей.ОбменДанными.Загрузка = Истина;
НаборЗаписей.ОбменДанными.Получатели.АвтоЗаполнение = Ложь;
НаборЗаписей.Записать();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
#КонецОбласти
@@ -160,7 +160,7 @@
"Ошибка",
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке),, Истина);
ОбработкаОшибок.ПоказатьИнформациюОбОшибке(ИнформацияОбОшибке);
СтандартныеПодсистемыКлиент.ПоказатьИнформациюОбОшибкеИПродолжить(ИнформацияОбОшибке);
КонецПроцедуры
@@ -1826,8 +1826,11 @@
Функция ЭтоLinuxСервер() Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация;
Возврат СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64;
Возврат СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.22.0") >= 0
И (СистемнаяИнформация.ТипПлатформы = ТипПлатформы["Linux_ARM64"]
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы["Linux_E2K"]);
КонецФункции
@@ -245,9 +245,14 @@
//
Функция ЭтоLinuxКлиент() Экспорт
ТипПлатформыКлиента = ТипПлатформыКлиента();
СистемнаяИнформация = Новый СистемнаяИнформация;
ТипПлатформыКлиента = СистемнаяИнформация.ТипПлатформы;
Возврат ТипПлатформыКлиента = ТипПлатформы.Linux_x86
Или ТипПлатформыКлиента = ТипПлатформы.Linux_x86_64;
Или ТипПлатформыКлиента = ТипПлатформы.Linux_x86_64
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.22.0") >= 0
И (ТипПлатформыКлиента = ТипПлатформы["Linux_ARM64"]
Или ТипПлатформыКлиента = ТипПлатформы["Linux_E2K"]);
КонецФункции
@@ -242,25 +242,46 @@
//
Функция ИмяТипаПлатформы(Знач ЗначениеТипаПлатформы = Неопределено) Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация;
Если ТипЗнч(ЗначениеТипаПлатформы) <> Тип("ТипПлатформы") Тогда
СистемнаяИнформация = Новый СистемнаяИнформация;
ЗначениеТипаПлатформы = СистемнаяИнформация.ТипПлатформы;
КонецЕсли;
Если ЗначениеТипаПлатформы = ТипПлатформы.Linux_x86 Тогда
Возврат "Linux_x86";
ИначеЕсли ЗначениеТипаПлатформы = ТипПлатформы.Linux_x86_64 Тогда
Возврат "Linux_x86_64";
ИначеЕсли ЗначениеТипаПлатформы = ТипПлатформы.MacOS_x86 Тогда
Возврат "MacOS_x86";
ИначеЕсли ЗначениеТипаПлатформы = ТипПлатформы.MacOS_x86_64 Тогда
Возврат "MacOS_x86_64";
ИначеЕсли ЗначениеТипаПлатформы = ТипПлатформы.Windows_x86 Тогда
Возврат "Windows_x86";
ИначеЕсли ЗначениеТипаПлатформы = ТипПлатформы.Windows_x86_64 Тогда
Возврат "Windows_x86_64";
ИменаТиповПлатформы = Новый Массив;
ИменаТиповПлатформы.Добавить("Linux_x86");
ИменаТиповПлатформы.Добавить("Linux_x86_64");
ИменаТиповПлатформы.Добавить("MacOS_x86");
ИменаТиповПлатформы.Добавить("MacOS_x86_64");
ИменаТиповПлатформы.Добавить("Windows_x86");
ИменаТиповПлатформы.Добавить("Windows_x86_64");
Если СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.22.0") >= 0 Тогда
ИменаТиповПлатформы.Добавить("Linux_ARM64");
ИменаТиповПлатформы.Добавить("Linux_E2K");
КонецЕсли;
Если СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.23.0") >= 0 Тогда
ИменаТиповПлатформы.Добавить("Android_ARM");
ИменаТиповПлатформы.Добавить("Android_ARM_64");
ИменаТиповПлатформы.Добавить("Android_x86");
ИменаТиповПлатформы.Добавить("Android_x86_64");
ИменаТиповПлатформы.Добавить("iOS_ARM");
ИменаТиповПлатформы.Добавить("iOS_ARM_64");
ИменаТиповПлатформы.Добавить("WinRT_ARM");
ИменаТиповПлатформы.Добавить("WinRT_x86");
ИменаТиповПлатформы.Добавить("WinRT_x86_64");
КонецЕсли;
Для Каждого ИмяТипаПлатформы Из ИменаТиповПлатформы Цикл
Если ЗначениеТипаПлатформы = ТипПлатформы[ИмяТипаПлатформы] Тогда
Возврат ИмяТипаПлатформы;
КонецЕсли;
КонецЦикла;
Возврат "";
КонецФункции
@@ -3447,7 +3468,10 @@
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоLinuxКлиент = СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86
ИЛИ СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64;
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64
Или СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.22.0") >= 0
И (СистемнаяИнформация.ТипПлатформы = ТипПлатформы["Linux_ARM64"]
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы["Linux_E2K"]);
#КонецЕсли
Возврат ЭтоLinuxКлиент;
@@ -3865,7 +3889,10 @@
#КонецЕсли
ИначеЕсли (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86)
Или (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64) Тогда
Или (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64)
Или СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.22.0") >= 0
И (СистемнаяИнформация.ТипПлатформы = ТипПлатформы["Linux_ARM64"]
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы["Linux_E2K"]) Тогда
Если ВыполнитьСНаивысшимиПравами Тогда
@@ -167,7 +167,7 @@
КонтекстПроверкиКомпоненты.ИсходноеМестоположение = Контекст.ИсходноеМестоположение;
КонтекстПроверкиКомпоненты.ИдентификаторыСозданияОбъектов = Контекст.ИдентификаторыСозданияОбъектов;
РезультатПоискаВнешнейКомпоненты = МодульВнешниеКомпонентыСлужебныйКлиент.РезультатПроверкиДоступностиКомпоненты(
РезультатПоискаВнешнейКомпоненты = Ждать МодульВнешниеКомпонентыСлужебныйКлиент.РезультатПроверкиДоступностиКомпоненты(
КонтекстПроверкиКомпоненты);
КонецЕсли;
@@ -140,7 +140,8 @@
КонецФункции
// Возвращает структуру, содержащую сведения о дополнительной информации организации.
// Возвращает структуру, содержащую сведения о дополнительной информации организации. Заполнять только в случае, если организация
// является юридическим лицом (не ИП).
//
// Параметры:
// Организация - ОпределяемыйТип.Организация - организация, сведения по которой необходимо получить.
@@ -172,7 +173,6 @@
// * КодОрганаФСГС - Строка - код органа ФСГС.
// * КодПодчиненностиФСС - Строка - код подчиненности ФСС.
// * КодПодчиненностиФССДобрСтрах - Строка - код подчиненности ФСС добр. страх.
// * КодПоОКТМО - Строка - код по ОКТМО.
// * НаименованиеТерриториальногоОрганаФСС - Строка - наименование территориального органа ФСС.
// * ОбъектНалогообложенияУСН - Число - объект налогообложения УСН.
// * ОтветственноеЛицоСтатистикаФИО - Строка - ФИО ответственного лица за статистическую отчетность.
@@ -182,7 +182,6 @@
// * ПочтовыйАдресОрганизации - Строка - почтовый адрес организации.
// * ПочтовыйАдресОрганизацииXML - Строка - почтовый адрес организации в формате xml.
// * ПочтовыйАдресОрганизацииJSON - Строка - почтовый адрес организации в формате json.
// * РегистрационныйНомерТФОМС - Строка - регистрационный номер ТФОМС.
// * РегистрационныйНомерФСС - Строка - регистрационный номер ФСС.
// * СведенияОбИсполнителеДолжность - Строка - должность исполнителя.
// * СведенияОбИсполнителеТелефон - Строка - телефон исполнителя.
@@ -454,7 +453,7 @@
// * ИПРегистрационныйНомерПФР - Строка - регистрационный номер ПФР.
// * ИПРегистрационныйНомерТФОМС - Строка - регистрационный номер ТФОМС.
// * ИПАдресЭлектроннойПочты - Строка - адрес электронной почты индивидуального предпринимателя.
// * ФизическоеЛицоПол - Число - пол.
// * ФизическоеЛицоПол - Число - пол: 1 - Мужской, 2 - Женский.
// * ИПСерияУдостоверенияЛичности - Строка - серия удостоверения личности.
// * ИндивидуальныйПредпринимательСНИЛС - Строка - СНИЛС.
// * ФизическоеЛицоНаименование - Строка - наименование физлица.
@@ -1008,23 +1008,7 @@
Свойства.Роли = Новый Массив;
Если ТипЗнч(ИмяИлиИдентификатор) = Тип("УникальныйИдентификатор") Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
Иначе
СеансЗапущенБезРазделителей = Истина;
КонецЕсли;
Если ОбщегоНазначения.РазделениеВключено()
И СеансЗапущенБезРазделителей
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
И ИмяИлиИдентификатор = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор Тогда
ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
Иначе
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ИмяИлиИдентификатор);
КонецЕсли;
ПользовательИБ = ПользователиСлужебный.ПользовательИБПоИдентификатору(ИмяИлиИдентификатор);
ИначеЕсли ТипЗнч(ИмяИлиИдентификатор) = Тип("Строка") Тогда
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяИлиИдентификатор);
@@ -657,6 +657,36 @@
КонецФункции
// Параметры:
// ИдентификаторПользователяИБ - УникальныйИдентификатор
//
Функция ПользовательИБПоИдентификатору(ИдентификаторПользователяИБ) Экспорт
Если ТипЗнч(ИдентификаторПользователяИБ) <> Тип("УникальныйИдентификатор") Тогда
Возврат Неопределено;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
Иначе
СеансЗапущенБезРазделителей = Истина;
КонецЕсли;
Если ОбщегоНазначения.РазделениеВключено()
И СеансЗапущенБезРазделителей
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
И ИдентификаторПользователяИБ = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор Тогда
ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
Иначе
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ИдентификаторПользователяИБ);
КонецЕсли;
Возврат ПользовательИБ;
КонецФункции
// Только для внутреннего использования.
//
// Параметры:
@@ -714,19 +744,32 @@
// (элементу справочника ВнешниеПользователи).
// Пользователь - Неопределено - найти по уникальному идентификатору пользователя ИБ, если потребуется.
// - СправочникСсылка.Пользователи
// - СправочникСсылка.ВнешниеПользователи
// - СправочникСсылка.ВнешниеПользователи
//
// СообщатьВМенеджерСервиса - Булево
//
Процедура ЗаписатьПользователяИнформационнойБазы(ПользовательИБ, ЭтоВнешнийПользователь = Ложь,
Пользователь = Неопределено) Экспорт
Пользователь = Неопределено, Знач СообщатьВМенеджерСервиса = Истина) Экспорт
ИнтеграцияПодсистемБСП.ПередЗаписьюПользователяИБ(ПользовательИБ);
СообщатьВМенеджерСервиса = СообщатьВМенеджерСервиса
И ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса");
ЭтоОбновлениеСправочниковПользователей = ПользовательИБ.УникальныйИдентификатор
= ПараметрыСеанса.ОбновлениеСправочниковПользователей.Получить("ИдентификаторПользователяИБ");
Если СообщатьВМенеджерСервиса И Не ЭтоОбновлениеСправочниковПользователей Тогда
СтарыйПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
ПользовательИБ.УникальныйИдентификатор);
КонецЕсли;
ПроверитьПраваПользователя(ПользовательИБ, "ПередЗаписью", ЭтоВнешнийПользователь);
ОбновлениеИнформационнойБазыСлужебный.УстановитьФлагОтображенияОписанийДляНовогоПользователя(ПользовательИБ.Имя);
ПользовательИБ.Записать();
Если ПараметрыСеанса.ОбновлениеСправочниковПользователей.Получить("ИдентификаторПользователяИБ")
<> ПользовательИБ.УникальныйИдентификатор Тогда
Если Не ЭтоОбновлениеСправочниковПользователей Тогда
ОбновленныйПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
ПользовательИБ.УникальныйИдентификатор);
@@ -739,6 +782,11 @@
КонецЕсли;
Если Пользователь <> Неопределено Тогда
РегистрыСведений.СведенияОПользователях.ОбновитьСведенияОПользователе(Пользователь,, ПользовательИБ);
Если СообщатьВМенеджерСервиса Тогда
МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса");
МодульПользователиСлужебныйВМоделиСервиса.СообщитьИзмененЗапускПриложения(Пользователь,
ПользовательИБ, СтарыйПользовательИБ);
КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -999,8 +1047,9 @@
КонецЕсли;
Если Не ЗначениеЗаполнено(Результат.ИдентификаторПользователяИБ) Тогда
ПользовательСсылка = ?(ТипЗнч(Пользователь) = Тип("СправочникОбъект.Пользователи"),
Пользователь.Ссылка, Пользователь);
Если ТипЗнч(Пользователь) = Тип("СправочникОбъект.Пользователи") Тогда
ПользовательСсылка = Пользователь.Ссылка;
КонецЕсли;
Если ПользовательСсылка = Пользователи.СсылкаНеуказанногоПользователя() Тогда
Результат.ИдентификаторПользователяИБ = ПользователиИнформационнойБазы.НайтиПоИмени("").УникальныйИдентификатор;
КонецЕсли;
@@ -3278,9 +3327,11 @@
ПользовательОбъект.ИдентификаторПользователяИБ;
ОписаниеНовогоПользователяИБ = Пользователи.СвойстваПользователяИБ(ПользовательОбъект.ИдентификаторПользователяИБ);
ПараметрыОбработки.Вставить("НовыйПользовательИБСуществует", ОписаниеНовогоПользователяИБ <> Неопределено);
ПараметрыОбработки.Вставить("НовыйПользовательИБ",
ПользовательИБПоИдентификатору(ПользовательОбъект.ИдентификаторПользователяИБ));
Если ОписаниеНовогоПользователяИБ <> Неопределено Тогда
ПараметрыОбработки.Вставить("НовыйПользовательИБСуществует", Истина);
ПараметрыОбработки.Вставить("ОписаниеНовогоПользователяИБ", ОписаниеНовогоПользователяИБ);
// Проверка прав на изменение пользователей с широким доступом.
@@ -3289,8 +3340,6 @@
ВызватьИсключение ПараметрыОбработки.ТекстСообщенияНедостаточноПрав;
КонецЕсли;
Иначе
ПараметрыОбработки.Вставить("НовыйПользовательИБСуществует", Ложь);
КонецЕсли;
// ПослеНачалаОбработкиПользователяИБ - поддержка модели сервиса.
@@ -4231,7 +4280,7 @@
|""%1""
|не существует роль ""%2""
|группы внешних пользователей ""%3"".'"),
СокрЛП(ВнешнийПользователь.Наименование),
СокрЛП(ВнешнийПользователь),
Выборка.Роль,
Строка(Выборка.ГруппаВнешнихПользователей));
@@ -4474,20 +4523,24 @@
Или ГруппаПриемник = Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи Тогда
Если Перемещение Тогда
УдалитьПользователяИзГруппы(ГруппаИсточник, ПользовательСсылка, ИмяКолонкиСостава);
Удален = Ложь;
УдалитьПользователяИзГруппы(ГруппаИсточник, ПользовательСсылка, ИмяКолонкиСостава, Удален);
Иначе
Удален = Истина;
КонецЕсли;
МассивПеремещенныхПользователей.Добавить(ПользовательСсылка);
ИначеЕсли ГруппаПриемник.Состав.Найти(ПользовательСсылка, ИмяКолонкиСостава) = Неопределено Тогда
ДобавитьПользователяВГруппу(ГруппаПриемник, ПользовательСсылка, ИмяКолонкиСостава);
// Удаление пользователя из старой группы.
Если Перемещение Тогда
УдалитьПользователяИзГруппы(ГруппаИсточник, ПользовательСсылка, ИмяКолонкиСостава);
Если Удален Тогда
МассивПеремещенныхПользователей.Добавить(ПользовательСсылка);
КонецЕсли;
Иначе
Добавлен = Ложь;
ДобавитьПользователяВГруппу(ГруппаПриемник, ПользовательСсылка, ИмяКолонкиСостава, Добавлен);
Если Добавлен Тогда
// Удаление пользователя из старой группы.
Если Перемещение Тогда
УдалитьПользователяИзГруппы(ГруппаИсточник, ПользовательСсылка, ИмяКолонкиСостава);
КонецЕсли;
МассивПеремещенныхПользователей.Добавить(ПользовательСсылка);
КонецЕсли;
МассивПеремещенныхПользователей.Добавить(ПользовательСсылка);
КонецЕсли;
КонецЦикла;
@@ -4557,44 +4610,17 @@
КонецФункции
Процедура ДобавитьПользователяВГруппу(ГруппаПриемник, ПользовательСсылка, ТипПользователя) Экспорт
Процедура ДобавитьПользователяВГруппу(ГруппаВладелец, ПользовательСсылка, ИмяКолонкиСостава, Добавлен) Экспорт
Если ГруппаВладелец = Справочники.ГруппыПользователей.ВсеПользователи
Или ГруппаВладелец = Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи Тогда
Возврат;
КонецЕсли;
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
Если ТипПользователя = "ВнешнийПользователь" Тогда
ИмяТаблицы = "Справочник.ГруппыВнешнихПользователей";
Иначе
ИмяТаблицы = "Справочник.ГруппыПользователей";
КонецЕсли;
ЭлементБлокировки = Блокировка.Добавить(ИмяТаблицы);
ЭлементБлокировки.УстановитьЗначение("Ссылка", ГруппаПриемник);
Блокировка.Заблокировать();
ГруппаПриемникОбъект = ГруппаПриемник.ПолучитьОбъект();
СтрокаСостава = ГруппаПриемникОбъект.Состав.Добавить();
Если ТипПользователя = "ВнешнийПользователь" Тогда
СтрокаСостава.ВнешнийПользователь = ПользовательСсылка;
Иначе
СтрокаСостава.Пользователь = ПользовательСсылка;
КонецЕсли;
ГруппаПриемникОбъект.Записать();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
Процедура УдалитьПользователяИзГруппы(ГруппаВладелец, ПользовательСсылка, ТипПользователя) Экспорт
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
Если ТипПользователя = "ВнешнийПользователь" Тогда
Если ИмяКолонкиСостава = "ВнешнийПользователь" Тогда
ИмяТаблицы = "Справочник.ГруппыВнешнихПользователей";
Иначе
ИмяТаблицы = "Справочник.ГруппыПользователей";
@@ -4604,9 +4630,56 @@
Блокировка.Заблокировать();
ГруппаВладелецОбъект = ГруппаВладелец.ПолучитьОбъект();
Если ГруппаВладелецОбъект.Состав.Количество() <> 0 Тогда
ГруппаВладелецОбъект.Состав.Удалить(ГруппаВладелецОбъект.Состав.Найти(ПользовательСсылка, ТипПользователя));
Свойства = Новый Структура("ВсеОбъектыАвторизации", Ложь);
ЗаполнитьЗначенияСвойств(Свойства, ГруппаВладелецОбъект);
СтрокаСостава = ГруппаВладелецОбъект.Состав.Найти(ПользовательСсылка, ИмяКолонкиСостава);
Если СтрокаСостава = Неопределено И Не Свойства.ВсеОбъектыАвторизации Тогда
СтрокаСостава = ГруппаВладелецОбъект.Состав.Добавить();
Если ИмяКолонкиСостава = "ВнешнийПользователь" Тогда
СтрокаСостава.ВнешнийПользователь = ПользовательСсылка;
Иначе
СтрокаСостава.Пользователь = ПользовательСсылка;
КонецЕсли;
ГруппаВладелецОбъект.Записать();
Добавлен = Истина;
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
Процедура УдалитьПользователяИзГруппы(ГруппаВладелец, ПользовательСсылка, ИмяКолонкиСостава, Удален = Ложь) Экспорт
Если ГруппаВладелец = Справочники.ГруппыПользователей.ВсеПользователи
Или ГруппаВладелец = Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи Тогда
Возврат;
КонецЕсли;
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
Если ИмяКолонкиСостава = "ВнешнийПользователь" Тогда
ИмяТаблицы = "Справочник.ГруппыВнешнихПользователей";
Иначе
ИмяТаблицы = "Справочник.ГруппыПользователей";
КонецЕсли;
ЭлементБлокировки = Блокировка.Добавить(ИмяТаблицы);
ЭлементБлокировки.УстановитьЗначение("Ссылка", ГруппаВладелец);
Блокировка.Заблокировать();
ГруппаВладелецОбъект = ГруппаВладелец.ПолучитьОбъект();
СтрокаСостава = ГруппаВладелецОбъект.Состав.Найти(ПользовательСсылка, ИмяКолонкиСостава);
Если СтрокаСостава <> Неопределено Тогда
ГруппаВладелецОбъект.Состав.Удалить(СтрокаСостава);
ГруппаВладелецОбъект.Записать();
Удален = Истина;
КонецЕсли;
ЗафиксироватьТранзакцию();
@@ -7704,6 +7777,8 @@
ОписаниеСтарогоПользователяИБ = Пользователи.СвойстваПользователяИБ(СтарыйПользователь.ИдентификаторПользователяИБ);
ПараметрыОбработки.Вставить("СтарыйПользовательИБСуществует", ОписаниеСтарогоПользователяИБ <> Неопределено);
ПараметрыОбработки.Вставить("СтарыйПользовательИБТекущий", Ложь);
ПараметрыОбработки.Вставить("СтарыйПользовательИБ",
ПользовательИБПоИдентификатору(СтарыйПользователь.ИдентификаторПользователяИБ));
Если ПараметрыОбработки.СтарыйПользовательИБСуществует Тогда
ПараметрыОбработки.Вставить("ОписаниеСтарогоПользователяИБ", ОписаниеСтарогоПользователяИБ);
@@ -128,7 +128,7 @@
Если ЗначениеЗаполнено(ПользовательОбъект.ИдентификаторПользователяИБ) Тогда
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ПользовательОбъект.ИдентификаторПользователяИБ);
ДоступРазрешен = ПользовательИБ <> Неопределено И Пользователи.ВходВПрограммуРазрешен(ПользовательИБ);
ДоступРазрешен = ВозможенЗапускПриложения(ПользовательИБ);
Иначе
ДоступРазрешен = Ложь;
КонецЕсли;
@@ -178,13 +178,16 @@
КонецПроцедуры
// Отправляет сообщение менеджеру сервиса об изменении наличия прав для входа в программу.
// Отправляет сообщение менеджеру сервиса об изменении возможности запуска приложения
// (наличия разрешения и прав для входа в программу).
//
// Параметры:
// Пользователь - СправочникСсылка.Пользователи
// ЕстьПрава - Булево - новое наличие прав на запуск.
// ПользовательИБ - ПользовательИнформационнойБазы
// СтарыйПользовательИБ - Неопределено - отправить безусловно
// - ПользовательИнформационнойБазы - отправить, если изменен.
//
Процедура СообщитьЕстьПраваДляВходаВПрограмму(Пользователь, ЕстьПрава) Экспорт
Процедура СообщитьИзмененЗапускПриложения(Пользователь, ПользовательИБ, СтарыйПользовательИБ = Неопределено) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность")
Или Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОбменСообщениями")
@@ -192,6 +195,12 @@
Возврат;
КонецЕсли;
ВозможенЗапуск = ВозможенЗапускПриложения(ПользовательИБ);
Если СтарыйПользовательИБ <> Неопределено
И ВозможенЗапуск = ВозможенЗапускПриложения(СтарыйПользовательИБ) Тогда
Возврат;
КонецЕсли;
Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Пользователь,
"ИдентификаторПользователяИБ, ИдентификаторПользователяСервиса");
@@ -202,7 +211,7 @@
ИнфоПользователя.Вставить("ОбластьДанных", МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса());
ИнфоПользователя.Вставить("ИдентификаторПользователяИБ", Реквизиты.ИдентификаторПользователяИБ);
ИнфоПользователя.Вставить("ИдентификаторПользователяСервиса", Реквизиты.ИдентификаторПользователяСервиса);
ИнфоПользователя.Вставить("ЕстьПрава", ЕстьПрава);
ИнфоПользователя.Вставить("ЕстьПрава", ВозможенЗапуск);
ИнфоПользователя.Вставить("ДатаUTC", ТекущаяУниверсальнаяДата());
НачатьТранзакцию();
@@ -529,6 +538,7 @@
Если ПараметрыОбработки.Свойство("ОбработкаСообщенияКаналаУдаленногоАдминистрирования") Тогда
ОбновлятьРоли = Ложь;
Возврат;
КонецЕсли;
ОписаниеПользователяИБ = ПользовательОбъект.ДополнительныеСвойства.ОписаниеПользователяИБ;
@@ -544,13 +554,23 @@
УстановитьПривилегированныйРежим(Ложь);
Иначе // ДобавленПользовательИБ или ИзмененПользовательИБ.
ОбновитьПользователяСервиса(ПользовательОбъект, ПараметрыОбработки.СоздатьПользователяСервиса);
Если Не ПараметрыОбработки.Свойство("ОбработкаСообщенияКаналаУдаленногоАдминистрирования")
И ПараметрыОбработки.СоздатьПользователяСервиса Тогда
УстановитьПривилегированныйРежим(Истина);
Если ПользовательОбъект.ДополнительныеСвойства.Свойство("СинхронизироватьССервисом")
И ПользовательОбъект.ДополнительныеСвойства.СинхронизироватьССервисом Тогда
ЗаписатьПользователяСервиса(ПользовательОбъект,
ПараметрыОбработки.СоздатьПользователяСервиса,
ПользовательОбъект.ДополнительныеСвойства.ПарольПользователяСервиса);
Иначе
СообщитьИзмененЗапускПриложения(ПользовательОбъект.Ссылка,
ПараметрыОбработки.НовыйПользовательИБ,
ПараметрыОбработки.СтарыйПользовательИБ);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
Если ПараметрыОбработки.СоздатьПользователяСервиса Тогда
ИнтеграцияПодсистемБСП.ПриЗавершенииОбработкиПользователяИБ(ПользовательОбъект.Ссылка);
КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -819,22 +839,19 @@
КонецПроцедуры
// Для процедуры ПриЗавершенииОбработкиПользователяИБ.
Процедура ОбновитьПользователяСервиса(ПользовательОбъект, СоздатьПользователяСервиса)
// Параметры:
// ПользовательИБ - Неопределено, ПользовательИнформационнойБазы
//
// Возвращаемое значение:
// Булево
//
Функция ВозможенЗапускПриложения(ПользовательИБ)
Если НЕ ПользовательОбъект.ДополнительныеСвойства.Свойство("СинхронизироватьССервисом")
ИЛИ НЕ ПользовательОбъект.ДополнительныеСвойства.СинхронизироватьССервисом Тогда
Возврат;
КонецЕсли;
Возврат ПользовательИБ <> Неопределено
И Пользователи.ВходВПрограммуРазрешен(ПользовательИБ)
И Пользователи.ЕстьПраваДляВходаВПрограмму(ПользовательИБ,, Ложь);
УстановитьПривилегированныйРежим(Истина);
ЗаписатьПользователяСервиса(ПользовательОбъект,
СоздатьПользователяСервиса,
ПользовательОбъект.ДополнительныеСвойства.ПарольПользователяСервиса);
КонецПроцедуры
КонецФункции
// Только для внутреннего использования.
//
@@ -269,7 +269,8 @@
// ** Город - Строка - код КЛАДР города.
// ** НаселенныйПункт - Строка - код КЛАДР населенного пункта.
// ** Улица - Строка - код КЛАДР улицу.
// * ДополнительныеКоды - Структура - коды ОКТМО, ОКТМО, ОКАТО, КодИФНСФЛ, КодИФНСЮЛ, КодУчасткаИФНСФЛ, КодУчасткаИФНСЮЛ.
// * ДополнительныеКоды - Структура - коды ОКТМО, ОКТМОБюджетополучателя, ОКАТО,
// КодИФНСФЛ, КодИФНСЮЛ, КодУчасткаИФНСФЛ, КодУчасткаИФНСЮЛ.
// Поле отсутствует, если дополнительный параметр КодыАдреса равен Ложь.
// * РезультатПроверкиАдреса - Строка - "Успех", если адрес корректный, "Ошибка" - при наличии ошибок проверки,
// "Отказ", если не удалось проверить адрес, т.к. не доступен классификатор.
@@ -972,7 +973,8 @@
Представление = "";
КонецЕсли;
Если Результат.Свойство("Страна") И СтрСравнить(Результат.Страна, РаботаСАдресамиКлиентСервер.ОсновнаяСтрана().Наименование) = 0 Тогда
НазваниеОсновнойСтраны = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РаботаСАдресамиКлиентСервер.ОсновнаяСтрана(), "Наименование");
Если Результат.Свойство("Страна") И СтрСравнить(Результат.Страна, НазваниеОсновнойСтраны) = 0 Тогда
Результат.Вставить("АдресРФ", Истина);
Иначе
Результат.Вставить("АдресРФ", Ложь);
@@ -2011,7 +2013,7 @@
Результат = РаботаСАдресамиКлиентСервер.ОписаниеНовойКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.Адрес);
Результат.Comment = "";
НазваниеОсновнойСтраны = ВРег(РаботаСАдресамиКлиентСервер.ОсновнаяСтрана().Наименование);
НазваниеОсновнойСтраны = ВРег(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РаботаСАдресамиКлиентСервер.ОсновнаяСтрана(), "Наименование"));
ЭлементКвартира = Неопределено;
ЭлементКорпус = Неопределено;
ЭлементДом = Неопределено;
@@ -2447,7 +2449,8 @@
АдресПоПолям.КодСтраны = КодыСтраны(АдресИзJSON);
НаименованиеРегиона = СокрЛП(АдресИзJSON["area"] + " " +АдресИзJSON["areaType"]);
ЭтоНациональныйАдрес = ?(СтрСравнить(АдресИзJSON.Country, РаботаСАдресамиКлиентСервер.ОсновнаяСтрана().Наименование) = 0, Истина, Ложь);
НазваниеОсновнойСтраны = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РаботаСАдресамиКлиентСервер.ОсновнаяСтрана(), "Наименование");
ЭтоНациональныйАдрес = ?(СтрСравнить(АдресИзJSON.Country, НазваниеОсновнойСтраны) = 0, Истина, Ложь);
АдресПоПолям.КодРегиона = ?(ЭтоНациональныйАдрес, КодРегиона(НаименованиеРегиона), "");
ИдентификаторАдресногоОбъекта = "";
@@ -2823,6 +2826,7 @@
СоответствиеПолей.Вставить("Страна", "country");
СоответствиеПолей.Вставить("Индекс", "ZIPCode");
СоответствиеПолей.Вставить("ОКТМО", "oktmo");
СоответствиеПолей.Вставить("ОКТМОБюджетополучателя", "oktmoBudget");
СоответствиеПолей.Вставить("ОКАТО", "okato");
СоответствиеПолей.Вставить("Регион", "area");
СоответствиеПолей.Вставить("РегионСокращение", "areaType");
@@ -2951,8 +2955,9 @@
Результат.Вставить("ДополнительныеКоды", ДополнительныеКоды);
УстановитьЗначенияПоля(Результат, Адрес, "ОКТМО", "OKTMO");
УстановитьЗначенияПоля(Результат, Адрес, "ОКАТО", "OKATO");
УстановитьЗначенияПоля(Результат, Адрес, "ОКТМО", "oktmo");
УстановитьЗначенияПоля(Результат, Адрес, "ОКТМОБюджетополучателя", "oktmoBudget");
УстановитьЗначенияПоля(Результат, Адрес, "ОКАТО", "okato");
УстановитьЗначенияПоля(Результат, Адрес, "КодИФНСФЛ", "IFNSFLCode");
УстановитьЗначенияПоля(Результат, Адрес, "КодИФНСЮЛ", "IFNSULCode");
УстановитьЗначенияПоля(Результат, Адрес, "КодУчасткаИФНСФЛ", "IFNSFLAreaCode");
@@ -3563,7 +3568,7 @@
Если Не ЗначениеЗаполнено(Проверка) Тогда
Возврат;
КонецЕсли;
ВидКонтактнойИнформации = ВидПроверки.Свойство2; // СправочникСсылка.ВидыКонтактнойИнформации
ВидКонтактнойИнформации = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидПроверки, "Свойство2"); // СправочникСсылка.ВидыКонтактнойИнформации
ВключатьСтрануВПредставление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидКонтактнойИнформации, "ВключатьСтрануВПредставление");
ПроблемныеОбъекты = МодульКонтрольВеденияУчета.ПроблемныеОбъектыПоВидуПроверки(ВидПроверки);
@@ -4116,7 +4121,7 @@
КонецЕсли;
ПолноеИмяОбъектаСКонтактнойИнформацией = ПроблемныеОбъекты[0].ПроблемныйОбъект.Метаданные().ПолноеИмя();
Вид = ВидПроверки.Свойство2;
Вид = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидПроверки, "Свойство2");
СвойстваВида = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Вид, "ВключатьСтрануВПредставление, ХранитьИсториюИзменений, Ссылка");
ТекстЗапроса = "ВЫБРАТЬ
@@ -458,8 +458,9 @@
// * Buildings - Массив - содержит структуры(поля структуры: type, number) с перечнем корпусов (строений) адреса.
// * Apartments - Массив - содержит структуры(поля структуры: type, number) с перечнем помещений адреса.
// * CodeKLADR - Строка - код КЛАДР.
// * OKTMO - Строка - код ОКТМО.
// * OKATO - Строка - код ОКАТО.
// * oktmo - Строка - код ОКТМО.
// * oktmoBudget - Строка - код ОКТМО бюджетополучателя.
// * okato - Строка - код ОКАТО.
// * IFNSFLCode - Строка - код ИФНСФЛ.
// * IFNSULCode - Строка - код ИФНСЮЛ.
// * IFNSFLAreaCode - Строка - код участка ИФНСФЛ.
@@ -508,6 +509,7 @@
Результат.Вставить("apartments", Новый Массив);
Результат.Вставить("codeKLADR", "");
Результат.Вставить("oktmo", "");
Результат.Вставить("oktmoBudget", "");
Результат.Вставить("okato", "");
Результат.Вставить("asInDocument", "");
Результат.Вставить("ifnsFLCode", "");
@@ -519,7 +521,6 @@
Результат.Вставить("admLevels", Новый Массив);
Результат.Вставить("munLevels", Новый Массив);
КонецЕсли;
Возврат Результат;
@@ -452,6 +452,74 @@
КонецФункции
// Возвращает список имен полей объекта ИнтернетПочтовоеСообщение.
//
// Возвращаемое значение:
// Структура:
// * АдресаУведомленияОДоставке - Строка
// * АдресаУведомленияОПрочтении - Строка
// * Важность - Строка
// * Вложения - Строка
// * ДатаОтправления - Строка
// * ДатаПолучения - Строка
// * Заголовок - Строка
// * Идентификатор - Строка
// * ИдентификаторСообщения - Строка
// * ИмяОтправителя - Строка
// * Категории - Строка
// * Кодировка - Строка
// * Копии - Строка
// * ОбратныйАдрес - Строка
// * Отправитель - Строка
// * Получатели - Строка
// * Размер - Строка
// * СлепыеКопии - Строка
// * СмещениеДатыОтправления - Строка
// * СтатусРазбора - Строка
// * Тема - Строка
// * Тексты - Строка
// * Кодировка - Строка
// * СпособКодированияНеASCIIСимволов - Строка
// * УведомитьОДоставке - Строка
// * УведомитьОПрочтении - Строка
// * Частичное - Строка
//
Функция ПоляИнтернетПочтовогоСообщения() Экспорт
ПоляСообщения = Новый Структура;
ПоляСообщения.Вставить("АдресаУведомленияОДоставке", "АдресаУведомленияОДоставке");
ПоляСообщения.Вставить("АдресаУведомленияОПрочтении", "АдресаУведомленияОПрочтении");
ПоляСообщения.Вставить("Важность", "Важность");
ПоляСообщения.Вставить("Вложения", "Вложения");
ПоляСообщения.Вставить("ДатаОтправления", "ДатаОтправления");
ПоляСообщения.Вставить("ДатаПолучения", "ДатаПолучения");
ПоляСообщения.Вставить("Заголовок", "Заголовок");
ПоляСообщения.Вставить("ИмяОтправителя", "ИмяОтправителя");
ПоляСообщения.Вставить("Идентификатор", "Идентификатор");
ПоляСообщения.Вставить("ИдентификаторСообщения", "ИдентификаторСообщения");
ПоляСообщения.Вставить("Категории", "Категории");
ПоляСообщения.Вставить("Кодировка", "Кодировка");
ПоляСообщения.Вставить("Копии", "Копии");
ПоляСообщения.Вставить("ОбратныйАдрес", "ОбратныйАдрес");
ПоляСообщения.Вставить("Отправитель", "Отправитель");
ПоляСообщения.Вставить("Получатели", "Получатели");
ПоляСообщения.Вставить("Размер", "Размер");
ПоляСообщения.Вставить("СлепыеКопии", "СлепыеКопии");
ПоляСообщения.Вставить("СмещениеДатыОтправления", "СмещениеДатыОтправления");
ПоляСообщения.Вставить("СтатусРазбора", "СтатусРазбора");
ПоляСообщения.Вставить("Тема", "Тема");
ПоляСообщения.Вставить("Тексты", "Тексты");
ПоляСообщения.Вставить("Кодировка", "Кодировка");
ПоляСообщения.Вставить("СпособКодированияНеASCIIСимволов", "СпособКодированияНеASCIIСимволов");
ПоляСообщения.Вставить("УведомитьОДоставке", "УведомитьОДоставке");
ПоляСообщения.Вставить("УведомитьОПрочтении", "УведомитьОПрочтении");
ПоляСообщения.Вставить("Частичное", "Частичное");
Возврат ПоляСообщения;
КонецФункции
#Область УстаревшиеПроцедурыИФункции
// Выполняет отправку почтовых сообщений.
@@ -892,24 +892,26 @@
КонецЦикла;
КонецЕсли;
ПоляИнтернетПочтовогоСообщения = РаботаСПочтовымиСообщениями.ПоляИнтернетПочтовогоСообщения();
МассивКолонокПоУмолчанию = Новый Массив;
МассивКолонокПоУмолчанию.Добавить("Важность");
МассивКолонокПоУмолчанию.Добавить("Вложения");
МассивКолонокПоУмолчанию.Добавить("ДатаОтправления");
МассивКолонокПоУмолчанию.Добавить("ДатаПолучения");
МассивКолонокПоУмолчанию.Добавить("Заголовок");
МассивКолонокПоУмолчанию.Добавить("ИмяОтправителя");
МассивКолонокПоУмолчанию.Добавить("Идентификатор");
МассивКолонокПоУмолчанию.Добавить("Копии");
МассивКолонокПоУмолчанию.Добавить("ОбратныйАдрес");
МассивКолонокПоУмолчанию.Добавить("Отправитель");
МассивКолонокПоУмолчанию.Добавить("Получатели");
МассивКолонокПоУмолчанию.Добавить("Размер");
МассивКолонокПоУмолчанию.Добавить("Тема");
МассивКолонокПоУмолчанию.Добавить("Тексты");
МассивКолонокПоУмолчанию.Добавить("Кодировка");
МассивКолонокПоУмолчанию.Добавить("СпособКодированияНеASCIIСимволов");
МассивКолонокПоУмолчанию.Добавить("Частичное");
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Важность);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Вложения);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.ДатаОтправления);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.ДатаПолучения);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Заголовок);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.ИмяОтправителя);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Идентификатор);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Копии);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.ОбратныйАдрес);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Отправитель);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Получатели);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Размер);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Тема);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Тексты);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Кодировка);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.СпособКодированияНеASCIIСимволов);
МассивКолонокПоУмолчанию.Добавить(ПоляИнтернетПочтовогоСообщения.Частичное);
Если Колонки = Неопределено Тогда
Колонки = МассивКолонокПоУмолчанию;
@@ -2281,12 +2283,13 @@
ПараметрыЗагрузкиСообщений = Новый Структура;
КолонкиТаблицыСообщений = Новый Массив;
КолонкиТаблицыСообщений.Добавить("Заголовок");
КолонкиТаблицыСообщений.Добавить("ДатаОтправления");
КолонкиТаблицыСообщений.Добавить("Тексты");
КолонкиТаблицыСообщений.Добавить("Отправитель");
ПоляИнтернетПочтовогоСообщения = РаботаСПочтовымиСообщениями.ПоляИнтернетПочтовогоСообщения();
КолонкиТаблицыСообщений.Добавить(ПоляИнтернетПочтовогоСообщения.Заголовок);
КолонкиТаблицыСообщений.Добавить(ПоляИнтернетПочтовогоСообщения.ДатаОтправления);
КолонкиТаблицыСообщений.Добавить(ПоляИнтернетПочтовогоСообщения.Тексты);
КолонкиТаблицыСообщений.Добавить(ПоляИнтернетПочтовогоСообщения.Отправитель);
ПараметрыЗагрузкиСообщений.Вставить("Колонки", КолонкиТаблицыСообщений);
СтатусыДоставки = Новый ТаблицаЗначений;
СтатусыДоставки.Колонки.Добавить("Отправитель", Новый ОписаниеТипов("СправочникСсылка.УчетныеЗаписиЭлектроннойПочты"));
СтатусыДоставки.Колонки.Добавить("ИдентификаторПисьма", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(255)));
@@ -2302,7 +2305,7 @@
Выборка = ВыборкаОтправитель.Выбрать();
Пока Выборка.Следующий() Цикл
Для Каждого Сообщение Из Сообщения Цикл
Для Каждого Сообщение Из Сообщения Цикл // ИнтернетПочтовоеСообщение
Если СтрНайти(Сообщение.Заголовок, Выборка.АдресПолучателя) = 0
И СтрНайти(Сообщение.Заголовок, Выборка.ИдентификаторПисьма) = 0
И СтрНайти(Сообщение.Отправитель, "mailer-daemon")= 0
@@ -712,7 +712,8 @@
// * ФорматКартинки - Строка - формат картинки запрашиваемый у драйвера.
// * Разрешение - Число - разрешение DPI.
// * Цветность - Число - принимает значения 0 (черно-белое), 1 (оттенки серого), 2 (цветное).
// * Поворот - Число - угол поворота в градусах, допустимы значения 0, 90, 180, 270. Не все сканеры поддерживают эту настройку.
// * Поворот - Число - угол поворота в градусах, допустимы значения 0, 90, 180, 270. Не все сканеры поддерживают эту
// настройку.
// * РазмерБумаги - Число - не все сканеры поддерживают эту настройку. Принимает значения
// 0 - не задано
// 11 - А3
@@ -1371,6 +1372,14 @@
Процедура ДоступнаКомандаСканироватьЗавершение(РезультатПроверкиИнициализации, ОповещениеРезультата) Экспорт
КомпонентаПроинициализирована = РезультатПроверкиИнициализации.Подключено;
Если Не КомпонентаПроинициализирована Тогда
Если ЗначениеЗаполнено(РезультатПроверкиИнициализации.ОписаниеОшибки) Тогда
ПоказатьПредупреждение(, РезультатПроверкиИнициализации.ОписаниеОшибки);
КонецЕсли;
Возврат;
КонецЕсли;
РаботаСФайламиСлужебныйКлиент.ВключитьЛогированиеКомпоненты(РезультатПроверкиИнициализации.ПодключаемыйМодуль);
ВыполнитьОбработкуОповещения(ОповещениеРезультата, КомпонентаПроинициализирована);
КонецПроцедуры
@@ -2737,7 +2737,8 @@
Запрос = Новый Запрос(ТекстЗапроса);
Выборка = Запрос.Выполнить().Выбрать();
МодульЦентрМониторинга.ЗаписатьСтатистикуОбъектаКонфигурации("Справочник.УчетныеЗаписиСинхронизацииФайлов", Выборка.Количество());
МодульЦентрМониторинга.ЗаписатьСтатистикуОбъектаКонфигурации("Справочник.УчетныеЗаписиСинхронизацииФайлов",
Выборка.Количество());
УстановитьПривилегированныйРежим(Истина);
КлючиНастроек = ХранилищеОбщихНастроек.ПолучитьСписок("НастройкиСканирования/ИмяУстройства");
@@ -3141,62 +3141,63 @@
КонецФункции
///////////////////////////////////////////////////////////////////////////////////
// Печать табличного документа со штампом электронной подписи.
// Заполняет в табличном или офисном документе штамп электронной подписи.
Функция ТабличныйДокументСоШтампом(Знач Файл) Экспорт
Функция ДокументСоШтампом(Знач Файл) Экспорт
ДанныеФайла = РаботаСФайлами.ДанныеФайла(Файл);
ВременныйФайл = ПолучитьИмяВременногоФайла(".mxl");
ДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла); // ДвоичныеДанные
ДвоичныеДанные.Записать(ВременныйФайл);
Расширение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Файл, "Расширение");
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ВременныйФайл);
УдалитьФайлы(ВременныйФайл);
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
ПараметрыШтампа = Новый Структура;
ПараметрыШтампа.Вставить("ТекстОтметки", "");
ПараметрыШтампа.Вставить("Логотип");
ЭлектронныеПодписи = МодульЭлектроннаяПодпись.УстановленныеПодписи(Файл);
ВладелецФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Файл, "ВладелецФайла");
СведенияОФайле = Новый Структура;
СведенияОФайле.Вставить("ВладелецФайла", ВладелецФайла);
Штампы = Новый Массив;
Для Каждого Подпись Из ЭлектронныеПодписи Цикл
Сертификат = Подпись.Сертификат;
СертификатКриптографии = Новый СертификатКриптографии(Сертификат.Получить());
РаботаСФайламиПереопределяемый.ПриПечатиФайлаСоШтампом(ПараметрыШтампа, СертификатКриптографии);
Если Расширение = "mxl" Тогда
ДанныеФайла = РаботаСФайлами.ДанныеФайла(Файл);
ВременныйФайл = ПолучитьИмяВременногоФайла(".mxl");
ДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла); // ДвоичныеДанные
ДвоичныеДанные.Записать(ВременныйФайл);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ВременныйФайл);
УдалитьФайлы(ВременныйФайл);
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
ПараметрыШтампа = Новый Структура;
ПараметрыШтампа.Вставить("ТекстОтметки", "");
ПараметрыШтампа.Вставить("Логотип");
ЭлектронныеПодписи = МодульЭлектроннаяПодпись.УстановленныеПодписи(Файл);
ВладелецФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Файл, "ВладелецФайла");
СведенияОФайле = Новый Структура;
СведенияОФайле.Вставить("ВладелецФайла", ВладелецФайла);
Штампы = Новый Массив;
Для Каждого Подпись Из ЭлектронныеПодписи Цикл
Сертификат = Подпись.Сертификат;
СертификатКриптографии = Новый СертификатКриптографии(Сертификат.Получить());
РаботаСФайламиПереопределяемый.ПриПечатиФайлаСоШтампом(ПараметрыШтампа, СертификатКриптографии);
Штамп = МодульЭлектроннаяПодпись.ШтампВизуализацииЭлектроннойПодписи(СертификатКриптографии,
Подпись.ДатаПодписи, ПараметрыШтампа.ТекстОтметки, ПараметрыШтампа.Логотип);
Штампы.Добавить(Штамп);
КонецЦикла;
МодульЭлектроннаяПодпись.ДобавитьШтампыВТабличныйДокумент(ТабличныйДокумент, Штампы);
Возврат ТабличныйДокумент;
ИначеЕсли Расширение = "docx" Тогда
ДанныеФайла = РаботаСФайлами.ДанныеФайла(Файл);
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
ЭлектронныеПодписи = МодульЭлектроннаяПодпись.УстановленныеПодписи(Файл);
МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью");
МодульУправлениеПечатью.ДобавитьШтампыВОфисныйДокумент(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла, ЭлектронныеПодписи);
Возврат ДанныеФайла.СсылкаНаДвоичныеДанныеФайла;
Иначе
Возврат Неопределено;
КонецЕсли;
Штамп = МодульЭлектроннаяПодпись.ШтампВизуализацииЭлектроннойПодписи(СертификатКриптографии,
Подпись.ДатаПодписи, ПараметрыШтампа.ТекстОтметки, ПараметрыШтампа.Логотип);
Штампы.Добавить(Штамп);
КонецЦикла;
МодульЭлектроннаяПодпись.ДобавитьШтампыВТабличныйДокумент(ТабличныйДокумент, Штампы);
Возврат ТабличныйДокумент;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////
// Печать офисного документа со штампом электронной подписи.
Функция ОфисныйДокументСоШтампом(Знач Файл) Экспорт
ДанныеФайла = РаботаСФайлами.ДанныеФайла(Файл);
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
ЭлектронныеПодписи = МодульЭлектроннаяПодпись.УстановленныеПодписи(Файл);
МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью");
МодульУправлениеПечатью.ДобавитьШтампыВОфисныйДокумент(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла, ЭлектронныеПодписи);
Возврат ДанныеФайла.СсылкаНаДвоичныеДанныеФайла;
КонецФункции
// Проверяет наличие файла на компьютере.
//
@@ -3252,42 +3253,35 @@
Функция ТехническаяИнформацияОВерсияхПодсистемИРасширениях() Экспорт
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВерсииПодсистем.ИмяПодсистемы КАК ИмяПодсистемы,
| ВерсииПодсистем.Версия КАК Версия
|ИЗ
| РегистрСведений.ВерсииПодсистем КАК ВерсииПодсистем";
ВерсииПодсистем = Запрос.Выполнить().Выбрать();
ТехническаяИнформацияОВерсияхПодсистемИРасширениях = НСтр("ru = 'Версии подсистем'") + ":" + Символы.ПС;
Пока ВерсииПодсистем.Следующий() Цикл
ТехническаяИнформацияОВерсияхПодсистемИРасширениях = ТехническаяИнформацияОВерсияхПодсистемИРасширениях
+ ВерсииПодсистем.ИмяПодсистемы + " - "
+ ВерсииПодсистем.Версия + Символы.ПС;
КонецЦикла;
ТехническаяИнформацияОВерсияхПодсистемИРасширениях = ТехническаяИнформацияОВерсияхПодсистемИРасширениях + Символы.ПС;
Расширения = РасширенияКонфигурации.Получить();
Для Каждого Расширение Из Расширения Цикл
ТехническаяИнформацияОВерсияхПодсистемИРасширениях = ТехническаяИнформацияОВерсияхПодсистемИРасширениях
+ Расширение.Имя + " - " + Расширение.Синоним + " - "
+ Формат(Расширение.Активно, НСтр("ru = 'БЛ=Отключено; БИ=Включено'")) + Символы.ПС;
КонецЦикла;
Возврат ТехническаяИнформацияОВерсияхПодсистемИРасширениях;
Возврат СтандартныеПодсистемыСервер.ТехническаяИнформацияОВерсияхПодсистемИРасширениях();
КонецФункции
Функция ЖурналСканированияДляТехподдержки() Экспорт
Функция ПараметрыЛогирования(ИдентификаторКлиента) Экспорт
Результат = Новый Структура;
Результат.Вставить("ДатаНачалаЛогированияСканирования",
ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования", "ДатаНачалаЛогированияСканирования",
Дата(1,1,1)));
Результат.Вставить("ИмяЛогФайла", ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования",
"ИмяЛогФайла", Неопределено));
Результат.Вставить("КаталогЖурналаСканирования",
ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("НастройкиСканирования/КаталогЖурналаСканирования",
ИдентификаторКлиента, Неопределено));
Результат.Вставить("ИспользоватьКаталогЖурналаСканирования",
ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("НастройкиСканирования/ИспользоватьКаталогЖурналаСканирования",
ИдентификаторКлиента, Ложь));
Возврат Результат;
КонецФункции
// Возвращаемое значение:
// Структура:
// * ЖурналРегистрации - ДвоичныеДанные - данные выгрузки журнала регистрации
// * ТехническаяИнформацияОВерсияхПодсистемИРасширениях - Строка
// * ИмяЛогФайла - Строка - имя логфайла, используемое компонентой сканирования
//
Функция ТехническаяИнформация() Экспорт
Результат = Новый Структура;
СобытиеЖурналаСканирования = НСтр("ru='Сканирование изображений'", ОбщегоНазначения.КодОсновногоЯзыка());
СобытияОтбора = Новый Массив;
@@ -3308,26 +3302,26 @@
СобытияОтбора.Добавить(СобытиеЖурналаСканирования + "." + "СобытиеСканера.ImageAcquired");
СобытияОтбора.Добавить(СобытиеЖурналаСканирования + "." + "СобытиеСканера.EndBatch");
СобытияОтбора.Добавить(СобытиеЖурналаСканирования + "." + "СобытиеСканера.UserPressedCancel");
СобытияОтбора.Добавить(СобытиеЖурналаСканирования + "." + "LogFilePath.УстановкаЗначения");
СобытияОтбора.Добавить(СобытиеЖурналаСканирования + "." + "LogFilePath.ЗначениеУстановлено");
СобытияОтбора.Добавить(СобытиеЖурналаСканирования + "." + "LogFilePath");
Отбор = Новый Структура("Событие", СобытияОтбора);
Отбор.Вставить("ДатаНачала", ТекущаяДатаСеанса() - 600);
Возврат ЖурналРегистрации.ЖурналДляТехподдержки(Отбор, 200, Новый УникальныйИдентификатор);
КонецФункции
Функция ПараметрыЛогирования(ИдентификаторКлиента) Экспорт
Результат = Новый Структура;
Результат.Вставить("ДатаНачалаЛогированияСканирования", ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования",
"ДатаНачалаЛогированияСканирования", Дата(1,1,1)));
Результат.Вставить("ИмяЛогФайла", ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования",
"ИмяЛогФайла", Неопределено));
Результат.Вставить("КаталогЖурналаСканирования",
ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("НастройкиСканирования/КаталогЖурналаСканирования",
ИдентификаторКлиента, Неопределено));
Результат.Вставить("ИспользоватьКаталогЖурналаСканирования",
ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("НастройкиСканирования/ИспользоватьКаталогЖурналаСканирования",
ИдентификаторКлиента, Ложь));
Результат.Вставить("ЖурналРегистрации", ПолучитьИзВременногоХранилища(
ЖурналРегистрации.ЖурналДляТехподдержки(Отбор, 200, Новый УникальныйИдентификатор)));
Результат.Вставить("ТехническаяИнформацияОВерсияхПодсистемИРасширениях",
СтандартныеПодсистемыСервер.ТехническаяИнформацияОВерсияхПодсистемИРасширениях());
Результат.Вставить("ИмяЛогФайла",
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования", "ИмяЛогФайла"));
Возврат Результат;
КонецФункции
Процедура УстановитьПараметрыНачалаЛогирования(ИмяЛогФайла) Экспорт
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить("КомпонентаСканирования", "ИмяЛогФайла", ИмяЛогФайла);
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить("КомпонентаСканирования", "ДатаНачалаЛогированияСканирования",
ТекущаяДатаСеанса());
КонецПроцедуры
#КонецОбласти
@@ -10608,15 +10608,13 @@
#ИначеЕсли ВебКлиент Тогда
Возврат Ложь;
#Иначе
Возврат ОбщегоНазначенияКлиент.ТипПлатформыКлиента() = ТипПлатформы.Windows_x86
Или ОбщегоНазначенияКлиент.ТипПлатформыКлиента() = ТипПлатформы.Windows_x86_64;
Возврат ОбщегоНазначенияКлиент.ЭтоWindowsКлиент();
#КонецЕсли
Иначе
#Если МобильныйКлиент ИЛИ ВебКлиент Тогда
Возврат Ложь;
#Иначе
Возврат ОбщегоНазначенияКлиент.ТипПлатформыКлиента() = ТипПлатформы.Windows_x86
Или ОбщегоНазначенияКлиент.ТипПлатформыКлиента() = ТипПлатформы.Windows_x86_64;
Возврат ОбщегоНазначенияКлиент.ЭтоWindowsКлиент();
#КонецЕсли
КонецЕсли;
@@ -10764,23 +10762,30 @@
КонецФункции
///////////////////////////////////////////////////////////////////////////////////
// Печать табличного документа со штампом электронной подписи.
// Печать табличного или офисного документа со штампом электронной подписи.
Процедура ПечатьФайлаСоШтампом(ТабличныйДокумент) Экспорт
Процедура ПечатьФайлаСоШтампом(Документ, НаименованиеФайла) Экспорт
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент");
ИдентификаторПечатнойФормы = "ПрисоединенныйФайл";
ТабличныйДокумент.Защита = Ложь;
КоллекцияПечатныхФорм = МодульУправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы);
ПечатнаяФорма = МодульУправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, ИдентификаторПечатнойФормы);
ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Файл со штампом'");
ПечатнаяФорма.ТабличныйДокумент = ТабличныйДокумент;
МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм);
НаименованиеДокумента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 (со штампом)'"),
НаименованиеФайла);
Если ТипЗнч(Документ) = Тип("ТабличныйДокумент") Тогда
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент");
ИдентификаторПечатнойФормы = "ПрисоединенныйФайл";
Документ.Защита = Ложь;
КоллекцияПечатныхФорм = МодульУправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы);
ПечатнаяФорма = МодульУправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, ИдентификаторПечатнойФормы);
ПечатнаяФорма.СинонимМакета = НаименованиеДокумента;
ПечатнаяФорма.ТабличныйДокумент = Документ;
МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм);
Иначе
Документ.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
КонецЕсли;
Иначе
ТабличныйДокумент.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
ФайловаяСистемаКлиент.ОткрытьФайл(Документ, , НаименованиеДокумента+".docx");
КонецЕсли;
КонецПроцедуры
@@ -11104,7 +11109,7 @@
ИмяЛогФайла = ПараметрыЛогирования.ИмяЛогФайла;
Если Перезапуск И ИмяЛогФайла <> Неопределено Тогда
ПодключаемыйМодуль.LogFilePath = "";
УстановитьИмяЛогФайла(ПодключаемыйМодуль, "");
ФайлЛога = Новый Файл(ИмяЛогФайла);
Если ФайлЛога.Существует() Тогда
УдалитьФайлы(ИмяЛогФайла);
@@ -11117,7 +11122,8 @@
Контекст = Новый Структура;
Контекст.Вставить("ПодключаемыйМодуль", ПодключаемыйМодуль);
ОповещениеПослеСозданияВременногоКаталогаДляПодключенияЛогФайлов = Новый ОписаниеОповещения("ОповещениеПослеСозданияВременногоКаталогаДляПодключенияЛогФайлов", ЭтотОбъект, Контекст);
ОповещениеПослеСозданияВременногоКаталогаДляПодключенияЛогФайлов = Новый ОписаниеОповещения("ОповещениеПослеСозданияВременногоКаталогаДляПодключенияЛогФайлов",
ЭтотОбъект, Контекст);
Если ИспользоватьКаталогЖурналаСканирования И КаталогЖурналаСканирования <> Неопределено Тогда
ВыполнитьОбработкуОповещения(ОповещениеПослеСозданияВременногоКаталогаДляПодключенияЛогФайлов, КаталогЖурналаСканирования);
@@ -11127,14 +11133,24 @@
КонецПроцедуры
Процедура УстановитьИмяЛогФайла(ПодключаемыйМодуль, ИмяЛогФайла)
ЗаписатьЖурналСканирования("LogFilePath.УстановкаЗначения",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("LogFilePath = %1", ИмяЛогФайла));
Попытка
ПодключаемыйМодуль.LogFilePath = ИмяЛогФайла;
ЗаписатьЖурналСканирования("LogFilePath.ЗначениеУстановлено");
Исключение
ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписатьЖурналСканирования("LogFilePath", ПредставлениеОшибки, Истина);
КонецПопытки;
КонецПроцедуры
Процедура ОповещениеПослеСозданияВременногоКаталогаДляПодключенияЛогФайлов(КаталогЖурналаСканирования, Контекст) Экспорт
ИмяЛогФайла = КаталогЖурналаСканирования + ПолучитьРазделительПути() + "ImageScan.log";
ПодключаемыйМодуль = Контекст.ПодключаемыйМодуль;
ПодключаемыйМодуль.LogFilePath = ИмяЛогФайла;
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить("КомпонентаСканирования", "ИмяЛогФайла", ИмяЛогФайла);
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить("КомпонентаСканирования", "ДатаНачалаЛогированияСканирования",
ОбщегоНазначенияКлиент.ДатаСеанса());
УстановитьИмяЛогФайла(ПодключаемыйМодуль, ИмяЛогФайла);
РаботаСФайламиСлужебныйВызовСервера.УстановитьПараметрыНачалаЛогирования(ИмяЛогФайла);
КонецПроцедуры
@@ -11174,7 +11190,7 @@
КонецПроцедуры
Процедура ПолучитьТехническуюИнформацию(ПодробноеПредставлениеОшибки, ОповещениеПослеПолученияТехническойИнформации = Неопределено) Экспорт
Процедура ПолучитьТехническуюИнформацию(ПодробноеПредставлениеОшибки, ОповещениеПослеПолученияТехническойИнформации) Экспорт
Режим = РежимДиалогаВыбораФайла.Сохранение;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = НСтр("ru='Техническая информация'");
@@ -11206,10 +11222,11 @@
ИмяФайла = Контекст.ИмяФайла;
КаталогВременныхФайлов = ИмяКаталога + ПолучитьРазделительПути();
ТехническаяИнформация = РаботаСФайламиСлужебныйВызовСервера.ТехническаяИнформация();
ФайлыДляУдаления = Новый Массив;
ЗаписьZIP = Новый ЗаписьZipФайла(ИмяФайла);
ИмяЛогФайла = ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования", "ИмяЛогФайла");
ИмяЛогФайла = ТехническаяИнформация.ИмяЛогФайла;
Если ИмяЛогФайла = Неопределено Тогда
ЗаписатьЖурналСканирования("ФайлКомпоненты", НСтр("ru='Не задано имя файла журнала компоненты сканирования.'"), Истина);
Иначе
@@ -11227,26 +11244,14 @@
КонецЕсли;
КонецЕсли;
ФайлЖурнала = КаталогВременныхФайлов + "ЖурналРегистрации.xml";
АдресЛогов = РаботаСФайламиСлужебныйВызовСервера.ЖурналСканированияДляТехподдержки();
ДанныеЛогов = ПолучитьИзВременногоХранилища(АдресЛогов);
ДанныеЛогов.Записать(ФайлЖурнала);
ФайлыДляУдаления.Добавить(ФайлЖурнала);
ЗаписьZIP.Добавить(ФайлЖурнала);
КонтекстИсходящий = Новый Структура;
Контекст.Вставить("ПослеФормированияСводнойИнформации",
Новый ОписаниеОповещения("ПослеФормированияСводнойИнформации", ЭтотОбъект, ЗаписьZIP));
Контекст.Вставить("ЗаписьZIP", ЗаписьZIP);
Контекст.Вставить("ФайлыДляУдаления", ФайлыДляУдаления);
Контекст.Вставить("ПодробноеПредставлениеОшибки", ПодробноеПредставлениеОшибки);
Контекст.Вставить("ОповещениеПослеПолученияТехническойИнформации", ОповещениеПослеПолученияТехническойИнформации);
Контекст.Вставить("КаталогВременныхФайлов", КаталогВременныхФайлов);
Контекст.Вставить("ТехническаяИнформация", ТехническаяИнформация);
СводнаяИнформация(Контекст);
#КонецЕсли
КонецПроцедуры
Процедура СводнаяИнформация(Контекст)
Текст = НСтр("ru = 'Информация о компьютере:'") + Символы.ПС;
СисИнфо = Новый СистемнаяИнформация;
@@ -11261,14 +11266,19 @@
+ Символы.ПС + НСтр("ru = 'Тип платформы:'") + " " + СисИнфо.ТипПлатформы
+ ПрограммаПросмотра + Символы.ПС;
Контекст.Вставить("СводнаяИнформация", Текст);
Контекст.Вставить("ТекстСводнойИнформации", Текст);
ОписаниеОповещения = Новый ОписаниеОповещения("СводнаяИнформацияПослеПолученияКомпоненты", ЭтотОбъект, Контекст);
ПроинициализироватьКомпоненту(ОписаниеОповещения, Истина);
#КонецЕсли
КонецПроцедуры
Процедура СводнаяИнформацияПослеПолученияКомпоненты(РезультатИнициализации, Контекст) Экспорт
СводнаяИнформация = Контекст.СводнаяИнформация;
#Если Не ВебКлиент Тогда
ТекстСводнойИнформации = Контекст.ТекстСводнойИнформации;
ТехническаяИнформация = Контекст.ТехническаяИнформация;
ФайлыДляУдаления = Контекст.ФайлыДляУдаления;
ЗаписьZIP = Контекст.ЗаписьZIP;
ИнформацияОКомпоненте = "";
ПодключаемыйМодуль = Неопределено;
Если РезультатИнициализации.Подключено Тогда
@@ -11280,9 +11290,11 @@
Исключение
ЗаписатьЖурналСканирования("Версия", ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Истина);
КонецПопытки;
Иначе
Возврат;
КонецЕсли;
СводнаяИнформация = СводнаяИнформация + Символы.ПС + ИнформацияОКомпоненте
ТекстСводнойИнформации = ТекстСводнойИнформации + Символы.ПС + ИнформацияОКомпоненте
+ Символы.ПС + Символы.ПС + НСтр("ru='Техническая информация'") + ":"
+ Символы.ПС + Контекст.ПодробноеПредставлениеОшибки
+ Символы.ПС + Символы.ПС;
@@ -11294,36 +11306,37 @@
РежимРаботы = НСтр("ru = 'Клиент-серверный'");
КонецЕсли;
СводнаяИнформация = СводнаяИнформация + НСтр("ru = 'Режим работы информационной базы'")+ " - "
+ РежимРаботы + Символы.ПС + РаботаСФайламиСлужебныйВызовСервера.ТехническаяИнформацияОВерсияхПодсистемИРасширениях() + Символы.ПС;
ТекстСводнойИнформации = ТекстСводнойИнформации + НСтр("ru = 'Режим работы информационной базы'")+ " - " + РежимРаботы;
ИмяФайлаСводнойИнформации = Контекст.КаталогВременныхФайлов + "СводнаяИнформация.txt";
ПолучитьДвоичныеДанныеИзСтроки(СводнаяИнформация).Записать(ИмяФайлаСводнойИнформации);
ТекстСводнойИнформации = ТекстСводнойИнформации + Символы.ПС
+ТехническаяИнформация.ТехническаяИнформацияОВерсияхПодсистемИРасширениях + Символы.ПС;
СводнаяИнформация = ПолучитьДвоичныеДанныеИзСтроки(ТекстСводнойИнформации);
СводнаяИнформация.Записать(ИмяФайлаСводнойИнформации);
ФайлыДляУдаления.Добавить(ИмяФайлаСводнойИнформации);
ЗаписьZIP.Добавить(ИмяФайлаСводнойИнформации);
ИмяФайлаЖурнала = Контекст.КаталогВременныхФайлов + "ЖурналРегистрации.xml";
ЖурналРегистрации = ТехническаяИнформация.ЖурналРегистрации; // ДвоичныеДанные
ЖурналРегистрации.Записать(ИмяФайлаЖурнала); // АПК:287
ФайлыДляУдаления.Добавить(ИмяФайлаЖурнала);
ЗаписьZIP.Добавить(ИмяФайлаЖурнала);
КонтекстЗавершения = Новый Структура;
КонтекстЗавершения.Вставить("ИмяФайлаСводнойИнформации", ИмяФайлаСводнойИнформации);
КонтекстЗавершения.Вставить("ФайлыДляУдаления", Контекст.ФайлыДляУдаления);
КонтекстЗавершения.Вставить("ОповещениеПослеПолученияТехническойИнформации", Контекст.ОповещениеПослеПолученияТехническойИнформации);
УдалитьОшибкуСканирования(ПодключаемыйМодуль);
ВыполнитьОбработкуОповещения(Контекст.ПослеФормированияСводнойИнформации, КонтекстЗавершения);
КонецПроцедуры
Процедура ПослеФормированияСводнойИнформации(Контекст, ЗаписьZIP) Экспорт
ФайлыДляУдаления = Контекст.ФайлыДляУдаления;
ЗаписьZIP.Добавить(Контекст.ИмяФайлаСводнойИнформации);
ФайлыДляУдаления.Добавить(Контекст.ИмяФайлаСводнойИнформации);
ЗаписьZIP.Записать();
Для Каждого ФайлДляУдаления Из ФайлыДляУдаления Цикл
УдалитьФайлы(ФайлДляУдаления);
КонецЦикла;
УдалитьОшибкуСканирования(ПодключаемыйМодуль);
Если Контекст.ОповещениеПослеПолученияТехническойИнформации <> Неопределено Тогда
ВыполнитьОбработкуОповещения(Контекст.ОповещениеПослеПолученияТехническойИнформации);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
#Область УдалениеДанныхФайловИВерсий
@@ -190,8 +190,8 @@
РаботаСПочтовымиСообщениямиСлужебный.ВажностьИнтернетПочтовогоСообщенияИзСтроки(РассылкаОбъект.ВажностьПисьма),
ВажностьИнтернетПочтовогоСообщения.Обычная);
Если Рассылка.ПисьмоВФорматеHTML Тогда
КартинкиПисьмаВФорматеHTML = Рассылка.КартинкиПисьмаВФорматеHTML.Получить();
Если РассылкаОбъект.ПисьмоВФорматеHTML Тогда
КартинкиПисьмаВФорматеHTML = РассылкаОбъект.КартинкиПисьмаВФорматеHTML.Получить();
Если КартинкиПисьмаВФорматеHTML <> Неопределено Тогда
ПараметрыДоставки.Картинки = КартинкиПисьмаВФорматеHTML;
КонецЕсли;
@@ -816,11 +816,13 @@
КонецЕсли;
// Основной вид контактной информации "E-mail" для объекта.
Если Настройки.Свойство("ВидКИ") И Не Настройки.ВидКИ.ЭтоГруппа Тогда
ЕстьВидКИ = Настройки.Свойство("ВидКИ");
РеквизитыВидаКИ = ?(ЕстьВидКИ, ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Настройки.ВидКИ, "ЭтоГруппа, Родитель"), Неопределено);
Если ЕстьВидКИ И Не РеквизитыВидаКИ.ЭтоГруппа Тогда
СтрокаТаблицы.ОсновнойВидКИ = Настройки.ВидКИ;
СтрокаТаблицы.ГруппаКИ = Настройки.ВидКИ.Родитель;
СтрокаТаблицы.ГруппаКИ = РеквизитыВидаКИ.Родитель;
Иначе
Если Настройки.Свойство("ВидКИ") Тогда
Если ЕстьВидКИ Тогда
СтрокаТаблицы.ГруппаКИ = Настройки.ВидКИ;
Иначе
@@ -1408,7 +1410,9 @@
Возврат СписокПолучателей;
КонецЕсли;
ПолучателиМетаданные = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Рассылка.ТипПолучателейРассылки, Ложь);
ТипПолучателей = Рассылка.ТипПолучателейРассылки.КлючОбъектаМетаданных.Получить();
КлючОбъектаМетаданных = ?(ЗначениеЗаполнено(Рассылка.ТипПолучателейРассылки),
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Рассылка.ТипПолучателейРассылки, "КлючОбъектаМетаданных"), Неопределено);
ТипПолучателей = ?(КлючОбъектаМетаданных <> Неопределено, КлючОбъектаМетаданных.Получить(), Неопределено);
Если ТипЗнч(Рассылка.Получатели) = Тип("ТаблицаЗначений") Тогда
ТаблицаПолучателей = Рассылка.Получатели;
Иначе
@@ -1609,7 +1613,9 @@
Иначе
ПолучателиМетаданные = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Рассылка.ТипПолучателейРассылки, Ложь);
ТипПолучателей = Рассылка.ТипПолучателейРассылки.КлючОбъектаМетаданных.Получить();
КлючОбъектаМетаданных = ?(ЗначениеЗаполнено(Рассылка.ТипПолучателейРассылки),
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Рассылка.ТипПолучателейРассылки, "КлючОбъектаМетаданных"), Неопределено);
ТипПолучателей = ?(КлючОбъектаМетаданных <> Неопределено, КлючОбъектаМетаданных.Получить(), Неопределено);
ТаблицаПолучателей = Рассылка.Получатели.Выгрузить();
КонецЕсли;
@@ -2052,13 +2058,9 @@
// В сетевой каталог.
Если ПараметрыДоставки.ИспользоватьСетевойКаталог Тогда
СетевойКаталогСервера = ПараметрыДоставки.СетевойКаталогWindows;
СистемнаяИнфо = Новый СистемнаяИнформация;
ТипПлатформыСервера = СистемнаяИнфо.ТипПлатформы;
Если ТипПлатформыСервера = ТипПлатформы.Linux_x86
Или ТипПлатформыСервера = ТипПлатформы.Linux_x86_64 Тогда
Если ОбщегоНазначения.ЭтоLinuxСервер() Тогда
СетевойКаталогСервера = ПараметрыДоставки.СетевойКаталогLinux;
КонецЕсли;
@@ -4291,10 +4293,8 @@
Если ПараметрыДоставки.ИспользоватьСетевойКаталог Тогда
СетевойКаталогСервера = ПараметрыДоставки.СетевойКаталогWindows;
СистемнаяИнфо = Новый СистемнаяИнформация;
ТипПлатформыСервера = СистемнаяИнфо.ТипПлатформы;
Если ТипПлатформыСервера = ТипПлатформы.Linux_x86 Или ТипПлатформыСервера = ТипПлатформы.Linux_x86_64 Тогда
Если ОбщегоНазначения.ЭтоLinuxСервер() Тогда
СетевойКаталогСервера = ПараметрыДоставки.СетевойКаталогLinux;
КонецЕсли;
@@ -1011,6 +1011,15 @@
КонецПроцедуры
// Параметры:
// ИнформацияОбОшибке - ИнформацияОбОшибке
//
Процедура ПоказатьИнформациюОбОшибкеИПродолжить(ИнформацияОбОшибке) Экспорт
ОбработкаОшибок.ПоказатьИнформациюОбОшибке(ИнформацияОбОшибке);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -2469,6 +2469,38 @@
КонецФункции
// Возвращаемое значение:
// Строка - техническая информация о версиях подсистем и расширениях
//
Функция ТехническаяИнформацияОВерсияхПодсистемИРасширениях() Экспорт
ОписанияПодсистем = ОбщегоНазначения.ОписанияПодсистем();
ТехническаяИнформацияОВерсияхПодсистемИРасширениях = НСтр("ru = 'Версии подсистем'") + ":" + Символы.ПС;
Для Каждого ОписаниеПодсистемы Из ОписанияПодсистем Цикл
ТехническаяИнформацияОВерсияхПодсистемИРасширениях = ТехническаяИнформацияОВерсияхПодсистемИРасширениях
+ ОписаниеПодсистемы.Имя + " - "
+ ОписаниеПодсистемы.Версия + Символы.ПС;
КонецЦикла;
ТехническаяИнформацияОВерсияхПодсистемИРасширениях = ТехническаяИнформацияОВерсияхПодсистемИРасширениях + Символы.ПС;
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
Расширения = РасширенияКонфигурации.Получить();
Для Каждого Расширение Из Расширения Цикл
ТехническаяИнформацияОВерсияхПодсистемИРасширениях = ТехническаяИнформацияОВерсияхПодсистемИРасширениях
+ Расширение.Имя + " - " + Расширение.Синоним + " - "
+ Формат(Расширение.Активно, НСтр("ru = 'БЛ=Отключено; БИ=Включено'")) + Символы.ПС;
КонецЦикла;
Возврат ТехническаяИнформацияОВерсияхПодсистемИРасширениях;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -6705,7 +6705,7 @@
Если СообщатьВМенеджерСервиса Тогда
БылиПолныеПрава = ПользовательИБ.Роли.Содержит(Метаданные.Роли.ПолныеПрава);
БылиПраваНаВход = Пользователи.ЕстьПраваДляВходаВПрограмму(ПользовательИБ);
БылиПраваНаВход = Пользователи.ЕстьПраваДляВходаВПрограмму(ПользовательИБ,, Ложь);
КонецЕсли;
Для Каждого КлючИЗначение Из РолиДляДобавления Цикл
@@ -6820,17 +6820,19 @@
ПользователиСлужебный.ЗаписатьПользователяИнформационнойБазы(ПользовательИБ,
ТипЗнч(ПользовательСсылка) = Тип("СправочникСсылка.ВнешниеПользователи"),
ПользовательСсылка);
ПользовательСсылка,
Ложь);
Если БылиПолныеПрава = Неопределено Тогда
Возврат;
КонецЕсли;
ЕстьПолныеПрава = ПользовательИБ.Роли.Содержит(Метаданные.Роли.ПолныеПрава);
ЕстьПраваНаВход = Пользователи.ЕстьПраваДляВходаВПрограмму(ПользовательИБ);
ЕстьПраваНаВход = Пользователи.ЕстьПраваДляВходаВПрограмму(ПользовательИБ,, Ложь);
Если ЕстьПолныеПрава = БылиПолныеПрава
И ЕстьПраваНаВход = БылиПраваНаВход Тогда
И ЕстьПраваНаВход = БылиПраваНаВход
Или Не Пользователи.ВходВПрограммуРазрешен(ПользовательИБ) Тогда
Возврат;
КонецЕсли;
@@ -6844,42 +6846,41 @@
Иначе
СеансЗапущенБезРазделителей = Истина;
КонецЕсли;
Если СеансЗапущенБезРазделителей Тогда
Возврат;
Если Не СеансЗапущенБезРазделителей Тогда
УпрощенныйИнтерфейс = УпрощенныйИнтерфейсНастройкиПравДоступа();
Если БылиПолныеПрава Тогда
Шаблон = НСтр("ru = 'Для отключения административного доступа пользователю ""%1"" требуется пароль текущего пользователя сервиса ""%2"".'");
Иначе
Шаблон = НСтр("ru = 'Для установки административного доступа пользователю ""%1"" требуется пароль текущего пользователя сервиса ""%2"".'");
КонецЕсли;
Если БылиПолныеПрава И УпрощенныйИнтерфейс Тогда
Уточнение = НСтр("ru = 'Это действие может быть выполнено только в карточке пользователя при отключении ему профиля Администратор.'");
ИначеЕсли Не БылиПолныеПрава И УпрощенныйИнтерфейс Тогда
Уточнение = НСтр("ru = 'Это действие может быть выполнено только в карточке пользователя при включении ему профиля Администратор.'");
ИначеЕсли БылиПолныеПрава Тогда
Уточнение = НСтр("ru = 'Это действие может быть выполнено только в карточке группы доступа Администраторы или в карточке пользователя при исключении его из группы доступа Администраторы.'");
Иначе
Уточнение = НСтр("ru = 'Это действие может быть выполнено только в карточке группы доступа Администраторы или в карточке пользователя при включении его в группу доступа Администраторы.'");
КонецЕсли;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон,
ПользовательИБ.Имя, ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + Уточнение;
ВызватьИсключение ТекстОшибки;
КонецЕсли;
УпрощенныйИнтерфейс = УпрощенныйИнтерфейсНастройкиПравДоступа();
Если БылиПолныеПрава Тогда
Шаблон = НСтр("ru = 'Для отключения административного доступа пользователю ""%1"" требуется пароль текущего пользователя сервиса ""%2"".'");
Иначе
Шаблон = НСтр("ru = 'Для установки административного доступа пользователю ""%1"" требуется пароль текущего пользователя сервиса ""%2"".'");
КонецЕсли;
Если БылиПолныеПрава И УпрощенныйИнтерфейс Тогда
Уточнение = НСтр("ru = 'Это действие может быть выполнено только в карточке пользователя при отключении ему профиля Администратор.'");
ИначеЕсли Не БылиПолныеПрава И УпрощенныйИнтерфейс Тогда
Уточнение = НСтр("ru = 'Это действие может быть выполнено только в карточке пользователя при включении ему профиля Администратор.'");
ИначеЕсли БылиПолныеПрава Тогда
Уточнение = НСтр("ru = 'Это действие может быть выполнено только в карточке группы доступа Администраторы или в карточке пользователя при исключении его из группы доступа Администраторы.'");
Иначе
Уточнение = НСтр("ru = 'Это действие может быть выполнено только в карточке группы доступа Администраторы или в карточке пользователя при включении его в группу доступа Администраторы.'");
КонецЕсли;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон,
ПользовательИБ.Имя, ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + Уточнение;
ВызватьИсключение ТекстОшибки;
Иначе
МодульПользователиСлужебныйВМоделиСервиса.ЗаписатьПользователяСервиса(ПользовательСсылка,
Ложь, ПарольПользователяСервиса);
Возврат;
КонецЕсли;
КонецЕсли;
Если ЕстьПраваНаВход <> БылиПраваНаВход Тогда
МодульПользователиСлужебныйВМоделиСервиса.СообщитьЕстьПраваДляВходаВПрограмму(ПользовательСсылка,
ЕстьПраваНаВход);
МодульПользователиСлужебныйВМоделиСервиса.СообщитьИзмененЗапускПриложения(ПользовательСсылка,
ПользовательИБ);
КонецЕсли;
КонецПроцедуры
@@ -538,8 +538,12 @@
ПараметрыКонтактнойИнформации = Новый Структура;
ЭтоСсылка = ОбщегоНазначения.ЗначениеСсылочногоТипа(СтрокаКонтактнойИнформации.Объект);
ПараметрыКонтактнойИнформации.Вставить("ЭтоСсылка", ЭтоСсылка);
Если Не ЭтоСсылка Тогда
ВладелецКИ = СтрокаКонтактнойИнформации.Объект; // СправочникОбъект
КонецЕсли;
ПараметрыКонтактнойИнформации.Вставить("Периодическая",
УправлениеКонтактнойИнформациейСлужебныйПовтИсп.КонтактнаяИнформацияОбъектаСодержитКолонкуДействуетС(СтрокаКонтактнойИнформации.Объект.Ссылка));
УправлениеКонтактнойИнформациейСлужебныйПовтИсп.КонтактнаяИнформацияОбъектаСодержитКолонкуДействуетС(
?(ЭтоСсылка, СтрокаКонтактнойИнформации.Объект, ВладелецКИ.Ссылка)));
ВладельцыКонтактнойИнформации.Вставить(СтрокаКонтактнойИнформации.Объект, ПараметрыКонтактнойИнформации);
КонецЕсли;
@@ -1683,7 +1687,7 @@
Иначе
НайденнаяСтрана = СтранаМираПоКодуИлиНаименованию(Страна);
Если ЗначениеЗаполнено(НайденнаяСтрана) Тогда
Возврат НайденнаяСтрана.УчастникЕАЭС;
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НайденнаяСтрана, "УчастникЕАЭС");
КонецЕсли;
КонецЕсли;
@@ -1712,7 +1716,7 @@
// УдалитьИсключаемыеВиды - Массив - устарел,следует использовать ДополнительныеПараметры.
// УдалитьОтложеннаяИнициализация - Массив - устарел,следует использовать ДополнительныеПараметры.
//
Процедура ПриСозданииНаСервере(Форма, Объект, ДополнительныеПараметры = Неопределено, УдалитьПоложениеЗаголовкаКИ = "",
Процедура ПриСозданииНаСервере(Форма, Объект, Знач ДополнительныеПараметры = Неопределено, УдалитьПоложениеЗаголовкаКИ = "",
Знач УдалитьИсключаемыеВиды = Неопределено, УдалитьОтложеннаяИнициализация = Ложь) Экспорт
ТипПомещения = Неопределено;
@@ -1843,8 +1847,13 @@
КонтактнаяИнформация.Колонки.Добавить("ХранитьИсториюИзменений", ТипБулево);
КонтактнаяИнформация.Колонки.Добавить("ЭтоИсторическаяКонтактнаяИнформация", ТипБулево);
КонтактнаяИнформация.Сортировать("Вид, ДействуетС");
ВидыКИХранитьИсториюИзменений = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(
КонтактнаяИнформация.ВыгрузитьКолонку("Вид"), "ХранитьИсториюИзменений");
Для каждого СтрокаКонтактнойИнформации Из КонтактнаяИнформация Цикл
СтрокаКонтактнойИнформации.ХранитьИсториюИзменений = СтрокаКонтактнойИнформации.Вид.ХранитьИсториюИзменений;
ХранитьИсториюИзменений = ВидыКИХранитьИсториюИзменений.Получить(СтрокаКонтактнойИнформации.Вид);
СтрокаКонтактнойИнформации.ХранитьИсториюИзменений = ?(ХранитьИсториюИзменений <> Неопределено, ХранитьИсториюИзменений, Ложь);
КонецЦикла;
КонецЕсли;
КонецЕсли;
@@ -3054,7 +3063,7 @@
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ВидыКонтактнойИнформации");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Объект.Родитель.Ссылка);
ЭлементБлокировки.УстановитьЗначение("Ссылка", Объект.Родитель);
Блокировка.Заблокировать();
Родитель = Объект.Родитель.ПолучитьОбъект();
@@ -3219,7 +3228,7 @@
// Записывает контактную информацию из XML в поля табличной части Контактная информация объекта.
//
// Параметры:
// Объект - ЛюбаяСсылка - ссылка на объект конфигурации, содержащий табличную часть контактная информация.
// Объект - СправочникОбъект - объект конфигурации, содержащий табличную часть контактная информация.
// Значение - Строка - контактная информация в внутреннем формате JSON.
// ВидИнформации - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на вид контактной информации.
// ТипИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации.
@@ -4401,12 +4410,14 @@
ОбязательноеЗаполнение = ИнформацияОВидеКИ.ОбязательноеЗаполнение;
КонецЕсли;
ДобавляемыйВидНаименование = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДобавляемыйВид, "Наименование");
// Отрисовка на форме
Если ОбщегоНазначения.ЭтоМобильныйКлиент() И ПараметрыКонтактнойИнформации.ОтображатьИконки Тогда
ГруппаСтрокиЗаголовок = Группа("ГруппаЗаголовок" + ИмяРеквизита, Форма, ДобавляемыйВид.Наименование, ИмяЭлементаДляРазмещения, "ГруппаЗначенияКИ" + ИмяЭлементаДляРазмещения, 6);
ГруппаСтрокиЗаголовок = Группа("ГруппаЗаголовок" + ИмяРеквизита, Форма, ДобавляемыйВидНаименование, ИмяЭлементаДляРазмещения, "ГруппаЗначенияКИ" + ИмяЭлементаДляРазмещения, 6);
ГруппаСтрокиЗаголовок.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
ГруппаСтрокиЗаголовок.Отображение = ОтображениеОбычнойГруппы.ОбычноеВыделение;
ГруппаСтрокиЗаголовокКартинка = Группа("ГруппаЗаголовокКартинка" + ИмяРеквизита, Форма, ДобавляемыйВид.Наименование, ИмяЭлементаДляРазмещения, "ГруппаЗаголовок" + ИмяРеквизита);
ГруппаСтрокиЗаголовокКартинка = Группа("ГруппаЗаголовокКартинка" + ИмяРеквизита, Форма, ДобавляемыйВидНаименование, ИмяЭлементаДляРазмещения, "ГруппаЗаголовок" + ИмяРеквизита);
Декорация = Форма.Элементы.Добавить("Картинка" + ИмяРеквизита, Тип("ДекорацияФормы"), ГруппаСтрокиЗаголовокКартинка);
Декорация.Заголовок = НСтр("ru='Картинка'");
Декорация.Вид = ВидДекорацииФормы.Картинка;
@@ -4414,7 +4425,7 @@
Декорация.Картинка = КартинкаТипаКонтактнойИнформации(ИнформацияОВидеКИ.Тип);
ПараметрыКонтактнойИнформации.ДобавленныеЭлементы.Добавить("Картинка" + ИмяРеквизита, 2, Ложь);
ДекорацияЗаголовок = Форма.Элементы.Добавить("Заголовок" + ИмяРеквизита, Тип("ДекорацияФормы"), ГруппаСтрокиЗаголовокКартинка);
ДекорацияЗаголовок.Заголовок = ВРег(ДобавляемыйВид.Наименование);
ДекорацияЗаголовок.Заголовок = ВРег(ДобавляемыйВидНаименование);
ДекорацияЗаголовок.Вид = ВидДекорацииФормы.Надпись;
ПараметрыКонтактнойИнформации.ДобавленныеЭлементы.Добавить("Заголовок" + ИмяРеквизита, 2, Ложь);
ИмяГруппыРодителя = "ГруппаЗаголовок" + ИмяРеквизита;
@@ -4422,7 +4433,7 @@
ИмяГруппыРодителя = "ГруппаЗначенияКИ" + ИмяЭлементаДляРазмещения;
КонецЕсли;
ГруппаСтроки = Группа("Группа" + ИмяРеквизита, Форма, ДобавляемыйВид.Наименование, ИмяЭлементаДляРазмещения,
ГруппаСтроки = Группа("Группа" + ИмяРеквизита, Форма, ДобавляемыйВидНаименование, ИмяЭлементаДляРазмещения,
ИмяГруппыРодителя);
Если ОбщегоНазначения.ЭтоМобильныйКлиент() И НЕ ПараметрыКонтактнойИнформации.ОтображатьИконки Тогда
@@ -4511,7 +4522,7 @@
Если ЕстьПолеКомментарий Тогда
ГруппаПолеКомментарий = Группа("ГруппаКомментарий" + ИмяРеквизита, Форма,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 поле, комментарий'"),
ДобавляемыйВид.Наименование), ИмяЭлементаДляРазмещения, "Группа" + ИмяРеквизита, 4);
ДобавляемыйВидНаименование), ИмяЭлементаДляРазмещения, "Группа" + ИмяРеквизита, 4);
Иначе
ГруппаПолеКомментарий = ГруппаСтроки;
КонецЕсли;
@@ -5389,6 +5400,15 @@
И УправлениеКонтактнойИнформациейКлиентСервер.ЭтоАдресВСвободнойФорме(КонтактнаяИнформацияПоПолям.AddressType) Тогда
Продолжить;
КонецЕсли;
Если ПустаяСтрока(КонтактнаяИнформацияПоПолям.value) Тогда
КонтактнаяИнформацияПоПолям.value = СтрокаКИ.Представление;
КонецЕсли;
Если ПустаяСтрока(КонтактнаяИнформацияПоПолям.comment) И ЗначениеЗаполнено(СтрокаКИ.Комментарий) Тогда
КонтактнаяИнформацияПоПолям.comment = СтрокаКИ.Комментарий;
КонецЕсли;
СтрокаКИ.Значение = УправлениеКонтактнойИнформациейСлужебный.СтруктураВСтрокуJSON(КонтактнаяИнформацияПоПолям);
КонецЕсли;
@@ -5550,7 +5570,9 @@
//
Функция ОшибкиЗаполненияЭлектроннойПочты(АдресЭП, ВидИнформации, Знач ИмяРеквизита = "", ПолеРеквизита = "")
Если Не ВидИнформации.ПроверятьКорректность Тогда
ПроверятьКорректность = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидИнформации, "ПроверятьКорректность");
Если Не ПроверятьКорректность Тогда
Возврат 0;
КонецЕсли;
@@ -5574,7 +5596,7 @@
Если Не ПустаяСтрока(СтрокаОшибки) Тогда
ВывестиСообщениеПользователю(СтрокаОшибки, ИмяРеквизита, ПолеРеквизита);
УровеньОшибки = ?(ВидИнформации.ПроверятьКорректность, 2, 1);
УровеньОшибки = ?(ПроверятьКорректность, 2, 1);
Иначе
УровеньОшибки = 0;
КонецЕсли;
@@ -5693,7 +5715,9 @@
//
Функция ОшибкиЗаполненияАдреса(Источник, ВидИнформации, ИмяРеквизита = "", ПолеРеквизита = "")
Если Не ВидИнформации.ПроверятьКорректность Тогда
ПроверятьКорректность = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидИнформации, "ПроверятьКорректность");
Если Не ПроверятьКорректность Тогда
Возврат 0;
КонецЕсли;
ЕстьОшибки = Ложь;
@@ -5712,7 +5736,7 @@
КонецЦикла;
КонецЕсли;
Если ЕстьОшибки И ВидИнформации.ПроверятьКорректность Тогда
Если ЕстьОшибки И ПроверятьКорректность Тогда
Возврат 2;
ИначеЕсли ЕстьОшибки Тогда
Возврат 1;
@@ -5733,7 +5757,9 @@
//
Функция ОшибкиЗаполненияТелефона(Источник, ВидИнформации, ИмяРеквизита = "")
Если Не ВидИнформации.ПроверятьКорректность Тогда
ПроверятьКорректность = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидИнформации, "ПроверятьКорректность");
Если Не ПроверятьКорректность Тогда
Возврат 0;
КонецЕсли;
@@ -5757,7 +5783,7 @@
ЕстьОшибки = Истина;
КонецЦикла;
Если ЕстьОшибки И ВидИнформации.ПроверятьКорректность Тогда
Если ЕстьОшибки И ПроверятьКорректность Тогда
Возврат 2;
ИначеЕсли ЕстьОшибки Тогда
Возврат 1;
@@ -176,10 +176,12 @@
Процедура ПриПодготовкеДанныхОбъекта(Объект, ДополнительныеРеквизиты) Экспорт
Если Объект.Метаданные().ТабличныеЧасти.Найти("КонтактнаяИнформация") <> Неопределено Тогда
Для Каждого Контакт Из УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Объект.Ссылка,, ТекущаяДатаСеанса(), Ложь) Цикл
КонтактнаяИнформацияОбъекта = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Объект.Ссылка,, ТекущаяДатаСеанса(), Ложь);
ВидыКИНаименование = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(КонтактнаяИнформацияОбъекта.ВыгрузитьКолонку("Вид"), "Наименование");
Для Каждого Контакт Из КонтактнаяИнформацияОбъекта Цикл
Если ЗначениеЗаполнено(Контакт.Вид) Тогда
Реквизит = ДополнительныеРеквизиты.Добавить();
Реквизит.Наименование = Контакт.Вид.Наименование;
Реквизит.Наименование = ВидыКИНаименование.Получить(Контакт.Вид);
Реквизит.Значение = Контакт.Представление;
КонецЕсли;
КонецЦикла;
@@ -1133,7 +1135,7 @@
Если ЕстьРаботаСАдресамиКлиентСервер Тогда
МодульРаботаСАдресамиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресамиКлиентСервер");
Адрес = МодульРаботаСАдресамиКлиентСервер.ОписаниеНовойКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.Адрес);
НаименованиеОсновнаяСтрана = СокрЛП(МодульРаботаСАдресамиКлиентСервер.ОсновнаяСтрана().Наименование);
НаименованиеОсновнаяСтрана = СокрЛП(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(МодульРаботаСАдресамиКлиентСервер.ОсновнаяСтрана(), "Наименование"));
Иначе
Адрес = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеНовойКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.Адрес);
НаименованиеОсновнаяСтрана = "";
@@ -2375,7 +2377,7 @@
Функция ЗапрещенВводНесколькихЗначений(ВидКонтактнойИнформации, КонтактнаяИнформация, Дата, Периодическая, ИдентификаторСтрокиТабличнойЧасти = Неопределено)
Если ВидКонтактнойИнформации.РазрешитьВводНесколькихЗначений Тогда
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидКонтактнойИнформации, "РазрешитьВводНесколькихЗначений") Тогда
Возврат Ложь;
КонецЕсли;
@@ -2087,6 +2087,8 @@
Если Не МакетСуществует(ПечатнаяФорма.ПолныйПутьКМакету) Тогда
ПечатнаяФорма.ПолныйПутьКМакету = "";
КонецЕсли;
ПечатнаяФорма.Защита = ПечатнаяФорма.ТабличныйДокумент.Защита;
КонецЦикла;
КонецПроцедуры
@@ -3429,6 +3431,7 @@
ПечатнаяФорма.ИмяМакета = ИмяМакета;
ПечатнаяФорма.ИмяВРЕГ = ВРег(ИмяМакета);
КонецЕсли;
ПечатнаяФорма.Защита = ВременнаяПечатнаяФорма.ТабличныйДокумент.Защита;
Иначе
// Возникла ошибка при формировании печатной формы.
Отказ = Истина;
@@ -33,6 +33,11 @@
ПараметрыОткрытия.ПараметрКоманды = МассивОбъектов;
ПараметрыОткрытия.ПараметрыПечати = ПараметрыПечати;
Если ОбщегоНазначенияКлиент.ИнформационнаяБазаФайловая() Тогда
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));
Возврат;
КонецЕсли;
Если ВладелецФормы = Неопределено Тогда
ПараметрыОткрытия.УникальныйИдентификаторХранилища = Новый УникальныйИдентификатор;
Иначе
@@ -44,6 +49,7 @@
ОповещениеОЗавершении = Новый ОписаниеОповещения("ОткрытьФормуПечатьДокументов", УправлениеПечатьюСлужебныйКлиент, ПараметрыОткрытия);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, УправлениеПечатьюСлужебныйКлиент.ПараметрыОжидания(ВладелецФормы));
КонецПроцедуры
// Формирует и выводит на принтер печатные формы.
@@ -30,6 +30,7 @@
Поля.Добавить("ОфисныеДокументы");
Поля.Добавить("ДоступенВыводНаДругихЯзыках");
Поля.Добавить("ТекстОшибкиФормирования");
Поля.Добавить("Защита");
Возврат Поля;
@@ -254,6 +254,12 @@
КонецЕсли;
СтруктураРезультата = ПолучитьИзВременногоХранилища(РезультатФоновойОперации.АдресРезультата);
Для Каждого ПечатнаяФорма Из СтруктураРезультата.КоллекцияПечатныхФорм Цикл
Если ТипЗнч(ПечатнаяФорма.ТабличныйДокумент) = Тип("ТабличныйДокумент") Тогда
ПечатнаяФорма.ТабличныйДокумент.Защита = ПечатнаяФорма.Защита;
КонецЕсли;
КонецЦикла;
ПараметрыОткрытия.Вставить("ОбъектыПечати", СтруктураРезультата.ОбъектыПечати);
ПараметрыОткрытия.Вставить("ПараметрыВывода", СтруктураРезультата.ПараметрыВывода);
ПараметрыОткрытия.Вставить("ПараметрыПечати", СтруктураРезультата.ПараметрыПечати);
@@ -6679,8 +6679,7 @@
ТехническаяИнформация = ТехническаяИнформация
+ Символы.ПС + НСтр("ru = 'Режим работы информационной базы'")+ " - " + РежимРаботы
+ Символы.ПС + Символы.ПС + ТехническаяИнформацияОВерсияхПодсистем() + Символы.ПС
+ НСтр("ru = 'Расширения'") + ":" + Символы.ПС + ТехническаяИнформацияОРасширениях();
+ Символы.ПС + Символы.ПС + СтандартныеПодсистемыСервер.ТехническаяИнформацияОВерсияхПодсистемИРасширениях();
КонецПроцедуры
@@ -6846,51 +6845,6 @@
КонецПроцедуры
Функция ТехническаяИнформацияОВерсияхПодсистем()
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВерсииПодсистем.ИмяПодсистемы КАК ИмяПодсистемы,
| ВерсииПодсистем.Версия КАК Версия
|ИЗ
| РегистрСведений.ВерсииПодсистем КАК ВерсииПодсистем";
ВерсииПодсистем = Запрос.Выполнить().Выбрать();
ДиагностическаяИнформация = НСтр("ru = 'Версии подсистем'") + ":" + Символы.ПС;
Пока ВерсииПодсистем.Следующий() Цикл
ДиагностическаяИнформация = ДиагностическаяИнформация
+ ВерсииПодсистем.ИмяПодсистемы + " - "
+ ВерсииПодсистем.Версия + Символы.ПС;
КонецЦикла;
Возврат ДиагностическаяИнформация;
КонецФункции
Функция ТехническаяИнформацияОРасширениях()
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
ПредставлениеРасширений = "";
Расширения = РасширенияКонфигурации.Получить();
Для Каждого Расширение Из Расширения Цикл
ПредставлениеРасширений = ПредставлениеРасширений
+ Расширение.Имя + " - " + Расширение.Синоним + " - "
+ Формат(Расширение.Активно, НСтр("ru = 'БЛ=Отключено; БИ=Включено'")) + Символы.ПС;
КонецЦикла;
Возврат ПредставлениеРасширений;
КонецФункции
// Скачать файл списка отзыва на сервере.
//
// Параметры:
@@ -9963,9 +9963,7 @@
Возврат;
КонецЕсли;
СистемнаяИнформация = Новый СистемнаяИнформация;
Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86
ИЛИ СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда
Если ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда
Контекст = Новый Структура;
Контекст.Вставить("ОповещениеОЗавершении", ОповещениеОЗавершении);
Контекст.Вставить("ВладелецФормы", Форма.ВладелецФормы);
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4b932d5e-2cdb-4dec-9c56-c0ffeaffafd6">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="607caa38-5b10-45e7-bb82-d4a0c9f67471">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="0a2e600b-f69c-43e8-8343-4881abe77bc6"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="ebbbf3a2-71c6-49ea-9e41-0e8065749ecc"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="2f729347-ab29-406f-8f81-256f0065b045"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="87b8e073-59ce-430d-8b67-9a06cc7c4c51"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="54926faf-6b8a-4b0c-8828-de40555d641c"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="71f0d9ac-54bf-480e-8b12-9b0ca7c017b6"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="d898ccb7-618e-48c6-ac4d-4cd1242bc07f"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="908b1e01-fbda-4108-a418-e522dbb6394d"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="df9c1f3f-8a65-4712-87ff-b88e7b8c03de"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="7516b657-02eb-4a61-89ba-d8796794adb7"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="3e4d4f4e-fd62-487b-9548-ed2a9f4b5e05"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="077ca584-826e-43e2-ab02-2c278de53d2a"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="de5f8320-e5ba-419f-9db8-c4d054d2a660"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="6e25fdc6-461a-4322-8bb7-51f4f0f592f3"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.9.199</version>
<version>3.1.9.209</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,98ce37ff-fa99-411e-b324-45e5458ee046,1,e7f0dc50-68f1-4dfe-b306-c90516c7ce82,"3.1.9.199","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7612,1,0,4b932d5e-2cdb-4dec-9c56-c0ffeaffafd6,4b932d5e-2cdb-4dec-9c56-c0ffeaffafd6,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,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,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,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,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,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,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,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-6754Line truncated
{6,1,1,e6c0b441-219f-4044-b239-35217eb5bcb6,1,84063834-4236-4d6c-8609-20d788419575,"3.1.9.209","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7613,1,0,607caa38-5b10-45e7-bb82-d4a0c9f67471,607caa38-5b10-45e7-bb82-d4a0c9f67471,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,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,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,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,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,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,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,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-6754Line truncated
@@ -17,10 +17,13 @@
Элементы.История.ТолькоПросмотр = Параметры.ТолькоПросмотр;
КонецЕсли;
РеквизитыВидаКонтактнойИнформации = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Параметры.ВидКонтактнойИнформации,
"Наименование, Тип, ПроверятьКорректность, ВидРедактирования" );
ВидКонтактнойИнформации = Параметры.ВидКонтактнойИнформации;
ТипКонтактнойИнформации = Параметры.ВидКонтактнойИнформации.Тип;
ПроверятьКорректность = ВидКонтактнойИнформации.ПроверятьКорректность;
ПредставлениеКонтактнойИнформации = Параметры.ВидКонтактнойИнформации.Наименование;
ТипКонтактнойИнформации = РеквизитыВидаКонтактнойИнформации.Тип;
ПроверятьКорректность = РеквизитыВидаКонтактнойИнформации.ПроверятьКорректность;
ПредставлениеКонтактнойИнформации = РеквизитыВидаКонтактнойИнформации.Наименование;
Если ТипЗнч(Параметры.СписокКонтактнойИнформации) = Тип("Массив") Тогда
Для каждого СтрокаКонтактнойИнформации Из Параметры.СписокКонтактнойИнформации Цикл
@@ -34,10 +37,10 @@
Иначе
Отказ = Истина;
КонецЕсли;
РедактированиеТолькоВДиалоге = ВидКонтактнойИнформации.ВидРедактирования = "Диалог";
Если ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
РедактированиеТолькоВДиалоге = РеквизитыВидаКонтактнойИнформации.ВидРедактирования = "Диалог";
Если РеквизитыВидаКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
ИмяФормыРедактирования = "ВводАдреса";
ИначеЕсли ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
ИначеЕсли РеквизитыВидаКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
ИмяФормыРедактирования = "ВводТелефона";
Иначе
ИмяФормыРедактирования = "";
@@ -271,13 +271,16 @@
Иначе
Отбор = Новый Структура("ОбязательнаДляЗаполнения", Истина);
КолонкиОбязательнаДляЗаполнения = ИнформацияПоКолонкам.НайтиСтроки(Отбор);
РезультатСопоставленияСтроки = "СтрокаСопоставлена";
РезультатСопоставленияСтроки = "СтрокаСопоставлена";
ПрефиксТабличнойЧасти = ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТабличнойЧасти() + "_";
Для каждого КолонкаТаблицы Из КолонкиОбязательнаДляЗаполнения Цикл
Если НЕ ЗначениеЗаполнено(Элемент.ТекущиеДанные["ТЧ_" + КолонкаТаблицы.Родитель]) Тогда
Если Не ЗначениеЗаполнено(Элемент.ТекущиеДанные[ПрефиксТабличнойЧасти + КолонкаТаблицы.Родитель]) Тогда
РезультатСопоставленияСтроки = ?(ЗначениеЗаполнено(Элемент.ТекущиеДанные.ОписаниеОшибки), "Неоднозначность", "НеСопоставлен");
Прервать;
КонецЕсли;
КонецЦикла;
Элемент.ТекущиеДанные.РезультатСопоставленияСтроки = РезультатСопоставленияСтроки;
КонецЕсли;
@@ -291,8 +294,9 @@
Элементы.ТаблицаСопоставленияДанныхКонтекстноеМенюРазрешитьНеоднозначность.Доступность = Ложь;
Если Элемент.ТекущиеДанные <> Неопределено И ЗначениеЗаполнено(Элемент.ТекущиеДанные.РезультатСопоставленияСтроки) Тогда
Если ТипЗагрузки = "ТабличнаяЧасть" Тогда
Если СтрДлина(Элемент.ТекущийЭлемент.Имя) > 3 И СтрНачинаетсяС(Элемент.ТекущийЭлемент.Имя, "ТЧ_") Тогда
Если ТипЗагрузки = "ТабличнаяЧасть" Тогда
ПрефиксТабличнойЧасти = ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТабличнойЧасти() + "_";
Если СтрДлина(Элемент.ТекущийЭлемент.Имя) > 3 И СтрНачинаетсяС(Элемент.ТекущийЭлемент.Имя, ПрефиксТабличнойЧасти) Тогда
ИмяКолонки = Сред(Элемент.ТекущийЭлемент.Имя, 4);
Если СтрНайти(Элемент.ТекущиеДанные.ОписаниеОшибки, ИмяКолонки) > 0 Тогда
Элементы.УстранитьНеоднозначность.Доступность = Истина;
@@ -511,10 +515,11 @@
Если ТипЗагрузки = "ТабличнаяЧасть" Тогда
Если Результат <> Неопределено Тогда
Строка = ТаблицаСопоставленияДанных.НайтиПоИдентификатору(Параметр.Идентификатор);
ПрефиксТабличнойЧасти = ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТабличнойЧасти() + "_";
Строка["ТЧ_" + Параметр.Имя] = Результат;
Строка.ОписаниеОшибки = СтрЗаменить(Строка.ОписаниеОшибки, Параметр.Имя+";", "");
Строка = ТаблицаСопоставленияДанных.НайтиПоИдентификатору(Параметр.Идентификатор);
Строка[ПрефиксТабличнойЧасти + Параметр.Имя] = Результат;
Строка.ОписаниеОшибки = СтрЗаменить(Строка.ОписаниеОшибки, Параметр.Имя + ";", "");
Строка.РезультатСопоставленияСтроки = ?(СтрДлина(Строка.ОписаниеОшибки) = 0, "СтрокаСопоставлена", "НеСопоставлен");
КонецЕсли;
Иначе
@@ -1223,8 +1228,11 @@
Если ТипЗагрузки = "ТабличнаяЧасть" Тогда
Если Строка.РезультатСопоставленияСтроки = "Неоднозначность" И СтрДлина(Строка.ОписаниеОшибки) > 0 Тогда
Если СтрДлина(ПолеИмя) > 3 И СтрНачинаетсяС(ПолеИмя, "ТаблицаСопоставленияДанных_ТЧ_") Тогда
Имя = Сред(ПолеИмя, СтрДлина("ТаблицаСопоставленияДанных_ТЧ_") + 1);
ПрефиксНачалаТабличнойЧасти = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1_%2_",
ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТаблицыСопоставления(),
ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТабличнойЧасти());
Если СтрДлина(ПолеИмя) > 3 И СтрНачинаетсяС(ПолеИмя, ПрефиксНачалаТабличнойЧасти) Тогда
Имя = Сред(ПолеИмя, СтрДлина(ПрефиксНачалаТабличнойЧасти) + 1);
Если СтрНайти(Строка.ОписаниеОшибки, Имя) Тогда
СтандартнаяОбработка = Ложь;
СтрокаИзТаблицы = Новый Массив;
@@ -1507,11 +1515,16 @@
ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветОбъектНеНайден);
ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", ТекстОбъектНеНайден);
ПрефиксТаблицыСопоставления = ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТаблицыСопоставления();
Если ЗначениеЗаполнено(СписокКолонок) Тогда
ПрефиксТабличнойЧасти = ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТабличнойЧасти();
Для каждого ИмяКолонки Из СписокКолонок Цикл
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ПолеОформления = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТаблицаСопоставленияДанных_ТЧ_" + ИмяКолонки);
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1_%2_%3",
ПрефиксТаблицыСопоставления, ПрефиксТабличнойЧасти, ИмяКолонки));
ПолеОформления.Использование = Истина;
ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаСопоставленияДанных.РезультатСопоставленияСтроки");
@@ -1525,7 +1538,8 @@
Иначе
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ПолеОформления = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТаблицаСопоставленияДанных_ОбъектСопоставления");
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1_%2",
ПрефиксТаблицыСопоставления, "ОбъектСопоставления"));
ПолеОформления.Использование = Истина;
ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаСопоставленияДанных.РезультатСопоставленияСтроки");
@@ -1802,6 +1816,7 @@
Для каждого Колонка Из ТабличнаяЧасть.Колонки Цикл
КолонкиТабличнойЧасти.Вставить(Колонка.Имя, Истина);
КонецЦикла;
ПрефиксТабличнойЧасти = ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТабличнойЧасти() + "_";
ВременнаяТЗ = РеквизитФормыВЗначение("ТаблицаСопоставленияДанных"); // см. Обработка.ЗагрузкаДанныхИзФайла.Форма.ЗагрузкаДанныхИзФайла.ТаблицаСопоставленияДанных
Для каждого Строка Из ТабличнаяЧасть Цикл
@@ -1810,7 +1825,7 @@
ЗаполненыВсеОбязательныеКолонки = Истина;
Для каждого Колонка Из ТабличнаяЧасть.Колонки Цикл
Если Колонка.Имя <> "Идентификатор" Тогда
НоваяСтрока["ТЧ_" + Колонка.Имя] = Строка[Колонка.Имя];
НоваяСтрока[ПрефиксТабличнойЧасти + Колонка.Имя] = Строка[Колонка.Имя];
КонецЕсли;
Если ЗначениеЗаполнено(КолонкиОбязательныеДляЗаполнения.Получить(Колонка.Имя))
@@ -1831,7 +1846,7 @@
НоваяСтрока["ОписаниеОшибки"] = НоваяСтрока["ОписаниеОшибки"] + Неоднозначность.Колонка+ ";";
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ПолеОформления = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТЧ_" + Неоднозначность.Колонка);
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ПрефиксТабличнойЧасти + Неоднозначность.Колонка);
ПолеОформления.Использование = Истина;
ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаСопоставленияДанных.ОписаниеОшибки");
@@ -1867,10 +1882,11 @@
Функция АдресВХранилищеТаблицыСопоставления()
Таблица = РеквизитФормыВЗначение("ТаблицаСопоставленияДанных");
ПрефиксТабличнойЧасти = ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТабличнойЧасти() + "_";
ТаблицаДляТЧ = Новый ТаблицаЗначений;
Для Каждого Колонка Из Таблица.Колонки Цикл
Если СтрНачинаетсяС(Колонка.Имя, "ТЧ_") Тогда
ТаблицаДляТЧ.Колонки.Добавить(Сред(Колонка.Имя, СтрДлина("ТЧ_") + 1), Колонка.ТипЗначения, Колонка.Заголовок, Колонка.Ширина);
Если СтрНачинаетсяС(Колонка.Имя, ПрефиксТабличнойЧасти) Тогда
ТаблицаДляТЧ.Колонки.Добавить(Сред(Колонка.Имя, СтрДлина(ПрефиксТабличнойЧасти) + 1), Колонка.ТипЗначения, Колонка.Заголовок, Колонка.Ширина);
ИначеЕсли Колонка.Имя = "РезультатСопоставленияСтроки" ИЛИ Колонка.Имя = "ОписаниеОшибки" ИЛИ Колонка.Имя = "Идентификатор" Тогда
ТаблицаДляТЧ.Колонки.Добавить(Колонка.Имя, Колонка.ТипЗначения, Колонка.Заголовок, Колонка.Ширина);
КонецЕсли;
@@ -1882,7 +1898,7 @@
Если Колонка.Имя = "Идентификатор" Тогда
НоваяСтрока[Колонка.Имя] = Строка[Колонка.Имя];
ИначеЕсли Колонка.Имя <> "РезультатСопоставленияСтроки" И Колонка.Имя <> "ОписаниеОшибки" Тогда
НоваяСтрока[Колонка.Имя] = Строка["ТЧ_"+ Колонка.Имя];
НоваяСтрока[Колонка.Имя] = Строка[ПрефиксТабличнойЧасти + Колонка.Имя];
КонецЕсли;
КонецЦикла;
КонецЦикла;
@@ -2135,7 +2151,7 @@
Если Не ЗначениеЗаполнено(СтруктураОбъектаСопоставления.Синоним) Тогда
ЗаголовокКолонки = "";
Если СтруктураОбъектаСопоставления.ОписаниеТипаОбъектаСопоставления.Типы().Количество() > 1 Тогда
ЗаголовокКолонки = "Объекты";
ЗаголовокКолонки = НСтр("ru = 'Объекты'");
Иначе
ЗаголовокКолонки = Строка(СтруктураОбъектаСопоставления.ОписаниеТипаОбъектаСопоставления.Типы()[0]);
КонецЕсли;
@@ -2213,7 +2229,9 @@
Картинка = БиблиотекаКартинок.Изменить;
Для Каждого Колонка Из ВременнаяТЗ.Колонки Цикл
НовыйЭлемент = Элементы.Добавить("ТаблицаСопоставленияДанных_" + Колонка.Имя, Тип("ПолеФормы"), Элементы.ТаблицаСопоставленияДанных); // РасширениеПоляФормыДляПоляВвода
НовыйЭлемент = Элементы.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1_%2",
ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТаблицыСопоставления(), Колонка.Имя),
Тип("ПолеФормы"), Элементы.ТаблицаСопоставленияДанных); // РасширениеПоляФормыДляПоляВвода
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "ТаблицаСопоставленияДанных." + Колонка.Имя;
НовыйЭлемент.Заголовок = Колонка.Заголовок;
@@ -2292,7 +2310,9 @@
Картинка = БиблиотекаКартинок.Изменить;
Для Каждого Колонка Из ВременнаяТЗ.Колонки Цикл
НовыйЭлемент = Элементы.Добавить("ТаблицаСопоставленияДанных_" + Колонка.Имя, Тип("ПолеФормы"), Элементы.ТаблицаСопоставленияДанных); // РасширениеПоляФормыДляПоляВвода
НовыйЭлемент = Элементы.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1_%2",
ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТаблицыСопоставления(), Колонка.Имя),
Тип("ПолеФормы"), Элементы.ТаблицаСопоставленияДанных); // РасширениеПоляФормыДляПоляВвода
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "ТаблицаСопоставленияДанных." + Колонка.Имя;
НовыйЭлемент.Заголовок = Колонка.Заголовок;
@@ -2344,6 +2364,7 @@
КолонкиСодержащиеСвязиПараметровВыбора = Новый Соответствие;
ОбъектРеквизитыТЧ = ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени(ИмяОбъектаСопоставления); // ОбъектМетаданныхСправочник, ОбъектМетаданныхДокумент
РеквизитыТЧ = ОбъектРеквизитыТЧ.Реквизиты;
ПрефиксТабличнойЧасти = ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТабличнойЧасти() + "_";
Для каждого Колонка Из РеквизитыТЧ Цикл
@@ -2352,7 +2373,7 @@
КонецЕсли;
Если Колонка.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку Тогда
ОбязательныеКолонки.Добавить("ТЧ_" + Колонка.Имя);
ОбязательныеКолонки.Добавить(ПрефиксТабличнойЧасти + Колонка.Имя);
КонецЕсли;
Если Колонка.СвязиПараметровВыбора.Количество() > 0 Тогда
@@ -2361,8 +2382,8 @@
ТипРеквизита = ?(Колонка.Тип.СодержитТип(Тип("УникальныйИдентификатор")), ОбщегоНазначения.ОписаниеТипаСтрока(36), Колонка.Тип);
ВременнаяТЗ.Колонки.Добавить("ТЧ_" + Колонка.Имя, ТипРеквизита, Колонка.Представление());
МассивРеквизитов.Добавить(Новый РеквизитФормы("ТЧ_" + Колонка.Имя, ТипРеквизита, "ТаблицаСопоставленияДанных", Колонка.Представление()));
ВременнаяТЗ.Колонки.Добавить(ПрефиксТабличнойЧасти + Колонка.Имя, ТипРеквизита, Колонка.Представление());
МассивРеквизитов.Добавить(Новый РеквизитФормы(ПрефиксТабличнойЧасти + Колонка.Имя, ТипРеквизита, "ТаблицаСопоставленияДанных", Колонка.Представление()));
КонецЦикла;
@@ -2380,7 +2401,7 @@
Для Каждого Колонка Из ВременнаяТЗ.Колонки Цикл
Если СтрНачинаетсяС(Колонка.Имя, "ТЧ_") Тогда
Если СтрНачинаетсяС(Колонка.Имя, ПрефиксТабличнойЧасти) Тогда
ГруппаКолонокЗагружаемыеДанныеТЧ = Элементы.Добавить("ЗагружаемыеДанные_" + Колонка.Имя , Тип("ГруппаФормы"), ГруппаКолонокЗагружаемыеДанные);
ГруппаКолонокЗагружаемыеДанныеТЧ.Группировка = ГруппировкаКолонок.Вертикальная;
Родитель = ГруппаКолонокЗагружаемыеДанныеТЧ;
@@ -2390,14 +2411,15 @@
Родитель = ГруппаКолонокЗагружаемыеДанные;
КонецЕсли;
НовыйЭлемент = Элементы.Добавить("ТаблицаСопоставленияДанных_" + Колонка.Имя, Тип("ПолеФормы"), Родитель);
НовыйЭлемент = Элементы.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1_%2",
ЗагрузкаДанныхИзФайлаКлиентСервер.ПрефиксТаблицыСопоставления(), Колонка.Имя), Тип("ПолеФормы"), Родитель);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "ТаблицаСопоставленияДанных." + Колонка.Имя;
НовыйЭлемент.Заголовок = Колонка.Заголовок;
НовыйЭлемент.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать;
Если СтрДлина(Колонка.Имя) > 3 И СтрНачинаетсяС(Колонка.Имя, "ТЧ_") Тогда
Если СтрДлина(Колонка.Имя) > 3 И СтрНачинаетсяС(Колонка.Имя, ПрефиксТабличнойЧасти) Тогда
Отбор = Новый Структура("ИмяКолонки", Сред(Колонка.Имя, 4));
Колонки = ИнформацияПоКолонкам.НайтиСтроки(Отбор);
Если Колонки.Количество() > 0 Тогда
@@ -2417,7 +2439,7 @@
НовыйЭлемент.АвтоОтметкаНезаполненного = Истина;
КонецЕсли;
Если СтрНачинаетсяС(Колонка.Имя, "ТЧ_") Тогда
Если СтрНачинаетсяС(Колонка.Имя, ПрефиксТабличнойЧасти) Тогда
ТипКолонки = Метаданные.НайтиПоТипу(Колонка.ТипЗначения.Типы()[0]);
Если ТипКолонки <> Неопределено И СтрНайти(ТипКолонки.ПолноеИмя(), "Справочник") > 0 Тогда
НовыйЭлемент.КартинкаШапки = Картинка;
@@ -2430,7 +2452,8 @@
Позиция = СтрНайти(СвязьПараметраВыбора.ПутьКДанным, ".", НаправлениеПоиска.СКонца);
Если Позиция > 0 Тогда
ИмяЭлемента = Сред(СвязьПараметраВыбора.ПутьКДанным, Позиция + 1);
НоваяСвязь = Новый СвязьПараметраВыбора(СвязьПараметраВыбора.Имя, "Элементы.ТаблицаСопоставленияДанных.ТекущиеДанные.ТЧ_" + ИмяЭлемента, СвязьПараметраВыбора.ИзменениеЗначения);
НоваяСвязь = Новый СвязьПараметраВыбора(СвязьПараметраВыбора.Имя, "Элементы.ТаблицаСопоставленияДанных.ТекущиеДанные."
+ ПрефиксТабличнойЧасти + ИмяЭлемента, СвязьПараметраВыбора.ИзменениеЗначения);
НовыйМассив.Добавить(НоваяСвязь);
КонецЕсли;
КонецЦикла;
@@ -149,7 +149,7 @@
Функция ЗагрузкаДанныхИзФайлаДопустима(Справочник)
Если СтрНачинаетсяС(ВРег(Справочник.Имя), "УДАЛИТЬ") Тогда
Если СтрНачинаетсяС(ВРег(Справочник.Имя), ВРег("УДАЛИТЬ")) Тогда
Возврат Ложь;
КонецЕсли;
@@ -162,7 +162,7 @@
КодРегиона = ДанныеОрганизации.RegionCode;
Регион = ДанныеОрганизации.RegionName;
Если Не ЗначениеЗаполнено(Регион) Тогда
Регион = НСтр("ru = 'Другие территории'");
Регион = РегионДругиеТерритории();
КодРегиона = "";
КонецЕсли;
@@ -194,6 +194,12 @@
КонецФункции
Функция РегионДругиеТерритории()
Возврат НСтр("ru = 'Другие территории'");
КонецФункции
Функция СтруктураДанныхОрганизации()
Результат = Новый Структура;
@@ -377,7 +383,11 @@
Блокировка.Добавить("Справочник.КлассификаторБанков");
Блокировка.Заблокировать();
РегионСсылка = Справочники.КлассификаторБанков.НайтиПоКоду(СведенияОБанке.КодРегиона);
Если ЗначениеЗаполнено(СведенияОБанке.КодРегиона) Тогда
РегионСсылка = Справочники.КлассификаторБанков.НайтиПоКоду(СведенияОБанке.КодРегиона);
Иначе
РегионСсылка = Справочники.КлассификаторБанков.НайтиПоНаименованию(РегионДругиеТерритории(), Истина);
КонецЕсли;
Если РегионСсылка.Пустая() Тогда
Регион = Справочники.КлассификаторБанков.СоздатьГруппу();
@@ -932,8 +932,8 @@
Если ТекущийПользователь = Неопределено Тогда
СтрокаТаблицы = НеСкопированныеНастройкиОтчетов.Добавить();
СтрокаТаблицы.Пользователь = ПользовательПриемник.Наименование;
ТекущийПользователь = ПользовательПриемник.Наименование;
СтрокаТаблицы.Пользователь = ПользовательПриемник;
ТекущийПользователь = ПользовательПриемник;
КонецЕсли;
Если СтрокаТаблицы.СписокОтчетов.НайтиПоЗначению(КлючОтчета[0]) = Неопределено Тогда
@@ -2009,7 +2009,7 @@
Для Каждого СтрокаТаблицы Из НеСкопированныеНастройкиОтчетов Цикл
ТабДок.Вывести(ТабМакет.ПолучитьОбласть("ПустаяСтрока"));
ОбластьСодержание.Параметры.Название = СтрокаТаблицы.Пользователь + ":";
ОбластьСодержание.Параметры.Название = Строка(СтрокаТаблицы.Пользователь) + ":";
ТабДок.Вывести(ОбластьСодержание);
Для Каждого НазваниеОтчета Из СтрокаТаблицы.СписокОтчетов Цикл
ОбластьСодержание.Параметры.Название = НазваниеОтчета.Значение;
@@ -124,67 +124,136 @@
<items xsi:type="form:FormGroup">
<name>АдресныйКлассификаторНастройки</name>
<id>1874</id>
<items xsi:type="form:Button">
<name>ЗагрузкаАдресногоКлассификатора</name>
<id>1876</id>
<items xsi:type="form:FormGroup">
<name>ЗагрузкаИОчисткаАдресногоКлассификатора</name>
<id>1941</id>
<items xsi:type="form:Button">
<name>ЗагрузкаАдресногоКлассификатора</name>
<id>1876</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ЗагрузкаАдресногоКлассификатораРасширеннаяПодсказка</name>
<id>1877</id>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.ЗагрузкаАдресногоКлассификатора</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ОчисткаАдресныхСведений</name>
<id>1878</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОчисткаАдресныхСведенийРасширеннаяПодсказка</name>
<id>1879</id>
<title>
<key>ru</key>
<value>Очистка адресного классификатора.</value>
</title>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.ОчисткаАдресныхСведений</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
</title>
<toolTip>
<key>ru</key>
<value>Для экономии трафика при автоподборе и проверке адресов, а также при работе без доступа к Интернету возможно загружать и обновлять адресные сведения в программу. Требуется до 2 Гб места на компьютере.</value>
</toolTip>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<extendedTooltip>
<name>ЗагрузкаАдресногоКлассификатораРасширеннаяПодсказка</name>
<id>1877</id>
<title>
<key>ru</key>
<value>Для экономии трафика при автоподборе и проверке адресов, а также при работе без доступа к Интернету возможно загружать и обновлять адресные сведения в программу. Требуется до 2 Гб места на компьютере.</value>
</title>
<name>ЗагрузкаИОчисткаАдресногоКлассификатораРасширеннаяПодсказка</name>
<id>1942</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.ЗагрузкаАдресногоКлассификатора</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<representationInContextMenu>Auto</representationInContextMenu>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Button">
<name>ОчисткаАдресныхСведений</name>
<id>1878</id>
<items xsi:type="form:FormField">
<name>ИспользоватьВебСервисАдресов</name>
<id>1943</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ИспользоватьВебСервисАдресов</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<handlers>
<event>OnChange</event>
<name>ИспользоватьВебСервисАдресовПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ОчисткаАдресныхСведенийРасширеннаяПодсказка</name>
<id>1879</id>
<title>
<key>ru</key>
<value>Очистка адресного классификатора.</value>
</title>
<name>ИспользоватьВебСервисАдресовРасширеннаяПодсказка</name>
<id>1945</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.ОчисткаАдресныхСведений</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<representationInContextMenu>Auto</representationInContextMenu>
<contextMenu>
<name>ИспользоватьВебСервисАдресовКонтекстноеМеню</name>
<id>1944</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<visible>true</visible>
<enabled>true</enabled>
@@ -1712,6 +1781,23 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ИспользоватьВебСервисАдресов</name>
<title>
<key>ru</key>
<value>Подбирать и проверять адреса через Интернет, которые не загружены в приложение</value>
</title>
<id>34</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ПодключитьОтключитьОбсуждения</name>
<title>
@@ -1775,7 +1861,7 @@
<name>ОчисткаАдресныхСведений</name>
<title>
<key>ru</key>
<value>Очистка адресных сведений</value>
<value>Очистка</value>
</title>
<id>15</id>
<use>
@@ -59,6 +59,15 @@
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ИспользоватьВебСервисАдресовПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкиПрограммы") Тогда
ПриИзмененииИспользованияВебСервисАдресов(ИспользоватьВебСервисАдресов);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РазрешитьОтправлятьДанныеПриИзменении(Элемент)
@@ -218,6 +227,13 @@
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПриИзмененииИспользованияВебСервисАдресов(ИспользоватьВебСервисАдресов)
НастройкиПрограммы.ИнтернетПоддержкаИСервисыУстановитьИспользованиеВебСервиса(ИспользоватьВебСервисАдресов);
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// Клиент
@@ -297,6 +297,7 @@
КонецЕсли;
ОбновитьИнтерфейс = Истина;
ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина);
КонецПроцедуры
@@ -146,7 +146,7 @@
Процедура ПриОбработкеОшибкиПолученияКодаРегистрации(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
СтандартнаяОбработка = Ложь;
ОбработкаОшибок.ПоказатьИнформациюОбОшибке(ИнформацияОбОшибке);
СтандартныеПодсистемыКлиент.ПоказатьИнформациюОбОшибкеИПродолжить(ИнформацияОбОшибке);
СостояниеРегистрации = "НеЗарегистрирована";
ПриИзмененииСостоянияФормы(ЭтотОбъект);
@@ -196,7 +196,7 @@
Процедура ПриОбработкеОшибкиРегистрации(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
СтандартнаяОбработка = Ложь;
ОбработкаОшибок.ПоказатьИнформациюОбОшибке(ИнформацияОбОшибке);
СтандартныеПодсистемыКлиент.ПоказатьИнформациюОбОшибкеИПродолжить(ИнформацияОбОшибке);
СостояниеРегистрации = "ОжиданиеВводаКодаПодтверждения";
ПриИзмененииСостоянияФормы(ЭтотОбъект);
@@ -602,13 +602,9 @@
Возврат;
КонецЕсли;
Если ТекущиеДанные.Расширение = "mxl" Тогда
ДокументСоШтампом = РаботаСФайламиСлужебныйВызовСервера.ТабличныйДокументСоШтампом(ТекущиеДанные.Ссылка);
РаботаСФайламиСлужебныйКлиент.ПечатьФайлаСоШтампом(ДокументСоШтампом);
ИначеЕсли ТекущиеДанные.Расширение = "docx" Тогда
ДокументСоШтампом = РаботаСФайламиСлужебныйВызовСервера.ОфисныйДокументСоШтампом(ТекущиеДанные.Ссылка);
ФайловаяСистемаКлиент.ОткрытьФайл(ДокументСоШтампом, , ТекущиеДанные.Наименование+".docx");
КонецЕсли;
ДокументСоШтампом = РаботаСФайламиСлужебныйВызовСервера.ДокументСоШтампом(ТекущиеДанные.Ссылка);
РаботаСФайламиСлужебныйКлиент.ПечатьФайлаСоШтампом(ДокументСоШтампом, ТекущиеДанные.Наименование);
КонецПроцедуры
&НаКлиенте
@@ -360,8 +360,8 @@
Файл = ТекущаяСсылкаНаФайл();
Если ЗначениеЗаполнено(Файл) Или ОбработатьКомандуЗаписиФайла() Тогда
ДокументСоШтампом = РаботаСФайламиСлужебныйВызовСервера.ТабличныйДокументСоШтампом(Файл);
РаботаСФайламиСлужебныйКлиент.ПечатьФайлаСоШтампом(ДокументСоШтампом);
ДокументСоШтампом = РаботаСФайламиСлужебныйВызовСервера.ДокументСоШтампом(Файл);
РаботаСФайламиСлужебныйКлиент.ПечатьФайлаСоШтампом(ДокументСоШтампом, ТекущееНаименованиеФайла());
КонецЕсли;
КонецПроцедуры
@@ -105,11 +105,11 @@
Элементы.ОКТМО.Видимость = ВидКонтактнойИнформации.УказыватьОКТМО;
Если Страна <> ОсновнаяСтрана Тогда
ОсновнаяСтранаНаименование = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОсновнаяСтрана, "Наименование");
// Считаем адрес российским
ТекстПредупрежденияПриОткрытии = НСтр("ru = 'Адрес введен некорректно: допускается ввод только национальных адресов.
|Значение поля ""Страна"" было изменено на %1, проверьте остальные поля.'");
ТекстПредупрежденияПриОткрытии = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстПредупрежденияПриОткрытии, ОсновнаяСтрана.Наименование);
ТекстПредупрежденияПриОткрытии = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстПредупрежденияПриОткрытии, ОсновнаяСтранаНаименование);
ПолеПредупрежденияПриОткрытии = "СтранаВСвободнойФорме";
Модифицированность = Истина;
Элементы.Страна.Доступность = Ложь;
@@ -2277,7 +2277,7 @@
Если ДанныеСтраны = Неопределено Тогда
// Не нашли ни в справочнике, ни в классификаторе.
Страна = СсылкаНаОсновнуюСтрану;
КодСтраны = СсылкаНаОсновнуюСтрану.Код;
КодСтраны = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаОсновнуюСтрану, "Код");
Иначе
Страна = ДанныеСтраны.Ссылка;
КодСтраны = ДанныеСтраны.Код;
@@ -3667,7 +3667,7 @@
// Распознали с ошибками, сообщим при открытии.
ТекстПредупрежденияПриОткрытии = РезультатыЧтения.ТекстОшибки;
XDTOКонтактная.Представление = Параметры.Представление;
XDTOКонтактная.Состав.Страна = Строка(ОсновнаяСтрана);
XDTOКонтактная.Состав.Страна = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОсновнаяСтрана, "Наименование");
КонецЕсли;
Иначе
XDTOКонтактная = УправлениеКонтактнойИнформациейЛокализация.АдресXMLВXDTO(ЗначенияПолей, Параметры.Представление, );
@@ -3679,7 +3679,7 @@
XDTOКонтактная.Состав.Страна = Строка(Параметры.Страна);
КонецЕсли;
Иначе
XDTOКонтактная.Состав.Страна = ОсновнаяСтрана.Наименование;
XDTOКонтактная.Состав.Страна = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОсновнаяСтрана, "Наименование");
КонецЕсли;
КонецЕсли;
Если Параметры.Комментарий <> Неопределено Тогда
@@ -44,13 +44,17 @@
Элементы.ОК.Заголовок = НСтр("ru='Сканировать'");
КонецЕсли;
ПараметрыЗаданияСканирования = ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования", "ПараметрыЗаданияСканирования", Неопределено);
Элементы.ОшибкаСканирования.Видимость = ПараметрыЗаданияСканирования <> Неопределено;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ОбновитьСостояние();
ОбработатьИспользованиеДиалогаСканирования();
Элементы.ОшибкаСканирования.Видимость = Не ОткрытаФормаСканирования() И РаботаСФайламиСлужебныйКлиент.БылаОшибкаСканирования();
Элементы.ОшибкаСканирования.Видимость = Элементы.ОшибкаСканирования.Видимость И Не ОткрытаФормаСканирования();
КонецПроцедуры
&НаСервере
@@ -152,7 +156,8 @@
Процедура ТекстОшибкиСканированияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если НавигационнаяСсылкаФорматированнойСтроки = "ТехническаяИнформация" Тогда
ПослеПолученияТехническойИнформации = Новый ОписаниеОповещения("ПослеПолученияТехническойИнформации", ЭтотОбъект);
РаботаСФайламиСлужебныйКлиент.ПолучитьТехническуюИнформацию(НСтр("ru='Последняя попытка сканирования завершилась неудачно.'"), ПослеПолученияТехническойИнформации);
РаботаСФайламиСлужебныйКлиент.ПолучитьТехническуюИнформацию(НСтр("ru='Последняя попытка сканирования завершилась неудачно.'"),
ПослеПолученияТехническойИнформации);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
@@ -205,8 +210,10 @@
Возврат;
Иначе
Контекст = Новый Структура;
ОбработчикРезультатаПроверки = Новый ОписаниеОповещения("ПослеПроверкиУстановленнойПрограммыКонвертации", ЭтотОбъект, НастройкиСканированияПользователя);
РаботаСФайламиКлиент.НачатьПроверкуНаличияПрограммыКонвертации(НастройкиСканированияПользователя.ПутьКПрограммеКонвертации, ОбработчикРезультатаПроверки);
ОбработчикРезультатаПроверки = Новый ОписаниеОповещения("ПослеПроверкиУстановленнойПрограммыКонвертации", ЭтотОбъект,
НастройкиСканированияПользователя);
РаботаСФайламиКлиент.НачатьПроверкуНаличияПрограммыКонвертации(НастройкиСканированияПользователя.ПутьКПрограммеКонвертации,
ОбработчикРезультатаПроверки);
Возврат;
КонецЕсли;
КонецЕсли;
@@ -281,10 +288,14 @@
Элементы.СпособПреобразованияВPDF.Доступность = Истина;
Элементы.ПоказыватьДиалогСканера.Доступность = Истина;
ДвустороннееСканированиеЧисло = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль, ИмяУстройства, "DUPLEX");
РазрешениеЧисло = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль, ИмяУстройства, "XRESOLUTION");
ПоворотЧисло = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль, ИмяУстройства, "ROTATION");
РазмерБумагиЧисло = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль, ИмяУстройства, "SUPPORTEDSIZES");
ДвустороннееСканированиеЧисло = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль,
ИмяУстройства, "DUPLEX");
РазрешениеЧисло = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль,
ИмяУстройства, "XRESOLUTION");
ПоворотЧисло = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль,
ИмяУстройства, "ROTATION");
РазмерБумагиЧисло = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль,
ИмяУстройства, "SUPPORTEDSIZES");
Элементы.ДвустороннееСканирование.Доступность = (ДвустороннееСканированиеЧисло <> -1);
Элементы.Поворот.Доступность = (ПоворотЧисло <> -1);
@@ -340,7 +351,8 @@
&НаСервере
Процедура ПреобразоватьПараметрыСканераВПеречисления(РазрешениеЧисло, ЦветностьЧисло, ПоворотЧисло, РазмерБумагиЧисло)
Результат = РаботаСФайламиСлужебный.ПараметрыСканераВПеречисления(РазрешениеЧисло, ЦветностьЧисло, ПоворотЧисло, РазмерБумагиЧисло);
Результат = РаботаСФайламиСлужебный.ПараметрыСканераВПеречисления(РазрешениеЧисло, ЦветностьЧисло,
ПоворотЧисло, РазмерБумагиЧисло);
ОбновитьЗначение(Разрешение, Результат.Разрешение, Модифицированность);
ОбновитьЗначение(Цветность, Результат.Цветность, Модифицированность);
ОбновитьЗначение(Поворот, Результат.Поворот, Модифицированность);
@@ -430,7 +442,7 @@
&НаКлиенте
Процедура ПослеПолученияТехническойИнформации(Результат, Контекст) Экспорт
Элементы.ОшибкаСканирования.Видимость = РаботаСФайламиСлужебныйКлиент.БылаОшибкаСканирования();
Элементы.ОшибкаСканирования.Видимость = Ложь;
КонецПроцедуры
#КонецОбласти
@@ -293,13 +293,6 @@
<types>FormattedString</types>
</valueType>
</parameters>
<parameters>
<name>ДополнительнаяИнформация</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>ИмяУстройстваСканирования</name>
<valueType>
@@ -70,6 +70,9 @@
ПреобразоватьПеречисленияВПараметрыИПолучитьПредставление();
ПараметрыЗаданияСканирования = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования", "ПараметрыЗаданияСканирования", Неопределено);
Элементы.ОшибкаСканирования.Видимость = ПараметрыЗаданияСканирования <> Неопределено;
КонецПроцедуры
&НаКлиенте
@@ -87,8 +90,6 @@
ПозицияДляВставки = Неопределено;
Элементы.ОшибкаСканирования.Видимость = РаботаСФайламиСлужебныйКлиент.БылаОшибкаСканирования();
КонецПроцедуры
&НаКлиенте
@@ -388,7 +389,8 @@
Процедура ТекстОшибкиСканированияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если НавигационнаяСсылкаФорматированнойСтроки = "ТехническаяИнформация" Тогда
ПослеПолученияТехническойИнформации = Новый ОписаниеОповещения("ПослеПолученияТехническойИнформации", ЭтотОбъект);
РаботаСФайламиСлужебныйКлиент.ПолучитьТехническуюИнформацию(НСтр("ru='Последняя попытка сканирования завершилась неудачно.'"), ПослеПолученияТехническойИнформации);
РаботаСФайламиСлужебныйКлиент.ПолучитьТехническуюИнформацию(НСтр("ru='Последняя попытка сканирования завершилась неудачно.'"),
ПослеПолученияТехническойИнформации);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
@@ -473,7 +475,8 @@
Если ПараметрыОткрытия.ВыбранноеУстройство = "" Тогда
Обработчик = Новый ОписаниеОповещения("ПодготовкаКСканированию", ЭтотОбъект, ПараметрыОткрытия);
ПараметрыОткрытияФормы = Новый Структура("ПовторноеСканирование", Истина);
ОткрытьФорму("Обработка.Сканирование.Форма.НастройкаСканирования", ПараметрыОткрытияФормы , ЭтотОбъект, , , , Обработчик, РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
ОткрытьФорму("Обработка.Сканирование.Форма.НастройкаСканирования", ПараметрыОткрытияФормы , ЭтотОбъект, , , ,
Обработчик, РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
Возврат;
КонецЕсли;
@@ -554,7 +557,8 @@
НастройкиСканирования.РазмерБумаги = РазмерБумагиПеречисление;
НастройкиСканирования.СжатиеTIFF = СжатиеTIFFПеречисление;
ПримитивныеНастройкиСканирования = РаботаСФайламиСлужебныйВызовСервера.КонвертироватьНастройкиСканирования(НастройкиСканирования);
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ПримитивныеНастройкиСканирования, "Разрешение, Цветность, Поворот, РазмерБумаги, СжатиеTIFF");
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ПримитивныеНастройкиСканирования,
"Разрешение, Цветность, Поворот, РазмерБумаги, СжатиеTIFF");
Если СохранятьВPDF Тогда
ФорматКартинки = Строка(ФорматСканированногоИзображения);
@@ -1070,7 +1074,8 @@
ПараметрыЗаданияСканирования.Вставить("ПараметрыСканирования", ПараметрыСканирования);
АдресКартинки = ПоместитьВоВременноеХранилище(БиблиотекаКартинок.ДлительнаяОперация48.ПолучитьДвоичныеДанные(), УникальныйИдентификатор);
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить("КомпонентаСканирования", "ПараметрыЗаданияСканирования", ПараметрыЗаданияСканирования,,,Истина);
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить("КомпонентаСканирования", "ПараметрыЗаданияСканирования",
ПараметрыЗаданияСканирования,,,Истина);
РаботаСФайламиСлужебныйКлиент.НачатьСканирование(ЭтотОбъект, ПодключаемыйМодуль, ПараметрыСканирования);
КонецЕсли;
@@ -1090,7 +1095,7 @@
&НаКлиенте
Процедура ПослеПолученияТехническойИнформации(Результат, Контекст) Экспорт
Элементы.ОшибкаСканирования.Видимость = РаботаСФайламиСлужебныйКлиент.БылаОшибкаСканирования();
Элементы.ОшибкаСканирования.Видимость = Ложь;
КонецПроцедуры
#КонецОбласти
@@ -108,27 +108,32 @@
КонецЕсли;
Если ИПППодключена Тогда
ИнформацияОСервисе = АдресныйКлассификаторПовтИсп.СервисКлассификатора1С(10);
СсылкаНаВебСервис = ИнформацияОСервисе.Сервер + ":" + ИнформацияОСервисе.Порт + "/"+ АдресныйКлассификаторСлужебный.ПрефиксВерсииЗапроса();
Если КлассификаторДоступен Тогда
Шаблон = НСтр("ru = 'Веб-сервис доступен.
|URL подключения: %1'");
Сведения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, СсылкаНаВебСервис));
Иначе
Сведения.Добавить(НСтр("ru = 'Веб-сервис недоступен.'"));
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
Если Не АдресныйКлассификаторПовтИсп.ИспользоватьТолькоЗагруженныеДанные() Тогда
ИнформацияОСервисе = АдресныйКлассификаторПовтИсп.СервисКлассификатора1С(10);
СсылкаНаВебСервис = ИнформацияОСервисе.Сервер + ":" + ИнформацияОСервисе.Порт + "/"+ АдресныйКлассификаторСлужебный.ПрефиксВерсииЗапроса();
Если КлассификаторДоступен Тогда
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
Результат = МодульПолучениеФайловИзИнтернета.ДиагностикаСоединения(СсылкаНаВебСервис);
Сведения.Добавить(Результат.ЖурналДиагностики);
Шаблон = НСтр("ru = 'Веб-сервис доступен.
|URL подключения: %1'");
Сведения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, СсылкаНаВебСервис));
Иначе
Сведения.Добавить(НСтр("ru = 'Веб-сервис недоступен.'"));
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
Результат = МодульПолучениеФайловИзИнтернета.ДиагностикаСоединения(СсылкаНаВебСервис);
Сведения.Добавить(Результат.ЖурналДиагностики);
КонецЕсли;
КонецЕсли;
Иначе
Сведения.Добавить(НСтр("ru = 'Использование веб-сервиса отключено.'"));
КонецЕсли;
КонецЕсли;
@@ -50,43 +50,6 @@
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<dataLockControlMode>Managed</dataLockControlMode>
<attributes uuid="bcd6e5f0-a800-4f21-ad75-24c428157cee">
<name>ПочтовыйИндекс</name>
<synonym>
<key>ru</key>
<value>Почтовый индекс</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>10</precision>
</numberQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="9f351f0a-2d43-4215-8d74-040911230683">
<name>ОКТМО</name>
<synonym>
<key>ru</key>
<value>ОКТМО</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>11</precision>
</numberQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="6a9c1bd4-b550-4911-a8d1-321a7713a5a5">
<name>OKATO</name>
<synonym>
@@ -104,12 +67,13 @@
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="019fa716-e91a-4116-abcf-c87349c153a4">
<name>КодУчасткаИФНСЮЛ</name>
<attributes uuid="3fcdfe26-1668-4aa7-bb10-ef8d8bd0ae39">
<name>КодИФНСФЛ</name>
<synonym>
<key>ru</key>
<value>Код участка ИФНСЮЛ</value>
<value>Код ИФНСФЛ</value>
</synonym>
<comment>Код ИФНС для физического лица</comment>
<type>
<types>Number</types>
<numberQualifiers>
@@ -118,28 +82,7 @@
</type>
<toolTip>
<key>ru</key>
<value>Код участка ИФНС для юридического лица</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="f9fed640-0121-4c36-a822-0db7a9155adc">
<name>КодУчасткаИФНСФЛ</name>
<synonym>
<key>ru</key>
<value>Код участка ИФНСФЛ</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>4</precision>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Код участка ИФНС для физического лица</value>
<value>Код ИФНС для физического лица</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
@@ -168,13 +111,12 @@
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="3fcdfe26-1668-4aa7-bb10-ef8d8bd0ae39">
<name>КодИФНСФЛ</name>
<attributes uuid="f9fed640-0121-4c36-a822-0db7a9155adc">
<name>КодУчасткаИФНСФЛ</name>
<synonym>
<key>ru</key>
<value>Код ИФНСФЛ</value>
<value>Код участка ИФНСФЛ</value>
</synonym>
<comment>Код ИФНС для физического лица</comment>
<type>
<types>Number</types>
<numberQualifiers>
@@ -183,13 +125,89 @@
</type>
<toolTip>
<key>ru</key>
<value>Код ИФНС для физического лица</value>
<value>Код участка ИФНС для физического лица</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="019fa716-e91a-4116-abcf-c87349c153a4">
<name>КодУчасткаИФНСЮЛ</name>
<synonym>
<key>ru</key>
<value>Код участка ИФНСЮЛ</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>4</precision>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Код участка ИФНС для юридического лица</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="9f351f0a-2d43-4215-8d74-040911230683">
<name>ОКТМО</name>
<synonym>
<key>ru</key>
<value>ОКТМО</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>11</precision>
</numberQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="b8a6ea0c-cb94-44af-8e40-55defed295d1">
<name>ОКТМОБюджетополучателя</name>
<synonym>
<key>ru</key>
<value>ОКТМОБюджетополучателя</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>8</precision>
</numberQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="bcd6e5f0-a800-4f21-ad75-24c428157cee">
<name>ПочтовыйИндекс</name>
<synonym>
<key>ru</key>
<value>Почтовый индекс</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>10</precision>
</numberQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<dimensions uuid="a0ebcc8a-267b-4f95-a986-46db8fb5df4d">
<name>Идентификатор</name>
<synonym>
Loaded 100 of 122 files, more files were not shown because too many files have changed in this diff. Show more