3_1_9_225

This commit is contained in:
Компания 1С committed 2023-11-24 17:40:00 +03:00
1 parent 52592ab0ef
commit 59ffbe2f79
242 files changed
+16499 -4202

No files matched your search

@@ -14,8 +14,10 @@
ЗаголовокОшибки = НСтр("ru = 'Ошибка при настройке динамического списка присоединенных файлов.'");
ОкончаниеОшибки = НСтр("ru = 'В этом случае настройка динамического списка невозможна.'");
ВладелецФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.Файл, "ВладелецФайла");
ИмяСправочникаХранилищаВерсийФайлов = РаботаСФайламиСлужебный.ИмяСправочникаХраненияВерсийФайлов(
Параметры.Файл.ВладелецФайла, "", ЗаголовокОшибки, ОкончаниеОшибки);
ВладелецФайла, "", ЗаголовокОшибки, ОкончаниеОшибки);
Если Не ПустаяСтрока(ИмяСправочникаХранилищаВерсийФайлов) Тогда
НастроитьДинамическийСписок(ИмяСправочникаХранилищаВерсийФайлов);
@@ -68,7 +70,8 @@
ПоказатьПредупреждение(, НСтр("ru = 'Смена активной версии разрешена только для неподписанных файлов.'"));
Иначе
СменитьАктивнуюВерсиюФайла(НоваяАктивнаяВерсия);
Оповестить("Запись_Файл", Новый Структура("Событие", "АктивнаяВерсияИзменена"), Параметры.Файл);
ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла("АктивнаяВерсияИзменена");
Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Параметры.Файл);
КонецЕсли;
КонецПроцедуры
@@ -77,7 +80,6 @@
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Запись_Файл"
И Параметр.Свойство("Событие")
И (Параметр.Событие = "ЗаконченоРедактирование"
Или Параметр.Событие = "ВерсияСохранена") Тогда
@@ -253,25 +255,33 @@
НачатьТранзакцию();
Попытка
БлокировкаВерсии = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаВерсии.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(Версия)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Версия);
ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Разделяемый;
БлокировкаВерсии.Заблокировать();
РеквизитыНовойВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Версия, "Владелец, ТекстХранилище");
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(Версия.Владелец)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Версия.Владелец);
ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(Версия)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Версия);
ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(РеквизитыНовойВерсии.Владелец)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", РеквизитыНовойВерсии.Владелец);
Блокировка.Заблокировать();
ЗаблокироватьДанныеДляРедактирования(Версия.Владелец, , УникальныйИдентификаторКарточкиФайла);
ЗаблокироватьДанныеДляРедактирования(РеквизитыНовойВерсии.Владелец, , УникальныйИдентификаторКарточкиФайла);
ЗаблокироватьДанныеДляРедактирования(Версия, , УникальныйИдентификаторКарточкиФайла);
ФайлОбъект = Версия.Владелец.ПолучитьОбъект();
ФайлОбъект = РеквизитыНовойВерсии.Владелец.ПолучитьОбъект();
Если ФайлОбъект.ПодписанЭП Тогда
ВызватьИсключение НСтр("ru = 'У подписанного файла нельзя изменять активную версию.'");
КонецЕсли;
ФайлОбъект.ТекущаяВерсия = Версия;
ФайлОбъект.ТекстХранилище = Версия.ТекстХранилище;
ФайлОбъект.ТекстХранилище = РеквизитыНовойВерсии.ТекстХранилище;
ФайлОбъект.Записать();
ВерсияОбъект = Версия.ПолучитьОбъект();
@@ -36,8 +36,7 @@
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Запись_Файл"
И Параметр.Свойство("Событие")
И ( Параметр.Событие = "ЗаконченоРедактирование"
И (Параметр.Событие = "ЗаконченоРедактирование"
ИЛИ Параметр.Событие = "ВерсияСохранена") Тогда
Элементы.Список.Обновить();
@@ -20,8 +20,10 @@
Возврат;
КонецЕсли;
РеквизитыВладельца = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Владелец, "ТекущаяВерсия, ПометкаУдаления");
Если ЭтоНовый() Тогда
РодительскаяВерсия = Владелец.ТекущаяВерсия;
РодительскаяВерсия = РеквизитыВладельца.ТекущаяВерсия;
КонецЕсли;
// Выполним установку индекса пиктограммы при записи объекта.
@@ -31,15 +33,15 @@
СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
КонецЕсли;
Если Владелец.ТекущаяВерсия = Ссылка Тогда
Если ПометкаУдаления = Истина И Владелец.ПометкаУдаления <> Истина Тогда
Если РеквизитыВладельца.ТекущаяВерсия = Ссылка Тогда
Если ПометкаУдаления = Истина И РеквизитыВладельца.ПометкаУдаления <> Истина Тогда
ВызватьИсключение НСтр("ru = 'Активную версию нельзя удалить.'");
КонецЕсли;
ИначеЕсли РодительскаяВерсия.Пустая() Тогда
Если ПометкаУдаления = Истина И Владелец.ПометкаУдаления <> Истина Тогда
Если ПометкаУдаления = Истина И РеквизитыВладельца.ПометкаУдаления <> Истина Тогда
ВызватьИсключение НСтр("ru = 'Первую версию нельзя удалить.'");
КонецЕсли;
ИначеЕсли ПометкаУдаления = Истина И Владелец.ПометкаУдаления <> Истина Тогда
ИначеЕсли ПометкаУдаления = Истина И РеквизитыВладельца.ПометкаУдаления <> Истина Тогда
// Очищаем у версий, дочерних к помеченной, ссылку на родительскую -
// переставляем на родительскую версию удаляемой версии.
Запрос = Новый Запрос;
@@ -140,7 +140,7 @@
Оповещение = Новый ОписаниеОповещения("ДобавитьКомпонентыИзКаталогаПослеПодключенияРасширения", ЭтотОбъект);
ТекстПредложения = НСтр("ru = 'Для загрузки внешних компонент из каталога требуется расширение для работы с файлами'");
ТекстПредложения = НСтр("ru = 'Для загрузки внешних компонент из каталога требуется расширение для работы с 1С:Предприятием.'");
ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(Оповещение, ТекстПредложения, Ложь);
КонецПроцедуры
@@ -813,6 +813,17 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ЦелевыеПлатформы</name>
<id>4</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ОбновитьИзФайла</name>
<title>
@@ -62,6 +62,7 @@
АдресДвоичныхДанныхКомпоненты = Неопределено;
УстановитьВидимостьДоступность();
ЦелевыеПлатформы = ТекущийОбъект.ЦелевыеПлатформы.Получить();
КонецПроцедуры
@@ -74,6 +75,8 @@
ТекущийОбъект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", ДвоичныеДанныеКомпоненты);
КонецЕсли;
ТекущийОбъект.ЦелевыеПлатформы = Новый ХранилищеЗначения(ЦелевыеПлатформы);
КонецПроцедуры
&НаСервере
@@ -175,33 +178,8 @@
&НаКлиенте
Процедура ПоддерживаемыеКлиентскиеПриложения(Команда)
Реквизиты = Новый Структура;
Реквизиты.Вставить("Windows_x86");
Реквизиты.Вставить("Windows_x86_64");
Реквизиты.Вставить("Linux_x86");
Реквизиты.Вставить("Linux_x86_64");
Реквизиты.Вставить("Windows_x86_Firefox");
Реквизиты.Вставить("Linux_x86_Firefox");
Реквизиты.Вставить("Linux_x86_64_Firefox");
Реквизиты.Вставить("Windows_x86_MSIE");
Реквизиты.Вставить("Windows_x86_64_MSIE");
Реквизиты.Вставить("Windows_x86_Chrome");
Реквизиты.Вставить("Linux_x86_Chrome");
Реквизиты.Вставить("Linux_x86_64_Chrome");
Реквизиты.Вставить("MacOS_x86_64");
Реквизиты.Вставить("MacOS_x86_64_Safari");
Реквизиты.Вставить("MacOS_x86_64_Chrome");
Реквизиты.Вставить("MacOS_x86_64_Firefox");
Реквизиты.Вставить("Windows_x86_ЯндексБраузер");
Реквизиты.Вставить("Windows_x86_64_ЯндексБраузер");
Реквизиты.Вставить("Linux_x86_ЯндексБраузер");
Реквизиты.Вставить("Linux_x86_64_ЯндексБраузер");
Реквизиты.Вставить("MacOS_x86_64_ЯндексБраузер");
ЗаполнитьЗначенияСвойств(Реквизиты, Объект);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ПоддерживаемыеКлиенты", Реквизиты);
ПараметрыФормы.Вставить("ПоддерживаемыеКлиенты", ЦелевыеПлатформы);
ОткрытьФорму("ОбщаяФорма.ПоддерживаемыеКлиентскиеПриложения", ПараметрыФормы);
@@ -383,6 +361,8 @@
КонецЕсли;
ЗаполнитьЗначенияСвойств(ОбъектСправочника, Информация.Реквизиты,, "Идентификатор"); // По данным манифеста.
ЦелевыеПлатформы = Информация.Реквизиты.ЦелевыеПлатформы;
Если Не ЗначениеЗаполнено(ОбъектСправочника.Идентификатор) Тогда
ОбъектСправочника.Идентификатор = Информация.Реквизиты.Идентификатор;
КонецЕсли;
@@ -109,7 +109,7 @@
//
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Параметры.ВерсияПодсистемыНаНачалоОбновления, "3.1.6.48") < 0 Тогда
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Параметры.ВерсияПодсистемыНаНачалоОбновления, "3.1.9.221") < 0 Тогда
ТекстЗапроса ="ВЫБРАТЬ
| ВнешниеКомпоненты.Ссылка
@@ -124,26 +124,13 @@
КонецПроцедуры
// Обработчик обновления:
// - на версию 3.1.6.48: Заполняет реквизиты совместимости для браузеров MacOS в справочнике "Внешние компоненты";
// - на версию 3.1.5.220: в справочник "Внешние компоненты" добавляет внешнюю компоненту ExtraCryptoAPI.
// - на версию 3.1.9.163: в справочник "Внешние компоненты" добавляет внешнюю компоненту сканирования.
// Обработчик обновления справочника "Внешние компоненты":
// - заполняет реквизит ЦелевыеПлатформы;
// - для возможности автообновления добавляет внешние компоненты ExtraCryptoAPI, сканирования и печати штрихкодов.
//
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Параметры.ОбработкаЗавершена = Истина;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Параметры.ВерсияПодсистемыНаНачалоОбновления, "3.1.6.48") < 0 Тогда
Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ВнешниеКомпоненты");
Если Выборка.Количество() > 0 Тогда
ОбработатьВнешниеКомпоненты(Выборка);
КонецЕсли;
ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь,
"Справочник.ВнешниеКомпоненты");
Параметры.ОбработкаЗавершена = ОбработкаЗавершена;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Параметры.ВерсияПодсистемыНаНачалоОбновления, "3.1.5.220") < 0
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись")
И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент")
@@ -212,6 +199,51 @@
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Параметры.ВерсияПодсистемыНаНачалоОбновления, "3.1.9.221") < 0 Тогда
Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ВнешниеКомпоненты");
Если Выборка.Количество() > 0 Тогда
ОбработатьВнешниеКомпоненты(Выборка);
КонецЕсли;
ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь,
"Справочник.ВнешниеКомпоненты");
Параметры.ОбработкаЗавершена = ОбработкаЗавершена;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Параметры.ВерсияПодсистемыНаНачалоОбновления, "3.1.9.224") < 0
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГенерацияШтрихкода")
И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент")
И Не ОбщегоНазначения.РазделениеВключено() Тогда
ИспользуемыеКомпоненты = ВнешниеКомпонентыСервер.ИспользуемыеКомпоненты("ДляЗагрузки");
МодульГенерацияШтрихкода = ОбщегоНазначения.ОбщийМодуль("ГенерацияШтрихкода");
ОписаниеКомпоненты = МодульГенерацияШтрихкода.ОписаниеКомпоненты();
Если ИспользуемыеКомпоненты.Найти(ОписаниеКомпоненты.ИмяОбъекта, "Идентификатор") = Неопределено Тогда
КомпонентаПоследнейВерсииИзМакета = СтандартныеПодсистемыСервер.КомпонентаПоследнейВерсии(
ОписаниеКомпоненты.ИмяОбъекта, ОписаниеКомпоненты.ПолноеИмяМакета);
МестоположениеМакетаРазделенное = СтрРазделить(КомпонентаПоследнейВерсииИзМакета.Местоположение, ".");
ДвоичныеДанные = ПолучитьОбщийМакет(МестоположениеМакетаРазделенное.Получить(МестоположениеМакетаРазделенное.ВГраница()));
ПараметрыКомпоненты = ВнешниеКомпонентыСлужебный.ПараметрыЗагрузки();
ПараметрыКомпоненты.Идентификатор = ОписаниеКомпоненты.ИмяОбъекта;
ПараметрыКомпоненты.Наименование = НСтр("ru='Компонента для генерации штрихкодов'");
ПараметрыКомпоненты.Версия = КомпонентаПоследнейВерсииИзМакета.Версия;
ПараметрыКомпоненты.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Добавлена автоматически %1.'"), ТекущаяДатаСеанса());
ПараметрыКомпоненты.ОбновлятьСПортала1СИТС = Истина;
ПараметрыКомпоненты.Данные = ДвоичныеДанные;
ВнешниеКомпонентыСлужебный.ЗагрузитьКомпонентуИзДвоичныхДанных(ПараметрыКомпоненты, Ложь);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// Параметры:
@@ -226,12 +258,9 @@
Пока Выборка.Следующий() Цикл
РеквизитыКомпоненты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Выборка.Ссылка,
"ХранилищеКомпоненты, MacOS_x86_64_Safari, MacOS_x86_64_Chrome, MacOS_x86_64_Firefox");
Если ТипЗнч(РеквизитыКомпоненты.ХранилищеКомпоненты) <> Тип("ХранилищеЗначения") Тогда
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
ОбъектовОбработано = ОбъектовОбработано + 1;
Продолжить;
КонецЕсли;
"ХранилищеКомпоненты, ЦелевыеПлатформы");
ЦелевыеПлатформы = РеквизитыКомпоненты.ЦелевыеПлатформы.Получить();
ДвоичныеДанныеКомпоненты = РеквизитыКомпоненты.ХранилищеКомпоненты.Получить();
@@ -251,18 +280,12 @@
Реквизиты = ИнформацияОКомпонентеИзФайла.Реквизиты;
Если РеквизитыКомпоненты.MacOS_x86_64_Safari = ?(Реквизиты.MacOS_x86_64_Safari = Неопределено, Ложь,
Реквизиты.MacOS_x86_64_Safari)
И РеквизитыКомпоненты.MacOS_x86_64_Chrome = ?(Реквизиты.MacOS_x86_64_Chrome = Неопределено, Ложь,
Реквизиты.MacOS_x86_64_Chrome)
И РеквизитыКомпоненты.MacOS_x86_64_Firefox = ?(Реквизиты.MacOS_x86_64_Firefox = Неопределено, Ложь,
Реквизиты.MacOS_x86_64_Firefox) Тогда
Если ЦелевыеПлатформы <> Неопределено И ОбщегоНазначения.КоллекцииИдентичны(ЦелевыеПлатформы, Реквизиты.ЦелевыеПлатформы) Тогда
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
ОбъектовОбработано = ОбъектовОбработано + 1;
Продолжить;
КонецЕсли;
ПредставлениеСсылки = Строка(Выборка.Ссылка);
НачатьТранзакцию();
Попытка
@@ -274,9 +297,7 @@
Блокировка.Заблокировать();
КомпонентаОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.ВнешниеКомпоненты
КомпонентаОбъект.MacOS_x86_64_Safari = Реквизиты.MacOS_x86_64_Safari;
КомпонентаОбъект.MacOS_x86_64_Chrome = Реквизиты.MacOS_x86_64_Chrome;
КомпонентаОбъект.MacOS_x86_64_Firefox = Реквизиты.MacOS_x86_64_Firefox;
КомпонентаОбъект.ЦелевыеПлатформы = Новый ХранилищеЗначения(Реквизиты.ЦелевыеПлатформы);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(КомпонентаОбъект);
ОбъектовОбработано = ОбъектовОбработано + 1;
@@ -277,314 +277,14 @@
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="df1ef691-1e86-4a80-8671-53b3d4504bfb">
<name>Windows_x86</name>
<attributes uuid="60340efe-6a9e-4676-856f-87bfae5409f7">
<name>ЦелевыеПлатформы</name>
<synonym>
<key>ru</key>
<value>Windows x86</value>
<value>Целевые платформы</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="474b9918-23da-4289-91a9-9115526c9b5d">
<name>Windows_x86_64</name>
<synonym>
<key>ru</key>
<value>Windows x86_64</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="1cf7be60-fd84-430d-b1b5-5619c51b8b3f">
<name>Linux_x86</name>
<synonym>
<key>ru</key>
<value>Linux x86</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="60aa9d44-5986-490e-8093-f65e194b3607">
<name>Linux_x86_64</name>
<synonym>
<key>ru</key>
<value>Linux x86_64</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="a36dee5e-7184-4caf-bf46-3977b165093b">
<name>Windows_x86_Firefox</name>
<synonym>
<key>ru</key>
<value>Windows x86 Firefox</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="aa3c61a7-c905-4b5a-a44d-e2ac5d79158a">
<name>Linux_x86_Firefox</name>
<synonym>
<key>ru</key>
<value>Linux x86 Firefox</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="182916b2-972b-4e39-93ba-d45aa7a195f5">
<name>Linux_x86_64_Firefox</name>
<synonym>
<key>ru</key>
<value>Linux x86_64 Firefox</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="2b654a53-7ce8-421f-aaf5-aa1451d91415">
<name>Windows_x86_MSIE</name>
<synonym>
<key>ru</key>
<value>Windows x86 MSIE</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="30e55306-ea5c-4ef4-9903-ea030afa3d85">
<name>Windows_x86_64_MSIE</name>
<synonym>
<key>ru</key>
<value>Windows x86_64 MSIE</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="234c1a72-8349-472a-8373-2a25ce6252f2">
<name>Windows_x86_Chrome</name>
<synonym>
<key>ru</key>
<value>Windows x86 Chrome</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="b1ccb9f7-11ff-4ad2-8806-d64de84662f0">
<name>Linux_x86_Chrome</name>
<synonym>
<key>ru</key>
<value>Linux x86 Chrome</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="539e0db9-be24-4086-9632-af20553ee50f">
<name>Linux_x86_64_Chrome</name>
<synonym>
<key>ru</key>
<value>Linux x86_64 Chrome</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="862e2759-5311-4c68-8977-86133bcf8c0e">
<name>MacOS_x86_64</name>
<synonym>
<key>ru</key>
<value>macOS x86_64</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="b9adeb51-a009-4e83-85f8-bfa1547429d6">
<name>MacOS_x86_64_Safari</name>
<synonym>
<key>ru</key>
<value>macOS x86_64 Safari</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="7ac85789-9c69-40b6-9130-94c40ed440d4">
<name>MacOS_x86_64_Chrome</name>
<synonym>
<key>ru</key>
<value>macOS x86_64 Chrome</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="0f77d06f-f736-451e-9e6b-28868e48f3ed">
<name>MacOS_x86_64_Firefox</name>
<synonym>
<key>ru</key>
<value>macOS x86_64 Firefox</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="b4d1b93e-a5d2-4e78-a455-080f8bec2404">
<name>Windows_x86_ЯндексБраузер</name>
<synonym>
<key>ru</key>
<value>Windows x86 Яндекс Браузер</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="e72e9bfa-3601-4497-8e7e-401e89fde699">
<name>Windows_x86_64_ЯндексБраузер</name>
<synonym>
<key>ru</key>
<value>Windows x86_64 Яндекс Браузер</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="04d29b84-772a-43ea-a66b-869ab5699dbc">
<name>Linux_x86_ЯндексБраузер</name>
<synonym>
<key>ru</key>
<value>Linux x86 Яндекс Браузер</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="1ad2775b-9bdf-4ba4-8326-4333ac38d185">
<name>Linux_x86_64_ЯндексБраузер</name>
<synonym>
<key>ru</key>
<value>Linux x86_64 Яндекс Браузер</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="7c8c359a-9f9b-44f2-972e-c8deabc359d3">
<name>MacOS_x86_64_ЯндексБраузер</name>
<synonym>
<key>ru</key>
<value>macOS x86_64 Яндекс Браузер</value>
</synonym>
<type>
<types>Boolean</types>
<types>ValueStorage</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
@@ -18,7 +18,7 @@
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(Родитель) И Родитель.Автор <> Автор Тогда
Если ЗначениеЗаполнено(Родитель) И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Родитель, "Автор") <> Автор Тогда
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Нельзя указывать группу другого пользователя.'"));
Отказ = Истина;
Возврат;
@@ -16,7 +16,7 @@
#КонецОбласти
#Область ОбработчикиСобытийЭлементовФормы
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ОтменитьДоверенность(Команда)
@@ -83,7 +83,7 @@
КонецПроцедуры
&НаСервере
Процедура ДобавитьФайлОтзываИПолучитьРезультатРегистрации(ДанныеОтмены, СвойстваПодписи)
Процедура ДобавитьФайлОтзываИПолучитьРезультатРегистрации(Знач ДанныеОтмены, Знач СвойстваПодписи)
ФайлДоверенности = Новый Файл(ДанныеОтмены.ИмяФайла);
ПараметрыДобавления = РаботаСФайлами.ПараметрыДобавленияФайла();
ПараметрыДобавления.ВладелецФайлов = Доверенность;
@@ -116,11 +116,11 @@
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьСертификатДоверителя(Доверенность, Сертификат)
Функция ПроверитьСертификатДоверителя(Знач Доверенность, Знач Сертификат)
Результат = Новый Структура;
Результат.Вставить("Ошибка");
ФайлДоверенности = Доверенность.ФайлДоверенности;
ФайлДоверенности = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Доверенность, "ФайлДоверенности");
РезультатПроверки = МашиночитаемыеДоверенностиФНССлужебный.ПроверитьСертификатДоверителя(Доверенность, ФайлДоверенности, Сертификат, Ложь);
Если РезультатПроверки <> Истина Тогда
ПараметрыОшибкиМЧДРР = МашиночитаемыеДоверенностиФНССлужебный.ПараметрыОшибкиМЧДРР(НСтр("ru='Подпись не подходит для отмены'"), РезультатПроверки);
@@ -25,7 +25,7 @@
НоваяСтрока.Представитель = Строка.Представитель;
НоваяСтрока.ПредставительИдентификатор = Строка.Идентификатор;
НоваяСтрока.ПредставительСтрока = МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорации(
ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов), "Представитель", Ложь);
ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов), "Представитель", Ложь, Ложь);
НоваяСтрока.АдресРеквизитов = Строка.АдресРеквизитов;
КонецЦикла;
@@ -569,7 +569,9 @@
&НаСервере
Процедура СтранаРегистрацииПриИзмененииНаСервере()
СтранаРегистрацииКод = СтранаРегистрации.Код;
СтранаРегистрацииКод = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтранаРегистрации, "Код");
КонецПроцедуры
&НаКлиенте
@@ -669,7 +671,7 @@
КонецЕсли;
ЗаголовокДекорации = МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорации(
Реквизиты, "Представитель", Ложь); // ФорматированнаяСтрока
Реквизиты, "Представитель", Ложь, Ложь); // ФорматированнаяСтрока
ТаблицаПредставительНесколько[0].ПредставительСтрока = ЗаголовокДекорации;
Реквизиты.ЭтоДолжностноеЛицо = Не ЭтоИндивидуальныйПредприниматель;
@@ -894,6 +894,128 @@
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаСтатусВДругомРеестре</name>
<id>232</id>
<items xsi:type="form:FormField">
<name>ИндексСтатусаВДругомРеестре</name>
<id>229</id>
<title>
<key>ru</key>
<value>Индекс статуса в другом реестре</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ИндексСтатусаВДругомРеестре</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>ИндексСтатусаВДругомРеестреРасширеннаяПодсказка</name>
<id>231</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИндексСтатусаВДругомРеестреКонтекстноеМеню</name>
<id>230</id>
<autoFill>true</autoFill>
</contextMenu>
<type>PictureField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:ImageFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<border xsi:type="core:BorderDef">
<style>Single</style>
<width>1</width>
</border>
<fileDragMode>AsFileRef</fileDragMode>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СтатусВДругомРеестре</name>
<id>226</id>
<title>
<key>ru</key>
<value>Статус в другом реестре</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.СтатусВДругомРеестре</segments>
</dataPath>
<extendedTooltip>
<name>СтатусВДругомРеестреРасширеннаяПодсказка</name>
<id>228</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СтатусВДругомРеестреКонтекстноеМеню</name>
<id>227</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Статус в другом реестре</value>
</title>
<extendedTooltip>
<name>ГруппаСтатусВДругомРеестреРасширеннаяПодсказка</name>
<id>233</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>ColumnGroup</type>
<extInfo xsi:type="form:ColumnGroupExtInfo">
<group>InCell</group>
<showTitle>auto</showTitle>
<showInCard>true</showInCard>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Код</name>
<id>128</id>
@@ -1429,6 +1551,10 @@
</rowsPicture>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<handlers>
<event>OnGetDataAtServer</event>
<name>СписокПриПолученииДанныхНаСервере</name>
</handlers>
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
@@ -2033,6 +2159,8 @@
СправочникМашиночитаемыеДоверенности.ДляНалоговыхОрганов КАК ДляНалоговыхОрганов,
СправочникМашиночитаемыеДоверенности.РегистрироватьВРеестре КАК РегистрироватьВРеестре,
СправочникМашиночитаемыеДоверенности.Статус КАК Статус,
&amp;СтатусВДругомРеестре КАК СтатусВДругомРеестре,
99 КАК ИндексСтатусаВДругомРеестре,
МашиночитаемыеДоверенностиСтатусы.ТехническийСтатус КАК ТехническийСтатус,
СправочникМашиночитаемыеДоверенности.Верна КАК Верна,
ВЫБОР
@@ -2285,10 +2413,6 @@
<dataPath>Статус</dataPath>
<field>Статус</field>
</fields>
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
<dataPath>ТехническийСтатус</dataPath>
<field>ТехническийСтатус</field>
</fields>
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
<dataPath>ИндексСтатуса</dataPath>
<field>ИндексСтатуса</field>
@@ -2333,14 +2457,6 @@
<dataPath>ВерсияФормата</dataPath>
<field>ВерсияФормата</field>
</fields>
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
<dataPath>УстановившийСтатус</dataPath>
<field>УстановившийСтатус</field>
</fields>
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
<dataPath>СтатусУстановленВручную</dataPath>
<field>СтатусУстановленВручную</field>
</fields>
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
<dataPath>ПолномочияВТекстовомВиде</dataPath>
<field>ПолномочияВТекстовомВиде</field>
@@ -2377,6 +2493,14 @@
<dataPath>ДатаПроверки</dataPath>
<field>ДатаПроверки</field>
</fields>
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
<dataPath>ДатаОтмены</dataPath>
<field>ДатаОтмены</field>
</fields>
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
<dataPath>ФайлЗаявленияНаОтмену</dataPath>
<field>ФайлЗаявленияНаОтмену</field>
</fields>
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
<dataPath>Доверители</dataPath>
<field>Доверители</field>
@@ -2406,12 +2530,24 @@
<field>ИмяПредопределенныхДанных</field>
</fields>
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
<dataPath>Ответственный</dataPath>
<field>Ответственный</field>
<dataPath>СтатусВДругомРеестре</dataPath>
<field>СтатусВДругомРеестре</field>
</fields>
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
<dataPath>ДатаПроверки</dataPath>
<field>ДатаПроверки</field>
<dataPath>ИндексСтатусаВДругомРеестре</dataPath>
<field>ИндексСтатусаВДругомРеестре</field>
<title>
<localValue>
<content>
<key>ru</key>
<value>Индекс статуса в другом реестре</value>
</content>
</localValue>
</title>
</fields>
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
<dataPath>ТехническийСтатус</dataPath>
<field>ТехническийСтатус</field>
</fields>
<parameters>
<name>Доверитель</name>
@@ -2730,6 +2866,19 @@
</values>
<useRestriction>true</useRestriction>
</parameters>
<parameters>
<name>СтатусВДругомРеестре</name>
<title>
<localValue>
<content>
<key>ru</key>
<value>Статус в другом реестре</value>
</content>
</localValue>
</title>
<values xsi:type="core:UndefinedValue"/>
<useRestriction>true</useRestriction>
</parameters>
</extInfo>
</attributes>
<attributes>
@@ -25,7 +25,7 @@
ДобавитьПолеОтбора("Доверитель", "ТипДоверителя");
ДобавитьПолеОтбора("Представитель", "ТипПредставителя");
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "ДоверенностиПоРоли, ОтборПоСостоянию, ТолькоДействующие, Полномочия, СертификатПредставителя, СертификатДоверителя");
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "ОтборПоСостоянию, ТолькоДействующие, СертификатПредставителя, СертификатДоверителя");
ДоверенностиПоРоли = ?(ЗначениеЗаполнено(Параметры.ДоверенностиПоРоли), Параметры.ДоверенностиПоРоли, Элементы.ДоверенностиПоРоли.СписокВыбора[0].Значение);
Доверитель = ?(ЗначениеЗаполнено(Параметры.Доверитель), Параметры.Доверитель, Доверитель);
Представитель = ?(ЗначениеЗаполнено(Параметры.Представитель), Параметры.Представитель, Представитель);
@@ -44,6 +44,31 @@
Элементы.СписокЗагрузитьИзРеестраФНС.Видимость = ЕстьПравоДобавления;
Элементы.СписокПолучитьСтатус.Видимость = ПравоДоступа("Изменение", Метаданные.Справочники.МашиночитаемыеДоверенности);
Настройки = МашиночитаемыеДоверенностиФНССлужебный.НастройкиПодсистемы();
Элементы.ГруппаСтатусВДругомРеестре.Видимость = Настройки.ПоказыватьСтатусВФормеСписка;
Если Настройки.ПоказыватьСтатусВФормеСписка Тогда
Если ЗначениеЗаполнено(Настройки.ЗаголовокКолонкиСтатуса) Тогда
Элементы.СтатусВДругомРеестре.Заголовок = Настройки.ЗаголовокКолонкиСтатуса;
Иначе
Элементы.СтатусВДругомРеестре.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
КонецЕсли;
Если Настройки.КартинкаКолонкиСтатуса <> Неопределено Тогда
Элементы.СтатусВДругомРеестре.КартинкаШапки = Настройки.КартинкаКолонкиСтатуса;
КонецЕсли;
Если Настройки.КоллекцияКартинокДляСтроки <> Неопределено Тогда
Элементы.ИндексСтатусаВДругомРеестре.КартинкаЗначений = Настройки.КоллекцияКартинокДляСтроки;
Иначе
Элементы.ИндексСтатусаВДругомРеестре.Видимость = Ложь;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "СтатусВДругомРеестре", "");
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "СтатусВДругомРеестре", "НетСтатусов");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -164,6 +189,35 @@
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
Если Настройки.ПараметрыДанных.Элементы.Найти("СтатусВДругомРеестре").Значение = "НетСтатусов" Тогда
Возврат;
КонецЕсли;
Доверенности = Новый Соответствие;
МассивДоверенностей = Строки.ПолучитьКлючи();
МашиночитаемыеДоверенностиФНСПереопределяемый.ПриПолученииСтатусов(МассивДоверенностей, Доверенности);
Если Доверенности.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из Строки Цикл
Статус = Доверенности[Строка.Значение.Данные.Ссылка];
Если Статус = Неопределено Тогда
Продолжить;
КонецЕсли;
Строка.Значение.Данные.СтатусВДругомРеестре = Статус.Статус;
Строка.Значение.Данные.ИндексСтатусаВДругомРеестре = Статус.ИндексКартинки;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
@@ -257,22 +311,22 @@
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ДатаОкончания", ТекущаяДатаСеанса, ВидСравненияКомпоновкиДанных.БольшеИлиРавно);
ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(Список.Отбор, "ДатаОкончания", ВидСравненияКомпоновкиДанных.МеньшеИлиРавно,
МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ДатаОкончанияПериодаИстекающихДоверенностей(ТекущаяДатаСеанса));
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.СтатусыМЧД.Действует"), ВидСравненияКомпоновкиДанных.Равно);
Заголовок = Заголовок+" "+НСтр("ru='(с истекающим сроком)'");
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Действует"), ВидСравненияКомпоновкиДанных.Равно);
Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 (с истекающим сроком)'"), Заголовок);
ИначеЕсли ОтборПоСостоянию = "ТребуютВнимания" Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ДатаОкончания", ТекущаяДатаСеанса, ВидСравненияКомпоновкиДанных.Больше);
МассивСтатусов = Новый Массив;
МассивСтатусов.Добавить(ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ТехническиеСтатусыМЧД.ОшибкаРегистрации"));
МассивСтатусов.Добавить(ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ТехническиеСтатусыМЧД.Регистрация"));
МассивСтатусов.Добавить(ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ТехническиеСтатусыМЧД.РегистрацияОтмены"));
МассивСтатусов.Добавить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.ОшибкаРегистрации"));
МассивСтатусов.Добавить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Регистрация"));
МассивСтатусов.Добавить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.РегистрацияОтмены"));
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ТехническийСтатус", МассивСтатусов, ВидСравненияКомпоновкиДанных.ВСписке);
Заголовок = Заголовок+" "+НСтр("ru='(требуют внимания)'");
Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 (требуют внимания)'"), Заголовок);
ИначеЕсли ОтборПоСостоянию = "ОжидаютПодписания" Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ДатаОкончания", ТекущаяДатаСеанса, ВидСравненияКомпоновкиДанных.Больше);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.СтатусыМЧД.Черновик"), ВидСравненияКомпоновкиДанных.Равно);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Черновик"), ВидСравненияКомпоновкиДанных.Равно);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Подписана", Ложь, ВидСравненияКомпоновкиДанных.Равно);
Заголовок = Заголовок+" "+НСтр("ru='(ожидают подписания)'");
Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 (ожидают подписания)'"), Заголовок);
КонецЕсли;
ВсеОтборыПоСертификатам = ВсеОтборыПоСертификатам();
@@ -473,7 +527,8 @@
КонецЕсли;
Если ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
Возврат МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату(Сертификат.ДанныеСертификата.Получить(), Префикс);
ДанныеСертификата = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Сертификат, "ДанныеСертификата");
Возврат МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату(ДанныеСертификата.Получить(), Префикс);
Иначе
Возврат МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату(Сертификат, Префикс);
КонецЕсли;
@@ -60,6 +60,7 @@
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаКлиенте
@@ -69,7 +70,9 @@
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
ОбновитьСтатус();
Если Не ТолькоПросмотр Тогда
ОбновитьСтатус();
КонецЕсли;
КонецПроцедуры
@@ -610,7 +613,7 @@
СтандартнаяОбработка = Истина;
Если РегистрироватьВДругомРеестре Тогда
Если РегистрироватьВДругомРеестре И Не ЗарегистрированаВДругомРеестре Тогда
МашиночитаемыеДоверенностиФНСКлиентПереопределяемый.ПриРегистрацииДоверенности(
Объект.Ссылка, СтандартнаяОбработка, ОписаниеОповещения);
КонецЕсли;
@@ -966,6 +969,8 @@
Модифицированность = Истина;
КонецЕсли;
ПрочитатьСостояниеВДругомРеестре();
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
@@ -1502,7 +1507,8 @@
Если Форма.Подписана Тогда
Форма.Элементы.ЭлектронныеПодписиДобавитьПодпись.Видимость = Ложь;
Форма.Элементы.ФормаДобавитьПодпись.Видимость = Ложь;
Если МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ВнешниеСтатусы()[Форма.ТехническийСтатус] = Истина Тогда
Если МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ВнешниеСтатусы()[Форма.ТехническийСтатус] = Истина
Или Форма.ЗарегистрированаВДругомРеестре Тогда
Форма.Элементы.ЭлектронныеПодписиУдалитьПодпись.Видимость = Ложь;
КонецЕсли;
Иначе
@@ -1543,10 +1549,10 @@
Если РеквизитыНедоступныДляРедактирования Тогда
Если Форма.ПредставительРеквизиты = Неопределено Тогда
Форма.Элементы.ПредставительТипДекорация.Заголовок = НСтр("ru='Физическое лицо'");
Форма.Элементы.ПредставительТипДекорация.Заголовок = НСтр("ru='Физическое лицо:'");
Иначе
Форма.Элементы.ПредставительТипДекорация.Заголовок = ?(Форма.ПредставительРеквизиты.ЭтоФизическоеЛицо, НСтр(
"ru='Физическое лицо'"), НСтр("ru='Организация'"));
"ru='Физическое лицо:'"), НСтр("ru='Организация:'"));
КонецЕсли;
КонецЕсли;
@@ -1560,19 +1566,32 @@
Форма.Элементы.РегистрироватьВРеестре.ТолькоПросмотр = Форма.РеквизитыНедоступныДляРедактирования
И МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ВнешниеСтатусы()[Форма.ТехническийСтатус] = Истина;
Если Форма.Элементы.РегистрироватьВРеестре.ТолькоПросмотр
И Форма.Объект.РегистрироватьВРеестре И Форма.Объект.Статус <> ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Черновик") Тогда
Форма.Элементы.РегистрироватьВРеестре.Заголовок = НСтр("ru='Зарегистрирована в Распределенном реестре ФНС России'");
Если Форма.Элементы.РегистрироватьВРеестре.ТолькоПросмотр И Форма.Объект.РегистрироватьВРеестре
И Форма.Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Действует") Тогда
ЗаголовокРегистрироватьВРеестре = НСтр(
"ru='Зарегистрирована в <a href = ""https://m4d.nalog.gov.ru/EMCHD/check-status?guid=%1"">распределенном реестре ФНС России</a>'");
Иначе
Форма.Элементы.РегистрироватьВРеестре.Заголовок = НСтр("ru='Регистрировать в Распределенном реестре ФНС России'");
ЗаголовокРегистрироватьВРеестре = НСтр(
"ru='Регистрировать в <a href = ""https://m4d.nalog.gov.ru/"">распределенном реестре ФНС России</a>'");
КонецЕсли;
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
МодульСтроковыеФункции = СтроковыеФункции;
#Иначе
МодульСтроковыеФункции = СтроковыеФункцииКлиент;
#КонецЕсли
Форма.Элементы.ДекорацияРегистрироватьВРеестреФНС.Заголовок = МодульСтроковыеФункции.ФорматированнаяСтрока(ЗаголовокРегистрироватьВРеестре, Форма.Объект.НомерДоверенности);
Если Не Форма.Просрочена И (Форма.Подписана Или Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписана")) Тогда
Если Не Форма.Объект.РегистрироватьВРеестре Тогда
Форма.Элементы.ФормаОтправить.Видимость = Форма.РегистрироватьВДругомРеестре;
Форма.Элементы.ФормаОтправить.Видимость = Форма.РегистрироватьВДругомРеестре И Не Форма.ЗарегистрированаВДругомРеестре;
Форма.Элементы.ФормаОтправить.Заголовок = НСтр("ru='Зарегистрировать в реестре'");
Иначе
Форма.Элементы.ФормаОтправить.Видимость = Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписана")
Или Форма.РегистрироватьВДругомРеестре;
Или Форма.РегистрироватьВДругомРеестре И Не Форма.ЗарегистрированаВДругомРеестре;
Форма.Элементы.ФормаОтправить.Заголовок = ?(Форма.Объект.РегистрироватьВРеестре И Форма.РегистрироватьВДругомРеестре И Не Форма.ЗарегистрированаВДругомРеестре,
НСтр("ru='Зарегистрировать в реестрах'"), НСтр("ru='Зарегистрировать в реестре'"));
КонецЕсли;
Форма.Элементы.ФормаОтправить.КнопкаПоУмолчанию = Форма.Элементы.ФормаОтправить.Видимость;
Форма.Элементы.ФормаЗаписатьИЗакрыть.КнопкаПоУмолчанию = Не Форма.Элементы.ФормаОтправить.Видимость;
@@ -1610,7 +1629,9 @@
Форма.Элементы.ДекорацияОтменена.Видимость =Не Форма.Просрочена И (Форма.ТехническийСтатус = ПредопределенноеЗначение(
"Перечисление.ТехническиеСтатусыМЧД.Отменена") Или Форма.ТехническийСтатус = ПредопределенноеЗначение(
"Перечисление.ТехническиеСтатусыМЧД.ОшибкаРегистрации"));
Если Форма.Элементы.ДекорацияПодписана.Видимость Или Форма.Элементы.ДекорацияГотово.Видимость Тогда
ОтобразитьОписаниеСостояния(Форма, Неопределено);
КонецЕсли;
ТребуетсяОбновлениеДекораций = Ложь;
КонецЕсли;
@@ -2099,19 +2120,19 @@
Если Реквизиты = Неопределено Или Реквизиты.ЭтоФизическоеЛицо = Неопределено Тогда
Элементы[ИмяЭлементаОрганизация + "Декорация"].Заголовок = "";
Элементы[ИмяЭлементаОрганизация + "Декорация"].Видимость = Ложь;
Элементы["Группа" + ИмяЭлементаОрганизация + "Декорация"].Видимость = Ложь;
Возврат;
КонецЕсли;
Элементы[ИмяЭлементаОрганизация + "Декорация"].Заголовок = ЗаголовокДекорации(Реквизиты, ИмяЭлементаОрганизация);
Элементы[ИмяЭлементаОрганизация + "Декорация"].Видимость = Истина;
Элементы["Группа" + ИмяЭлементаОрганизация + "Декорация"].Видимость = ЗначениеЗаполнено(Элементы[ИмяЭлементаОрганизация + "Декорация"].Заголовок);
КонецПроцедуры
&НаСервере
Функция ЗаголовокДекорации(Реквизиты, ИмяЭлементаОрганизация = Неопределено, ТолькоОбязательные = Ложь)
Возврат МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорации(Реквизиты, ИмяЭлементаОрганизация, ТолькоОбязательные,
Возврат МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорации(Реквизиты, ИмяЭлементаОрганизация, Подписана, ТолькоОбязательные,
ПоказыватьПерсональныеДанные Или Не ТолькоПросмотр);
КонецФункции
@@ -2134,7 +2155,7 @@
Форма.Элементы.ДекорацияПолномочияПредставителя.Заголовок = Форма.Объект.ТекстПолномочий;
ИначеЕсли Форма.Объект.ПолномочияВТекстовомВиде Тогда
Если СтрДлина(Форма.Объект.ТекстПолномочий) > 255 Тогда
Форма.Элементы.ДекорацияПолномочияПредставителя.Заголовок = Лев(Форма.Объект.ТекстПолномочий, 100) + " ...";
Форма.Элементы.ДекорацияПолномочияПредставителя.Заголовок = Лев(Форма.Объект.ТекстПолномочий, 255) + " ...";
Иначе
Форма.Элементы.ДекорацияПолномочияПредставителя.Заголовок = Форма.Объект.ТекстПолномочий;
КонецЕсли;
@@ -2152,14 +2173,14 @@
Если ПустаяСтрока(ПредставлениеПолномочия) Тогда
ПредставлениеПолномочия = НСтр("ru = '<Не заполнено>'") + ЕстьОграничения;
ИначеЕсли СтрДлина(ПредставлениеПолномочия) > 100 Тогда
ПредставлениеПолномочия = Лев(ПредставлениеПолномочия, 100) + ЕстьОграничения + " ...";
ИначеЕсли СтрДлина(ПредставлениеПолномочия) > 255 Тогда
ПредставлениеПолномочия = Лев(ПредставлениеПолномочия, 255) + ЕстьОграничения + " ...";
Иначе
ПредставлениеПолномочия = ПредставлениеПолномочия + ЕстьОграничения;
КонецЕсли;
ПредставлениеПолномочий.Добавить(ПредставлениеПолномочия);
Если ПредставлениеПолномочий.Количество() > 2 Тогда
Если ПредставлениеПолномочий.Количество() > 5 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
@@ -2175,9 +2196,9 @@
Если КоличествоПолномочийВЗаголовке > 0 Тогда
Форма.Элементы.ДекорацияПолномочияПредставителя.Заголовок =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 и еще %2...'"),
СтрСоединить(ПредставлениеПолномочий, Символы.ПС), КоличествоПолномочийВЗаголовке);
СтрСоединить(ПредставлениеПолномочий, ";" + Символы.ПС), КоличествоПолномочийВЗаголовке);
Иначе
Форма.Элементы.ДекорацияПолномочияПредставителя.Заголовок = СтрСоединить(ПредставлениеПолномочий, Символы.ПС);
Форма.Элементы.ДекорацияПолномочияПредставителя.Заголовок = СтрСоединить(ПредставлениеПолномочий, ";" + Символы.ПС);
КонецЕсли;
КонецЕсли;
@@ -2307,10 +2328,10 @@
КонецЕсли;
Если Форма.ЛицоДоверителяРеквизиты = Неопределено Тогда
Форма.Элементы.ЛицоДоверителяТипДекорация.Заголовок = НСтр("ru='Физическое лицо'");
Форма.Элементы.ЛицоДоверителяТипДекорация.Заголовок = НСтр("ru='Физическое лицо:'");
Иначе
Форма.Элементы.ЛицоДоверителяТипДекорация.Заголовок = ?(Форма.ЛицоДоверителяРеквизиты.ЭтоФизическоеЛицо,
НСтр("ru='Физическое лицо'"), НСтр("ru='Организация'"));
НСтр("ru='Физическое лицо:'"), НСтр("ru='Организация:'"));
КонецЕсли;
КонецПроцедуры
@@ -2926,14 +2947,10 @@
&НаСервереБезКонтекста
Процедура ПрочитатьСостояние(Форма)
Объект = Форма.Объект;
Элементы = Форма.Элементы;
Если ЗначениеЗаполнено(Объект.Ссылка) И Объект.РегистрироватьВРеестре Тогда
Если ЗначениеЗаполнено(Объект.ДатаОкончания) И КонецДня(Объект.ДатаОкончания) < ТекущаяДатаСеанса() Тогда
Элементы.ОписаниеСостояния.Видимость = Ложь;
Возврат;
КонецЕсли;
Объект = Форма.Объект;
Элементы = Форма.Элементы;
Если ЗначениеЗаполнено(Объект.Ссылка) И Объект.РегистрироватьВРеестре Тогда
ДанныеСостояния = МашиночитаемыеДоверенностиФНССлужебный.ПрочитатьСостояниеМЧД(Объект.Ссылка);
Если ЭтоАдресВременногоХранилища(Форма.АдресОшибкиСтатуса) Тогда
@@ -2942,16 +2959,8 @@
Форма.АдресОшибкиСтатуса = ПоместитьВоВременноеХранилище(ДанныеСостояния.ДанныеОшибкиЗапросаСтатуса, Форма.УникальныйИдентификатор);
КонецЕсли;
Если ДанныеСостояния.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.ОжидаетОбработки
Или ДанныеСостояния.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Ошибка Тогда
СтрокаОбновления = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='<a href = ""Обновить"">Обновить</a>'"));
Элементы.ОписаниеСостояния.Заголовок = Новый ФорматированнаяСтрока(ДанныеСостояния.ОписаниеСостояния, Символы.ПС, СтрокаОбновления);
Элементы.ОписаниеСостояния.Видимость = Истина;
Иначе
Элементы.ОписаниеСостояния.Видимость = Ложь;
КонецЕсли;
Иначе
Элементы.ОписаниеСостояния.Видимость = Ложь;
ОтобразитьОписаниеСостояния(Форма, ДанныеСостояния);
КонецЕсли;
КонецПроцедуры
@@ -2960,13 +2969,18 @@
Процедура ПрочитатьСостояниеВДругомРеестре()
Элементы.ГруппаРегистрацияВДругомРеестре.Видимость = Ложь;
Элементы.ОписаниеСостоянияВДругомРеестре.Видимость = Ложь;
Элементы.ГруппаСтатусВДругомРеестре.Видимость = Ложь;
ПараметрыПереопределения = Новый Структура;
ПараметрыПереопределения.Вставить("ПоказыватьРегистрироватьВРеестре", Ложь);
ПараметрыПереопределения.Вставить("ЗарегистрированаВРеестре", Ложь);
ПараметрыПереопределения.Вставить("ЗаголовокФлажкаРегистрации", "");
ПараметрыПереопределения.Вставить("ПодсказкаРегистрации", "");
ПараметрыПереопределения.Вставить("ЗарегистрированаВРеестре", Ложь);
ПараметрыПереопределения.Вставить("Картинка");
ПараметрыПереопределения.Вставить("СостояниеРегистрации", "");
ПараметрыПереопределения.Вставить("ПодсказкаСостояния", "");
ПараметрыПереопределения.Вставить("ПолномочияПриОткрытии", Параметры.Полномочия);
ПараметрыПереопределения.Вставить("ВыбранныеПолномочия",
Новый Структура("Полномочия, Ограничения", Объект.Полномочия.Выгрузить(), Объект.Ограничения.Выгрузить()));
@@ -2981,15 +2995,17 @@
Если ПараметрыПереопределения.ПоказыватьРегистрироватьВРеестре Тогда
Элементы.ГруппаРегистрацияВДругомРеестре.Видимость = Истина;
Элементы.РегистрироватьВДругомРеестре.Заголовок = ПараметрыПереопределения.ЗаголовокФлажкаРегистрации;
Если Не ПараметрыПереопределения.ЗарегистрированаВРеестре Тогда
Элементы.ДекорацияРегистрироватьВДругомРеестре.Заголовок = ПараметрыПереопределения.СостояниеРегистрации;
Элементы.ОписаниеРегистрацииВДругомРеестре.Заголовок = ПараметрыПереопределения.ЗаголовокФлажкаРегистрации;
Если ЗначениеЗаполнено(ПараметрыПереопределения.ПодсказкаРегистрации) Тогда
Элементы.ОписаниеРегистрацииВДругомРеестре.Подсказка = ПараметрыПереопределения.ПодсказкаРегистрации;
Элементы.ОписаниеРегистрацииВДругомРеестре.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка;
Иначе
Элементы.ДекорацияРегистрироватьВДругомРеестре.Заголовок = "";
Элементы.ОписаниеРегистрацииВДругомРеестре.ОтображениеПодсказки = ОтображениеПодсказки.Нет;
КонецЕсли;
Если Не РеквизитыНедоступныДляРедактирования И ЗначениеЗаполнено(ПараметрыПереопределения.КодыПолномочийДляДобавления) Тогда
Если Не РеквизитыНедоступныДляРедактирования
И ЗначениеЗаполнено(ПараметрыПереопределения.КодыПолномочийДляДобавления)
И Не ТолькоПросмотр Тогда
КодыПолномочийДляДобавления = ПоместитьВоВременноеХранилище(
Новый Структура("КодыПолномочийДляДобавления, ТекстВопросаДляДобавленияПолномочий",
ПараметрыПереопределения.КодыПолномочийДляДобавления,
@@ -3000,9 +3016,23 @@
КонецЕсли;
Если ПараметрыПереопределения.ЗарегистрированаВРеестре Тогда
ЗарегистрированаВДругомРеестре = ПараметрыПереопределения.ЗарегистрированаВРеестре;
Элементы.ОписаниеСостоянияВДругомРеестре.Видимость = Истина;
Если ПараметрыПереопределения.ЗарегистрированаВРеестре Тогда
Элементы.ГруппаСтатусВДругомРеестре.Видимость = Истина;
Если ЗначениеЗаполнено(ПараметрыПереопределения.Картинка) Тогда
Элементы.ДекорацияКартинкаДругойРеестр.Видимость = Истина;
Элементы.ДекорацияКартинкаДругойРеестр.Картинка = БиблиотекаКартинок[ПараметрыПереопределения.Картинка];
Иначе
Элементы.ДекорацияКартинкаДругойРеестр.Видимость = Ложь;
КонецЕсли;
Если ЗначениеЗаполнено(ПараметрыПереопределения.ПодсказкаСостояния) Тогда
Элементы.ОписаниеСостоянияВДругомРеестре.Подсказка = ПараметрыПереопределения.ПодсказкаСостояния;
Элементы.ОписаниеСостоянияВДругомРеестре.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка;
Иначе
Элементы.ОписаниеСостоянияВДругомРеестре.ОтображениеПодсказки = ОтображениеПодсказки.Нет;
КонецЕсли;
Элементы.ОписаниеСостоянияВДругомРеестре.Заголовок = ПараметрыПереопределения.СостояниеРегистрации;
Элементы.РегистрироватьВДругомРеестре.ТолькоПросмотр = Истина;
РегистрироватьВДругомРеестре = Истина;
@@ -3050,20 +3080,13 @@
ОповеститьОбИзменении(Объект.Ссылка);
КонецЕсли;
Если ДанныеСостояния.ОтображатьСтатусВДокументе И Объект.РегистрироватьВРеестре Тогда
СтрокаОбновления = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр("ru='<a href = ""Обновить"">Обновить</a>'"));
Элементы.ОписаниеСостояния.Заголовок = Новый ФорматированнаяСтрока(ДанныеСостояния.ОписаниеСостояния, Символы.ПС, СтрокаОбновления);
Элементы.ОписаниеСостояния.Видимость = Истина;
Иначе
Элементы.ОписаниеСостояния.Видимость = Ложь;
КонецЕсли;
Если ЭтоАдресВременногоХранилища(АдресОшибкиСтатуса) Тогда
ПоместитьВоВременноеХранилище(ДанныеСостояния.ДанныеОшибкиЗапросаСтатуса, АдресОшибкиСтатуса);
Иначе
АдресОшибкиСтатуса = ПоместитьВоВременноеХранилище(ДанныеСостояния.ДанныеОшибкиЗапросаСтатуса, УникальныйИдентификатор);
КонецЕсли;
ОтобразитьОписаниеСостояния(ЭтотОбъект, ДанныеСостояния);
Иначе
Элементы.ОписаниеСостояния.Видимость = Ложь;
КонецЕсли;
@@ -3098,6 +3121,45 @@
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ОтобразитьОписаниеСостояния(Форма, ДанныеСостояния)
Элементы = Форма.Элементы;
Объект = Форма.Объект;
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
МодульСтроковыеФункции = СтроковыеФункции;
#Иначе
МодульСтроковыеФункции = СтроковыеФункцииКлиент;
#КонецЕсли
Если Форма.Элементы.ДекорацияПросрочена.Видимость Тогда
Элементы.ОписаниеСостояния.Видимость = Ложь;
ИначеЕсли Форма.Элементы.ДекорацияГотово.Видимость Тогда
Форма.Элементы.ОписаниеСостояния.Заголовок = МодульСтроковыеФункции.ФорматированнаяСтрока(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">Не требуется регистрация в реестре ФНС</span>'"), "ПоясняющийТекст"));
Элементы.ОписаниеСостояния.Видимость = Истина;
ИначеЕсли Форма.Элементы.ДекорацияПодписана.Видимость Тогда
Форма.Элементы.ОписаниеСостояния.Заголовок = МодульСтроковыеФункции.ФорматированнаяСтрока(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">Требуется регистрация в реестре ФНС</span>'"), "ПоясняющийТекст"));
Элементы.ОписаниеСостояния.Видимость = Истина;
ИначеЕсли ДанныеСостояния.ОтображатьСтатусВДокументе И Объект.РегистрироватьВРеестре Тогда
СтрокаОбновления = МодульСтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru='<a href = ""Обновить"">Обновить</a>'"));
Элементы.ОписаниеСостояния.Заголовок = Новый ФорматированнаяСтрока(ДанныеСостояния.ОписаниеСостояния,
Символы.ПС, СтрокаОбновления);
Элементы.ОписаниеСостояния.Видимость = Истина;
ИначеЕсли ДанныеСостояния.ОтображатьСтатусВДокументе И ЗначениеЗаполнено(ДанныеСостояния.ОписаниеСостояния) Тогда
Элементы.ОписаниеСостояния.Заголовок = Новый ФорматированнаяСтрока(ДанныеСостояния.ОписаниеСостояния);
Элементы.ОписаниеСостояния.Видимость = Истина;
Иначе
Элементы.ОписаниеСостояния.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура УстановитьСтатусРегистрации(Знач Доверенность, Знач ИдентификаторТранзакции = Неопределено,
Знач РегистрироватьВРеестреФНС = Истина, Знач РегистрироватьВДругомРеестре = Ложь)
@@ -842,7 +842,7 @@
Функция СведенияОДокументеУдостоверяющемЛичность(РеквизитыФизическогоЛица) // УдЛичнФЛТип
Если Не РеквизитыФизическогоЛица.Свойство("ДокументВид") Тогда
Если Не РеквизитыФизическогоЛица.Свойство("ДокументВид") Или РеквизитыФизическогоЛица.ДокументВид = "0" Тогда
Возврат Неопределено;
КонецЕсли;
@@ -2096,13 +2096,10 @@
СведенияОДоверенности = Доверенность.СвДов;
СведенияОДоверителях = Доверенность.СвДоверит;
СведенияОПредставителях = Доверенность.СвУпПред;
СведенияОПолномочияхПредставителей = Доверенность.СвПолн;
ЕдиныйРегистрационныйНомерПервоначальнойДоверенности = СведенияОДоверенности.НомДовер;
ДатаВыдачиДоверенности = Дата(СведенияОДоверенности.ДатаВыдДовер);
СрокДействияДоверенности = Дата(СведенияОДоверенности.СрокДейст);
ПризнакВозможностиПередоверия = СведенияОДоверенности.ПрПередов;
ВнутреннийНомерПервоначальнойДоверенности = СведенияОДоверенности.ВнНомДовер;
СведенияОДоверителяхПервоначальнойДоверенности = СведенияОДоверителяхПервоначальнойДоверенности(СведенияОДоверителях);
@@ -2117,7 +2114,6 @@
СведенияОДоверителяхПервоначальнойДоверенности = СведенияОПервоначальнойДоверенности.СвДоверПерв;
КонецЕсли;
СведенияОПервоначальнойДоверенности = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвПервДоверТип"));
СведенияОПервоначальнойДоверенности.ПрДовер = ПризнакДоверенности;
СведенияОПервоначальнойДоверенности.ФормДовер = ФормаДоверенности;
@@ -2332,7 +2328,6 @@
Передоверие = Документ.Передов;
ПризнакНаличияДоверенностиВыданнойВПорядкеПередоверия = Передоверие.ПрНалПередов;
СведенияОПервоначальнойДоверенности = Передоверие.СвПервДовер;
СведенияОДоверенностиОснованииПередоверия = Передоверие.СвПередов;
СведенияОДоверенности = Передоверие.СвПереДовер;
@@ -2735,7 +2730,6 @@
Процедура ВывестиПередоверие(ТабличныйДокумент, Макет, Передоверие)
ПризнакНаличияДоверенностиВыданнойВПорядкеПередоверия = Передоверие.ПрНалПередов;
СведенияОПервоначальнойДоверенности = Передоверие.СвПервДовер;
СведенияОДоверенностиОснованииПередоверия = Передоверие.СвПередов;
СведенияОДоверенности = Передоверие.СвПереДовер;
@@ -86,6 +86,99 @@
КонецФункции
#Область ОбработчикиОбновления
// Заполняет реквизит ЦелевыеПлатформы в справочнике "Общие внешние компоненты".
//
Процедура ОбработатьОбщиеВнешниеКомпоненты() Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ОбщиеВнешниеКомпоненты.Ссылка,
| ОбщиеВнешниеКомпоненты.ХранилищеКомпоненты,
| ОбщиеВнешниеКомпоненты.ЦелевыеПлатформы
|ИЗ
| Справочник.ОбщиеВнешниеКомпоненты КАК ОбщиеВнешниеКомпоненты";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ОбъектовОбработано = 0;
ПроблемныхОбъектов = 0;
Пока Выборка.Следующий() Цикл
ЦелевыеПлатформы = Выборка.ЦелевыеПлатформы.Получить();
ДвоичныеДанныеКомпоненты = Выборка.ХранилищеКомпоненты.Получить();
Если ТипЗнч(ДвоичныеДанныеКомпоненты) <> Тип("ДвоичныеДанные") Тогда
ОбъектовОбработано = ОбъектовОбработано + 1;
Продолжить;
КонецЕсли;
ИнформацияОКомпонентеИзФайла = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(
ДвоичныеДанныеКомпоненты, Ложь);
Если Не ИнформацияОКомпонентеИзФайла.Разобрано Тогда
ОбъектовОбработано = ОбъектовОбработано + 1;
Продолжить;
КонецЕсли;
Реквизиты = ИнформацияОКомпонентеИзФайла.Реквизиты;
Если ЦелевыеПлатформы <> Неопределено И ОбщегоНазначения.КоллекцииИдентичны(ЦелевыеПлатформы, Реквизиты.ЦелевыеПлатформы) Тогда
ОбъектовОбработано = ОбъектовОбработано + 1;
Продолжить;
КонецЕсли;
ПредставлениеСсылки = Строка(Выборка.Ссылка);
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ОбщиеВнешниеКомпоненты");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
КомпонентаОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.ОбщиеВнешниеКомпоненты
КомпонентаОбъект.ЦелевыеПлатформы = Новый ХранилищеЗначения(Реквизиты.ЦелевыеПлатформы);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(КомпонентаОбъект);
ОбъектовОбработано = ОбъектовОбработано + 1;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обработать общую компоненту %1 по причине:
|%2'"), ПредставлениеСсылки, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Предупреждение, Выборка.Ссылка.Метаданные(), Выборка.Ссылка, ТекстСообщения);
КонецПопытки;
КонецЦикла;
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обработать общие компоненты (пропущены): %1'"),
ПроблемныхОбъектов);
ВызватьИсключение ТекстСообщения;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли
@@ -189,314 +189,14 @@
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="3af45dae-f563-4d23-a87a-11b4d9d5d7a7">
<name>Windows_x86</name>
<attributes uuid="9eab48bf-3297-4f81-a448-a3a746d1ce83">
<name>ЦелевыеПлатформы</name>
<synonym>
<key>ru</key>
<value>Windows x86</value>
<value>Целевые платформы</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="fe102b7b-b61f-4572-b2d0-c0af11bfb7d7">
<name>Windows_x86_64</name>
<synonym>
<key>ru</key>
<value>Windows x86_64</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="2cfa0db8-f0e6-4513-ab19-52dccff302bc">
<name>Linux_x86</name>
<synonym>
<key>ru</key>
<value>Linux x86</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="b9fece39-6e5d-44c0-af5c-ad13cfb71560">
<name>Linux_x86_64</name>
<synonym>
<key>ru</key>
<value>Linux x86_64</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="a9c30e99-c265-471d-9115-50ac2bb05191">
<name>Windows_x86_Firefox</name>
<synonym>
<key>ru</key>
<value>Windows x86 Firefox</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="d388c9ca-1dbd-45b9-ac33-5ffa8cb11499">
<name>Linux_x86_Firefox</name>
<synonym>
<key>ru</key>
<value>Linux x86 Firefox</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="efebb079-b913-4249-b128-e0ffc7ab43dd">
<name>Linux_x86_64_Firefox</name>
<synonym>
<key>ru</key>
<value>Linux x86_64 Firefox</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="52077ee4-fef1-451f-8338-86563ff5cf60">
<name>Windows_x86_MSIE</name>
<synonym>
<key>ru</key>
<value>Windows x86 MSIE</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="8e6780f8-8d0e-47d1-ac26-47bf5d906f61">
<name>Windows_x86_64_MSIE</name>
<synonym>
<key>ru</key>
<value>Windows x86_64 MSIE</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="fd4a26c1-31e0-4216-92e0-1e090ec4f094">
<name>Windows_x86_Chrome</name>
<synonym>
<key>ru</key>
<value>Windows x86 Chrome</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="637148a3-0f54-4d41-91dd-a0aa6e191015">
<name>Linux_x86_Chrome</name>
<synonym>
<key>ru</key>
<value>Linux x86 Chrome</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="9a86e2fe-a9bc-4f0a-a16e-a97944fe8539">
<name>Linux_x86_64_Chrome</name>
<synonym>
<key>ru</key>
<value>Linux x86_64 Chrome</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="b6f745d7-1326-494e-b442-e4118955b5db">
<name>MacOS_x86_64</name>
<synonym>
<key>ru</key>
<value>macOS x86_64</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="86755cbc-efd8-43e7-bba8-975c0a51f38f">
<name>MacOS_x86_64_Safari</name>
<synonym>
<key>ru</key>
<value>macOS x86_64 Safari</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="44dba9ff-fb54-4cc9-9da2-b00db76060e4">
<name>MacOS_x86_64_Chrome</name>
<synonym>
<key>ru</key>
<value>macOS x86_64 Chrome</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="a6a0c38d-52a1-4a36-b29a-fb9cc084465f">
<name>MacOS_x86_64_Firefox</name>
<synonym>
<key>ru</key>
<value>macOS x86_64 Firefox</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="afc686e9-91a3-4f52-bd8c-a8cda659d938">
<name>Windows_x86_ЯндексБраузер</name>
<synonym>
<key>ru</key>
<value>Windows x86 Яндекс Браузер</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="281fdf3e-db78-425f-b379-1d2a1bc1f8c3">
<name>Windows_x86_64_ЯндексБраузер</name>
<synonym>
<key>ru</key>
<value>Windows x86_64 Яндекс Браузер</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="279a0a44-6f37-4b69-b439-0e846182d650">
<name>Linux_x86_ЯндексБраузер</name>
<synonym>
<key>ru</key>
<value>Linux x86 Яндекс Браузер</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="b24f2c22-29c2-44d1-8e58-b900b075a5a5">
<name>Linux_x86_64_ЯндексБраузер</name>
<synonym>
<key>ru</key>
<value>Linux x86_64 Яндекс Браузер</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="d8ded9c9-faaa-43ac-ae4d-308e3a31f1e4">
<name>MacOS_x86_64_ЯндексБраузер</name>
<synonym>
<key>ru</key>
<value>macOS x86_64 Яндекс Браузер</value>
</synonym>
<type>
<types>Boolean</types>
<types>ValueStorage</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
@@ -368,6 +368,12 @@
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<parameters>
<name>ТекущаяПапка</name>
<valueType>
<types>CatalogRef.ПапкиФайлов</types>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar>
@@ -11,9 +11,7 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("ТекущаяПапка") Тогда
Элементы.Список.ТекущаяСтрока = Параметры.ТекущаяПапка;
КонецЕсли;
Элементы.Список.ТекущаяСтрока = Параметры.ТекущаяПапка;
КонецПроцедуры
@@ -624,6 +624,12 @@
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters>
<name>Родитель</name>
<valueType>
<types>CatalogRef.ПапкиФайлов</types>
</valueType>
</parameters>
<commandInterface>
<navigationPanel>
<cmiFragmentRecord>
@@ -11,7 +11,7 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("Родитель") Тогда
Если ЗначениеЗаполнено(Параметры.Родитель) Тогда
Объект.Родитель = Параметры.Родитель;
КонецЕсли;
@@ -334,7 +334,7 @@
// Конец СтандартныеПодсистемы.Свойства
&НаСервере
Функция ПараметрыНастройкиСинхронизации(ВладелецФайла)
Функция ПараметрыНастройкиСинхронизации(Знач ВладелецФайла)
ТипВладельцаФайла = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип("СправочникСсылка.Файлы"));
@@ -418,7 +418,7 @@
КонецПроцедуры
&НаСервереБезКонтекста
Функция РабочийКаталогВладельцаОчисткаНаСервере(Ссылка, РодительСсылка, Наименование)
Функция РабочийКаталогВладельцаОчисткаНаСервере(Знач Ссылка, Знач РодительСсылка, Знач Наименование)
РабочийКаталогРодителя = РаботаСФайламиСлужебныйВызовСервера.РабочийКаталогПапки(РодительСсылка);
@@ -63,7 +63,9 @@
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Если ВидФормы = "ФормаСписка" Тогда
// АПК:1417-выкл структура с динамическим составом свойств
ТекущаяСтрока = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ТекущаяСтрока");
// АПК:1417-вкл
Если ТипЗнч(ТекущаяСтрока) = Тип("СправочникСсылка.ПапкиФайлов") И Не ТекущаяСтрока.Пустая() Тогда
СтандартнаяОбработка = Ложь;
Параметры.Удалить("ТекущаяСтрока");
@@ -97,7 +97,7 @@
КонецЕсли;
Иначе
СообщитьПользователю(НСтр("ru = 'Без расширения работы с файлами невозможно работать с файлами.'"), "Объект");
СообщитьПользователю(НСтр("ru = 'Без расширения для работы с 1С:Предприятием невозможно работать с файлами.'"), "Объект");
КонецЕсли;
КонецПроцедуры
@@ -283,6 +283,8 @@
// Чтение настроек отчетов из объекта копирования.
Если СозданКопированием Тогда
ПрочитатьНастройкиОтчетовОбъектаКопирования();
ПреобразоватьПараметрыТекста(Объект, "ПараметрыВПредставление");
ПреобразоватьПараметрыНастроекОтчетов(Объект, "ПараметрыВПредставление");
КонецЕсли;
// Активизация первой строки
@@ -4420,6 +4422,9 @@
ИдентификаторСтроки = СтрокаОтчеты.ПолучитьИдентификатор();
СтрокаПредупреждения = ОтчетыПриАктивизацииСтрокиНаСервере(ИдентификаторСтроки, Истина, ПользовательскиеНастройкиКД);
Если Индекс = 0 Тогда
ЗаписатьНастройкиСтрокиОтчеты(ИдентификаторТекущейСтрокиТаблицыОтчетов);
КонецЕсли;
Если СтрокаПредупреждения <> "" Тогда
ОбщегоНазначения.СообщитьПользователю(СтрокаПредупреждения, , "Объект.Отчеты["+ Индекс +"].Представление");
КонецЕсли;
@@ -60,9 +60,10 @@
Функция ОпределитьОтборДляВнешнегоПользователя()
ТекущийВнешнийПользователь = ВнешниеПользователи.ТекущийВнешнийПользователь();
ОбъектАвторизации = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийВнешнийПользователь, "ОбъектАвторизации");
СтрокаОтбораВТекстеЗапроса = СтрЗаменить(
"ГДЕ РолиИсполнителейНазначениеПереопределяемый.ТипПользователей = ЗНАЧЕНИЕ(Справочник.%Имя%.ПустаяСсылка)", // @query-part
"%Имя%", ТекущийВнешнийПользователь.ОбъектАвторизации.Метаданные().Имя);
"%Имя%", ОбъектАвторизации.Метаданные().Имя);
Возврат СтрокаОтбораВТекстеЗапроса;
КонецФункции
@@ -52,9 +52,12 @@
Если Пользователи.ЭтоСеансВнешнегоПользователя() Тогда
ТекущийПользователь = ВнешниеПользователи.ТекущийВнешнийПользователь();
ОбъектАвторизации = Справочники[ТекущийПользователь.ОбъектАвторизации.Метаданные().Имя].ПустаяСсылка();
ЗначениеРеквизита = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийПользователь, "ОбъектАвторизации");
ОбъектАвторизации = ?(ЗначениеРеквизита <> Неопределено,
Справочники[ЗначениеРеквизита.Метаданные().Имя].ПустаяСсылка(),
Справочники.Пользователи.ПустаяСсылка());
Иначе
ОбъектАвторизации = Справочники.Пользователи.ПустаяСсылка();
ОбъектАвторизации = Справочники.Пользователи.ПустаяСсылка();
КонецЕсли;
ФрагментыТекстаПоискДляДополнительныхЯзыков = Новый Массив;
@@ -92,6 +92,7 @@
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>Use</createOnInput>
<includeHelpInContents>true</includeHelpInContents>
<help>
<pages>
<lang>ru</lang>
@@ -42,30 +42,7 @@
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если Команда.Имя = "НастройкаПорядкаЭлементовОбычное__Вниз" Или Команда.Имя = "НастройкаПорядкаЭлементовОбычное__Вверх" Тогда
Если ТекущиеДанные.Ссылка = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ФормаНапечатана")
Или ТекущиеДанные.Ссылка = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен") Тогда
ПоказатьПредупреждение(,НСтр("ru='Начальное и конечное состояние перемещать нельзя.'"));
Иначе
Если Команда.Имя = "НастройкаПорядкаЭлементовОбычное__Вниз" Тогда
Перемещать = ВозможностьПеремещения("Вниз",ТекущиеДанные.РеквизитДопУпорядочивания);
ИначеЕсли Команда.Имя = "НастройкаПорядкаЭлементовОбычное__Вверх" Тогда
Перемещать = ВозможностьПеремещения("Вверх",ТекущиеДанные.РеквизитДопУпорядочивания);
КонецЕсли;
Если Перемещать Тогда
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
Иначе
ПоказатьПредупреждение(,НСтр("ru = 'Начальное и конечное состояние перемещать нельзя.'"));
КонецЕсли;
КонецЕсли;
Иначе
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
КонецЕсли;
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
@@ -89,37 +66,3 @@
//Конец СтандартныеПодсистемы.ПодключаемыеКоманды
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция ВозможностьПеремещения(Перемещение, НомерПорядка);
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
| СостоянияОригиналовПервичныхДокументов.Ссылка КАК Ссылка
|ИЗ
| Справочник.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов
|ГДЕ
| СостоянияОригиналовПервичныхДокументов.РеквизитДопУпорядочивания > &НомерПорядка
| И СостоянияОригиналовПервичныхДокументов.Ссылка <> ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ФормаНапечатана)
| И СостоянияОригиналовПервичныхДокументов.Ссылка <> ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналыНеВсе)
| И СостоянияОригиналовПервичныхДокументов.Ссылка <> ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен)";
Если Перемещение = "Вверх" Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст,"> &НомерПорядка","< &НомерПорядка");
КонецЕсли;
Запрос.УстановитьПараметр("НомерПорядка", НомерПорядка);
Выборка = Запрос.Выполнить();
Если Не Выборка.Пустой() Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
#КонецОбласти
@@ -217,7 +217,7 @@
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
СтранаМираСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.СтраныМира");
СтранаМираДляОбработки = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.СтраныМира");
НастройкиОбновления = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
@@ -227,24 +227,28 @@
ПроблемныхОбъектов = 0;
ОбъектовОбработано = 0;
Пока СтранаМираСсылка.Следующий() Цикл
ПредставлениеСсылки = Строка(СтранаМираСсылка.Ссылка);
Пока СтранаМираДляОбработки.Следующий() Цикл
СтранаМираСсылка = СтранаМираДляОбработки.Ссылка; // СправочникСсылка.СтраныМира
ПредставлениеСсылки = Строка(СтранаМираСсылка);
Попытка
ДанныеКлассификатора = УправлениеКонтактнойИнформацией.ДанныеКлассификатораСтранМираПоКоду(СтранаМираСсылка.Ссылка.Код);
КодСтраны = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтранаМираСсылка, "Код");
ДанныеКлассификатора = УправлениеКонтактнойИнформацией.ДанныеКлассификатораСтранМираПоКоду(КодСтраны);
Если ДанныеКлассификатора <> Неопределено Тогда
Блокировка = Новый БлокировкаДанных();
ЭлементБлокировки = Блокировка.Добавить("Справочник.СтраныМира");
ЭлементБлокировки.УстановитьЗначение("Ссылка", СтранаМираСсылка.Ссылка);
ЭлементБлокировки.УстановитьЗначение("Ссылка", СтранаМираСсылка);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
СтранаМира = СтранаМираСсылка.Ссылка.ПолучитьОбъект();
СтранаМира = СтранаМираСсылка.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(СтранаМира, ДанныеКлассификатора);
ОбновлениеИнформационнойБазы.ЗаписатьДанные(СтранаМира);
@@ -256,7 +260,7 @@
КонецПопытки;
Иначе
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СтранаМираСсылка.Ссылка);
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СтранаМираСсылка);
КонецЕсли;
// Обновление наименований
@@ -278,7 +282,7 @@
|%2'"),
ПредставлениеСсылки, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,
Метаданные.Справочники.СтраныМира, СтранаМираСсылка.Ссылка, ТекстСообщения);
Метаданные.Справочники.СтраныМира, СтранаМираСсылка, ТекстСообщения);
КонецПопытки;
КонецЦикла;
@@ -407,6 +407,9 @@
<edit>
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.DeletionMark</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</notDefaultUseAlwaysAttributes>
@@ -20,13 +20,15 @@
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
КоллекцияСценариев = Новый Массив;
Для Каждого ДанныеСтроки Из ВыделенныеСтроки Цикл
Для Каждого Сценарий Из ВыделенныеСтроки Цикл
ДанныеСтроки = Элементы.Список.ДанныеСтроки(Сценарий);
Если ДанныеСтроки.ПометкаУдаления Тогда
Продолжить;
КонецЕсли;
КоллекцияСценариев.Добавить(ДанныеСтроки.Ссылка);
КоллекцияСценариев.Добавить(Сценарий);
КонецЦикла;
@@ -1,5 +1,212 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormGroup">
<name>ГруппаСценарийОтключен</name>
<id>172</id>
<items xsi:type="form:Decoration">
<name>Декорация5</name>
<id>174</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Декорация5РасширеннаяПодсказка</name>
<id>176</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Декорация5КонтекстноеМеню</name>
<id>175</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Предупреждение32</picture>
</picture>
<fileDragMode>AsFileRef</fileDragMode>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>Декорация6</name>
<id>177</id>
<title>
<key>ru</key>
<value>Сценарий отключен из-за ошибок синхронизации. Включите его после исправления проблем.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Декорация6РасширеннаяПодсказка</name>
<id>179</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Декорация6КонтекстноеМеню</name>
<id>178</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<groupVerticalAlign>Center</groupVerticalAlign>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа сценарий отключен</value>
</title>
<horizontalStretch>true</horizontalStretch>
<extendedTooltip>
<name>ГруппаСценарийОтключенРасширеннаяПодсказка</name>
<id>173</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<backColor xsi:type="core:ColorRef">
<color>Style.ЦветФонаПредупреждения</color>
</backColor>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаИнформацияОНастрокеВОднойБазе</name>
<id>164</id>
<items xsi:type="form:Decoration">
<name>Декорация3</name>
<id>166</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Декорация3РасширеннаяПодсказка</name>
<id>168</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Декорация3КонтекстноеМеню</name>
<id>167</id>
<autoFill>true</autoFill>
</contextMenu>
<width>3</width>
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>StdPicture.Information</picture>
</picture>
<pictureSize>Proportionally</pictureSize>
<fileDragMode>AsFileRef</fileDragMode>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>Декорация4</name>
<id>169</id>
<title>
<key>ru</key>
<value>Достаточно настроить сценарий только в одной области (базе)</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Декорация4РасширеннаяПодсказка</name>
<id>171</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Декорация4КонтекстноеМеню</name>
<id>170</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа информация о настроке в одной базе</value>
</title>
<horizontalStretch>true</horizontalStretch>
<extendedTooltip>
<name>ГруппаИнформацияОНастрокеВОднойБазеРасширеннаяПодсказка</name>
<id>165</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<verticalAlign>Center</verticalAlign>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<backColor xsi:type="core:ColorRef">
<color>Web.LightGreen</color>
</backColor>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаКодНаименование</name>
<id>103</id>
@@ -56,6 +56,8 @@
Элементы.НастройкиОбменаВидТранспортаОбмена.Видимость = Ложь;
Элементы.НастройкиОбменаУзелИнформационнойБазы.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать;
Элементы.НастройкиОбменаУзелИнформационнойБазы.КнопкаВыпадающегоСписка = Ложь;
Элементы.ГруппаИнформацияОНастрокеВОднойБазе.Видимость = Истина;
Элементы.ГруппаСценарийОтключен.Видимость = Объект.ОтключенАвтоматически;
КонецЕсли;
@@ -275,9 +277,9 @@
Если Расписание <> Неопределено Тогда
Если РазделениеВключено
И Расписание.ПериодПовтораВТечениеДня < 15*60 Тогда
И Расписание.ПериодПовтораВТечениеДня < 15 * 60 Тогда
Расписание.ПериодПовтораВТечениеДня = 15*60;
Расписание.ПериодПовтораВТечениеДня = 15 * 60;
ТекстПредупреждения = НСтр("ru = 'Минимальный интервал не должен быть меньше 15 минут (900 секунд).'");
ПоказатьПредупреждение(, ТекстПредупреждения);
@@ -22,10 +22,16 @@
КонецЕсли;
Если ИспользоватьРегламентноеЗадание И ОтключенАвтоматически Тогда
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
Если РазделениеВключено
И ИспользоватьРегламентноеЗадание
И ОтключенАвтоматически Тогда
ОтключенАвтоматически = Ложь;
ОбменДаннымиВнутренняяПубликация.УдалитьЗадачиПоСценариюСОшибкой(Ссылка);
КонецЕсли;
КонецПроцедуры
@@ -156,9 +156,7 @@
&НаКлиенте
Процедура ПроверитьВозможностьСинхронизацииСОблачнымСервисом()
СтруктураРезультата = Неопределено;
ВыполнитьПроверкуПодключения(Объект.Ссылка, СтруктураРезультата);
СтруктураРезультата = ВыполнитьПроверкуПодключения(Объект.Ссылка);
РезультатПротокол = СтруктураРезультата.РезультатПротокол;
РезультатТекст = СтруктураРезультата.РезультатТекст;
@@ -243,12 +241,14 @@
КонецПроцедуры
&НаСервере
Процедура ВыполнитьПроверкуПодключения(УчетнаяЗапись, СтруктураРезультата)
Функция ВыполнитьПроверкуПодключения(Знач УчетнаяЗапись)
СтруктураРезультата = Неопределено;
РаботаСФайламиСлужебный.ВыполнитьПроверкуПодключения(УчетнаяЗапись, СтруктураРезультата);
КонецПроцедуры
Возврат СтруктураРезультата;
КонецФункции
&НаСервереБезКонтекста
Функция ПроверитьСоединение(Сервис, ТекстПротокола)
Функция ПроверитьСоединение(Знач Сервис, Знач ТекстПротокола)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
@@ -130,7 +130,7 @@
И ТипЗнч(Источник) <> Тип("Массив") Тогда
Элементы.Список.Обновить();
Если ТипЗнч(Параметр) = Тип("Структура") И Параметр.Свойство("Файл") Тогда
Если ЗначениеЗаполнено(Параметр.Файл) Тогда
Элементы.Список.ТекущаяСтрока = Параметр.Файл;
ИначеЕсли Источник <> Неопределено Тогда
Элементы.Список.ТекущаяСтрока = Источник;
@@ -155,7 +155,8 @@
РаботаСФайламиСлужебныйКлиент.ПеренестиФайлыВПапку(ВыделенныеСтроки, ВыбранноеЗначение);
Для Каждого ВыделеннаяСтрока Из ВыделенныеСтроки Цикл
Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ВыделеннаяСтрока);
ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены");
Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, ВыделеннаяСтрока);
КонецЦикла;
Элементы.Список.Обновить();
@@ -281,7 +282,8 @@
&НаКлиенте
Процедура СписокПриИзменении(Элемент)
Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), Элемент.ВыделенныеСтроки);
ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены");
Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Элемент.ВыделенныеСтроки);
КонецПроцедуры
@@ -1034,9 +1036,9 @@
КонецПроцедуры
&НаСервере
Процедура ЗашифроватьСервер(МассивДанныхДляЗанесенияВБазу, МассивОтпечатков,
МассивФайловВРабочемКаталогеДляУдаления,
ИмяРабочегоКаталога, ОбъектСсылка)
Процедура ЗашифроватьСервер(Знач МассивДанныхДляЗанесенияВБазу, Знач МассивОтпечатков,
Знач МассивФайловВРабочемКаталогеДляУдаления,
Знач ИмяРабочегоКаталога, Знач ОбъектСсылка)
ПараметрыЗаписиИнформацииОШифровании = РаботаСФайламиСлужебный.ПараметрыЗаписиИнформацииОШифровании();
ПараметрыЗаписиИнформацииОШифровании.ИмяРабочегоКаталога = ИмяРабочегоКаталога;
@@ -56,24 +56,19 @@
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Запись_Файл" И Параметр.Свойство("ЭтоНовый") И Параметр.ЭтоНовый Тогда
Если ИмяСобытия = "Запись_Файл" Тогда
Если Параметр <> Неопределено Тогда
ВладелецФайла = Неопределено;
Если Параметр.Свойство("Владелец", ВладелецФайла) Тогда
Если ВладелецФайла = Элементы.Папки.ТекущаяСтрока Тогда
Элементы.Список.Обновить();
Если Параметр.ЭтоНовый = Истина Тогда
Если Параметр.Владелец = Элементы.Папки.ТекущаяСтрока Тогда
Элементы.Список.Обновить();
ФайлСозданный = Неопределено;
Если Параметр.Свойство("Файл", ФайлСозданный) Тогда
Элементы.Список.ТекущаяСтрока = ФайлСозданный;
КонецЕсли;
Если ЗначениеЗаполнено(Параметр.Файл) Тогда
Элементы.Список.ТекущаяСтрока = Параметр.Файл;
КонецЕсли;
КонецЕсли;
Элементы.Список.Обновить();
КонецЕсли;
Элементы.Список.Обновить();
КонецЕсли;
Если ВРег(ИмяСобытия) = ВРег("Запись_НаборКонстант")
@@ -232,7 +232,9 @@
Если НаименованиеДоЗаписи <> ТекущийОбъект.Наименование Тогда
Если ТекущийОбъект.ТекущаяВерсия.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
ТипХраненияФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийОбъект.ТекущаяВерсия, "ТипХраненияФайла");
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
РаботаСФайламиВТомахСлужебный.ПереименоватьФайл(ТекущийОбъект.ТекущаяВерсия,
ТекущийОбъект.Наименование, НаименованиеДоЗаписи, УникальныйИдентификатор);
КонецЕсли;
@@ -559,7 +561,8 @@
Объект.Ссылка);
ОповеститьОбИзменении(Объект.Ссылка);
Оповестить("Запись_Файл", Новый Структура, Объект.Ссылка);
ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла();
Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Объект.Ссылка);
УстановитьДоступностьКомандСпискаШифрования();
@@ -723,7 +726,8 @@
Записать();
УдалитьИзСпискаПодписейИЗаписатьФайл();
ОповеститьОбИзменении(Объект.Ссылка);
Оповестить("Запись_Файл", Новый Структура, Объект.Ссылка);
ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла();
Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Объект.Ссылка);
УстановитьДоступностьКомандСпискаЭП();
КонецПроцедуры
@@ -801,7 +805,8 @@
Если Не ФайлРедактируется Тогда
ОбновитьОбъект();
ОповеститьОбИзменении(Объект.Ссылка);
Оповестить("Запись_Файл", Новый Структура, Объект.Ссылка);
ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла();
Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Объект.Ссылка);
КонецЕсли;
КонецПроцедуры
@@ -834,7 +839,8 @@
ОбновитьОбъект();
ОповеститьОбИзменении(Объект.Ссылка);
Оповестить("Запись_Файл", Новый Структура, Объект.Ссылка);
ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла();
Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Объект.Ссылка);
КонецПроцедуры
@@ -867,7 +873,8 @@
ОсвободитьФайл();
ОповеститьОбИзменении(Объект.Ссылка);
Оповестить("Запись_Файл", Новый Структура("Событие", "РедактированиеОтменено"), Объект.Ссылка);
ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла("РедактированиеОтменено");
Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Объект.Ссылка);
РаботаСФайламиСлужебныйКлиент.ИзменитьКоличествоЗанятыхФайлов();
КонецПроцедуры
@@ -1385,7 +1392,9 @@
ОтобразитьИзменениеДанных(Объект.Ссылка, ВидИзмененияДанных.Изменение);
ОповеститьОбИзменении(Объект.Ссылка);
ОповеститьОбИзменении(Объект.ВладелецФайла);
Оповестить("Запись_Файл", Новый Структура("ЭтоНовый", ФайлБылСоздан), Объект.Ссылка);
ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла();
ПараметрыОповещенияЗаписиФайла.ЭтоНовый = ФайлБылСоздан;
Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Объект.Ссылка);
УстановитьДоступностьКомандСпискаЭП();
УстановитьДоступностьКомандСпискаШифрования();
@@ -1477,7 +1486,8 @@
ОбновитьОбъект();
ОповеститьОбИзменении(Объект.Ссылка);
Оповестить("Запись_Файл", Новый Структура, Объект.Ссылка);
ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла();
Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Объект.Ссылка);
КонецПроцедуры
@@ -1546,29 +1556,35 @@
&НаСервере
Процедура СоздатьКопиюВерсии(Приемник, Источник)
Если Источник.ТекущаяВерсия.Пустая() Тогда
РеквизитыИсточника = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Источник,
"ТекущаяВерсия,Зашифрован,ДатаМодификацииУниверсальная");
Если РеквизитыИсточника.ТекущаяВерсия.Пустая() Тогда
Возврат;
КонецЕсли;
ХранилищеФайла = Неопределено;
Если Источник.ТекущаяВерсия.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(Источник.ТекущаяВерсия);
РеквизитыТекущейВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(РеквизитыИсточника.ТекущаяВерсия,
"ТипХраненияФайла,Размер,Расширение,ТекстХранилище");
Если РеквизитыТекущейВерсии.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(РеквизитыИсточника.ТекущаяВерсия);
КонецЕсли;
СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией");
СведенияОФайле.ИмяБезРасширения = Объект.Наименование;
СведенияОФайле.Размер = Источник.ТекущаяВерсия.Размер;
СведенияОФайле.РасширениеБезТочки = Источник.ТекущаяВерсия.Расширение;
СведенияОФайле.Размер = РеквизитыТекущейВерсии.Размер;
СведенияОФайле.РасширениеБезТочки = РеквизитыТекущейВерсии.Расширение;
СведенияОФайле.АдресВременногоХранилищаФайла = ХранилищеФайла;
СведенияОФайле.АдресВременногоХранилищаТекста = Источник.ТекущаяВерсия.ТекстХранилище;
СведенияОФайле.СсылкаНаВерсиюИсточник = Источник.ТекущаяВерсия;
СведенияОФайле.Зашифрован = Источник.Зашифрован;
СведенияОФайле.ВремяИзмененияУниверсальное = Источник.ДатаМодификацииУниверсальная;
СведенияОФайле.АдресВременногоХранилищаТекста = РеквизитыТекущейВерсии.ТекстХранилище;
СведенияОФайле.СсылкаНаВерсиюИсточник = РеквизитыИсточника.ТекущаяВерсия;
СведенияОФайле.Зашифрован = РеквизитыИсточника.Зашифрован;
СведенияОФайле.ВремяИзмененияУниверсальное = РеквизитыИсточника.ДатаМодификацииУниверсальная;
СведенияОФайле.ВремяИзменения = ДатаМодификации;
Версия = РаботаСФайламиСлужебный.СоздатьВерсию(Приемник, СведенияОФайле);
РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(
Приемник, Версия, Источник.ТекущаяВерсия.ТекстХранилище, УникальныйИдентификатор);
Приемник, Версия, РеквизитыТекущейВерсии.ТекстХранилище, УникальныйИдентификатор);
ОбновитьОбъект();
КонецПроцедуры
+14 -7
View File
@@ -198,19 +198,26 @@
НачатьТранзакцию();
Попытка
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("Справочник.Файлы");
БлокировкаДанныхФайл = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаДанныхФайл.Добавить("Справочник.Файлы");
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Строка.Ссылка);
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("Справочник.ВерсииФайлов");
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Строка.Ссылка.ТекущаяВерсия);
ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Разделяемый;
БлокировкаДанныхФайл.Заблокировать();
ТекущаяВерсия = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Строка.Ссылка, "ТекущаяВерсия");
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("Справочник.ВерсииФайлов");
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ТекущаяВерсия);
ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Разделяемый;
БлокировкаДанных.Заблокировать();
РеквизитыТекущейВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ТекущаяВерсия,
"ДатаМодификацииУниверсальная,ТипХраненияФайла");
ОбновляемыйФайл = Строка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.Файлы
ОбновляемыйФайл.ДатаМодификацииУниверсальная = ОбновляемыйФайл.ТекущаяВерсия.ДатаМодификацииУниверсальная;
ОбновляемыйФайл.ТипХраненияФайла = ОбновляемыйФайл.ТекущаяВерсия.ТипХраненияФайла;
ОбновляемыйФайл.ДатаМодификацииУниверсальная = РеквизитыТекущейВерсии.ДатаМодификацииУниверсальная;
ОбновляемыйФайл.ТипХраненияФайла = РеквизитыТекущейВерсии.ТипХраненияФайла;
НаборЗаписей = РегистрыСведений.СведенияОФайлах.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Файл.Установить(Строка.Ссылка);
@@ -28,6 +28,10 @@
<metadata>InformationRegister.ОбработчикиОбновления</metadata>
<use>Use</use>
</content>
<content>
<metadata>Catalog.СеансыОбменовДанными</metadata>
<use>Use</use>
</content>
<content>
<metadata>Constant.ОтложенноеОбновлениеЗавершеноУспешно</metadata>
<use>Use</use>
@@ -7,8 +7,4 @@
</synonym>
<group>CommandGroup.ПараметрыСинхронизацииДанных</group>
<representation>Auto</representation>
<toolTip>
<key>ru</key>
<value>Настройка параметров подключения обмена данными</value>
</toolTip>
</mdclass:CommonCommand>
@@ -2,14 +2,14 @@
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<title>
<key>ru</key>
<value>Установка расширения работы с файлами</value>
<value>Установка расширения для работы с 1С:Предприятием</value>
</title>
<items xsi:type="form:Decoration">
<name>ДекорацияПояснение</name>
<id>6</id>
<title>
<key>ru</key>
<value>Для удобной работы с программой предлагается установить расширение для работы с 1С:Предприятием.
<value>Для удобной работы с приложением предлагается установить расширение для работы с 1С:Предприятием.
Установить?</value>
</title>
<visible>true</visible>
@@ -3,7 +3,7 @@
<name>ВопросОбУстановкеРасширенияРаботыСФайлами</name>
<synonym>
<key>ru</key>
<value>Вопрос об установке расширения работы с файлами</value>
<value>Вопрос об установке расширения для работы с 1С:Предприятием</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
@@ -730,6 +730,7 @@
Если ТипЗнч(Ветка) = Тип("ДанныеФормыЭлементДерева") И ОбъектМетаданных.ПолноеИмя() = Ветка.ПолноеИмя Тогда
Продолжить;
КонецЕсли;
Если Не ОбъектМетаданныхДоступен(ОбъектМетаданных) Тогда
Продолжить;
КонецЕсли;
@@ -740,6 +741,7 @@
НоваяВетка.Представление = ОбъектМетаданных.Представление();
НоваяВетка.Картинка = КартинкаВИнтерфейсе(ОбъектМетаданных);
НоваяВетка.Адрес = ?(ТипЗнч(Ветка) = Тип("ДанныеФормыЭлементДерева"), Ветка.Адрес + "/", "") + НоваяВетка.Представление;
Если ЗначениеЗаполнено(АдресаВыбранныхОбъектов) Тогда
НоваяВетка.Пометка = ?(АдресаВыбранныхОбъектов.НайтиПоЗначению(НоваяВетка.Адрес) = Неопределено, 0, 1);
Иначе
@@ -800,7 +802,10 @@
&НаСервере
Функция ОбъектМетаданныхДоступен(ОбъектМетаданных)
Если Не ЭтоПодсистема(ОбъектМетаданных) Тогда
ЭтоПодсистема = ЭтоПодсистема(ОбъектМетаданных);
ЭтоЖурналДокументов = ОбщегоНазначения.ЭтоЖурналДокументов(ОбъектМетаданных);
Если Не ЭтоПодсистема Тогда
ЭтоВыбираемыйОбъект = Не ЗначениеЗаполнено(КоллекцииВыбираемыхОбъектовМетаданных);
Для Каждого ВидОбъекта Из КоллекцииВыбираемыхОбъектовМетаданных.ВыгрузитьЗначения() Цикл
Если Метаданные[ВидОбъекта].Содержит(ОбъектМетаданных) Тогда
@@ -816,7 +821,7 @@
Если Не ОбщегоНазначения.ЭтоСправочник(ОбъектМетаданных)
И Не ОбщегоНазначения.ЭтоДокумент(ОбъектМетаданных)
И Не ОбщегоНазначения.ЭтоЖурналДокументов(ОбъектМетаданных)
И Не ЭтоЖурналДокументов
И Не ОбщегоНазначения.ЭтоПланВидовХарактеристик(ОбъектМетаданных)
И Не ОбщегоНазначения.ЭтоРегистрСведений(ОбъектМетаданных)
И Не ОбщегоНазначения.ЭтоРегистрБухгалтерии(ОбъектМетаданных)
@@ -827,7 +832,14 @@
И Не ОбщегоНазначения.ЭтоПланВидовРасчета(ОбъектМетаданных)
И Не ОбщегоНазначения.ЭтоБизнесПроцесс(ОбъектМетаданных)
И Не ОбщегоНазначения.ЭтоЗадача(ОбъектМетаданных)
И Не ЭтоПодсистема(ОбъектМетаданных) Тогда
И Не ЭтоПодсистема Тогда
Возврат Ложь;
КонецЕсли;
Если ЗначениеЗаполнено(ФильтрПоОбъектамМетаданных)
И Не ЭтоПодсистема
И Не ЭтоЖурналДокументов
И ФильтрПоОбъектамМетаданных.НайтиПоЗначению(ОбъектМетаданных.ПолноеИмя()) = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
@@ -2,7 +2,7 @@
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<title>
<key>ru</key>
<value>Установлено обновление программы</value>
<value>Установлено обновление приложения</value>
</title>
<items xsi:type="form:FormGroup">
<name>Содержимое</name>
@@ -40,7 +40,7 @@
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Информация32</picture>
<picture>StdPicture.DialogInformation</picture>
</picture>
<pictureSize>Proportionally</pictureSize>
<fileDragMode>AsFileRef</fileDragMode>
@@ -57,8 +57,8 @@
<id>1</id>
<title>
<key>ru</key>
<value>Версия программы обновлена (внесены изменения в конфигурацию информационной базы).
Для дальнейшей работы рекомендуется перезапустить программу</value>
<value>Версия приложения обновлена (внесены изменения в конфигурацию информационной базы).
Для дальнейшей работы рекомендуется перезапустить приложение.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
@@ -122,6 +122,266 @@
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаВариантыДействия</name>
<id>24</id>
<items xsi:type="form:FormField">
<name>ВариантПерезапуск</name>
<id>26</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ВариантДействия</segments>
</dataPath>
<titleLocation>None</titleLocation>
<handlers>
<event>OnChange</event>
<name>ВариантПерезапускПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ВариантПерезапускРасширеннаяПодсказка</name>
<id>28</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВариантПерезапускКонтекстноеМеню</name>
<id>27</id>
<autoFill>true</autoFill>
</contextMenu>
<type>RadioButtonField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:RadioButtonsFieldExtInfo">
<choiceList>
<presentation>
<key>ru</key>
<value>Применить исправление прямо сейчас (потребуется перезапуск)</value>
</presentation>
<value xsi:type="core:NumberValue">
<value>0</value>
</value>
</choiceList>
<orientation>Vertical</orientation>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаЗапланировать</name>
<id>35</id>
<items xsi:type="form:FormField">
<name>ВариантЗапланировать</name>
<id>29</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ВариантДействия</segments>
</dataPath>
<titleLocation>None</titleLocation>
<handlers>
<event>OnChange</event>
<name>ВариантЗапланироватьПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ВариантЗапланироватьРасширеннаяПодсказка</name>
<id>31</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВариантЗапланироватьКонтекстноеМеню</name>
<id>30</id>
<autoFill>true</autoFill>
</contextMenu>
<type>RadioButtonField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:RadioButtonsFieldExtInfo">
<choiceList>
<presentation>
<key>ru</key>
<value>Запланировать перезапуск на указанное время:</value>
</presentation>
<value xsi:type="core:NumberValue">
<value>1</value>
</value>
</choiceList>
<orientation>Vertical</orientation>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ВремяПерезапуска</name>
<id>37</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ВремяПерезапуска</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>ВремяПерезапускаРасширеннаяПодсказка</name>
<id>39</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВремяПерезапускаКонтекстноеМеню</name>
<id>38</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>4</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<choiceButton>false</choiceButton>
<spinButton>true</spinButton>
<editFormat>
<key>ru</key>
<value>ДФ=HH:mm</value>
</editFormat>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа запланировать</value>
</title>
<extendedTooltip>
<name>ГруппаЗапланироватьРасширеннаяПодсказка</name>
<id>36</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<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:FormField">
<name>ВариантНапомнитьЗавтра</name>
<id>32</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ВариантДействия</segments>
</dataPath>
<titleLocation>None</titleLocation>
<handlers>
<event>OnChange</event>
<name>ВариантНапомнитьЗавтраПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ВариантНапомнитьЗавтраРасширеннаяПодсказка</name>
<id>34</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВариантНапомнитьЗавтраКонтекстноеМеню</name>
<id>33</id>
<autoFill>true</autoFill>
</contextMenu>
<type>RadioButtonField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:RadioButtonsFieldExtInfo">
<choiceList>
<presentation>
<key>ru</key>
<value>Напомнить завтра</value>
</presentation>
<value xsi:type="core:NumberValue">
<value>2</value>
</value>
</choiceList>
<orientation>Vertical</orientation>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа варианты действия</value>
</title>
<extendedTooltip>
<name>ГруппаВариантыДействияРасширеннаяПодсказка</name>
<id>25</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаРасписание</name>
<id>20</id>
@@ -261,16 +521,16 @@
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаПерезапустить</name>
<id>4</id>
<name>ФормаВыполнитьДействие</name>
<id>40</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаПерезапуститьРасширеннаяПодсказка</name>
<id>5</id>
<name>ФормаВыполнитьДействиеРасширеннаяПодсказка</name>
<id>41</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -278,7 +538,7 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.Перезапустить</commandName>
<commandName>Form.Command.ВыполнитьДействие</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
@@ -286,33 +546,6 @@
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаНапомнитьПозже</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ФормаНапомнитьПозжеРасширеннаяПодсказка</name>
<id>7</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>8</id>
@@ -449,50 +682,46 @@
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>Перезапустить</name>
<attributes>
<name>ВариантДействия</name>
<title>
<key>ru</key>
<value>Перезапустить</value>
<value>Вариант действия</value>
</title>
<id>1</id>
<toolTip>
<key>ru</key>
<value>Перезапустить</value>
</toolTip>
<use>
<id>8</id>
<valueType>
<types>Number</types>
<numberQualifiers>
<precision>1</precision>
</numberQualifiers>
</valueType>
<view>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>Перезапустить</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>НапомнитьПозже</name>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ВремяПерезапуска</name>
<title>
<key>ru</key>
<value>Напомнить завтра</value>
<value>Время перезапуска</value>
</title>
<id>2</id>
<toolTip>
<key>ru</key>
<value>Отложить напоминание до завтра</value>
</toolTip>
<use>
<id>9</id>
<valueType>
<types>Date</types>
<dateQualifiers>
<dateFractions>Time</dateFractions>
</dateQualifiers>
</valueType>
<view>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>НапомнитьПозже</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>БольшеНеНапоминать</name>
<title>
@@ -502,7 +731,7 @@
<id>3</id>
<toolTip>
<key>ru</key>
<value>Больше не напоминать</value>
<value>Отключение напоминаний о перезапуске для всех следующих уведомлений.</value>
</toolTip>
<use>
<common>true</common>
@@ -515,6 +744,24 @@
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>ВыполнитьДействие</name>
<title>
<key>ru</key>
<value>Выполнить действие</value>
</title>
<id>4</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ВыполнитьДействие</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -14,6 +14,7 @@
ПараметрыПроверки = Справочники.ВерсииРасширений.ДинамическиИзмененныеРасширения();
ПараметрыПроверки.Вставить("КонфигурацияБазыДанныхИзмененаДинамически", КонфигурацияБазыДанныхИзмененаДинамически());
КоличествоНовыхПатчей = 0;
Если ПараметрыПроверки.Исправления <> Неопределено И ПараметрыПроверки.Исправления.СписокНовых.Количество() > 0 Тогда
АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
ПараметрыМетода = Новый Массив;
@@ -25,15 +26,11 @@
ФоновоеЗадание.ОжидатьЗавершенияВыполнения(Неопределено);
ОписаниеНовыхПатчей = ПолучитьИзВременногоХранилища(АдресХранилища);
УточняющаяСсылка = " " + НСтр("ru = '<a href = ""%1"">Подробно</a>'");
Иначе
УточняющаяСсылка = "Ссылка";
КоличествоНовыхПатчей = ПараметрыПроверки.Исправления.СписокНовых.Количество();
КонецЕсли;
Сообщение = СтандартныеПодсистемыСервер.ТекстСообщенияПриДинамическомОбновлении(ПараметрыПроверки,
УточняющаяСсылка);
Элементы.Текст.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(Сообщение, "ПереходПоСсылке");
УстановитьОсновнойТекст(ПараметрыПроверки, КоличествоНовыхПатчей);
УстановитьВидимостьДоступность(ЭтотОбъект);
СРасписанием = Истина;
Если ПараметрыПроверки.Исправления = Неопределено
@@ -60,6 +57,16 @@
СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, Ключ);
ВремяПерезапуска = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
"ОбщиеНастройкиПользователя",
"ВремяПерезапускаПриложенияДляПримененияИсправлений",,,
ИмяПользователя());
Если Не ЗначениеЗаполнено(ВремяПерезапуска) Тогда
ВремяПерезапуска = Дата(1, 1, 1, 23, 00, 00);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -79,7 +86,22 @@
Документ = Новый ТекстовыйДокумент;
Документ.УстановитьТекст(ОписаниеНовыхПатчей);
Документ.Показать(НСтр("ru = 'Новые исправления ошибок'"));
Документ.Показать(НСтр("ru = 'Новые исправления (патчи)'"));
КонецПроцедуры
&НаКлиенте
Процедура ВариантПерезапускПриИзменении(Элемент)
УстановитьВидимостьДоступность(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ВариантЗапланироватьПриИзменении(Элемент)
УстановитьВидимостьДоступность(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ВариантНапомнитьЗавтраПриИзменении(Элемент)
УстановитьВидимостьДоступность(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
@@ -99,16 +121,18 @@
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Перезапустить(Команда)
СохранитьРасписание();
СтандартныеПодсистемыКлиент.ПропуститьПредупреждениеПередЗавершениемРаботыСистемы();
ЗавершитьРаботуСистемы(Истина, Истина);
КонецПроцедуры
&НаКлиенте
Процедура НапомнитьПозже(Команда)
НапомнитьЗавтра();
Закрыть();
Процедура ВыполнитьДействие(Команда)
Если ВариантДействия = 0 Тогда
СохранитьРасписание();
СтандартныеПодсистемыКлиент.ПропуститьПредупреждениеПередЗавершениемРаботыСистемы();
ЗавершитьРаботуСистемы(Истина, Истина);
ИначеЕсли ВариантДействия = 1 Тогда
ЗапланироватьПерезапуск();
ИначеЕсли ВариантДействия = 2 Тогда
СтандартныеПодсистемыКлиент.ОтключитьЗапланированныйПерезапуск();
НапомнитьЗавтра();
Закрыть();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -194,7 +218,7 @@
ТекущееРасписание.Вставить("Представление");
ТекущееРасписание.Вставить("Расписание");
ТекущееРасписание.Вставить("ПоследнееОповещение");
ПредставлениеРасписания = НСтр("ru = 'по умолчанию (каждые 20 минут)'");
ПредставлениеРасписания = НСтр("ru = 'один раз в день'");
Иначе
ПредставлениеРасписания = ТекущееРасписание.Представление;
КонецЕсли;
@@ -218,4 +242,115 @@
КонецПроцедуры
&НаСервере
Процедура УстановитьОсновнойТекст(ПараметрыПроверки, КоличествоНовыхПатчей)
ВыводитьПодробнее = Ложь;
Если КоличествоНовыхПатчей > 5 Тогда
КоличествоПатчейДляВывода = 5;
Иначе
КоличествоПатчейДляВывода = КоличествоНовыхПатчей;
ВыводитьПодробнее = Истина;
КонецЕсли;
ОписаниеПатчей = ОписаниеНовыхПатчей;
КраткиеОписанияПатчей = Новый Массив;
Для НомерПатча = 1 По КоличествоПатчейДляВывода Цикл
ЧислоСимволов = СтрНайти(ОписаниеПатчей, Символы.ПС);
ЧислоСимволов = ?(ЧислоСимволов = 0, СтрДлина(ОписаниеПатчей), ЧислоСимволов);
КраткоеОписание = СокрЛП(Лев(ОписаниеПатчей, ЧислоСимволов));
ОписаниеПатчей = СокрЛП(Сред(ОписаниеПатчей, ЧислоСимволов));
ОписаниеСокращено = Ложь;
Если СтрДлина(КраткоеОписание) > 150 Тогда
КраткоеОписание = Лев(КраткоеОписание, 151);
ЧислоСимволов = СтрНайти(КраткоеОписание, " ", НаправлениеПоиска.СКонца);
КраткоеОписание = Лев(КраткоеОписание, ЧислоСимволов);
КраткоеОписание = КраткоеОписание + "...";
ОписаниеСокращено = Истина;
ВыводитьПодробнее = Истина;
КонецЕсли;
НачалоСледующегоПатча = СтрНайти(ОписаниеПатчей, "EF_");
Если НачалоСледующегоПатча <> 0 Тогда
ОписаниеПатчей = Сред(ОписаниеПатчей, НачалоСледующегоПатча);
Если Не ОписаниеСокращено И НачалоСледующегоПатча > 1 Тогда
КраткоеОписание = КраткоеОписание + "...";
ВыводитьПодробнее = Истина;
КонецЕсли;
Иначе
МногострочноеОписание = ?(СтрНайти(ОписаниеПатчей, Символы.ПС) = 0, Ложь, Истина);
Если Не ОписаниеСокращено И МногострочноеОписание Тогда
КраткоеОписание = КраткоеОписание + "...";
ВыводитьПодробнее = Истина;
КонецЕсли;
КонецЕсли;
КраткиеОписанияПатчей.Добавить(СокрЛП(КраткоеОписание));
КонецЦикла;
КраткоеОписаниеПатчей = СтрСоединить(КраткиеОписанияПатчей, Символы.ПС);
ЧастиСообщения = Новый Массив;
ЧастиСообщения.Добавить(СтандартныеПодсистемыСервер.ТекстСообщенияПриДинамическомОбновлении(ПараметрыПроверки));
Если ЗначениеЗаполнено(ОписаниеНовыхПатчей) Тогда
ЧастиСообщения.Добавить("");
ЧастиСообщения.Добавить(КраткоеОписаниеПатчей);
Если ВыводитьПодробнее Тогда
ЧастиСообщения.Добавить("...");
ЧастиСообщения.Добавить("");
ЧастиСообщения.Добавить(НСтр("ru = '<a href = ""%1"">Подробнее</a>'"));
КонецЕсли;
КонецЕсли;
Сообщение = СтрСоединить(ЧастиСообщения, Символы.ПС);
Элементы.Текст.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(Сообщение, "ПереходПоСсылке");
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьДоступность(Форма)
Если Форма.ВариантДействия = 0 Тогда
ЗаголовокКнопкиВыполнитьДействие = НСтр("ru = 'Перезапустить'");
Форма.Элементы.ВремяПерезапуска.Доступность = Ложь;
ИначеЕсли Форма.ВариантДействия = 1 Тогда
ЗаголовокКнопкиВыполнитьДействие = НСтр("ru = 'Запланировать'");
Форма.Элементы.ВремяПерезапуска.Доступность = Истина;
ИначеЕсли Форма.ВариантДействия = 2 Тогда
ЗаголовокКнопкиВыполнитьДействие = НСтр("ru = 'Напомнить завтра'");
Форма.Элементы.ВремяПерезапуска.Доступность = Ложь;
КонецЕсли;
Форма.Элементы.ФормаВыполнитьДействие.Заголовок = ЗаголовокКнопкиВыполнитьДействие;
КонецПроцедуры
&НаКлиенте
Процедура ЗапланироватьПерезапуск()
СтандартныеПодсистемыКлиент.ОтключитьЗапланированныйПерезапуск();
ДатаСеанса = ОбщегоНазначенияКлиент.ДатаСеанса();
ВремяСеанса = Дата('00010101') + (ДатаСеанса-НачалоДня(ДатаСеанса));
СекундДоПерезапуска = ВремяПерезапуска - ВремяСеанса;
Если СекундДоПерезапуска < 560 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Минимальное время перезапуска: %1'"), Формат(ВремяСеанса + 600, "ДФ=HH:mm"));
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения,,"ВремяПерезапуска");
Возврат;
КонецЕсли;
СтандартныеПодсистемыКлиент.ПодключениеОбработчиковОжиданияПоказаОповещенийИПерезапуска(СекундДоПерезапуска);
СохранитьНастройкуВремяПерезапускаПриложенияДляПримененияИсправлений(ВремяПерезапуска);
НапомнитьЗавтраНаСервере();
Закрыть();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СохранитьНастройкуВремяПерезапускаПриложенияДляПримененияИсправлений(ВремяПерезапуска)
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ОбщиеНастройкиПользователя",
"ВремяПерезапускаПриложенияДляПримененияИсправлений",
ВремяПерезапуска);
КонецПроцедуры
#КонецОбласти
@@ -790,7 +790,7 @@
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>URLProcessing</event>
<name>ПредупреждениеОЗацикливанииОписаниеОбработкаНавигационнойСсылки</name>
<name>ПредупреждениеОбОтключенныхСценарияхОписаниеОбработкаНавигационнойСсылки</name>
</handlers>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
@@ -1259,6 +1259,31 @@
КонецПроцедуры
&НаКлиенте
Процедура ПредупреждениеОбОтключенныхСценарияхОписаниеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если НавигационнаяСсылкаФорматированнойСтроки = "СписокСценариев" Тогда
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ПослеВыбораОтключенногоСценария", ЭтотОбъект);
ПоказатьВыборИзМеню(Оповещение, ОтключенныеСценарии, Элементы.ПредупреждениеОбОтключенныхСценарияхОписание);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораОтключенногоСценария(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ПоказатьЗначение(,Результат.Значение);
КонецПроцедуры
&НаКлиенте
Процедура ИнформацияОПереходеНаИнтернетОписаниеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
@@ -1666,16 +1691,18 @@
Если ОтключенныеСценарии.Количество() = 1 Тогда
Шаблон = НСтр("ru = 'Обнаружен сценарий, который были отключен из-за ошибок выполнения: %1'");
Текст = СтрШаблон(Шаблон, ОтключенныеСценарии[0].Значение);
Элементы.ПредупреждениеОбОтключенныхСценарияхОписание.Заголовок = Текст;
Шаблон = НСтр("ru = 'Сценарий <a href = %1>""%2""</a> был отключен из-за ошибок синхронизации. Включите сценарий после устранения проблем.'");
Сценарий = ОтключенныеСценарии[0].Значение;
ТекстПредупреждения = СтрШаблон(Шаблон, ПолучитьНавигационнуюСсылку(Сценарий), Сценарий);
Элементы.ПредупреждениеОбОтключенныхСценарияхОписание.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(ТекстПредупреждения);
ИначеЕсли ОтключенныеСценарии.Количество() > 1 Тогда
Шаблон = НСтр("ru = 'Обнаружены сценарии, которые были отключены из-за ошибок выполнения: %1'");
МассивСценариев = ОтключенныеСценарии.ВыгрузитьЗначения();
Текст = СтрШаблон(Шаблон, СтрСоединить(МассивСценариев, ", "));
Элементы.ПредупреждениеОбОтключенныхСценарияхОписание.Заголовок = Текст;
ТекстПредупреждения =
НСтр("ru = 'Обнаружены <a href = ""СписокСценариев"">сценарии</a>, которые были отключены из-за ошибок выполнения. Включите сценарий после устранения проблем.'");
Элементы.ПредупреждениеОбОтключенныхСценарияхОписание.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(ТекстПредупреждения);
КонецЕсли;
@@ -1843,4 +1870,5 @@
КонецПроцедуры
#КонецОбласти
@@ -158,12 +158,15 @@
Если ЗначениеЗаполнено(АдресОтвета) Тогда
АвтоматическаяПодстановкаАдресаОтвета = Ложь;
Иначе
Если УчетнаяЗапись.ИспользоватьДляПолучения Тогда
РеквизитыУчетнойЗаписи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетнаяЗапись,
"ИспользоватьДляПолучения,ИмяПользователя,АдресЭлектроннойПочты");
Если РеквизитыУчетнойЗаписи.ИспользоватьДляПолучения Тогда
// Устанавливаем почтовый адрес по умолчанию.
Если ЗначениеЗаполнено(УчетнаяЗапись.ИмяПользователя) Тогда
АдресОтвета = УчетнаяЗапись.ИмяПользователя + " <" + УчетнаяЗапись.АдресЭлектроннойПочты + ">";
Если ЗначениеЗаполнено(РеквизитыУчетнойЗаписи.ИмяПользователя) Тогда
АдресОтвета = РеквизитыУчетнойЗаписи.ИмяПользователя + " <" + РеквизитыУчетнойЗаписи.АдресЭлектроннойПочты + ">";
Иначе
АдресОтвета = УчетнаяЗапись.АдресЭлектроннойПочты;
АдресОтвета = РеквизитыУчетнойЗаписи.АдресЭлектроннойПочты;
КонецЕсли;
КонецЕсли;
@@ -3824,6 +3824,14 @@
<name>ОбъектыПечати</name>
<valueType/>
</parameters>
<parameters>
<name>ПараметрыВывода</name>
<valueType/>
</parameters>
<parameters>
<name>Сообщения</name>
<valueType/>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -52,6 +52,11 @@
КонецЦикла;
КонецЕсли;
ПараметрыВывода = Параметры.ПараметрыВывода;
Если ПараметрыВывода = Неопределено Тогда
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
КонецЕсли;
Если Параметры.КоллекцияПечатныхФорм = Неопределено Тогда
КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
Если Отказ Тогда
@@ -63,20 +68,12 @@
ОбъектыПечати = Параметры.ОбъектыПечати;
КонецЕсли;
СообщенияФоновогоЗадания = Неопределено;
Параметры.Свойство("Сообщения", СообщенияФоновогоЗадания);
Если СообщенияФоновогоЗадания <> Неопределено Тогда
Для Каждого Сообщение Из СообщенияФоновогоЗадания Цикл
Если Параметры.Сообщения <> Неопределено Тогда
Для Каждого Сообщение Из Параметры.Сообщения Цикл
ОбщегоНазначения.СообщитьПользователю(Сообщение.Текст);
КонецЦикла;
КонецЕсли;
ПараметрыВывода = Неопределено;
Параметры.Свойство("ПараметрыВывода", ПараметрыВывода);
Если ПараметрыВывода = Неопределено Тогда
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
КонецЕсли;
СоздатьРеквизитыИЭлементыФормыДляПечатныхФорм(КоллекцияПечатныхФорм);
СохранитьНастройкиКомплектаПоУмолчанию();
ЗагрузитьНастройкиКоличестваКопий();
@@ -192,9 +189,11 @@
Если ЗаписанныеОбъекты.Количество() > 0 Тогда
ОповеститьОбИзменении(ТипЗнч(ЗаписанныеОбъекты[0]));
КонецЕсли;
Для Каждого ЗаписанныйОбъект Из ЗаписанныеОбъекты Цикл
Оповестить("Запись_Файл", Новый Структура, ЗаписанныйОбъект);
КонецЦикла;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиСлужебныйКлиент");
МодульРаботаСФайламиСлужебныйКлиент.ОповеститьОбИзмененииФайлов(ЗаписанныеОбъекты);
КонецЕсли;
ПоказатьОповещениеПользователя(, , НСтр("ru = 'Сохранение завершено'"), БиблиотекаКартинок.Информация32);
КонецЕсли;
@@ -375,9 +374,12 @@
Если ЗаписанныеОбъекты.Количество() > 0 Тогда
ОповеститьОбИзменении(ТипЗнч(ЗаписанныеОбъекты[0]));
КонецЕсли;
Для Каждого ЗаписанныйОбъект Из ЗаписанныеОбъекты Цикл
Оповестить("Запись_Файл", Новый Структура, ЗаписанныйОбъект);
КонецЦикла;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиСлужебныйКлиент");
МодульРаботаСФайламиСлужебныйКлиент.ОповеститьОбИзмененииФайлов(ЗаписанныеОбъекты);
КонецЕсли;
ПоказатьОповещениеПользователя(, , НСтр("ru = 'Сохранение и подписание завершено'"), БиблиотекаКартинок.Информация32);
КонецПроцедуры
@@ -848,7 +848,7 @@
СохранитьПечатныеФормыВКаталог(ВыбранноеЗначение.СписокВложений, ВыбранноеЗначение.ПапкаДляСохранения);
КонецЕсли;
Иначе
ИначеЕсли ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
Если ВыбранноеЗначение.Подписать Тогда
ЗаписанныеОбъекты = ПараметрыВыбора.ЗаписанныеОбъекты;
Иначе
@@ -859,9 +859,9 @@
Если ЗаписанныеОбъекты.Количество() > 0 Тогда
ОповеститьОбИзменении(ТипЗнч(ЗаписанныеОбъекты[0]));
КонецЕсли;
Для Каждого ЗаписанныйОбъект Из ЗаписанныеОбъекты Цикл
Оповестить("Запись_Файл", Новый Структура, ЗаписанныйОбъект);
КонецЦикла;
МодульРаботаСФайламиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиСлужебныйКлиент");
МодульРаботаСФайламиСлужебныйКлиент.ОповеститьОбИзмененииФайлов(ЗаписанныеОбъекты);
ПоказатьОповещениеПользователя(НСтр("ru = 'Сохранение завершено'"), , , БиблиотекаКартинок.Информация32);
КонецЕсли;
@@ -998,7 +998,7 @@
УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
// Ветка процедуры, возникающая после установки расширения работы с файлами.
// Ветка процедуры после установки расширения для работы с 1С:Предприятием.
&НаКлиенте
Процедура ПродолжитьПечатьПослеУстановкиРасширенияРаботыСФайлами(РасширениеПодключено, ДополнительныеПараметры) Экспорт
@@ -16,7 +16,7 @@
КонецЕсли;
КартинкаДоступна = БиблиотекаКартинок.ВнешняяКомпонентаДоступна;
КартинкаНеДоступна = БиблиотекаКартинок.ВнешняяКомпонентаНеДоступна;
КартинкаНеДоступна = БиблиотекаКартинок.СерыйКрест;
Элементы.Windows_x86_1СПредприятие.Картинка = ?(Windows_x86, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Windows_x86_Chrome.Картинка = ?(Windows_x86_Chrome, КартинкаДоступна, КартинкаНеДоступна);
@@ -42,7 +42,35 @@
Элементы.Linux_x86_64_ЯндексБраузер.Картинка = ?(Linux_x86_64_ЯндексБраузер, КартинкаДоступна, КартинкаНеДоступна);
Элементы.MacOS_x86_64_ЯндексБраузер.Картинка = ?(MacOS_x86_64_ЯндексБраузер, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Linux_E2K_1СПредприятие.Картинка = ?(Linux_E2K, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Linux_E2K_Chrome.Картинка = ?(Linux_E2K_Chrome, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Linux_E2K_Firefox.Картинка = ?(Linux_E2K_Firefox, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Linux_E2K_ЯндексБраузер.Картинка = ?(Linux_E2K_ЯндексБраузер, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Linux_ARM64_1СПредприятие.Картинка = ?(Linux_ARM64, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Linux_ARM64_Chrome.Картинка = ?(Linux_ARM64_Chrome, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Linux_ARM64_Firefox.Картинка = ?(Linux_ARM64_Firefox, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Linux_ARM64_ЯндексБраузер.Картинка = ?(Linux_ARM64_ЯндексБраузер, КартинкаДоступна, КартинкаНеДоступна);
Элементы.iOS_ARM.Картинка = ?(iOS_ARM, КартинкаДоступна, КартинкаНеДоступна);
Элементы.iOS_ARM64.Картинка = ?(iOS_ARM64, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Android_ARM.Картинка = ?(Android_ARM, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Android_x86_64.Картинка = ?(Android_x86_64, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Android_x86.Картинка = ?(Android_x86, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Android_ARM64.Картинка = ?(Android_ARM64, КартинкаДоступна, КартинкаНеДоступна);
Элементы.WindowsRT_ARM.Картинка = ?(WindowsRT_ARM, КартинкаДоступна, КартинкаНеДоступна);
Элементы.WindowsRT_x86.Картинка = ?(WindowsRT_x86, КартинкаДоступна, КартинкаНеДоступна);
Элементы.WindowsRT_x86_64.Картинка = ?(WindowsRT_x86_64, КартинкаДоступна, КартинкаНеДоступна);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ОткрытьСсылку(Команда)
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("https://its.1c.ru/db/v83doc#bookmark:adm:TI000000069");
КонецПроцедуры
#КонецОбласти
@@ -2410,10 +2410,10 @@
КонецЕсли;
Ячейка = Результат.Область(НомерСтроки, НомерСтолбца, НомерСтроки, НомерСтолбца);
ЗаполнитьЗначенияСвойств(Ячейка, КопируемаяЯчейка);
Если КопируемаяЯчейка.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Шаблон Тогда
Ячейка.Текст = КопируемаяЯчейка.Текст;
Иначе
ЗаполнитьЗначенияСвойств(Ячейка, КопируемаяЯчейка);
КонецЕсли;
КонецЦикла;
КонецЦикла;
@@ -18,17 +18,6 @@
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПродолжитьПопыткуУстановки(Команда)
Закрыть(Истина);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
@@ -44,3 +33,15 @@
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПродолжитьПопыткуУстановки(Команда)
Закрыть(Истина);
КонецПроцедуры
#КонецОбласти
@@ -13662,7 +13662,7 @@
<common>true</common>
</use>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.СкрытаяНастройкаОтчета</picture>
<picture>CommonPicture.СерыйКрест</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
@@ -6153,7 +6153,7 @@
ДоступныеРежимыОтображения.Добавить("ПоказыватьТолькоФлажокВНастройкахОтчета", НСтр("ru = 'Только флажок в настройках отчета'"), , БиблиотекаКартинок.ОбычныйДоступСФлажком);
КонецЕсли;
ДоступныеРежимыОтображения.Добавить("НеПоказывать", НСтр("ru = 'Не показывать'"), , БиблиотекаКартинок.СкрытаяНастройкаОтчета);
ДоступныеРежимыОтображения.Добавить("НеПоказывать", НСтр("ru = 'Не показывать'"), , БиблиотекаКартинок.СерыйКрест);
Возврат ДоступныеРежимыОтображения;
@@ -1004,9 +1004,7 @@
&НаКлиенте
Процедура СохранитьОтчет(Команда)
ТекстПредложения = НСтр("ru = 'Для сохранения результата отчета в файл рекомендуется
|установить расширение для работы с файлами.'");
ТекстПредложения = НСтр("ru = 'Для сохранения результата отчета в файл рекомендуется установить расширение для работы с 1С:Предприятием.'");
Обработчик = Новый ОписаниеОповещения("СохранитьОтчетЗавершение", ЭтотОбъект);
ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(Обработчик, ТекстПредложения);
@@ -1016,7 +1014,7 @@
Процедура СохранитьСнимокОтчета(Команда)
Если НастройкиОтчета.СвойстваРезультата.КомпоновщикНастроек = Неопределено Тогда
ТекстПредупреждения = НСтр("ru = 'Перед сохранением снимка необходимо сформировать отчет'");
ТекстПредупреждения = НСтр("ru = 'Перед сохранением снимка необходимо сформировать отчет.'");
ПоказатьПредупреждение(, ТекстПредупреждения);
Возврат;
КонецЕсли;
@@ -1202,10 +1202,6 @@
КонецЦикла;
Для Каждого Набор Из НаборыРегистровБухгалтерии Цикл
Набор.Записать();
КонецЦикла;
Исключение
ОбменДаннымиСлужебный.ОтключитьОбновлениеКлючейДоступа(Ложь, Ложь);
@@ -1228,6 +1224,23 @@
КонецЦикла;
Попытка
Для Каждого Набор Из НаборыРегистровБухгалтерии Цикл
Набор.Записать();
КонецЦикла;
Исключение
ОбменДаннымиСлужебный.ОтключитьОбновлениеКлючейДоступа(Ложь, Ложь);
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста(),
УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
УстановитьИспользованиеИтоговРегистров(Истина);
ОбменДаннымиСлужебный.ОтключитьОбновлениеКлючейДоступа(Ложь, Ложь);
@@ -464,8 +464,6 @@
Функция СписокРегионов() Экспорт
Классификатор = РегистрыСведений.АдресныеОбъекты.КлассификаторСубъектовРФ();
Результат = Новый Соответствие;
Запрос = Новый Запрос;
@@ -2007,6 +2007,8 @@
//
Процедура УстановитьИспользованиеВебСервиса(Использовать) Экспорт
УстановитьПривилегированныйРежим(Истина);
Источник = ?(Использовать, "Авто", "Приложение");
Константы.ИсточникДанныхАдресногоКлассификатора.Установить(Источник);
@@ -2020,6 +2022,8 @@
//
Функция ИспользоватьВебСервис() Экспорт
УстановитьПривилегированныйРежим(Истина);
Источник = Константы.ИсточникДанныхАдресногоКлассификатора.Получить();
Возврат СтрСравнить(Источник, "Приложение") <> 0;
@@ -1108,11 +1108,11 @@
Возврат Результат;
КонецЕсли;
КонецЕсли;
ИменаСвойств = "КлючВарианта, Родитель, Родитель.КлючВарианта" + ?(НадоПрочитатьСсылкуОтчета, ", Отчет", "")
+ ?(НадоПрочитатьНастройки, ", Настройки", "");
ИменаСвойств = "КлючВарианта,Пользовательский,Родитель,Родитель.КлючВарианта" + ?(НадоПрочитатьСсылкуОтчета, ",Отчет", "")
+ ?(НадоПрочитатьНастройки, ",Настройки", ""); // АПК:1297 Имена реквизитов, поэтому без НСтр.
СвойстваВарианта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Результат.СсылкаВарианта, ИменаСвойств);
Результат.КлючВарианта = СвойстваВарианта.КлючВарианта;
Если ЗначениеЗаполнено(СвойстваВарианта.Родитель) Тогда
Если СвойстваВарианта.Пользовательский И ЗначениеЗаполнено(СвойстваВарианта.Родитель) Тогда
Если ТипЗнч(СвойстваВарианта.РодительКлючВарианта) = Тип("Строка")
И ЗначениеЗаполнено(СвойстваВарианта.РодительКлючВарианта) Тогда
КлючПредопределенногоВарианта = СвойстваВарианта.РодительКлючВарианта;
@@ -117,6 +117,7 @@
ЗаполнитьЗначенияСвойств(ОбщаяКомпонента, Информация.Реквизиты); // По данным манифеста.
ЗаполнитьЗначенияСвойств(ОбщаяКомпонента, ОписаниеКомпоненты); // По данным с сайта.
ОбщаяКомпонента.ЦелевыеПлатформы = Новый ХранилищеЗначения(Информация.Реквизиты.ЦелевыеПлатформы);
ОбщаяКомпонента.ХранилищеКомпоненты = Новый ХранилищеЗначения(ДвоичныеДанныеКомпоненты);
ОбщаяКомпонента.Записать();
@@ -202,6 +203,7 @@
КонецФункции
#Область ОбработчикиСобытийПодсистемКонфигурации
// См. ГрупповоеИзменениеОбъектовПереопределяемый.ПриОпределенииОбъектовСРедактируемымиРеквизитами.
@@ -257,6 +259,21 @@
КонецПроцедуры
// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления.
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.9.221";
Обработчик.ОбщиеДанные = Истина;
Обработчик.Идентификатор = Новый УникальныйИдентификатор("a76bc949-68aa-4ba3-b9f3-a03b530da817");
Обработчик.Процедура = "Справочники.ОбщиеВнешниеКомпоненты.ОбработатьОбщиеВнешниеКомпоненты";
Обработчик.Комментарий = НСтр("ru = 'Заполнение реквизитов совместимости общих компонент.'");
Обработчик.РежимВыполнения = "Оперативно";
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -21,6 +21,7 @@
// который выполняет код встроенного языка; Неопределено - поддерживается поведение платформы по умолчанию:
// не изолированно - если компонентой поддерживается только этот режим, изолированно - в остальных случаях.
// См. https://its.1c.ru/db/v83doc#bookmark:dev:TI000001866
// * ПолноеИмяМакета - Строка - полное имя макета конфигурации с ZIP-архивом, в котором храниться внешняя компонента.
//
//
Функция ПараметрыПодключения() Экспорт
@@ -28,6 +29,7 @@
Параметры = Новый Структура;
Параметры.Вставить("ИдентификаторыСозданияОбъектов", Новый Массив);
Параметры.Вставить("Изолированно", Ложь);
Параметры.Вставить("ПолноеИмяМакета");
Возврат Параметры;
@@ -270,6 +272,7 @@
ЗаполнитьЗначенияСвойств(Объект, Информация.Реквизиты); // По данным манифеста.
ЗаполнитьЗначенияСвойств(Объект, СтрокаРезультата); // По данным с сайта.
Объект.ЦелевыеПлатформы = Новый ХранилищеЗначения(Информация.Реквизиты.ЦелевыеПлатформы);
Объект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", Информация.ДвоичныеДанные);
Объект.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
@@ -127,7 +127,7 @@
ЧтениеАрхива.Извлечь(ЭлементАрхива, ВременныйКаталог);
ФайлManifestXML = ВременныйКаталог + ПолучитьРазделительПути() + ЭлементАрхива.ПолноеИмя;
ЗаполнитьРеквизитыПоManifestXML(ФайлManifestXML, Реквизиты);
ЗаполнитьРеквизитыПоManifestXML(ФайлManifestXML, Реквизиты.ЦелевыеПлатформы);
НайденМанифест = Истина;
@@ -340,6 +340,7 @@
Объект.ИмяФайла = ?(ЗначениеЗаполнено(Параметры.ИмяФайла), Параметры.ИмяФайла, Информация.Реквизиты.ИмяФайла);
Объект.ОписаниеОшибки = Параметры.ОписаниеОшибки;
Объект.ОбновлятьСПортала1СИТС = Параметры.ОбновлятьСПортала1СИТС;
Объект.ЦелевыеПлатформы = Новый ХранилищеЗначения(Информация.Реквизиты.ЦелевыеПлатформы);
Если ИспользуемыеВнешниеКомпоненты <> Неопределено Тогда
СтрокаКомпоненты = ИспользуемыеВнешниеКомпоненты.Найти(Идентификатор, "Идентификатор");
@@ -471,13 +472,11 @@
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.9.163";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("cb3e8653-f1d2-4439-afdd-b1d27f6dcc2f");
Обработчик.Версия = "3.1.9.221";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("664e552f-4552-4eb2-970b-d63f66cc1c71");
Обработчик.Процедура = "Справочники.ВнешниеКомпоненты.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Обработчик.НачальноеЗаполнение = Истина;
Обработчик.Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Заполнение реквизитов ""%1"", ""%2"", ""%3"", которые ранее ошибочно были не заполнены, а также регистрация стандартных компонент для их автоматического обновления.'"),
"MacOS_x86_64_Safari", "MacOS_x86_64_Chrome", "MacOS_x86_64_Firefox");
Обработчик.Комментарий = НСтр("ru = 'Заполнение реквизитов совместимости компонент и добавление стандартных компонент в справочник Внешние компоненты.'");
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ВнешниеКомпоненты.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
Обработчик.ЧитаемыеОбъекты = "Справочник.ВнешниеКомпоненты";
@@ -791,7 +790,7 @@
Результат.Вставить("ОписаниеОшибки", "");
Результат.Вставить("Версия", "");
Информация = ВнешниеКомпонентыСлужебныйВызовСервера.ИнформацияОСохраненнойКомпоненте(Идентификатор, Версия);
Информация = ВнешниеКомпонентыСлужебныйВызовСервера.ИнформацияОСохраненнойКомпоненте(Идентификатор, Версия, ПараметрыПодключения.ПолноеИмяМакета);
Результат.Вставить("Версия", Версия);
Если Информация.Состояние = "ОтключенаАдминистратором" Тогда
Результат.ОписаниеОшибки = НСтр("ru = 'Компонента отключена администратором.'");
@@ -799,11 +798,12 @@
ИначеЕсли Информация.Состояние = "НеНайдена" Тогда
Результат.ОписаниеОшибки = НСтр("ru = 'Компонента отсутствует в списке разрешенных внешних компонент.'");
Возврат Результат;
ИначеЕсли Не ОперационнаяСистемаПоддерживаетсяКомпонентой(Информация.Реквизиты) Тогда
ИначеЕсли Информация.ЗаполненыЦелевыеПлатформы И Не ОперационнаяСистемаПоддерживаетсяКомпонентой(Информация.Реквизиты.ЦелевыеПлатформы) Тогда
СистемнаяИнформация = Новый СистемнаяИнформация;
Результат.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не предусмотрена работа компоненты в операционной системе %1.'"), Строка(СистемнаяИнформация.ТипПлатформы));
Возврат Результат;
КонецЕсли;
ПроверитьМестоположениеКомпоненты(Идентификатор, Информация.Местоположение);
Результат.Местоположение = Информация.Местоположение;
Возврат Результат;
@@ -816,18 +816,42 @@
СистемнаяИнформация = Новый СистемнаяИнформация;
Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86 Тогда
ИмяТипаПлатформы = ОбщегоНазначенияКлиентСервер.ИмяТипаПлатформы(СистемнаяИнформация.ТипПлатформы);
Если ИмяТипаПлатформы = "Linux_x86" Тогда
Возврат РеквизитыКомпоненты.Linux_x86;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64 Тогда
ИначеЕсли ИмяТипаПлатформы = "Linux_x86_64" Тогда
Возврат РеквизитыКомпоненты.Linux_x86_64;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86 Тогда
ИначеЕсли ИмяТипаПлатформы = "MacOS_x86" Тогда
Возврат РеквизитыКомпоненты.MacOS_x86;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86_64 Тогда
ИначеЕсли ИмяТипаПлатформы = "MacOS_x86_64" Тогда
Возврат РеквизитыКомпоненты.MacOS_x86_64;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда
ИначеЕсли ИмяТипаПлатформы = "Windows_x86" Тогда
Возврат РеквизитыКомпоненты.Windows_x86;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда
ИначеЕсли ИмяТипаПлатформы = "Windows_x86_64" Тогда
Возврат РеквизитыКомпоненты.Windows_x86_64;
ИначеЕсли ИмяТипаПлатформы = "Linux_ARM64" Тогда
Возврат РеквизитыКомпоненты.Linux_ARM64;
ИначеЕсли ИмяТипаПлатформы = "Linux_E2K" Тогда
Возврат РеквизитыКомпоненты.Linux_e2k;
ИначеЕсли ИмяТипаПлатформы = "Android_ARM" Тогда
Возврат РеквизитыКомпоненты.Android_ARM;
ИначеЕсли ИмяТипаПлатформы = "Android_ARM_64" Тогда
Возврат РеквизитыКомпоненты.Android_ARM64;
ИначеЕсли ИмяТипаПлатформы = "Android_x86" Тогда
Возврат РеквизитыКомпоненты.Android_x86;
ИначеЕсли ИмяТипаПлатформы = "Android_x86_64" Тогда
Возврат РеквизитыКомпоненты.Android_x86_64;
ИначеЕсли ИмяТипаПлатформы = "iOS_ARM" Тогда
Возврат РеквизитыКомпоненты.iOS_ARM;
ИначеЕсли ИмяТипаПлатформы = "iOS_ARM_64" Тогда
Возврат РеквизитыКомпоненты.iOS_ARM64;
ИначеЕсли ИмяТипаПлатформы = "WinRT_ARM" Тогда
Возврат РеквизитыКомпоненты.WindowsRT_ARM;
ИначеЕсли ИмяТипаПлатформы = "WinRT_x86" Тогда
Возврат РеквизитыКомпоненты.WindowsRT_x86;
ИначеЕсли ИмяТипаПлатформы = "WinRT_x86_64" Тогда
Возврат РеквизитыКомпоненты.WindowsRT_x86_64;
КонецЕсли;
Возврат Ложь;
@@ -856,6 +880,7 @@
// * Местоположение - Строка
// * Ссылка - ЛюбаяСсылка
// * Реквизиты - см. РеквизитыКомпоненты
// * ЗаполненыЦелевыеПлатформы - Булево
// * ПоследняяВерсияКомпонентыИзМакета
// - см. СтандартныеПодсистемыПовтИсп.ПоследняяВерсияКомпонентыИзМакета
// - Неопределено
@@ -870,6 +895,7 @@
Результат.Вставить("ДоступнаЗагрузкаИзФайла", ДоступнаЗагрузкаИзФайла());
Результат.Вставить("ДоступнаЗагрузкаСПортала", ДоступнаЗагрузкаСПортала());
Результат.Вставить("ПоследняяВерсияКомпонентыИзМакета");
Результат.Вставить("ЗаполненыЦелевыеПлатформы", Ложь);
Если ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ВнешниеКомпонентыВМоделиСервиса") Тогда
@@ -902,9 +928,23 @@
Если Результат.Состояние = "НайденаВОбщемХранилище" Тогда
Реквизиты.Удалить("ИмяФайла");
КонецЕсли;
Реквизиты.ЦелевыеПлатформы = Неопределено;
РеквизитыОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Результат.Ссылка, Реквизиты);
РеквизитыОбъекта.ЦелевыеПлатформы = РеквизитыОбъекта.ЦелевыеПлатформы.Получить();
Если РеквизитыОбъекта.ЦелевыеПлатформы = Неопределено Тогда
ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не заполнена информация о совместимости компоненты %1.'"), Идентификатор);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Проверка совместимости компоненты'",
ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Предупреждение, , Результат.Ссылка, ТекстПредупреждения);
РеквизитыОбъекта.ЦелевыеПлатформы = ЦелевыеПлатформы();
Иначе
Результат.ЗаполненыЦелевыеПлатформы = Истина;
КонецЕсли;
ЗаполнитьЗначенияСвойств(Результат.Реквизиты, РеквизитыОбъекта);
Результат.Местоположение = ПолучитьНавигационнуюСсылку(Результат.Ссылка, "ХранилищеКомпоненты");
@@ -918,6 +958,29 @@
КонецФункции
// Возвращаемое значение:
// Структура:
// * ЦелевыеПлатформы - см. ЦелевыеПлатформы
// * Идентификатор - Строка
// * Наименование - Строка
// * Версия - Строка
// * ДатаВерсии - Дата
// * ИмяФайла - Строка
//
Функция РеквизитыКомпоненты()
Реквизиты = Новый Структура;
Реквизиты.Вставить("Идентификатор");
Реквизиты.Вставить("Наименование");
Реквизиты.Вставить("Версия");
Реквизиты.Вставить("ДатаВерсии");
Реквизиты.Вставить("ИмяФайла");
Реквизиты.Вставить("ЦелевыеПлатформы", ЦелевыеПлатформы());
Возврат Реквизиты;
КонецФункции
// Возвращаемое значение:
// Структура:
// * Windows_x86 - Булево
@@ -940,41 +1003,62 @@
// * Linux_x86_ЯндексБраузер - Булево
// * Linux_x86_64_ЯндексБраузер - Булево
// * MacOS_x86_64_ЯндексБраузер - Булево
// * Идентификатор - Строка
// * Наименование - Строка
// * Версия - Строка
// * ДатаВерсии - Дата
// * ИмяФайла - Строка
// * Linux_E2K - Булево
// * Linux_E2K_Firefox - Булево
// * Linux_E2K_ЯндексБраузер - Булево
// * Linux_E2K_Chrome - Булево
// * Linux_ARM64 - Булево
// * iOS_ARM - Булево
// * iOS_ARM64 - Булево
// * Android_ARM - Булево
// * Android_x86_64 - Булево
// * Android_x86 - Булево
// * Android_ARM64 - Булево
// * WindowsRT_ARM - Булево
// * WindowsRT_x86 - Булево
// * WindowsRT_x86_64 - Булево
//
Функция РеквизитыКомпоненты()
Функция ЦелевыеПлатформы()
Реквизиты = Новый Структура;
Реквизиты.Вставить("Windows_x86");
Реквизиты.Вставить("Windows_x86_64");
Реквизиты.Вставить("Linux_x86");
Реквизиты.Вставить("Linux_x86_64");
Реквизиты.Вставить("Windows_x86_Firefox");
Реквизиты.Вставить("Linux_x86_Firefox");
Реквизиты.Вставить("Linux_x86_64_Firefox");
Реквизиты.Вставить("Windows_x86_MSIE");
Реквизиты.Вставить("Windows_x86_64_MSIE");
Реквизиты.Вставить("Windows_x86_Chrome");
Реквизиты.Вставить("Linux_x86_Chrome");
Реквизиты.Вставить("Linux_x86_64_Chrome");
Реквизиты.Вставить("MacOS_x86_64");
Реквизиты.Вставить("MacOS_x86_64_Safari");
Реквизиты.Вставить("MacOS_x86_64_Chrome");
Реквизиты.Вставить("MacOS_x86_64_Firefox");
Реквизиты.Вставить("Windows_x86_ЯндексБраузер");
Реквизиты.Вставить("Windows_x86_64_ЯндексБраузер");
Реквизиты.Вставить("Linux_x86_ЯндексБраузер");
Реквизиты.Вставить("Linux_x86_64_ЯндексБраузер");
Реквизиты.Вставить("MacOS_x86_64_ЯндексБраузер");
Реквизиты.Вставить("Идентификатор");
Реквизиты.Вставить("Наименование");
Реквизиты.Вставить("Версия");
Реквизиты.Вставить("ДатаВерсии");
Реквизиты.Вставить("ИмяФайла");
Реквизиты.Вставить("Windows_x86", Ложь);
Реквизиты.Вставить("Windows_x86_64", Ложь);
Реквизиты.Вставить("Linux_x86", Ложь);
Реквизиты.Вставить("Linux_x86_64", Ложь);
Реквизиты.Вставить("Windows_x86_Firefox", Ложь);
Реквизиты.Вставить("Linux_x86_Firefox", Ложь);
Реквизиты.Вставить("Linux_x86_64_Firefox", Ложь);
Реквизиты.Вставить("Windows_x86_MSIE", Ложь);
Реквизиты.Вставить("Windows_x86_64_MSIE", Ложь);
Реквизиты.Вставить("Windows_x86_Chrome", Ложь);
Реквизиты.Вставить("Linux_x86_Chrome", Ложь);
Реквизиты.Вставить("Linux_x86_64_Chrome", Ложь);
Реквизиты.Вставить("MacOS_x86_64", Ложь);
Реквизиты.Вставить("MacOS_x86_64_Safari", Ложь);
Реквизиты.Вставить("MacOS_x86_64_Chrome", Ложь);
Реквизиты.Вставить("MacOS_x86_64_Firefox", Ложь);
Реквизиты.Вставить("Windows_x86_ЯндексБраузер", Ложь);
Реквизиты.Вставить("Windows_x86_64_ЯндексБраузер", Ложь);
Реквизиты.Вставить("Linux_x86_ЯндексБраузер", Ложь);
Реквизиты.Вставить("Linux_x86_64_ЯндексБраузер", Ложь);
Реквизиты.Вставить("MacOS_x86_64_ЯндексБраузер", Ложь);
Реквизиты.Вставить("Linux_E2K", Ложь);
Реквизиты.Вставить("Linux_E2K_Firefox", Ложь);
Реквизиты.Вставить("Linux_E2K_ЯндексБраузер", Ложь);
Реквизиты.Вставить("Linux_E2K_Chrome", Ложь);
Реквизиты.Вставить("Linux_ARM64", Ложь);
Реквизиты.Вставить("Linux_ARM64_Firefox", Ложь);
Реквизиты.Вставить("Linux_ARM64_ЯндексБраузер", Ложь);
Реквизиты.Вставить("Linux_ARM64_Chrome", Ложь);
Реквизиты.Вставить("iOS_ARM", Ложь);
Реквизиты.Вставить("iOS_ARM64", Ложь);
Реквизиты.Вставить("Android_ARM", Ложь);
Реквизиты.Вставить("Android_x86_64", Ложь);
Реквизиты.Вставить("Android_x86", Ложь);
Реквизиты.Вставить("Android_ARM64", Ложь);
Реквизиты.Вставить("WindowsRT_ARM", Ложь);
Реквизиты.Вставить("WindowsRT_x86", Ложь);
Реквизиты.Вставить("WindowsRT_x86_64", Ложь);
Возврат Реквизиты;
@@ -999,162 +1083,208 @@
АрхитектураПлатформы = НРег(ЧтениеXML.ЗначениеАтрибута("arch"));
ПрограммаПросмотра = НРег(ЧтениеXML.ЗначениеАтрибута("client"));
Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "i386"
И (ТипКомпоненты = "native" Или ТипКомпоненты = "com") Тогда
Если ОперационнаяСистема = "windows" И (ТипКомпоненты = "native" Или ТипКомпоненты = "com") Тогда
Если АрхитектураПлатформы = "i386" Тогда
Реквизиты.Windows_x86 = Истина;
Продолжить;
КонецЕсли;
Если АрхитектураПлатформы = "x86_64" Тогда
Реквизиты.Windows_x86_64 = Истина;
Продолжить;
КонецЕсли;
Реквизиты.Windows_x86 = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "x86_64"
И (ТипКомпоненты = "native" Или ТипКомпоненты = "com") Тогда
Если ОперационнаяСистема = "linux" И ТипКомпоненты = "native" Тогда
Если АрхитектураПлатформы = "i386" Тогда
Реквизиты.Linux_x86 = Истина;
Продолжить;
КонецЕсли;
Если АрхитектураПлатформы = "x86_64" Тогда
Реквизиты.Linux_x86_64 = Истина;
Продолжить;
КонецЕсли;
Если АрхитектураПлатформы = "arm64" Тогда
Реквизиты.Linux_ARM64 = Истина;
Продолжить;
КонецЕсли;
Если АрхитектураПлатформы = "e2k" Тогда
Реквизиты.Linux_E2K = Истина;
Продолжить;
КонецЕсли;
Реквизиты.Windows_x86_64 = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "i386"
И ТипКомпоненты = "native" Тогда
Реквизиты.Linux_x86 = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "x86_64"
И ТипКомпоненты = "native" Тогда
Реквизиты.Linux_x86_64 = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "i386"
И ТипКомпоненты = "plugin" И ПрограммаПросмотра = "firefox" Тогда
Реквизиты.Windows_x86_Firefox = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "i386"
И ТипКомпоненты = "plugin" И ПрограммаПросмотра = "firefox" Тогда
Реквизиты.Linux_x86_Firefox = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "x86_64"
И ТипКомпоненты = "plugin" И ПрограммаПросмотра = "firefox" Тогда
Реквизиты.Linux_x86_64_Firefox = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "i386"
И ТипКомпоненты = "plugin" И ПрограммаПросмотра = "msie" Тогда
Реквизиты.Windows_x86_MSIE = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "x86_64"
И ТипКомпоненты = "plugin" И ПрограммаПросмотра = "msie" Тогда
Реквизиты.Windows_x86_64_MSIE = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "i386"
И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "chrome"
Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Windows_x86_Chrome = Истина;
КонецЕсли;
Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "i386"
И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "chrome"
Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Linux_x86_Chrome = Истина;
КонецЕсли;
Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "x86_64"
И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "chrome"
Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Linux_x86_64_Chrome = Истина;
КонецЕсли;
Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64"
Или АрхитектураПлатформы = "universal") И ТипКомпоненты = "native" Тогда
Если ОперационнаяСистема = "macos" И ТипКомпоненты = "native" И (АрхитектураПлатформы = "x86_64"
Или АрхитектураПлатформы = "universal") Тогда
Реквизиты.MacOS_x86_64 = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64"
Или АрхитектураПлатформы = "universal") И ТипКомпоненты = "plugin"
И ПрограммаПросмотра = "safari" Тогда
Если ОперационнаяСистема = "windowsruntime" Тогда
Если АрхитектураПлатформы = "arm" Тогда
Реквизиты.WindowsRT_ARM = Истина;
ИначеЕсли АрхитектураПлатформы = "x86_64" Тогда
Реквизиты.WindowsRT_x86_64 = Истина;
ИначеЕсли АрхитектураПлатформы = "x86" Тогда
Реквизиты.WindowsRT_x86 = Истина;
КонецЕсли;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "android" Тогда
Если АрхитектураПлатформы = "arm" Тогда
Реквизиты.Android_ARM = Истина;
ИначеЕсли АрхитектураПлатформы = "arm64" Тогда
Реквизиты.Android_ARM64 = Истина;
ИначеЕсли АрхитектураПлатформы = "x86_64" Тогда
Реквизиты.Android_x86_64 = Истина;
ИначеЕсли АрхитектураПлатформы = "i386" Тогда
Реквизиты.Android_x86 = Истина;
КонецЕсли;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "ios" Тогда
Если АрхитектураПлатформы = "arm" Или АрхитектураПлатформы = "universal" Тогда
Реквизиты.iOS_ARM = Истина;
КонецЕсли;
Если АрхитектураПлатформы = "arm64" Или АрхитектураПлатформы = "universal" Тогда
Реквизиты.iOS_ARM64 = Истина;
КонецЕсли;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "linux" И ТипКомпоненты = "plugin" Тогда
Если АрхитектураПлатформы = "i386" И ПрограммаПросмотра = "firefox" Тогда
Реквизиты.Linux_x86_Firefox = Истина;
Продолжить;
КонецЕсли;
Если АрхитектураПлатформы = "x86_64" И ПрограммаПросмотра = "firefox" Тогда
Реквизиты.Linux_x86_64_Firefox = Истина;
Продолжить;
КонецЕсли;
Если АрхитектураПлатформы = "arm64" И ПрограммаПросмотра = "firefox" Тогда
Реквизиты.Linux_ARM64_Firefox = Истина;
Продолжить;
КонецЕсли;
Если АрхитектураПлатформы = "e2k" И ПрограммаПросмотра = "firefox" Тогда
Реквизиты.Linux_E2K_Firefox = Истина;
Продолжить;
КонецЕсли;
Если АрхитектураПлатформы = "i386" И (ПрограммаПросмотра = "yandexbrowser" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Linux_x86_ЯндексБраузер = Истина;
КонецЕсли;
Если АрхитектураПлатформы = "i386" И (ПрограммаПросмотра = "chrome" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Linux_x86_Chrome = Истина;
КонецЕсли;
Если АрхитектураПлатформы = "x86_64" И (ПрограммаПросмотра = "yandexbrowser" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Linux_x86_64_ЯндексБраузер = Истина;
КонецЕсли;
Если АрхитектураПлатформы = "x86_64" И (ПрограммаПросмотра = "chrome" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Linux_x86_64_Chrome = Истина;
КонецЕсли;
Если АрхитектураПлатформы = "arm64" И (ПрограммаПросмотра = "yandexbrowser" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Linux_ARM64_ЯндексБраузер = Истина;
КонецЕсли;
Если АрхитектураПлатформы = "arm64" И (ПрограммаПросмотра = "chrome" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Linux_ARM64_Chrome = Истина;
КонецЕсли;
Если АрхитектураПлатформы = "e2k" И (ПрограммаПросмотра = "yandexbrowser" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Linux_E2K_ЯндексБраузер = Истина;
КонецЕсли;
Если АрхитектураПлатформы = "e2k" И (ПрограммаПросмотра = "chrome" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Linux_E2K_Chrome = Истина;
КонецЕсли;
Реквизиты.MacOS_x86_64_Safari = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64"
Или АрхитектураПлатформы = "universal") И ТипКомпоненты = "plugin"
И (ПрограммаПросмотра = "chrome" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Если ОперационнаяСистема = "windows" И ТипКомпоненты = "plugin" Тогда
Реквизиты.MacOS_x86_64_Chrome = Истина;
Если АрхитектураПлатформы = "i386" И ПрограммаПросмотра = "msie" Тогда
Реквизиты.Windows_x86_MSIE = Истина;
Продолжить;
КонецЕсли;
КонецЕсли;
Если АрхитектураПлатформы = "x86_64" И ПрограммаПросмотра = "msie" Тогда
Реквизиты.Windows_x86_64_MSIE = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64"
Или АрхитектураПлатформы = "universal") И ТипКомпоненты = "plugin"
И ПрограммаПросмотра = "firefox" Тогда
Если АрхитектураПлатформы = "i386" И ПрограммаПросмотра = "firefox" Тогда
Реквизиты.Windows_x86_Firefox = Истина;
Продолжить;
КонецЕсли;
Если АрхитектураПлатформы = "i386" И (ПрограммаПросмотра = "chrome" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Windows_x86_Chrome = Истина;
КонецЕсли;
Если АрхитектураПлатформы = "i386" И (ПрограммаПросмотра = "yandexbrowser" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Windows_x86_ЯндексБраузер = Истина;
КонецЕсли;
Если АрхитектураПлатформы = "x86_64" И (ПрограммаПросмотра = "yandexbrowser" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Windows_x86_64_ЯндексБраузер = Истина;
КонецЕсли;
Реквизиты.MacOS_x86_64_Firefox = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "i386"
И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "yandexbrowser"
Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Windows_x86_ЯндексБраузер = Истина;
КонецЕсли;
Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "x86_64"
И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "yandexbrowser"
Или ПрограммаПросмотра = "anychromiumbased") Тогда
Если ОперационнаяСистема = "macos" И ТипКомпоненты = "plugin" Тогда
Реквизиты.Windows_x86_64_ЯндексБраузер = Истина;
Если (АрхитектураПлатформы = "x86_64" Или АрхитектураПлатформы = "universal") И ПрограммаПросмотра = "safari" Тогда
Реквизиты.MacOS_x86_64_Safari = Истина;
Продолжить;
КонецЕсли;
КонецЕсли;
Если (АрхитектураПлатформы = "x86_64" Или АрхитектураПлатформы = "universal") И ПрограммаПросмотра = "firefox" Тогда
Реквизиты.MacOS_x86_64_Firefox = Истина;
Продолжить;
КонецЕсли;
Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "i386"
И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "yandexbrowser"
Или ПрограммаПросмотра = "anychromiumbased") Тогда
Если (АрхитектураПлатформы = "x86_64" Или АрхитектураПлатформы = "universal") И (ПрограммаПросмотра = "chrome" Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.MacOS_x86_64_Chrome = Истина;
КонецЕсли;
Реквизиты.Linux_x86_ЯндексБраузер = Истина;
Если (АрхитектураПлатформы = "x86_64" Или АрхитектураПлатформы = "universal") И (ПрограммаПросмотра = "yandexbrowser"
Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.MacOS_x86_64_ЯндексБраузер = Истина;
КонецЕсли;
КонецЕсли;
Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "x86_64"
И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "yandexbrowser"
Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.Linux_x86_64_ЯндексБраузер = Истина;
КонецЕсли;
Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64"
Или АрхитектураПлатформы = "universal") И ТипКомпоненты = "plugin"
И (ПрограммаПросмотра = "yandexbrowser"
Или ПрограммаПросмотра = "anychromiumbased") Тогда
Реквизиты.MacOS_x86_64_ЯндексБраузер = Истина;
Продолжить;
КонецЕсли;
@@ -1345,7 +1475,7 @@
ЗаполнитьЗначенияСвойств(Объект, СтрокаРезультата); // По данным с сайта.
Объект.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Загружена с Портала 1С:ИТС. %1.'"), ТекущаяДатаСеанса());
Объект.ЦелевыеПлатформы = Новый ХранилищеЗначения(Информация.Реквизиты.ЦелевыеПлатформы);
Объект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", Информация.ДвоичныеДанные);
Если Не ЗначениеЗаполнено(Версия) Тогда // Если запрос конкретной версии - пропускаем.
@@ -105,7 +105,7 @@
КонецЕсли;
Если ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты) Тогда
Если Не Информация.ЗаполненыЦелевыеПлатформы Или ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты.ЦелевыеПлатформы) Тогда
Результат.Доступна = Истина;
ВыполнитьОбработкуОповещения(Оповещение, Результат);
@@ -121,9 +121,14 @@
ЭтотОбъект,
ПараметрыОповещения);
Если Не Контекст.ПредложитьУстановить Тогда
ВыполнитьОбработкуОповещения(ОповещениеФормы, Ложь);
Возврат;
КонецЕсли;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ТекстПояснения", Контекст.ТекстПояснения);
ПараметрыФормы.Вставить("ПоддерживаемыеКлиенты", Информация.Реквизиты);
ПараметрыФормы.Вставить("ПоддерживаемыеКлиенты", Информация.Реквизиты.ЦелевыеПлатформы);
ОткрытьФорму("ОбщаяФорма.УстановкаВнешнейКомпонентыНевозможна",
ПараметрыФормы,,,,, ОповещениеФормы);
@@ -191,34 +196,39 @@
КонецЕсли;
КонецЕсли;
Если ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты) Тогда
Если Не Информация.ЗаполненыЦелевыеПлатформы Или ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты.ЦелевыеПлатформы) Тогда
Результат.Доступна = Истина;
Возврат Результат;
Иначе
КнопкиВопроса = Новый СписокЗначений;
КнопкиВопроса.Добавить("Закрыть", НСтр("ru = 'Закрыть'"));
КнопкиВопроса.Добавить("ПродолжитьПопыткуУстановки", НСтр("ru = 'Продолжить попытку установки'"));
ЗаголовокВопроса = Контекст.ТекстПояснения;
Если ПустаяСтрока(ЗаголовокВопроса) Тогда
ЗаголовокВопроса = НСтр("ru = 'Установка внешней компоненты невозможна.'");
КонецЕсли;
ОписаниеОшибки = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
НСтр("ru = 'Не предусмотрена работа внешней компоненты
|в клиентском приложении <b>%1</b>.
|Обратитесь к разработчику внешней компоненты.'"), ПредставлениеТекущегоКлиента());
|в клиентском приложении <b>%1</b>.
|Обратитесь к разработчику внешней компоненты.'"), ПредставлениеТекущегоКлиента());
Ответ = Ждать ВопросАсинх(ОписаниеОшибки, КнопкиВопроса,, "Закрыть", ЗаголовокВопроса);
Если Ответ = "ПродолжитьПопыткуУстановки" Тогда
Результат.Доступна = Истина;
Иначе
Если Не Контекст.ПредложитьУстановить Тогда
Результат.Доступна = Ложь;
Результат.ОписаниеОшибки = ОписаниеОшибки;
Иначе
КнопкиВопроса = Новый СписокЗначений;
КнопкиВопроса.Добавить("Закрыть", НСтр("ru = 'Закрыть'"));
КнопкиВопроса.Добавить("ПродолжитьПопыткуУстановки", НСтр("ru = 'Продолжить попытку установки'"));
ЗаголовокВопроса = Контекст.ТекстПояснения;
Если ПустаяСтрока(ЗаголовокВопроса) Тогда
ЗаголовокВопроса = НСтр("ru = 'Установка внешней компоненты невозможна.'");
КонецЕсли;
Ответ = Ждать ВопросАсинх(ОписаниеОшибки, КнопкиВопроса,, "Закрыть", ЗаголовокВопроса);
Если Ответ = "ПродолжитьПопыткуУстановки" Тогда
Результат.Доступна = Истина;
Иначе
Результат.Доступна = Ложь;
Результат.ОписаниеОшибки = ОписаниеОшибки;
КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -320,7 +330,9 @@
КонецЕсли;
#КонецЕсли
Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86 Тогда
ИмяТипаПлатформы = ОбщегоНазначенияКлиентСервер.ИмяТипаПлатформы(СистемнаяИнформация.ТипПлатформы);
Если ИмяТипаПлатформы = "Linux_x86" Тогда
Если Браузер = Неопределено Тогда
Возврат Реквизиты.Linux_x86;
@@ -338,7 +350,7 @@
Возврат Реквизиты.Linux_x86_ЯндексБраузер;
КонецЕсли;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64 Тогда
ИначеЕсли ИмяТипаПлатформы = "Linux_x86_64" Тогда
Если Браузер = Неопределено Тогда
Возврат Реквизиты.Linux_x86_64;
@@ -356,7 +368,7 @@
Возврат Реквизиты.Linux_x86_64_ЯндексБраузер;
КонецЕсли;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86_64 Тогда
ИначеЕсли ИмяТипаПлатформы = "MacOS_x86_64" Тогда
Если Браузер = Неопределено Тогда
Возврат Реквизиты.MacOS_x86_64;
@@ -378,7 +390,7 @@
Возврат Реквизиты.MacOS_x86_64_ЯндексБраузер;
КонецЕсли;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда
ИначеЕсли ИмяТипаПлатформы = "Windows_x86" Тогда
Если Браузер = Неопределено Тогда
Возврат Реквизиты.Windows_x86;
@@ -400,7 +412,7 @@
Возврат Реквизиты.Windows_x86_ЯндексБраузер;
КонецЕсли;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда
ИначеЕсли ИмяТипаПлатформы = "Windows_x86_64" Тогда
Если Браузер = Неопределено Тогда
Возврат Реквизиты.Windows_x86_64;
@@ -422,7 +434,7 @@
Возврат Реквизиты.Windows_x86_64_ЯндексБраузер;
КонецЕсли;
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86 Тогда
ИначеЕсли ИмяТипаПлатформы = "MacOS_x86" Тогда
// В браузере может быть неправильно определен тип платформы.
Если Браузер = "Firefox" Тогда
@@ -437,6 +449,78 @@
Возврат Реквизиты.MacOS_x86_64_ЯндексБраузер;
КонецЕсли;
ИначеЕсли ИмяТипаПлатформы = "Linux_E2K" Тогда
Если Браузер = Неопределено Тогда
Возврат Реквизиты.Linux_E2K;
КонецЕсли;
Если Браузер = "Firefox" Тогда
Возврат Реквизиты.Linux_E2K_Firefox;
КонецЕсли;
Если Браузер = "Chrome" Тогда
Возврат Реквизиты.Linux_E2K_Chrome;
КонецЕсли;
Если Браузер = "ЯндексБраузер" Тогда
Возврат Реквизиты.Linux_E2K_ЯндексБраузер;
КонецЕсли;
ИначеЕсли ИмяТипаПлатформы = "Linux_ARM64" Тогда
Если Браузер = Неопределено Тогда
Возврат Реквизиты.Linux_ARM64;
КонецЕсли;
Если Браузер = "Firefox" Тогда
Возврат Реквизиты.Linux_ARM64_Firefox;
КонецЕсли;
Если Браузер = "Chrome" Тогда
Возврат Реквизиты.Linux_ARM64_Chrome;
КонецЕсли;
Если Браузер = "ЯндексБраузер" Тогда
Возврат Реквизиты.Linux_ARM64_ЯндексБраузер;
КонецЕсли;
ИначеЕсли ИмяТипаПлатформы = "iOS_ARM" Тогда
Возврат Реквизиты.iOS_ARM;
ИначеЕсли ИмяТипаПлатформы = "iOS_ARM64" Тогда
Возврат Реквизиты.iOS_ARM64;
ИначеЕсли ИмяТипаПлатформы = "Android_ARM" Тогда
Возврат Реквизиты.Android_ARM;
ИначеЕсли ИмяТипаПлатформы = "Android_ARM_64" Тогда
Возврат Реквизиты.Android_ARM64;
ИначеЕсли ИмяТипаПлатформы = "Android_x86" Тогда
Возврат Реквизиты.Android_x86;
ИначеЕсли ИмяТипаПлатформы = "Android_x86_64" Тогда
Возврат Реквизиты.Android_x86_64;
ИначеЕсли ИмяТипаПлатформы = "WinRT_ARM" Тогда
Возврат Реквизиты.WindowsRT_ARM;
ИначеЕсли ИмяТипаПлатформы = "WinRT_x86" Тогда
Возврат Реквизиты.WindowsRT_x86;
ИначеЕсли ИмяТипаПлатформы = "WinRT_x86_64" Тогда
Возврат Реквизиты.WindowsRT_x86_64;
КонецЕсли;
Возврат Ложь;
@@ -465,7 +549,6 @@
#Если ВебКлиент Тогда
Строка = СистемнаяИнформация.ИнформацияПрограммыПросмотра;
Строка = СистемнаяИнформация.ИнформацияПрограммыПросмотра;
Если СтрНайти(Строка, "YaBrowser/") > 0 Тогда
Браузер = НСтр("ru = 'Яндекс Браузер'");
ИначеЕсли СтрНайти(Строка, "Chrome/") > 0 Тогда
@@ -491,18 +574,41 @@
Приложение = НСтр("ru = 'толстый клиент'");
#КонецЕсли
Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда
ИмяТипаПлатформы = ОбщегоНазначенияКлиентСервер.ИмяТипаПлатформы(СистемнаяИнформация.ТипПлатформы);
Если ИмяТипаПлатформы = "Windows_x86" Тогда
Платформа = НСтр("ru = 'Windows x86'");
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда
ИначеЕсли ИмяТипаПлатформы = "Windows_x86_64" Тогда
Платформа = НСтр("ru = 'Windows x86-64'");
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86 Тогда
ИначеЕсли ИмяТипаПлатформы = "Linux_x86" Тогда
Платформа = НСтр("ru = 'Linux x86'");
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64 Тогда
ИначеЕсли ИмяТипаПлатформы = "Linux_x86_64" Тогда
Платформа = НСтр("ru = 'Linux x86-64'");
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86 Тогда
ИначеЕсли ИмяТипаПлатформы = "MacOS_x86" Тогда
Платформа = НСтр("ru = 'macOS x86'");
ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86_64 Тогда
ИначеЕсли ИмяТипаПлатформы = "MacOS_x86_64" Тогда
Платформа = НСтр("ru = 'macOS x86-64'");
ИначеЕсли ИмяТипаПлатформы = "Linux_ARM64" Тогда
Платформа = НСтр("ru = 'Linux ARM64'");
ИначеЕсли ИмяТипаПлатформы = "Linux_E2K" Тогда
Платформа = НСтр("ru = 'Linux E2K'");
ИначеЕсли ИмяТипаПлатформы = "Android_ARM" Тогда
Платформа = НСтр("ru = 'Android ARM'");
ИначеЕсли ИмяТипаПлатформы = "Android_ARM_64" Тогда
Платформа = НСтр("ru = 'Android_ARM64'");
ИначеЕсли ИмяТипаПлатформы = "Android_x86" Тогда
Платформа = НСтр("ru = 'Android x86'");
ИначеЕсли ИмяТипаПлатформы = "Android_x86_64" Тогда
Платформа = НСтр("ru = 'Android x86-64'");
ИначеЕсли ИмяТипаПлатформы = "iOS_ARM" Тогда
Платформа = НСтр("ru = 'iOS ARM'");
ИначеЕсли ИмяТипаПлатформы = "iOS_ARM_64" Тогда
Платформа = НСтр("ru = 'iOS ARM64'");
ИначеЕсли ИмяТипаПлатформы = "WinRT_ARM" Тогда
Платформа = НСтр("ru = 'WinRT ARM'");
ИначеЕсли ИмяТипаПлатформы = "WinRT_x86" Тогда
Платформа = НСтр("ru = 'WinRT x86'");
ИначеЕсли ИмяТипаПлатформы = "WinRT_x86_64" Тогда
Платформа = НСтр("ru = 'WinRT x86-64'");
КонецЕсли;
// Например:
@@ -190,12 +190,15 @@
УстановитьОтключениеБезопасногоРежима(Истина);
#КонецЕсли
ВнешняяКомпонента = Неопределено;
ОписаниеКомпоненты = ОписаниеКомпоненты();
#Если НЕ МобильноеПриложениеСервер Тогда
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда
МодульВнешниеКомпонентыСервер = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСервер");
РезультатПодключения = МодульВнешниеКомпонентыСервер.ПодключитьКомпоненту("Barcode");
ПараметрыПодключения = МодульВнешниеКомпонентыСервер.ПараметрыПодключения();
ПараметрыПодключения.ПолноеИмяМакета = ОписаниеКомпоненты.ПолноеИмяМакета;
РезультатПодключения = МодульВнешниеКомпонентыСервер.ПодключитьКомпоненту(ОписаниеКомпоненты.ИмяОбъекта,,
ПараметрыПодключения);
Если РезультатПодключения.Подключено Тогда
ВнешняяКомпонента = РезультатПодключения.ПодключаемыйМодуль;
КонецЕсли;
@@ -204,7 +207,7 @@
#КонецЕсли
Если ВнешняяКомпонента = Неопределено Тогда
ВнешняяКомпонента = ОбщегоНазначения.ПодключитьКомпонентуИзМакета("Barcode", "ОбщийМакет.КомпонентаПечатиШтрихкодов");
ВнешняяКомпонента = ОбщегоНазначения.ПодключитьКомпонентуИзМакета(ОписаниеКомпоненты.ИмяОбъекта, ОписаниеКомпоненты.ПолноеИмяМакета);
КонецЕсли;
Если ВнешняяКомпонента = Неопределено Тогда
@@ -237,6 +240,22 @@
КонецФункции
// Описание подключения внешней компоненты печати штрихкодов.
//
// Возвращаемое значение:
// Структура:
// * ПолноеИмяМакета - Строка
// * ИмяОбъекта - Строка
//
Функция ОписаниеКомпоненты() Экспорт
Параметры = Новый Структура;
Параметры.Вставить("ИмяОбъекта", "Barcode");
Параметры.Вставить("ПолноеИмяМакета", "ОбщийМакет.КомпонентаПечатиШтрихкодов");
Возврат Параметры;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -103,4 +103,20 @@
Возврат "ТЧ";
КонецФункции
Функция СтатусНеоднозначность() Экспорт
Возврат ПрефиксНесопоставленныхСтрок() + "Неоднозначность";
КонецФункции
Функция СтатусНесопоставлен() Экспорт
Возврат ПрефиксНесопоставленныхСтрок() + "Несопоставлен";
КонецФункции
Функция СтатусСопоставлен() Экспорт
Возврат "СтрокаСопоставлена";
КонецФункции
Функция ПрефиксНесопоставленныхСтрок() Экспорт
Возврат "Исправить";
КонецФункции
#КонецОбласти
@@ -293,6 +293,10 @@
// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки.
Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ВыгрузкаЗагрузкаДанных") Тогда
Возврат;
КонецЕсли;
СтандартныеПодсистемыСервер.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
СерверныеОповещения.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
@@ -3002,6 +3006,20 @@
#КонецОбласти
#Область НастройкаПорядкаЭлементов
Процедура ПередПеремещениемЭлемента(ПеремещаемыйЭлемент, СоседнийЭлемент, Направление, ТекстОшибки, СтандартнаяОбработка) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументов = ОбщегоНазначения.ОбщийМодуль("УчетОригиналовПервичныхДокументов");
МодульУчетОригиналовПервичныхДокументов.ПередПеремещениемЭлемента(
ПеремещаемыйЭлемент, СоседнийЭлемент, Направление, ТекстОшибки, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбменДанными
// См. ОбменДаннымиПереопределяемый.ПриНастройкеПодчиненногоУзлаРИБ.
@@ -3164,6 +3182,11 @@
МодульОбменДаннымиВМоделиСервиса.ПриДобавленииОбработчиковОбновления(Обработчики);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ВнешниеКомпонентыВМоделиСервиса") Тогда
МодульВнешниеКомпонентыВМоделиСервисаСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыВМоделиСервисаСлужебный");
МодульВнешниеКомпонентыВМоделиСервисаСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда
МодульРаботаСПочтовымиСообщениямиСлужебный = ОбщегоНазначения.ОбщийМодуль(
"РаботаСПочтовымиСообщениямиСлужебный");
@@ -1053,15 +1053,17 @@
Процедура ДобавитьГруппыПроверок(ГруппыПроверок)
Для Каждого ГруппаПроверок Из ГруппыПроверок Цикл
СведенияОПроверках = СведенияОПроверкахВеденияУчета(ГруппыПроверок);
ГруппаПроверокПоИдентификатору = КонтрольВеденияУчета.ПроверкаПоИдентификатору(ГруппаПроверок.Идентификатор);
Для Каждого ГруппаПроверок Из СведенияОПроверках Цикл
ГруппаПроверокПоИдентификатору = ГруппаПроверок.Проверка;
Если Не ЗначениеЗаполнено(ГруппаПроверокПоИдентификатору) Тогда
ГруппаПроверокОбъект = Справочники.ПравилаПроверкиУчета.СоздатьГруппу();
Иначе
Если ГруппаПроверокПоИдентификатору.ПроверкаВеденияУчетаИзменена Тогда
Если ГруппаПроверок.ПроверкаВеденияУчетаИзменена Тогда
Продолжить;
КонецЕсли;
@@ -1074,11 +1076,11 @@
ЗаполнитьЗначенияСвойств(ГруппаПроверокОбъект, ГруппаПроверок);
РодительГруппыПроверки = КонтрольВеденияУчета.ПроверкаПоИдентификатору(ГруппаПроверок.ИдентификаторГруппы);
РодительГруппыПроверки = ГруппаПроверок.РодительПроверки;
ГруппаПроверокОбъект.Родитель = РодительГруппыПроверки;
Если ЗначениеЗаполнено(РодительГруппыПроверки) Тогда
ГруппаПроверокОбъект.КонтекстПроверокВеденияУчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РодительГруппыПроверки, "КонтекстПроверокВеденияУчета");
ГруппаПроверокОбъект.КонтекстПроверокВеденияУчета = ГруппаПроверок.КонтекстПроверокВеденияУчетаРодителя;
Иначе
ГруппаПроверокОбъект.КонтекстПроверокВеденияУчета = ГруппаПроверок.КонтекстПроверокВеденияУчета;
КонецЕсли;
@@ -1127,10 +1129,11 @@
Процедура ДобавитьПроверки(Проверки)
Для Каждого Проверка Из Проверки Цикл
СведенияОПроверках = СведенияОПроверкахВеденияУчета(Проверки);
ПроверкаПоИдентификатору = КонтрольВеденияУчета.ПроверкаПоИдентификатору(Проверка.Идентификатор);
Если Не ЗначениеЗаполнено(ПроверкаПоИдентификатору) Тогда
Для Каждого СведенияОПроверке Из СведенияОПроверках Цикл
Если Не ЗначениеЗаполнено(СведенияОПроверке.Проверка) Тогда
ПроверкаОбъект = Справочники.ПравилаПроверкиУчета.СоздатьЭлемент();
ПроверкаОбъект.СпособВыполнения = Перечисления.СпособыВыполненияПроверки.ПоОбщемуРасписанию;
@@ -1138,38 +1141,38 @@
Иначе
Если ПроверкаПоИдентификатору.ПроверкаВеденияУчетаИзменена Тогда
Если СведенияОПроверке.ПроверкаВеденияУчетаИзменена Тогда
Продолжить;
КонецЕсли;
ПроверкаОбъект = ПроверкаПоИдентификатору.ПолучитьОбъект();
Если ПроверкаПоИдентификатору.ПометкаУдаления Тогда
ПроверкаОбъект = СведенияОПроверке.Проверка.ПолучитьОбъект();
Если ПроверкаОбъект.ПометкаУдаления Тогда
ПроверкаОбъект.УстановитьПометкуУдаления(Ложь);
КонецЕсли;
КонецЕсли;
ЗаполнитьЗначенияСвойств(ПроверкаОбъект, Проверка);
ЗаполнитьЗначенияСвойств(ПроверкаОбъект, СведенияОПроверке);
РодительПроверки = КонтрольВеденияУчета.ПроверкаПоИдентификатору(Проверка.ИдентификаторГруппы);
РодительПроверки = СведенияОПроверке.РодительПроверки;
ПроверкаОбъект.Родитель = РодительПроверки;
Если ЗначениеЗаполнено(РодительПроверки) Тогда
ПроверкаОбъект.КонтекстПроверокВеденияУчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РодительПроверки, "КонтекстПроверокВеденияУчета");
ПроверкаОбъект.КонтекстПроверокВеденияУчета = СведенияОПроверке.КонтекстПроверокВеденияУчетаРодителя;
Иначе
ПроверкаОбъект.КонтекстПроверокВеденияУчета = Проверка.КонтекстПроверокВеденияУчета;
ПроверкаОбъект.КонтекстПроверокВеденияУчета = СведенияОПроверке.КонтекстПроверокВеденияУчета;
КонецЕсли;
ПроверкаОбъект.Использование = Не Проверка.Отключена;
ПроверкаОбъект.Использование = Не СведенияОПроверке.Отключена;
Если ЗначениеЗаполнено(Проверка.ЛимитПроблем) Тогда
ПроверкаОбъект.ЛимитПроблем = Проверка.ЛимитПроблем;
Если ЗначениеЗаполнено(СведенияОПроверке.ЛимитПроблем) Тогда
ПроверкаОбъект.ЛимитПроблем = СведенияОПроверке.ЛимитПроблем;
Иначе
ПроверкаОбъект.ЛимитПроблем = 1000;
КонецЕсли;
Если ЗначениеЗаполнено(Проверка.ДатаНачалаПроверки) Тогда
ПроверкаОбъект.ДатаНачалаПроверки = Проверка.ДатаНачалаПроверки;
Если ЗначениеЗаполнено(СведенияОПроверке.ДатаНачалаПроверки) Тогда
ПроверкаОбъект.ДатаНачалаПроверки = СведенияОПроверке.ДатаНачалаПроверки;
КонецЕсли;
// АПК:1327-выкл блокировка устанавливается выше по стеку.
@@ -1879,6 +1882,53 @@
КонецФункции
Функция СведенияОПроверкахВеденияУчета(Проверки)
ИменаКолонок = Новый Массив;
Для Каждого Колонка Из Проверки.Колонки Цикл
Если Колонка.Имя = "Идентификатор"
Или Колонка.Имя = "ИдентификаторГруппы" Тогда
Продолжить;
КонецЕсли;
ИменаКолонок.Добавить("Проверки" + "." + Колонка.Имя);
КонецЦикла;
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Проверки.Идентификатор КАК Идентификатор,
| Проверки.ИдентификаторГруппы КАК ИдентификаторГруппы,
| &ВыбираемыеКолонки
|ПОМЕСТИТЬ ВТПроверки
|ИЗ
| &Проверки КАК Проверки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Проверки.Идентификатор КАК Идентификатор,
| Проверки.ИдентификаторГруппы КАК ИдентификаторГруппы,
| &ВыбираемыеКолонки,
| ЕСТЬNULL(ПроверкиУчета.Ссылка, ЗНАЧЕНИЕ(Справочник.ПравилаПроверкиУчета.ПустаяСсылка)) КАК Проверка,
| ПроверкиУчета.ПроверкаВеденияУчетаИзменена КАК ПроверкаВеденияУчетаИзменена,
| РодителиПроверокУчета.Ссылка КАК РодительПроверки,
| РодителиПроверокУчета.КонтекстПроверокВеденияУчета КАК КонтекстПроверокВеденияУчетаРодителя
|ИЗ
| ВТПроверки КАК Проверки
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПравилаПроверкиУчета КАК ПроверкиУчета
| ПО Проверки.Идентификатор = ПроверкиУчета.Идентификатор
| И (НЕ ПроверкиУчета.ПометкаУдаления)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПравилаПроверкиУчета КАК РодителиПроверокУчета
| ПО Проверки.ИдентификаторГруппы = РодителиПроверокУчета.Идентификатор
| И (НЕ РодителиПроверокУчета.ПометкаУдаления)");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ВыбираемыеКолонки", СтрСоединить(ИменаКолонок, ","));
Запрос.УстановитьПараметр("Проверки", Проверки);
Результат = Запрос.Выполнить().Выгрузить();
Возврат Результат;
КонецФункции
// См. КонтрольВеденияУчета.ВыполнитьПроверкиВКонтексте.
Функция ПроверкиПоКонтексту(КонтекстПроверокВеденияУчета) Экспорт
@@ -195,7 +195,6 @@
| ИЛИ МашиночитаемыеДоверенности.ДатаОтмены >= &НаДату)");
ПараметрДата = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Добавить();
ПараметрДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Добавить();
ПараметрДата.Использование = Истина;
ПараметрДата.Значение = НаДату;
ПараметрДата.Параметр = Новый ПараметрКомпоновкиДанных("НаДату");
@@ -79,7 +79,7 @@
// * ЭтоИндивидуальныйПредприниматель - Булево
// * ЭтоФизическоеЛицо - Булево
// * ЭтоДолжностноеЛицо - Булево
// * ДолжностьЛицаБезДоверенности - Строка
// * ДолжностьЛицаДоверителя - Строка
// * Фамилия - Строка
// * Имя - Строка
// * Отчество - Строка
@@ -152,17 +152,19 @@
// Параметры:
// Доверенность - СправочникСсылка.МашиночитаемыеДоверенности
// РегистрацияВРеестре - Структура:
// *ПоказыватьРегистрироватьВРеестре - Булево - показывать флажок Регистрировать в реестре
// *ЗарегистрированаВРеестре - Булево
// *СостояниеРегистрации - Строка, ФорматированнаяСтрока - если ЗарегистрированаВРеестре = Истина,
// тогда отображается в шапке, иначе около флажка регистрации.
// *ЗаголовокФлажкаРегистрации - Строка - заголовок флажка
// *ПолномочияПриОткрытии - Неопределено, Массив из Строка - список кодов полномочий, переданных в параметре при открытии
// * ПоказыватьРегистрироватьВРеестре - Булево - показывать флажок регистрации в реестре.
// * ЗаголовокФлажкаРегистрации - Строка - заголовок флажка регистрации в реестре.
// * ПодсказкаРегистрации - Строка - подсказка флажка регистрации.
// * ЗарегистрированаВРеестре - Булево
// * СостояниеРегистрации - Строка, ФорматированнаяСтрока
// * ПодсказкаСостояния - Строка - подсказка состояния регистрации.
// * Картинка - Строка - имя картинки статуса в строке состояния.
// * ПолномочияПриОткрытии - Неопределено, Массив из Строка - список кодов полномочий, переданных в параметре при открытии
// формы. Можно анализировать и не отображать флажок регистрации, если полномочия относятся к другой подсистеме.
// *ВыбранныеПолномочия - Структура:
// * ВыбранныеПолномочия - Структура:
// ** Полномочия - ТаблицаЗначений
// ** Ограничения - ТаблицаЗначений
// *КодыПолномочийДляДобавления - Массив из Строка - коды полномочий, которые предлагать добавить при выборе флажка регистрации.
// * КодыПолномочийДляДобавления - Массив из Строка - коды полномочий, которые предлагать добавить при выборе флажка регистрации.
// Если одно из них уже выбрано, предложение о добавлении не выводится.
//
Процедура ПриПолученииСтатусаРегистрации(Доверенность, РегистрацияВРеестре) Экспорт
@@ -180,6 +182,37 @@
КонецПроцедуры
// Переопределяет процедуру настроек формы списка для реестра Федеральной таможенной службы или другого.
//
// Параметры:
// Настройки - Структура:
// * ПоказыватьСтатусВФормеСписка - Булево - показывать статус в реестре в форме списка.
// * ЗаголовокКолонкиСтатуса - Строка - заголовок колонки статуса в форме списка.
// * КартинкаКолонкиСтатуса - Картинка - картинка колонки статуса в форме списка.
// * КоллекцияКартинокДляСтроки - Картинка - коллекция для картинки строки.
//
Процедура ПриОпределенииНастроек(Настройки) Экспорт
КонецПроцедуры
// Переопределяет процедуру получения статусов доверенностей для реестра Федеральной таможенной службы или другого.
//
// Параметры:
// Доверенности - Массив из СправочникСсылка.МашиночитаемыеДоверенности
// Статусы - Соответствие из КлючИЗначение:
// * Ключ - СправочникСсылка.МашиночитаемыеДоверенности
// * Значение - Структура:
// ** ИндексКартинки - Число - картинка колонки статуса в форме списка.
// ** Статус - Строка
//
Процедура ПриПолученииСтатусов(Доверенности, Статусы) Экспорт
КонецПроцедуры
#КонецОбласти
@@ -26,4 +26,18 @@
КонецФункции
Функция НастройкиПодсистемы() Экспорт
Настройки = Новый Структура;
Настройки.Вставить("ПоказыватьСтатусВФормеСписка", Ложь);
Настройки.Вставить("ЗаголовокКолонкиСтатуса", "");
Настройки.Вставить("КартинкаКолонкиСтатуса", Неопределено);
Настройки.Вставить("КоллекцияКартинокДляСтроки", Неопределено);
МашиночитаемыеДоверенностиФНСПереопределяемый.ПриОпределенииНастроек(Настройки);
Возврат Настройки;
КонецФункции
#КонецОбласти
@@ -8,6 +8,12 @@
#Область СлужебныйПрограммныйИнтерфейс
Функция НастройкиПодсистемы() Экспорт
Возврат МашиночитаемыеДоверенностиФНСПовтИсп.НастройкиПодсистемы();
КонецФункции
// МЧДПодписей.
//
// Параметры:
@@ -1246,18 +1252,11 @@
Реквизиты.ОГРН = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ОГРН", "");
Реквизиты.ЭлектроннаяПочта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПАдресЭлектроннойПочты", "");
Если ЗначениеЗаполнено(Реквизиты.ЭлектроннаяПочта) И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
Реквизиты.ЭлектроннаяПочтаЗначение = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(
Реквизиты.ЭлектроннаяПочта, Перечисления["ТипыКонтактнойИнформации"].АдресЭлектроннойПочты);
КонецЕсли;
Реквизиты.ЭлектроннаяПочтаЗначение = КонтактнаяИнформацияВJSON(
Реквизиты.ЭлектроннаяПочта, "АдресЭлектроннойПочты");
Реквизиты.Телефон = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ТелефонОрганизации", "");
Если ЗначениеЗаполнено(Реквизиты.Телефон) И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
Реквизиты.ТелефонЗначение = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(
Реквизиты.Телефон, Перечисления["ТипыКонтактнойИнформации"].Телефон);
КонецЕсли;
Реквизиты.ТелефонЗначение = КонтактнаяИнформацияВJSON(Реквизиты.Телефон, "Телефон");
Реквизиты.ЛицоБезДоверенности = Неопределено;
@@ -1276,18 +1275,14 @@
КонецЕсли;
РеквизитыЛицаБезДоверенности.Пол = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ФизическоеЛицоПол", "");
РеквизитыЛицаБезДоверенности.СтраховойНомерПФР = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПРегистрационныйНомерПФР", "");
РеквизитыЛицаБезДоверенности.СтраховойНомерПФР = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИндивидуальныйПредпринимательСНИЛС", "");
РеквизитыЛицаБезДоверенности.АдресРегистрации = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "АдресРегистрации", "");
РеквизитыЛицаБезДоверенности.АдресРегистрацииЗначение = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "АдресРегистрацииJSON", "");
РеквизитыЛицаБезДоверенности.ЭлектроннаяПочта = Реквизиты.ЭлектроннаяПочта;
РеквизитыЛицаБезДоверенности.ЭлектроннаяПочтаЗначение = Реквизиты.ЭлектроннаяПочтаЗначение;
РеквизитыЛицаБезДоверенности.Телефон = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ДомашнийТелефонФизЛица", "");
Если ЗначениеЗаполнено(РеквизитыЛицаБезДоверенности.Телефон) И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
РеквизитыЛицаБезДоверенности.ТелефонЗначение = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(
Реквизиты.Телефон, Перечисления["ТипыКонтактнойИнформации"].Телефон);
КонецЕсли;
РеквизитыЛицаБезДоверенности.ТелефонЗначение = КонтактнаяИнформацияВJSON(РеквизитыЛицаБезДоверенности.Телефон, "Телефон");
РеквизитыЛицаБезДоверенности.ДатаРождения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПДатаРождения", "");
РеквизитыЛицаБезДоверенности.ДокументВид = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПКодУдостоверенияЛичности", "");
@@ -1314,18 +1309,35 @@
Иначе
Реквизиты.ИНН = СведенияОбОрганизации.ИНН;
Реквизиты.НаименованиеПолное = СведенияОбОрганизации.НаименованиеПолное;
Реквизиты.НаименованиеСокращенное = СведенияОбОрганизации.НаименованиеСокращенное;
Реквизиты.ОГРН = СведенияОбОрганизации.ОГРН;
Реквизиты.Телефон = СведенияОбОрганизации.ТелефонОрганизации;
Реквизиты.ЮридическийАдрес = СведенияОбОрганизации.АдресОрганизации;
Реквизиты.КПП = СведенияОбОрганизации.КПП;
Реквизиты.ИНН = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИНН", "");
Реквизиты.НаименованиеПолное = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "НаименованиеПолное", "");
Реквизиты.НаименованиеСокращенное = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "НаименованиеСокращенное", "");
Реквизиты.ОГРН = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ОГРН", "");
Реквизиты.Телефон = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ТелефонОрганизации", "");
Реквизиты.ТелефонЗначение = КонтактнаяИнформацияВJSON(Реквизиты.Телефон, "Телефон");
Реквизиты.ЮридическийАдрес = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "АдресОрганизации", "");
Реквизиты.ЮридическийАдресЗначение = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "АдресОрганизацииJSON", "");
Реквизиты.КПП = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "КПП", "");
КонецЕсли;
КонецПроцедуры
Функция КонтактнаяИнформацияВJSON(Значение, Тип)
Если ЗначениеЗаполнено(Значение) И ОбщегоНазначения.ПодсистемаСуществует(
"СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
Возврат МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(
Значение, Перечисления["ТипыКонтактнойИнформации"][Тип]);
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ПроверитьСведенияОбОрганизации(Форма, ПолеСообщения = "", ШаблонСообщения = "%1:", СведенияОбОрганизации = Неопределено) Экспорт
Сведения = ?(СведенияОбОрганизации = Неопределено, Форма, СведенияОбОрганизации);
@@ -1458,9 +1470,9 @@
КонецФункции
Функция ЗаголовокДекорации(Реквизиты, ИмяЭлементаОрганизация = Неопределено, ТолькоОбязательные = Ложь, ПоказыватьПерсональныеДанные = Истина) Экспорт
Функция ЗаголовокДекорации(Реквизиты, ИмяЭлементаОрганизация, ТолькоОсновные, ТолькоОбязательные = Ложь, ПоказыватьПерсональныеДанные = Истина) Экспорт
Результат = СтруктураЗаголовкаДекорации(Реквизиты, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, Ложь);
Результат = СтруктураЗаголовкаДекорации(Реквизиты, ТолькоОсновные, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, Ложь);
Если Результат.ЗаголовокДекорацииОшибки.Количество() > 0 Тогда
Результат.ЗаголовокДекорации.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не заполнены: %1'"),
@@ -1473,9 +1485,9 @@
КонецФункции
Функция ЗаголовокДекорацииДляТаблицы(Реквизиты, ИмяЭлементаОрганизация = Неопределено, ТолькоОбязательные = Ложь, ПоказыватьПерсональныеДанные = Истина) Экспорт
Функция ЗаголовокДекорацииДляТаблицы(Реквизиты, ИмяЭлементаОрганизация, ТолькоОсновные, ТолькоОбязательные = Ложь, ПоказыватьПерсональныеДанные = Истина) Экспорт
Результат = СтруктураЗаголовкаДекорации(Реквизиты, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, Истина);
Результат = СтруктураЗаголовкаДекорации(Реквизиты, ТолькоОсновные, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, Истина);
ЗаголовокДекорацииСтрока = СтрСоединить(Результат.ЗаголовокДекорации, Символы.ПС);
@@ -1487,9 +1499,7 @@
КонецФункции
Функция СтруктураЗаголовкаДекорации(Реквизиты, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация = Неопределено, ТолькоОбязательные = Ложь, ДляТаблицы = Ложь)
ВидУчастника = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ОпределитьВидУчастника(Реквизиты);
Функция СтруктураЗаголовкаДекорации(Реквизиты, ТолькоОсновные, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные = Ложь, ДляТаблицы = Ложь)
Если Реквизиты.ЭтоФизическоеЛицо Тогда
СписокРеквизитов = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыФизическогоЛицаСписок(Ложь,
@@ -1500,7 +1510,7 @@
КонецЕсли;
ЗаголовокДекорации = Новый Массив;
ЗаголовокДекорацииОсновныеРеквизиты = Новый Массив;
ЗаголовокДекорацииНаименование = Новый Массив;
ЗаголовокДекорацииКНаименованию = Новый Массив;
ЗаголовокДекорацииПаспорт = Новый Массив;
@@ -1575,6 +1585,10 @@
Или Реквизит.Ключ = "Имя"
Или Реквизит.Ключ = "Отчество" Тогда
ЗаголовокДекорацииНаименование.Добавить(Значение);
ИначеЕсли Реквизит.Ключ = "ИНН"
Или Реквизит.Ключ = "КПП"
Или Реквизит.Ключ = "ОГРН" Тогда
ЗаголовокДекорацииОсновныеРеквизиты.Добавить(СтрШаблон("%1: %2", Найдено.Представление, Значение));
ИначеЕсли Реквизит.Ключ = "Гражданство"
Или Реквизит.Ключ = "МестоРождения"
Или Реквизит.Ключ = "ДатаРождения" Тогда
@@ -1597,20 +1611,23 @@
КонецЕсли;
КонецЦикла;
Если ЗаголовокДекорацииНаименование.Количество() Тогда
Если Не ТолькоОсновные И ЗаголовокДекорацииНаименование.Количество() > 0 Тогда
ЗаголовокДекорации.Добавить(СтрСоединить(ЗаголовокДекорацииНаименование, " "));
КонецЕсли;
Если ЗаголовокДекорацииКНаименованию.Количество() Тогда
Если ЗаголовокДекорацииОсновныеРеквизиты.Количество() > 0 Тогда
ЗаголовокДекорации.Добавить(СтрСоединить(ЗаголовокДекорацииОсновныеРеквизиты, " "));
КонецЕсли;
Если Не ТолькоОсновные И ЗаголовокДекорацииКНаименованию.Количество() > 0 Тогда
ЗаголовокДекорации.Добавить(СтрСоединить(ЗаголовокДекорацииКНаименованию, ", "));
КонецЕсли;
Если ЗаголовокДекорацииПаспорт.Количество() Тогда
Если Не ТолькоОсновные И ЗаголовокДекорацииПаспорт.Количество() > 0 Тогда
ЗаголовокДекорацииПаспорт = НаименованиеДокумента + " " + СтрСоединить(ЗаголовокДекорацииПаспорт, ", ");
ЗаголовокДекорации.Добавить(ЗаголовокДекорацииПаспорт);
КонецЕсли;
Если ЗаголовокДекорацииДругиеДанные.Количество() Тогда
Если Не ТолькоОсновные И ЗаголовокДекорацииДругиеДанные.Количество() > 0 Тогда
ЗаголовокДекорации.Добавить(СтрСоединить(ЗаголовокДекорацииДругиеДанные, ", "));
КонецЕсли;
Если ЗаголовокДекорацииАдрес.Количество() Тогда
Если Не ТолькоОсновные И ЗаголовокДекорацииАдрес.Количество() > 0 Тогда
ЗаголовокДекорации.Добавить(СтрСоединить(ЗаголовокДекорацииАдрес, Символы.ПС));
КонецЕсли;
@@ -2589,8 +2606,6 @@
Функция ФайлыДляРасследования(ПараметрыФайловДляРасследования)
ИмяФайлаЗапроса = ПараметрыФайловДляРасследования.ИмяФайлаЗапроса;
ИмяФайлаОтвета = ПараметрыФайловДляРасследования.ИмяФайлаОтвета;
Запрос = ПараметрыФайловДляРасследования.Запрос;
Ответ = ПараметрыФайловДляРасследования.Ответ;
СоединениеHTTP = ПараметрыФайловДляРасследования.СоединениеHTTP;
@@ -2746,18 +2761,19 @@
Пока Выборка.Следующий() Цикл
СостояниеДоверенности = СостояниеДоверенности();
ЗаполнитьЗначенияСвойств(СостояниеДоверенности, Выборка);
Если Выборка.ДатаТранзакции <> Дата(1,1,1) Тогда
ОписаниеСостояния = СтроковыеФункции.ФорматированнаяСтрока(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">Запрос отправлен %2</span>'"), "ПоясняющийТекст", ОтформатироватьДату(Выборка.ДатаТранзакции)));
НСтр("ru='<span style=""color: %1"">Запрос в реестр ФНС отправлен %2</span>'"), "ПоясняющийТекст", ОтформатироватьДату(Выборка.ДатаТранзакции)));
ИначеЕсли ЗначениеЗаполнено(Выборка.ТехническийСтатус) Тогда
ОписаниеСостояния = СтроковыеФункции.ФорматированнаяСтрока(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">%2</span>'"), "ПоясняющийТекст", Выборка.ТехническийСтатус))
НСтр("ru='<span style=""color: %1"">%2</span>'"), "ПоясняющийТекст", Выборка.ТехническийСтатус));
Иначе
ОписаниеСостояния = СтроковыеФункции.ФорматированнаяСтрока(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">Запрос не направлялся</span>'"), "ПоясняющийТекст"));
НСтр("ru='<span style=""color: %1"">Запрос в реестр ФНС не направлялся</span>'"), "ПоясняющийТекст"));
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.ДатаЗапросаСтатуса) Тогда
Если ЗначениеЗаполнено(Выборка.ДатаЗапросаСтатуса) И Выборка.ТехническийСтатус <> Перечисления.ТехническиеСтатусыМЧД.Активна Тогда
ОписаниеСостояния = Новый ФорматированнаяСтрока(ОписаниеСостояния, Символы.ПС,
СтроковыеФункции.ФорматированнаяСтрока(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">Состояние на %2</span>'"), "ПоясняющийТекст", ОтформатироватьДату(Выборка.ДатаЗапросаСтатуса))));
@@ -2766,39 +2782,39 @@
Если Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.ОжидаетОбработки
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Регистрация Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">: Ожидает регистрации</span>'"), "ПоясняющийТекст");
НСтр("ru='<span style=""color: %1"">: Ожидает регистрации</span>'"), "ПоясняющийТекст");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.ОжидаетОбработки
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Отмена Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">: Ожидает отмены</span>'"), "ПоясняющийТекст");
НСтр("ru='<span style=""color: %1"">: Ожидает отмены</span>'"), "ПоясняющийТекст");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Успешно
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Регистрация
И Выборка.ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Регистрация Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">: Ожидает регистрации в ИР «Доверенность»</span>'"), "ПоясняющийТекст");
НСтр("ru='<span style=""color: %1"">: Ожидает регистрации в ИР «Доверенность»</span>'"), "ПоясняющийТекст");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Успешно
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Регистрация Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">: Успешно зарегистрирована</span>'"), "ПоясняющийТекст");
НСтр("ru='<span style=""color: %1"">: Успешно зарегистрирована</span>'"), "ПоясняющийТекст");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Успешно
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Отмена Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">: Успешно отменена</span>'"), "ПоясняющийТекст");
НСтр("ru='<span style=""color: %1"">: Успешно отменена</span>'"), "ПоясняющийТекст");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Ошибка
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Регистрация Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">: <a href = ""%2"">Ошибка регистрации</a>'"), "ПоясняющийТекст", "ПоказатьОшибку");
НСтр("ru='<span style=""color: %1"">: <a href = ""%2"">Ошибка регистрации</a>'"), "ПоясняющийТекст", "ПоказатьОшибку");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Ошибка
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Отмена Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">: <a href = ""%2"">Ошибка отмены</a>'"), "ПоясняющийТекст", "ПоказатьОшибку");
НСтр("ru='<span style=""color: %1"">: <a href = ""%2"">Ошибка отмены</a>'"), "ПоясняющийТекст", "ПоказатьОшибку");
ИначеЕсли ЗначениеЗаполнено(Выборка.ДатаТранзакции) И Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Ошибка Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">: <a href = ""%2"">Не удалось получить статус</a>'"), "ПоясняющийТекст", "ПоказатьОшибку");
НСтр("ru='<span style=""color: %1"">: <a href = ""%2"">Не удалось получить статус</a>'"), "ПоясняющийТекст", "ПоказатьОшибку");
ИначеЕсли Выборка.ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Регистрация
И Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.ПустаяСсылка() Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">: <a href = ""%2"">Ошибка регистрации</a>'"), "ПоясняющийТекст", "ПоказатьОшибку");
НСтр("ru='<span style=""color: %1"">: <a href = ""%2"">Ошибка регистрации</a>'"), "ПоясняющийТекст", "ПоказатьОшибку");
КонецЕсли;
ОписаниеСостояния = Новый ФорматированнаяСтрока(ОписаниеСостояния,
@@ -289,7 +289,6 @@
ПараметрыФормы.ИнформацияДляПоддержки = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
НСтр("ru = 'Обратитесь в службу поддержки фирмы ""1С"", предоставив <a href = %1>техническую информацию о возникшей проблеме</a>'"),
"ТехническаяИнформация");
ДополнительныеДанныеПроверокНаСервере = Новый Структура;
ПараметрыФормы.ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверок", Ошибка);
ПараметрыФормы.ДополнительныеДанные.Вставить("ДоверенностьМЧД", Ошибка.ДополнительныеФайлы);
@@ -569,7 +569,7 @@
Попытка
ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СсылкиНаОбъекты, НастройкиОбновление);
ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СсылкиНаОбъекты.Ссылка, НастройкиОбновление);
Результат.ОбъектовОбработано = Результат.ОбъектовОбработано + 1;
Исключение
@@ -858,16 +858,16 @@
//
Процедура ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СсылкаНаОбъект, НастройкиОбновления) Экспорт
ИмяПредопределенныхДанных = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаОбъект.Ссылка, "ИмяПредопределенныхДанных");
ИмяПредопределенныхДанных = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаОбъект, "ИмяПредопределенныхДанных");
Если Не ЗначениеЗаполнено(ИмяПредопределенныхДанных) Тогда
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СсылкаНаОбъект.Ссылка);
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СсылкаНаОбъект);
Возврат;
КонецЕсли;
Элемент = НастройкиОбновления.ПредопределенныеДанные.Найти(ИмяПредопределенныхДанных, "ИмяПредопределенныхДанных");
Если Элемент = Неопределено Тогда
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СсылкаНаОбъект.Ссылка);
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СсылкаНаОбъект);
Возврат;
КонецЕсли;
@@ -876,15 +876,15 @@
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(НастройкиОбновления.ИмяОбъектМетаданных);
ЭлементБлокировки.УстановитьЗначение("Ссылка", СсылкаНаОбъект.Ссылка);
ЭлементБлокировки.УстановитьЗначение("Ссылка", СсылкаНаОбъект);
Блокировка.Заблокировать();
Объект = СсылкаНаОбъект.Ссылка.ПолучитьОбъект();
Объект = СсылкаНаОбъект.ПолучитьОбъект();
Если Объект = Неопределено Тогда // объект может быть уже удален в других сеансах
ОтменитьТранзакцию();
Возврат;
КонецЕсли;
ЗаблокироватьДанныеДляРедактирования(СсылкаНаОбъект.Ссылка);
ЗаблокироватьДанныеДляРедактирования(СсылкаНаОбъект);
Для каждого ЛокализуемыйРеквизитОбъекта Из НастройкиОбновления.ЛокализуемыеРеквизитыОбъекта Цикл
Имя = ЛокализуемыйРеквизитОбъекта.Ключ;
@@ -158,7 +158,7 @@
Команда = Команды.Добавить();
Команда.Вид = "НастройкаПорядкаЭлементов";
Команда.Идентификатор = "Вверх";
Команда.Идентификатор = НаправлениеПеремещенияЭлементаВверх();
Команда.Представление = НСтр("ru = 'Переместить элемент вверх'");
Команда.Порядок = 1;
Команда.Картинка = БиблиотекаКартинок.ПереместитьВверх;
@@ -170,7 +170,7 @@
Команда = Команды.Добавить();
Команда.Вид = "НастройкаПорядкаЭлементов";
Команда.Идентификатор = "Вниз";
Команда.Идентификатор = НаправлениеПеремещенияЭлементаВниз();
Команда.Представление = НСтр("ru = 'Переместить элемент вниз'");
Команда.Порядок = 2;
Команда.Картинка = БиблиотекаКартинок.ПереместитьВниз;
@@ -182,6 +182,15 @@
КонецПроцедуры
Функция НаправлениеПеремещенияЭлементаВверх() Экспорт
Возврат "Вверх";
КонецФункции
Функция НаправлениеПеремещенияЭлементаВниз() Экспорт
Возврат "Вниз";
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -245,7 +245,7 @@
ИндексТекущего = Родитель.Строки.Индекс(СтрокаДереваЗначений);
ИндексСоседнего = ИндексТекущего;
Если Направление = "Вверх" Тогда
Если Направление = НастройкаПорядкаЭлементов.НаправлениеПеремещенияЭлементаВверх() Тогда
Если ИндексТекущего > 0 Тогда
ИндексСоседнего = ИндексТекущего - 1;
КонецЕсли;
@@ -260,7 +260,15 @@
СоседнийЭлементСсылка = СоседняяСтрока.Ссылка;
Если Не Информация.ЕстьГруппы Или Информация.ДляГрупп Или Не СоседнийЭлементСсылка.ЭтоГруппа Тогда
ПоменятьЭлементыМестами(ТекущийЭлементСсылка, СоседнийЭлементСсылка, Информация.ПолноеИмя);
ТекстОшибки = "";
СтандартнаяОбработка = Истина;
ИнтеграцияПодсистемБСП.ПередПеремещениемЭлемента(ТекущийЭлементСсылка, СоседнийЭлементСсылка, Направление, ТекстОшибки, СтандартнаяОбработка);
Если СтандартнаяОбработка Тогда
ПоменятьЭлементыМестами(ТекущийЭлементСсылка, СоседнийЭлементСсылка, Информация.ПолноеИмя);
Иначе
Возврат ТекстОшибки;
КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -31,7 +31,19 @@
Если Не МодульАдресныйКлассификаторСлужебный.ЕстьПравоДобавлениеИзменениеАдресныхСведений() Тогда
Элементы.АдресныйКлассификаторНастройки.Видимость = Ложь;
КонецЕсли;
Форма.ИспользоватьВебСервисАдресов = МодульАдресныйКлассификаторСлужебный.ИспользоватьВебСервис();
ЗначениеРеквизитаФормы = Новый Структура("ИспользоватьВебСервисАдресов", Неопределено);
ЗаполнитьЗначенияСвойств(ЗначениеРеквизитаФормы, Форма);
Если ЗначениеРеквизитаФормы["ИспользоватьВебСервисАдресов"] <> Неопределено Тогда
Форма["ИспользоватьВебСервисАдресов"] = МодульАдресныйКлассификаторСлужебный.ИспользоватьВебСервис();
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ИспользоватьВебСервисАдресов",
"Видимость",
Истина);
Иначе
Элементы.АдресныйКлассификаторНастройки.Видимость = Ложь;
КонецЕсли;
@@ -523,10 +523,6 @@
УзелДляОбмена = КомпонентыОбмена.УзелКорреспондента;
Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда
ОчиститьСписокОшибокПриВыгрузкеДанных(УзелДляОбмена);
КонецЕсли;
Попытка
ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер();
@@ -861,15 +857,10 @@
СвойстваИсточника.Добавить(Свойство);
КонецЦикла;
ВложенныеРасширения = Новый Соответствие;
ВложенныеРасширения.Вставить("РасширенияКлючевыхСвойств", Неопределено);
ВложенныеРасширения.Вставить("РасширенияТабличныхЧастей", Неопределено);
ДополнитьСвойстваПакетаИзРасширений(СвойстваИсточника, КомпонентыОбмена, Расширения, ВложенныеРасширения);
ДополнитьСвойстваПакетаИзРасширений(ТипXDTO, СвойстваИсточника, КомпонентыОбмена, Расширения);
Для Каждого Свойство Из СвойстваИсточника Цикл
Расширения = Неопределено;
ЭтоБазоваяСхема = ЭтоБазоваяСхема(КомпонентыОбмена, Свойство.URIПространстваИмен);
ЗначениеСвойства = Неопределено;
@@ -885,55 +876,23 @@
ЗначениеСвойства = Источник[ИмяСвойстваИсточника];
КонецЕсли;
Если ТипЗнч(ЗначениеСвойства) = Тип("Структура") Тогда
ЗначениеСвойства.Свойство("Расширения", Расширения);
КонецЕсли;
ТипСвойства = Неопределено;
Если ТипЗнч(Свойство.Тип) = Тип("ТипЗначенияXDTO") Тогда
ТипСвойства = "ОбычноеСвойство";
ИначеЕсли ТипЗнч(Свойство.Тип) = Тип("ТипОбъектаXDTO") Тогда
Если Свойство.Имя = "AdditionalInfo" Тогда
ТипСвойства = "AdditionalInfo";
ИначеЕсли ЭтоТаблицаОбъекта(Свойство) Тогда
ТипСвойства = "Таблица";
ИначеЕсли Свойство.Имя = КлассКлючевыеСвойстваФормата()
Или СтрНайти(Свойство.Тип.Имя, КлассКлючевыеСвойстваФормата()) > 0 Тогда
ТипСвойства = КлассКлючевыеСвойстваФормата();
Иначе
Если СвойствоНайдено Тогда
Если ТипЗнч(ЗначениеСвойства) = Тип("Структура")
И (ЗначениеСвойства.Свойство("Значение")
Или СтрНайти(Свойство.Тип, КлассОбщиеСвойства()) > 0) Тогда
ТипСвойства = "ОбщееСоставноеСвойство";
Иначе
ТипСвойства = "СвойствоСоставногоТипа";
КонецЕсли;
Иначе
ТипСвойства = "ОбщееСоставноеСвойство";
КонецЕсли;
КонецЕсли;
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Неизвестный тип свойства <%1>. Тип объекта: %2'"),
Свойство.Имя,
Строка(ТипXDTO));
КонецЕсли;
ТипСвойстваПоИмениИЗначениюСвойства(ТипXDTO, СвойствоНайдено, Свойство, ЗначениеСвойства, ТипСвойства);
Попытка
Если ТипСвойства = "ОбщееСоставноеСвойство" Тогда
ПроведеноЗаполнениеВложенныхСвойств = Ложь;
Если ТипЗнч(Источник) = Тип("Структура") И СвойствоНайдено Тогда
ЗначениеXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ЗначениеСвойства,
Свойство.Тип, СсылкиИзОбъекта, ПроведеноЗаполнениеВложенныхСвойств, Расширения);
Иначе
ЗначениеXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, Источник,
Свойство.Тип, СсылкиИзОбъекта, ПроведеноЗаполнениеВложенныхСвойств, Расширения);
КонецЕсли;
Если Не ПроведеноЗаполнениеВложенныхСвойств Тогда
@@ -961,8 +920,7 @@
ЗначениеXDTO = Неопределено;
Если ТипСвойства = КлассКлючевыеСвойстваФормата() Тогда
РасширениеКлючевогоСвойства = УстановитьРасширениеКлючевыхСвойств(ВложенныеРасширения, Свойство.Тип.Имя);
ЗначениеXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ЗначениеСвойства, Свойство.Тип, СсылкиИзОбъекта, , РасширениеКлючевогоСвойства);
ЗначениеXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ЗначениеСвойства, Свойство.Тип, СсылкиИзОбъекта, , Расширения);
ИначеЕсли ТипСвойства = "ОбычноеСвойство" Тогда
@@ -993,11 +951,10 @@
ТипТаблицы = Свойство.Тип.Свойства[0].Тип;
ИмяСвойстваСтроки = Свойство.Тип.Свойства[0].Имя;
СписокXDTO = ЗначениеXDTO[ИмяСвойстваСтроки]; // СписокXDTO
РасширениеТабличнойЧасти = УстановитьРасширениеСтрокиТабличнойЧасти(ВложенныеРасширения, Свойство.Имя);
Для Каждого ИсточникСтрока Из ЗначениеСвойства Цикл
ПриемникСтрока = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ИсточникСтрока, ТипТаблицы, СсылкиИзОбъекта, Ложь, РасширениеТабличнойЧасти);
ПриемникСтрока = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ИсточникСтрока, ТипТаблицы, СсылкиИзОбъекта, Ложь, Расширения);
СписокXDTO.Добавить(ПриемникСтрока);
КонецЦикла;
@@ -1644,6 +1601,66 @@
КонецПроцедуры
// Определяет тип объекта формата перед конвертацией свойства
//
Процедура ТипСвойстваПоИмениИЗначениюСвойства(ТипXDTO, СвойствоНайдено, Свойство, ЗначениеСвойства, ТипСвойства)
Если ТипЗнч(Свойство.Тип) = Тип("ТипЗначенияXDTO") Тогда
ТипСвойства = "ОбычноеСвойство";
ИначеЕсли ТипЗнч(Свойство.Тип) = Тип("ТипОбъектаXDTO") Тогда
Если Свойство.Имя = "AdditionalInfo" Тогда
ТипСвойства = "AdditionalInfo";
ИначеЕсли ЭтоТаблицаОбъекта(Свойство) Тогда
ТипСвойства = "Таблица";
ИначеЕсли СтрНайти(Свойство.Тип.Имя, КлассКлючевыеСвойства()) > 0 Тогда
ТипСвойства = КлассКлючевыеСвойства();
ИначеЕсли СтрНайти(Свойство.Тип.Имя, КлассОбщиеСвойства()) > 0 Тогда
ТипСвойства = "ОбщееСоставноеСвойство";
Иначе
Если СвойствоНайдено Тогда
Если ТипЗнч(ЗначениеСвойства) = Тип("Структура")
И ЗначениеСвойства.Свойство("Значение") Тогда
ТипСвойства = "ОбщееСоставноеСвойство";
Иначе
ТипСвойства = "СвойствоСоставногоТипа";
КонецЕсли;
Иначе
ТипСвойства = "ОбщееСоставноеСвойство";
КонецЕсли;
КонецЕсли;
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Неизвестный тип свойства <%1>. Тип объекта: %2'"),
Свойство.Имя,
Строка(ТипXDTO));
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ПолучениеДанных
@@ -2050,10 +2067,6 @@
КомпонентыОбмена.УзелКорреспондентаОбъект = КомпонентыОбмена.УзелКорреспондента.ПолучитьОбъект();
КонецЕсли;
Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда
ОчиститьСписокОшибокПриЗагрузкеДанных(КомпонентыОбмена.УзелКорреспондента);
КонецЕсли;
Результаты = Неопределено;
ПрочитатьСообщениеОбмена(КомпонентыОбмена, Результаты, ТаблицыДляЗагрузки);
@@ -2711,30 +2724,36 @@
// * Получение - Булево - признак поддержки получения данного объекта формата.
//
Функция ПоддерживаемыеОбъектыФормата(ИмяПланаОбмена, Режим = "ОтправкаПолучение", УзелОбмена = Неопределено) Экспорт
ТаблицаОбъекты = Новый ТаблицаЗначений;
ИнициализироватьТаблицуПоддерживаемыхОбъектовФормата(ТаблицаОбъекты, Режим);
НастройкиПланаОбмена = ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(
ИмяПланаОбмена,
"ВерсииФорматаОбмена, РасширенияФорматаОбмена");
ВерсииФорматаОбмена = ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(ИмяПланаОбмена, "ВерсииФорматаОбмена");
РежимОтправка = СтрНайти(Режим, "Отправка") > 0;
РежимПолучение = СтрНайти(Режим, "Получение") > 0;
Для Каждого Версия Из НастройкиПланаОбмена.ВерсииФорматаОбмена Цикл
Для Каждого Версия Из ВерсииФорматаОбмена Цикл
РасширенияВерсии = Новый Массив;
Для Каждого Расширение Из НастройкиПланаОбмена.РасширенияФорматаОбмена Цикл
Если Расширение.Значение = Версия.Ключ Тогда
ДоступныеРасширенияФормата = ДоступныеРасширенияФормата(Версия.Ключ);
Если ДоступныеРасширенияФормата.Количество() > 0 Тогда
Для Каждого Расширение Из ДоступныеРасширенияФормата Цикл
РасширенияВерсии.Добавить(Расширение.Ключ);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
Если РасширенияВерсии.Количество() = 0 Тогда
РасширенияВерсии.Добавить("");
КонецЕсли;
Для Каждого СхемаРасширения Из РасширенияВерсии Цикл
Если РежимОтправка Тогда
КомпонентыОбмена = ИнициализироватьКомпонентыОбмена("Отправка");
@@ -2762,13 +2781,17 @@
ЗаполнитьПоддерживаемыеОбъектыФорматаПоКомпонентамОбмена(ТаблицаОбъекты, КомпонентыОбмена);
КонецЕсли;
КонецЦикла;
КонецЦикла;
ЕстьАлгоритм = ОбменДаннымиСервер.ЕстьАлгоритмМенеджераПланаОбмена(
"ПриОпределенииПоддерживаемыхОбъектовФормата", ИмяПланаОбмена);
ИмяАлгоритма = "ПриОпределенииПоддерживаемыхОбъектовФормата";
ЕстьАлгоритм = ОбменДаннымиСервер.ЕстьАлгоритмМенеджераПланаОбмена(ИмяАлгоритма, ИмяПланаОбмена);
Если ЕстьАлгоритм Тогда
ПланыОбмена[ИмяПланаОбмена].ПриОпределенииПоддерживаемыхОбъектовФормата(ТаблицаОбъекты, Режим, УзелОбмена);
КонецЕсли;
Возврат ТаблицаОбъекты;
@@ -2954,6 +2977,9 @@
// Получает правила регистрации объектов для плана обмена.
//
// Параметры:
// УзелПланаОбмена - ПланОбменаСсылка - ссылка на узел плана обмена
//
// Возвращаемое значение:
// ТаблицаЗначений
//
@@ -2970,8 +2996,11 @@
// Получает свойства узла плана обмена.
//
// Параметры:
// Узел - ПланОбменаСсылка - ссылка на узел плана обмена
//
// Возвращаемое значение:
// Структура (ключ соответствует имени свойства, а значение - значению свойства).
// Структура - ключ соответствует имени свойства, а значение - значению свойства.
//
Функция СвойстваУзлаПланаОбмена(Узел) Экспорт
@@ -2999,8 +3028,8 @@
// Параметры:
// ЧтениеXML - ЧтениеXML - сообщение обмена.
//
// Возвращаемое значение
// Истина - формат соответствует, ложь - не соответствует.
// Возвращаемое значение:
// Булево - Истина когда формат соответствует, ложь - не соответствует.
//
Функция ПроверитьФорматСообщенияОбмена(ЧтениеXML) Экспорт
@@ -3283,7 +3312,8 @@
| НЕ ШапкаПланаОбмена.ЭтотУзел
| И &ИмяРеквизитаФлага = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ВыгружатьПриНеобходимости)
| И НЕ ШапкаПланаОбмена.ПометкаУдаления
| И ДанныеОбъектовДляРегистрацииВОбменах.Ссылка = &Объект";
| И ДанныеОбъектовДляРегистрацииВОбменах.Ссылка = &Объект
| И НЕ &ПометкаУдаления";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); //@Query-part-1
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяРеквизитаФлага", ИмяРеквизитаФлагаСтрокой);
@@ -3291,6 +3321,7 @@
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("Объект", Ссылка);
Запрос.УстановитьПараметр("ПометкаУдаления", Ссылка.ПометкаУдаления);
МассивУзлов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Узел");
@@ -3339,17 +3370,17 @@
Если КомпонентыОбмена.НаправлениеОбмена = "Отправка" Тогда
// Для отправки поддерживаются объекты:
// отправка которых поддерживается из этой базы
// и получение которых поддерживается в базе-корреспонденте.
// При отправке поддерживаются объекты:
// - отправка которых доступна из этой базы
// - получение которых доступно в базе-корреспонденте.
ТаблицаОбъектыБазыКорреспондента = ПоддерживаемыеОбъектыФорматаКорреспондента(КомпонентыОбмена.УзелКорреспондента, "Получение");
ИначеЕсли КомпонентыОбмена.НаправлениеОбмена = "Получение" Тогда
// Для получения поддерживаются объекты:
// получение которых поддерживается в этой базе
// и отправка которых поддерживается в базе-корреспонденте.
// При получении поддерживаются объекты:
// - получение которых доступно в этой базе
// - отправка которых доступна в базе-корреспонденте.
ТаблицаОбъектыБазыКорреспондента = ПоддерживаемыеОбъектыФорматаКорреспондента(КомпонентыОбмена.УзелКорреспондента, "Отправка");
@@ -4068,6 +4099,13 @@
УзелДляОбмена = КомпонентыОбмена.УзелКорреспондента;
УзелДляОбменаОбъект = УзелДляОбмена.ПолучитьОбъект();
// Предварительная очистка регистрации
ИменаОбъектовМетаданных = ОбменДаннымиВызовСервера.ИменаМетаданныхНеВыгружаемыхОбъектовУзла(УзелДляОбмена);
Для Каждого Имя Из ИменаОбъектовМетаданных Цикл
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Имя);
ПланыОбмена.УдалитьРегистрациюИзменений(УзелДляОбмена, ОбъектМетаданных);
КонецЦикла;
НачальнаяВыгрузкаДанных = ОбменДаннымиСервер.УстановленПризнакНачальнойВыгрузкиДанных(УзелДляОбмена);
КоличествоОбъектовКВыгрузке = 0;
ТаблицаИзменений = ЗаполнитьТаблицуИзменений(УзелДляОбмена, НомерСообщения, КоличествоОбъектовКВыгрузке);
@@ -4122,7 +4160,7 @@
НачальнаяВыгрузкаДанных, УзелДляОбменаОбъект, Ложь);
ИначеЕсли Не ПараметрыПР.ЕстьПРО_БезПакетнойРегистрации
И ПараметрыПР.СсылкиПоФильтруПакетнойРегистрации.Найти(Данные) = Неопределено Тогда
И ПараметрыПР.СсылкиПоФильтруПакетнойРегистрации.Найти(Данные.Ссылка) = Неопределено Тогда
Если НачальнаяВыгрузкаДанных Тогда
ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
@@ -4156,6 +4194,7 @@
ИначеЕсли ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда
// Ситуация, когда объект не соответствует условиям фильтра, но его не нужно отправлять как удаление.
// Возникает в случае первоначальной выгрузки данных.
ПланыОбмена.УдалитьРегистрациюИзменений(УзелДляОбмена, Данные);
Продолжить;
Иначе
ЭлементДанных = ?(ЭтоСсылка, Данные.ПолучитьОбъект(), Данные);
@@ -5315,15 +5354,27 @@
Если ТипЗнч(Приемник) = Тип("Структура") Тогда
ПриемникГруппыСвойств = Новый Структура;
Для Каждого ПодСвойство Из ЗначениеXDTO.Свойства() Цикл
ОписаниеСвойства = ТипЗначенияXDTO.Свойства.Получить(ПодСвойство.Имя);
Если ОписаниеСвойства = Неопределено Тогда
Продолжить;
// Если общего свойства нет в базовом формате,
// то надо проверить его в расширениях
ПроверитьНаличиеОбщегоСвойстваВРасширениях(КомпонентыОбмена, ПодСвойство, ТипЗначенияXDTO, ОписаниеСвойства);
Если ОписаниеСвойства = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
КонвертацияСвойстваXDTOВЭлементСтруктуры(ЗначениеXDTO, ПодСвойство, ПриемникГруппыСвойств, КомпонентыОбмена,,ОписаниеСвойства.Тип);
КонецЦикла;
Приемник.Вставить(ИмяСвойства, ПриемникГруппыСвойств);
// По возможности свойства из группы свойств надо продублировать в приемнике,
// Для совместимости с существующими правилами и алгоритмами.
ЕстьКлючевыеСвойства = Приемник.Свойство(КлассКлючевыеСвойства());
@@ -5334,12 +5385,23 @@
Приемник.Вставить(ИмяПодСвойства, СвойствоГруппы.Значение);
КонецЕсли;
КонецЦикла;
Иначе
Для Каждого ПодСвойство Из ЗначениеXDTO.Свойства() Цикл
ОписаниеСвойства = ТипЗначенияXDTO.Свойства.Получить(ПодСвойство.Имя);
Если ОписаниеСвойства = Неопределено Тогда
Продолжить;
// Если общего свойства нет в базовом формате,
// то надо проверить его в расширениях
ПроверитьНаличиеОбщегоСвойстваВРасширениях(КомпонентыОбмена, ПодСвойство, ТипЗначенияXDTO, ОписаниеСвойства);
Если ОписаниеСвойства = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
КонвертацияСвойстваXDTOВЭлементСтруктуры(ЗначениеXDTO, ПодСвойство, Приемник, КомпонентыОбмена,,ОписаниеСвойства.Тип);
@@ -6263,7 +6325,7 @@
Для Каждого ПолеИзРасширения Из ТипТабличнаяЧастьСтрока.Свойства Цикл
Если СтрНайти(ПолеИзРасширения.Тип.Имя, КлассКлючевыеСвойства()) > 0 Тогда
Если СтрНайти(ПолеИзРасширения.Тип.Имя, КлассОбщиеСвойства()) > 0 Тогда
Для Каждого ПодчиненноеПолеИзРасширения Из ПолеИзРасширения.Тип.Свойства Цикл
@@ -7077,24 +7139,29 @@
ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(КомпонентыОбмена.УзелКорреспондента);
КомпонентыОбмена.НастройкиXDTO.Формат = ФорматОбмена(ИмяПланаОбмена, "");
РасширенияФорматаВКомпонентыОбмена(КомпонентыОбмена);
Если КомпонентыОбмена.НаправлениеОбмена = "Отправка" Тогда
КомпонентыОбмена.НастройкиXDTO.ПоддерживаемыеОбъекты = ПоддерживаемыеОбъектыФормата(
ИмяПланаОбмена, "ОтправкаПолучение", КомпонентыОбмена.УзелКорреспондента);
КомпонентыОбмена.НастройкиXDTO.ПоддерживаемыеОбъекты =
ПоддерживаемыеОбъектыФормата(ИмяПланаОбмена, "ОтправкаПолучение", КомпонентыОбмена.УзелКорреспондента);
Иначе
ТаблицаОбъекты = Новый ТаблицаЗначений;
ИнициализироватьТаблицуПоддерживаемыхОбъектовФормата(ТаблицаОбъекты, КомпонентыОбмена.НаправлениеОбмена);
ЗаполнитьПоддерживаемыеОбъектыФорматаПоКомпонентамОбмена(ТаблицаОбъекты, КомпонентыОбмена);
ЕстьАлгоритм = ОбменДаннымиСервер.ЕстьАлгоритмМенеджераПланаОбмена(
"ПриОпределенииПоддерживаемыхОбъектовФормата", ИмяПланаОбмена);
ИмяАлгоритма = "ПриОпределенииПоддерживаемыхОбъектовФормата";
ЕстьАлгоритм = ОбменДаннымиСервер.ЕстьАлгоритмМенеджераПланаОбмена(ИмяАлгоритма, ИмяПланаОбмена);
Если ЕстьАлгоритм Тогда
ПланыОбмена[ИмяПланаОбмена].ПриОпределенииПоддерживаемыхОбъектовФормата(
ТаблицаОбъекты, КомпонентыОбмена.НаправлениеОбмена, КомпонентыОбмена.УзелКорреспондента);
КонецЕсли;
КомпонентыОбмена.НастройкиXDTO.ПоддерживаемыеОбъекты = ТаблицаОбъекты;
КонецЕсли;
КомпонентыОбмена.НастройкиXDTO.ПоддерживаемыеВерсии = ВерсииФорматаОбменаМассив(КомпонентыОбмена.УзелКорреспондента);
@@ -7980,18 +8047,6 @@
КонецПроцедуры
Процедура ОчиститьСписокОшибокПриВыгрузкеДанных(УзелИнформационнойБазы)
РегистрыСведений.РезультатыОбменаДанными.ОчиститьПроблемыПриОтправке(УзелИнформационнойБазы);
КонецПроцедуры
Процедура ОчиститьСписокОшибокПриЗагрузкеДанных(УзелИнформационнойБазы)
РегистрыСведений.РезультатыОбменаДанными.ОчиститьПроблемыПриПолучении(УзелИнформационнойБазы);
КонецПроцедуры
Функция УровеньОшибкиПоТипуПроблемы(КомпонентыОбмена, ТипПроблемы)
Если ТипПроблемы = Перечисления.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта Тогда
@@ -8676,9 +8731,21 @@
ПостроительDOM = Новый ПостроительDOM;
ДокументDOM = ПостроительDOM.Прочитать(КомпонентыОбмена.ФайлОбмена);
Разыменователь = Новый РазыменовательПространствИменDOM("ab",
"http://v8.1c.ru/edi/edi_stnd/EnterpriseData/" + КомпонентыОбмена.ВерсияФорматаОбмена);
Выражение = "//ab:Ссылка";
// Получение формата обмена
Разыменователь = Новый РазыменовательПространствИменDOM(ДокументDOM);
Выражение = "//msg:Format";
Результат = ДокументDOM.ВычислитьВыражениеXPath(Выражение, ДокументDOM, Разыменователь);
УзелПоля = Результат.ПолучитьСледующий();
Если УзелПоля = Неопределено Тогда
Формат = "http://v8.1c.ru/edi/edi_stnd/EnterpriseData/" + КомпонентыОбмена.УзелКорреспондента.ВерсияФорматаОбмена;
Иначе
Формат = УзелПоля.ТекстовоеСодержимое;
КонецЕсли;
// Получение всех ссылок
Разыменователь = Новый РазыменовательПространствИменDOM("ref", Формат);
Выражение = "//ref:Ссылка";
Результат = ДокументDOM.ВычислитьВыражениеXPath(Выражение, ДокументDOM, Разыменователь);
@@ -8795,6 +8862,11 @@
Возврат;
КонецЕсли;
ТипыСсылки = Метаданные.РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.Измерения.Ссылка.Тип;
Если Не (ТипыСсылки.СодержитТип(ТипЗнч(СтруктураЗаписи.Ссылка))) Тогда
Возврат;
КонецЕсли;
НоваяСтрока = КомпонентыОбмена.КешПубличныхИдентификаторов.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураЗаписи);
@@ -8856,41 +8928,7 @@
КонецФункции
Функция УстановитьРасширениеСтрокиТабличнойЧасти(ВложенныеРасширения, ИмяТабличнойЧасти)
Если ТипЗнч(ВложенныеРасширения) = Тип("Соответствие") Тогда
РасширенияТабличныхЧастей = ВложенныеРасширения.Получить("РасширенияТабличныхЧастей");
Если РасширенияТабличныхЧастей <> Неопределено Тогда
Возврат РасширенияТабличныхЧастей.Получить(ИмяТабличнойЧасти);
КонецЕсли;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция УстановитьРасширениеКлючевыхСвойств(ВложенныеРасширения, ИмяКлючевогоСвойства)
Если ТипЗнч(ВложенныеРасширения) = Тип("Соответствие") Тогда
РасширенияКлючевыхСвойств = ВложенныеРасширения.Получить("РасширенияКлючевыхСвойств");
Если РасширенияКлючевыхСвойств <> Неопределено Тогда
Возврат РасширенияКлючевыхСвойств.Получить(ИмяКлючевогоСвойства);
КонецЕсли;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДополнитьСвойстваПакетаИзРасширений(СвойстваИсточника, КомпонентыОбмена, Расширения, ВложенныеРасширения)
Процедура ДополнитьСвойстваПакетаИзРасширений(ТипXDTO, СвойстваИсточника, КомпонентыОбмена, Расширения)
Если Расширения = Неопределено Тогда
@@ -8898,30 +8936,24 @@
КонецЕсли;
// КомпонентыОбмена.РасширенияФормата - расширения доступные в текущем формате обмена;
// Расширения - расширения инициализированное в правиле обмена.
// КомпонентыОбмена.РасширенияФормата - расширения из ОбменДаннымиПереопределяемый.ПриПолученииДоступныхРасширенийФормата();
// Расширения - расширения инициализированное в правиле конвертации объекта.
//
// Концептуально можно было бы получать URI из КомпонентыОбмена.РасширенияФормата и проверять есть в нем объект формата ТипXDTO.Имя,
// если есть, то обходить свойства в поисках новых (расширенных), но тогда этот алгоритм будет работать при выгрузке
// всех объектов из-за чего будет потеря производительности.
Для Каждого Расширение Из Расширения Цикл
Если КомпонентыОбмена.РасширенияФормата.Получить(Расширение.Ключ) = Неопределено Тогда
ПространствоИменРасширения = Расширение.Ключ;
Если КомпонентыОбмена.РасширенияФормата.Получить(ПространствоИменРасширения) = Неопределено Тогда
Продолжить;
КонецЕсли;
РасширенныйТипXDTO = Неопределено;
НужныеСвойстваОтсутствуют = Истина;
Если Расширение.Значение.Свойство("ТипXDTO", РасширенныйТипXDTO) Тогда
НужныеСвойстваОтсутствуют = Ложь;
ИначеЕсли Расширение.Значение.Свойство("ТипСоставногоСвойства", РасширенныйТипXDTO) Тогда
НужныеСвойстваОтсутствуют = Ложь;
КонецЕсли;
Если НужныеСвойстваОтсутствуют
ИЛИ РасширенныйТипXDTO = Неопределено Тогда
РасширенныйТипXDTO = ФабрикаXDTO.Тип(ПространствоИменРасширения, ТипXDTO.Имя);
Если РасширенныйТипXDTO = Неопределено Тогда
Продолжить;
@@ -8929,18 +8961,8 @@
Для Каждого Свойство Из РасширенныйТипXDTO.Свойства Цикл
Если Свойство.URIПространстваИмен <> Расширение.Ключ Тогда
Если ЭтоТаблицаОбъекта(Свойство) Тогда
РасширенияТабличныхЧастейПоОсновнымРасширениям(Свойство, Расширение, ВложенныеРасширения["РасширенияТабличныхЧастей"]);
ИначеЕсли Свойство.Имя = КлассКлючевыеСвойстваФормата()
Или СтрНайти(Свойство.Тип.Имя, КлассКлючевыеСвойстваФормата()) > 0 Тогда
РасширенияКлючевыхСвойствПоОсновнымРасширениям(Свойство, Расширение, ВложенныеРасширения["РасширенияКлючевыхСвойств"]);
КонецЕсли;
Если Свойство.URIПространстваИмен <> ПространствоИменРасширения
ИЛИ СвойстваИсточника.Найти(Свойство) <> Неопределено Тогда
Продолжить;
@@ -9006,7 +9028,6 @@
КонецЕсли;
Для Каждого Расширение Из КомпонентыОбмена.РасширенияФормата Цикл
РасширениеТипаЗначенияXDTO = ФабрикаXDTO.Тип(Расширение.Ключ, ТипЗначенияXDTO.Имя);
@@ -9033,62 +9054,44 @@
КонецПроцедуры
Процедура РасширенияКлючевыхСвойствПоОсновнымРасширениям(Свойство, Расширение, РасширенияКлючевыхСвойств)
Процедура ПроверитьНаличиеОбщегоСвойстваВРасширениях(КомпонентыОбмена, ПодСвойство, ТипЗначенияXDTO, ОписаниеСвойства)
РасширенныеКлючевыеСвойстваТипXDTO = ФабрикаXDTO.Тип(Расширение.Ключ, Свойство.Тип.Имя);
Если РасширенныеКлючевыеСвойстваТипXDTO = Неопределено Тогда
Если ТипЗнч(КомпонентыОбмена.РасширенияФормата) <> Тип("Соответствие") Тогда
Возврат;
КонецЕсли;
Если РасширенияКлючевыхСвойств = Неопределено Тогда
Для каждого РасширениеФормата Из КомпонентыОбмена.РасширенияФормата Цикл
РасширенияКлючевыхСвойств = Новый Соответствие;
ПространствоИменРасширения = РасширениеФормата.Ключ;
КонецЕсли;
РасширенныйТипXDTO = ФабрикаXDTO.Тип(ПространствоИменРасширения, ТипЗначенияXDTO.Имя);
Если РасширенныйТипXDTO = Неопределено Тогда
СтруктураРасширенияПравилаКонвертацииОбъекта = Новый Структура;
СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипXDTO", РасширенныеКлючевыеСвойстваТипXDTO);
СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипКлючевыхСвойствОбъектаXDTO");
СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипДанных");
Продолжить;
ОписаниеРасширенияКлючевыхСвойств = Новый Соответствие;
ОписаниеРасширенияКлючевыхСвойств.Вставить(Расширение.Ключ, СтруктураРасширенияПравилаКонвертацииОбъекта);
КонецЕсли;
РасширенияКлючевыхСвойств.Вставить(Свойство.Тип.Имя, ОписаниеРасширенияКлючевыхСвойств);
ОписаниеСвойства = РасширенныйТипXDTO.Свойства.Получить(ПодСвойство.Имя);
КонецЦикла;
КонецПроцедуры
Процедура РасширенияТабличныхЧастейПоОсновнымРасширениям(Свойство, Расширение, РасширенияТабличныхЧастей)
Процедура РасширенияФорматаВКомпонентыОбмена(КомпонентыОбмена) Экспорт
РасширеннаяТабличнаяЧастьТипXDTO = ФабрикаXDTO.Тип(Расширение.Ключ, Свойство.Тип.Свойства[0].Тип.Имя);
Если РасширеннаяТабличнаяЧастьТипXDTO = Неопределено Тогда
ДоступныеРасширенияФормата = ДоступныеРасширенияФормата(КомпонентыОбмена.ВерсияФорматаОбмена);
Для Каждого РасширениеФорматаОбмена Из ДоступныеРасширенияФормата Цикл
Возврат;
ВключитьПространствоИмен(КомпонентыОбмена,
РасширениеФорматаОбмена.Ключ,
РасширениеФорматаОбмена.Значение);
КонецЕсли;
Если РасширенияТабличныхЧастей = Неопределено Тогда
РасширенияТабличныхЧастей = Новый Соответствие;
КонецЕсли;
СтруктураРасширенияПравилаКонвертацииОбъекта = Новый Структура;
СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипXDTO", РасширеннаяТабличнаяЧастьТипXDTO);
СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипКлючевыхСвойствОбъектаXDTO");
СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипДанных");
ОписаниеРасширенияТабличнойЧасти = Новый Соответствие;
ОписаниеРасширенияТабличнойЧасти.Вставить(Расширение.Ключ, СтруктураРасширенияПравилаКонвертацииОбъекта);
РасширенияТабличныхЧастей.Вставить(Свойство.Имя, ОписаниеРасширенияТабличнойЧасти);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -86,6 +86,8 @@
ПараметрыЗадания.Вставить("Использование", Истина);
ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ТекущаяУниверсальнаяДата());
ПараметрыЗадания.Вставить("Параметры", ПараметрыПроцедуры);
ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3);
ПараметрыЗадания.Вставить("ИнтервалПовтораПриАварийномЗавершении", 300);
МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий");
МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания);
@@ -289,8 +291,6 @@
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи
| ПО втПоследнийСценарий.ДатаСоздания = Задачи.ДатаСоздания
| И втПоследнийСценарий.ИдентификаторОбмена = Задачи.ИдентификаторОбмена
| И (НЕ Задачи.ЗавершенаУспешно)
| И (НЕ Задачи.ЗавершенаСОшибкой)
|;
|
|////////////////////////////////////////////////////////////////////////////////
@@ -316,12 +316,7 @@
Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(Запись, Выборка);
Запись.Прочитать();
Если Запись.Выбран() Тогда
Запись.ЗавершенаСОшибкой = Истина;
Запись.Ошибка = НСтр("ru = 'Отменено пользователем'");
Запись.Записать();
КонецЕсли;
Запись.Удалить();
КонецЦикла;
@@ -666,7 +661,8 @@
"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 3
| Задачи.ДатаСоздания КАК ДатаСоздания,
| Задачи.Сценарий КАК Сценарий,
| Задачи.ИдентификаторОбмена КАК ИдентификаторОбмена
| Задачи.ИдентификаторОбмена КАК ИдентификаторОбмена,
| Задачи.УзелИнформационнойБазы КАК УзелИнформационнойБазы
|ПОМЕСТИТЬ втДаты
|ИЗ
| РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи
@@ -679,7 +675,9 @@
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Задачи.ДатаСоздания КАК ДатаСоздания
| Задачи.ДатаСоздания КАК ДатаСоздания,
| Задачи.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| Задачи.Ошибка КАК Ошибка
|ИЗ
| втДаты КАК втДаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи
@@ -730,6 +728,70 @@
КонецФункции
Процедура УдалитьЗадачиПоСценариюСОшибкой(Сценарий) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Задачи.ИдентификаторОбмена КАК ИдентификаторОбмена
|ПОМЕСТИТЬ ВТ_Задачи
|ИЗ
| РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи
|ГДЕ
| Задачи.Сценарий = &Сценарий
| И Задачи.ЗавершенаСОшибкой
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗадачиОбменаДаннымиВнутренняяПубликация.ДатаСоздания КАК ДатаСоздания,
| ЗадачиОбменаДаннымиВнутренняяПубликация.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| ЗадачиОбменаДаннымиВнутренняяПубликация.НомерЗадачи КАК НомерЗадачи,
| ЗадачиОбменаДаннымиВнутренняяПубликация.ИдентификаторОбмена КАК ИдентификаторОбмена,
| ЗадачиОбменаДаннымиВнутренняяПубликация.ИдентификаторЗадачи КАК ИдентификаторЗадачи
|ИЗ
| ВТ_Задачи КАК ВТ_Задачи
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК ЗадачиОбменаДаннымиВнутренняяПубликация
| ПО ВТ_Задачи.ИдентификаторОбмена = ЗадачиОбменаДаннымиВнутренняяПубликация.ИдентификаторОбмена";
Запрос.УстановитьПараметр("Сценарий", Сценарий);
Выборка = Запрос.Выполнить().Выбрать();
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.СценарииОбменовДанными");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Сценарий);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Пока Выборка.Следующий() Цикл
Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(Запись, Выборка);
Запись.Прочитать();
Запись.Удалить();
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОтключениеСценария(),
УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке);
КонецПопытки;
КонецПроцедуры
Функция ОчередьЗадачВыполнена(Сценарий = "", ИдентификаторОбмена = "", Ошибка = "")
// Считаем, что сценарий (или ручной обмен) завершен, если для всех задач ЗавершеноУспешно = Истина, или есть ошибка
@@ -1035,7 +1097,6 @@
СтруктураНастроекОбмена = НастройкиОбменаДляУзлаИнформационнойБазы(Узел, Действие, Отказ);
ИнициализацияПрокси(Прокси, ПараметрыПрокси, СтруктураНастроекОбмена, Отказ, Ошибка);
ВыполнитьЗадачуВыгрузкаДанныхКорреспондент(Задача, Прокси, СтруктураНастроекОбмена, Отказ, Ошибка);
ОтметитьВыполнениеЗадачи(Задача, Ошибка);
ИначеЕсли Действие = Перечисления.ДействияПриОбменеВнутренняяПубликация.ЗагрузкаДанных Тогда
@@ -1443,7 +1504,10 @@
Или СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка_ТранспортСообщения Тогда
Отказ = Истина;
Ошибка = СтруктураНастроекОбмена.СтрокаСообщенияОбОшибке;
Если ЗначениеЗаполнено(СтруктураНастроекОбмена.СтрокаСообщенияОбОшибке) Тогда
Ошибка = СтруктураНастроекОбмена.СтрокаСообщенияОбОшибке;
КонецЕсли;
Возврат Истина;
@@ -366,4 +366,23 @@
КонецФункции
Функция ПроверитьИЗарегистрироватьCOMСоединитель(Знач СтрукураНастроек) Экспорт
Если ТипЗнч(СтрукураНастроек) <> Тип("Структура") Тогда
СтрукураНастроек = РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспорта(
СтрукураНастроек, Перечисления.ВидыТранспортаСообщенийОбмена.COM)
КонецЕсли;
Результат = ОбменДаннымиСервер.УстановитьВнешнееСоединениеСБазой(СтрукураНастроек);
Если Результат.Соединение = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Результат = Неопределено;
Возврат Истина;
КонецФункции
#КонецОбласти
@@ -348,6 +348,52 @@
КонецПроцедуры
// Открывает панель настройки синхронизации данных.
//
// Параметры:
// ПараметрКоманды - Структура
// - Неопределено
// ПараметрыВыполненияКоманды - ПараметрыВыполненияКоманды
//
Процедура ОткрытьПанельСинхронизацииДанных(ПараметрКоманды, ПараметрыВыполненияКоманды) Экспорт
ИмяОбработки = "";
ИмяФормыОбработки = "";
Если СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ДоступноИспользованиеРазделенныхДанных Тогда
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ОбменДаннымиНастройкиПрограммы") Тогда
ИмяОбработки = "ПанельАдминистрированияБСД";
ИмяФормыОбработки = "СинхронизацияДанных";
ИначеЕсли ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкиПрограммы") Тогда
ИмяОбработки = "ПанельАдминистрированияБСП";
ИмяФормыОбработки = "СинхронизацияДанных";
КонецЕсли;
Иначе
Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса") Тогда
Возврат;
КонецЕсли;
ИмяОбработки = "ПанельАдминистрированияБСПВМоделиСервиса";
ИмяФормыОбработки = "СинхронизацияДанныхДляАдминистратораСервиса";
КонецЕсли;
Если ИмяОбработки = "" Тогда
Возврат;
КонецЕсли;
ИмяОткрываемойФормы = "Обработка.[ИмяОбработки].Форма.[ИмяФормыОбработки]";
ИмяОткрываемойФормы = СтрЗаменить(ИмяОткрываемойФормы, "[ИмяОбработки]", ИмяОбработки);
ИмяОткрываемойФормы = СтрЗаменить(ИмяОткрываемойФормы, "[ИмяФормыОбработки]", ИмяФормыОбработки);
ОткрытьФорму(
ИмяОткрываемойФормы,
Новый Структура,
ПараметрыВыполненияКоманды.Источник,
ИмяОткрываемойФормы + ?(ПараметрыВыполненияКоманды.Окно = Неопределено, ".ОтдельноеОкно", ""),
ПараметрыВыполненияКоманды.Окно);
КонецПроцедуры
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
@@ -1512,4 +1558,16 @@
Возврат Истина;
КонецФункции
Функция ПроверитьИЗарегистрироватьCOMСоединитель(Знач СтрукураНастроек, Оповещение = Неопределено) Экспорт
Если НЕ ОбщегоНазначенияКлиент.ИнформационнаяБазаФайловая() Тогда
Возврат Истина;
КонецЕсли;
Если НЕ ОбменДаннымиВызовСервера.ПроверитьИЗарегистрироватьCOMСоединитель(СтрукураНастроек) Тогда
ОбщегоНазначенияКлиент.ЗарегистрироватьCOMСоединитель(Ложь, Оповещение);
КонецЕсли;
КонецФункции
#КонецОбласти
@@ -352,10 +352,12 @@
Функция ЕстьЗацикливание() Экспорт
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтурСинхронизации.УзелИнформационнойБазы КАК УзелИнформационнойБазы
| ИСТИНА КАК ЕстьЗацикливание
|ИЗ
| РегистрСведений.КонтурСинхронизации КАК КонтурСинхронизации
|ГДЕ
@@ -263,6 +263,22 @@
КонецПроцедуры
// Заполняет массив типов, исключаемых из проверки устранения проблемы
// (см. РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьУстранениеПроблемы).
//
// Параметры:
// Типы - Массив из ОбъектМетаданных
//
Процедура ПриЗаполненииТиповИсключаемыхИзПроверкиУстраненияПроблемы(Типы) Экспорт
КонецПроцедуры
#Область УстаревшиеПроцедурыИФункции
// Устарела. В процедуре нет необходимости. Теперь для поиска плана обмена используется параметр Глобальный
// (см процедуру ПриПолученииНастроек в менеджере универсального плана обмена)
// Вызывается при проверке имени плана обмена универсального формата.
// Допускает настройку синхронизацию между планами обменов EnterpriseData с отличающимися имена.
//
@@ -270,7 +286,7 @@
// ИмяПланаОбмена - Строка - имя плана обмена универсального формата,
// для которого подбираем соответствие из метаданных конфигурации.
// ВариантНастройки - Строка - идентификатор варианта настройки, используется для уточнения поиска.
// Может быть незаполнен, например, при проверке формата полученного сообщения обмена.
// Может быть не заполнен, например, при проверке формата полученного сообщения обмена.
// ПланОбменаРаспознан - Булево - признак того, что переданное имя плана обмена распознано и работу можно продолжить.
//
Процедура ПриПроверкеКорректностиИмениПланаОбменаEnterpriseData(ИмяПланаОбмена, ВариантНастройки, ПланОбменаРаспознан) Экспорт
@@ -281,3 +297,5 @@
#КонецОбласти
#КонецОбласти
@@ -577,7 +577,7 @@
// ИмяПланаОбмена - Строка - имя плана обмена, как оно задано в конфигураторе.
//
// Возвращаемое значение:
// Булево - Истина - используется кеш, иначе Ложь - используются запросы к РС ПубличныеИдентификаторыСинхронизируемыхОбъектов.
// Булево
//
Функция ЭтоГлобальныйОбменЧерезУниверсальныйФормат(Знач ИмяПланаОбмена) Экспорт
@@ -304,7 +304,11 @@
Функция РеквизитНайденВТабличнойЧастиРеквизитовРегистрацииОбъектов(МетаданныеТаблицы, ИмяИскомогоРеквизита)
МетаТест = Новый Структура("Реквизиты, СтандартныеРеквизиты, Измерения, Ресурсы");
МетаТест = Новый Структура;
МетаТест.Вставить("Реквизиты", Неопределено);
МетаТест.Вставить("СтандартныеРеквизиты", Неопределено);
МетаТест.Вставить("Измерения", Неопределено);
МетаТест.Вставить("Ресурсы", Неопределено);
ЗаполнитьЗначенияСвойств(МетаТест, МетаданныеТаблицы);
ИмяКандидата = ВРег(ИмяИскомогоРеквизита);
@@ -317,6 +321,17 @@
Или ИмяКандидата = "СЧЕТДТ" Или ИмяКандидата = "СЧЕТКТ" Тогда
Возврат Истина;
КонецЕсли;
// Необходимо учесть планы обмена без Корреспонденции, свойства Субконто и Счет
Если Корреспонденция = Ложь Тогда
Если ИмяКандидата = "СУБКОНТО"
Или ИмяКандидата = "СЧЕТ" Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Для Каждого КлючЗначение Из МетаТест Цикл
@@ -935,51 +935,56 @@
// Определяет настройки по умолчанию для плана обмена, которые затем могут быть переопределены
// в модуле менеджера плана обмена в процедуре ПриПолученииНастроек().
//
// Параметры:
// ИмяПланаОбмена - Строка - имя плана обмена из метаданных.
//
// Возвращаемое значение:
// Структура:
// * ВариантыНастроекОбмена - см. КоллекцияВариантовНастроекОбмена
// * ВидГруппыДляВариантовНастроек - ВидГруппыФормы - вариант вида группы для отображения в
// дереве команд создания обмена вариантов настроек.
// * ИмяКонфигурацииИсточника - Строка - имя конфигурации источника, выводимое в
// пользовательском интерфейсе.
// * ИмяКонфигурацииПриемника - Структура - перечень идентификаторов конфигураций-корреспондентов,
// обмен с которыми возможен через данный план обмена.
// * ВерсииФорматаОбмена - Соответствие из КлючИЗначение - номеров поддерживаемых версий
// формата и ссылок на общие модули с логикой обмена
// через формат. Используется только для обменов через
// универсальный формат:
// * ВариантыНастроекОбмена - см. КоллекцияВариантовНастроекОбмена
// * ВидГруппыДляВариантовНастроек - ВидГруппыФормы - вариант вида группы для отображения в
// дереве команд создания обмена вариантов настроек.
// * ИмяКонфигурацииИсточника - Строка - имя конфигурации источника, выводимое в
// пользовательском интерфейсе.
// * ИмяКонфигурацииПриемника - Структура - перечень идентификаторов конфигураций-корреспондентов,
// обмен с которыми возможен через данный план обмена.
// * ВерсииФорматаОбмена - Соответствие из КлючИЗначение - номеров поддерживаемых версий формата
// и ссылок на общие модули с логикой обмена через формат.
// Используется только для обменов через универсальный формат:
// ** Ключ - Число - версия формата.
// ** Значение - ОбщийМодуль - ссылка на общий модуль.
// * ФорматОбмена - Строка - пространство имен XDTO пакета, в котором содержится
// универсальный формат, без указания версии формата.
// Используется только для обменов через универсальный формат.
// * РасширенияФорматаОбмена - Соответствие из КлючИЗначение:
// ** Ключ - Строка - URI пространства имен схемы расширения формата.
// ** Значение - Строка - номер расширяемой версии формата.
// * ПланОбменаИспользуетсяВМоделиСервиса - Булево - признак использования плана обмена для организации
// обмена в модели сервиса.
// * ЭтоПланОбменаXDTO - Булево - признак того, что это план обмена через
// универсальный формат.
// * ФорматОбмена - Строка - пространство имен XDTO пакета, в котором содержится
// универсальный формат, без указания версии формата.
// Используется только для обменов через универсальный формат.
// * РасширенияФорматаОбмена - Соответствие из КлючИЗначение:
// ** Ключ - Строка - URI пространства имен схемы расширения формата.
// ** Значение - Строка - номер расширяемой версии формата.
// * ПланОбменаИспользуетсяВМоделиСервиса - Булево - признак использования плана обмена для организации
// обмена в модели сервиса.
// * ЭтоПланОбменаXDTO - Булево - признак того, что это план обмена через
// универсальный формат.
// * ПредупреждатьОНесоответствииВерсийПравилОбмена - Булево - признак необходимости проверки на
// расхождение версий в правилах конвертации.
// Проверка выполняется при загрузке комплекта
// правил, при отправке данных и при получении данных.
// * ИмяПланаОбменаДляПереходаНаНовыйОбмен - Строка - если для плана обмена свойство установлено, в
// рабочих местах управления настройками не будет
// предлагаться настроить этот вид обмена.
// Существующие обмены этого вида будут продолжать
// отображаться в списке настроенных обменов.
// Получении сообщения обмена в новом формате будет
// инициировать переход на новый вид обмена.
// * НазначениеПланаОбмена - Строка - вариант назначения плана обмена.
// * Алгоритмы - Структура - перечень экспортных процедур и функций, которые
// объявлены в модуле менеджера плана обмена
// и используются подсистемой обмена данными.
// *ПравилаРегистрацииВМенеджере - Булево - признак использования правил регистрации,
// расположенных в общем модуле (менеджере регистрации)
// *ИмяМенеджераРегистрации - Строка - имя модуля с правилами регистрации
// *ИспользоватьКешПубличныхИдентификаторов - Булево - признак того, что при загрузке данных будет
// использован кеш для поиска ссылок
// * ИмяПланаОбменаДляПереходаНаНовыйОбмен - Строка - если для плана обмена свойство установлено, в
// рабочих местах управления настройками не будет
// предлагаться настроить этот вид обмена.
// Существующие обмены этого вида будут продолжать
// отображаться в списке настроенных обменов.
// Получении сообщения обмена в новом формате будет
// инициировать переход на новый вид обмена.
// * НазначениеПланаОбмена - Строка - вариант назначения плана обмена.
// * Алгоритмы - Структура - перечень экспортных процедур и функций, которые
// объявлены в модуле менеджера плана обмена
// и используются подсистемой обмена данными.
// *ПравилаРегистрацииВМенеджере - Булево - признак использования правил регистрации,
// расположенных в общем модуле (менеджере регистрации)
// *ИмяМенеджераРегистрации - Строка - имя модуля с правилами регистрации
// *ИспользоватьКешПубличныхИдентификаторов - Булево - признак того, что при загрузке данных будет
// использован кеш для поиска ссылок
// *Глобальный - Булево - если установлено Истина, то план обмена может быть
// использован для обмена с планами обмена с другими наименованиями.
// Только для обмена через EnterpriseData
//
Функция НастройкиПланаОбменаПоУмолчанию(ИмяПланаОбмена) Экспорт
@@ -1046,60 +1051,60 @@
//
// Возвращаемое значение:
// Структура:
// * Отборы - Структура - отборы на узле плана обмена,
// подлежат заполнению значениями по умолчанию.
// * ЗначенияПоУмолчанию - Структура - значения по умолчанию на узле плана обмена.
// * ОбщиеДанныеУзлов - Строка - имена реквизитов и табличных частей плана обмена,
// через запятую, которые являются общими для пары
// обменивающихся конфигураций.
// * ИспользоватьПомощникСозданияОбменаДанными - Булево - признак, будет ли использоваться помощник для
// создания новых узлов плана обмена.
// * ИмяФормыСозданияНачальногоОбраза - Строка - имя используемой формы создания начального
// образа распределенной ИБ.
// * ИмяФормыПомощникаНастройкиСинхронизацииДанных - Строка - имя формы, которая будет использована для настройки
// правил отправки и получения данных вместо
// стандартной формы.
// * ПояснениеДляНастройкиПараметровУчета - Строка - пояснение о последовательности действий пользователя
// для настройки параметров учета в текущей
// информационной базе.
// * ПутьКФайлуКомплектаПравилНаПользовательскомСайте - Строка - путь к файлу комплекта правил в виде архива
// на пользовательском сайте в разделе конфигурации.
// * ПутьКФайлуКомплектаПравилВКаталогеШаблонов - Строка - относительный путь к файлу комплекта правил в
// каталоге шаблонов.
// * ЗаголовокКомандыДляСозданияНовогоОбменаДанными - Строка - представление команды, выводимое в пользовательском
// интерфейсе при создании новой настройки
// * Отборы - Структура - отборы на узле плана обмена,
// подлежат заполнению значениями по умолчанию.
// * ЗначенияПоУмолчанию - Структура - значения по умолчанию на узле плана обмена.
// * ОбщиеДанныеУзлов - Строка - имена реквизитов и табличных частей плана обмена,
// через запятую, которые являются общими для пары
// обменивающихся конфигураций.
// * ИспользоватьПомощникСозданияОбменаДанными - Булево - признак, будет ли использоваться помощник для
// создания новых узлов плана обмена.
// * ИмяФормыСозданияНачальногоОбраза - Строка - имя используемой формы создания начального
// образа распределенной ИБ.
// * ИмяФормыПомощникаНастройкиСинхронизацииДанных - Строка - имя формы, которая будет использована для настройки
// правил отправки и получения данных вместо
// стандартной формы.
// * ПояснениеДляНастройкиПараметровУчета - Строка - пояснение о последовательности действий пользователя
// для настройки параметров учета в текущей
// информационной базе.
// * ПутьКФайлуКомплектаПравилНаПользовательскомСайте - Строка - путь к файлу комплекта правил в виде архива
// на пользовательском сайте в разделе конфигурации.
// * ПутьКФайлуКомплектаПравилВКаталогеШаблонов - Строка - относительный путь к файлу комплекта правил в
// каталоге шаблонов.
// * ЗаголовокКомандыДляСозданияНовогоОбменаДанными - Строка - представление команды, выводимое в пользовательском
// интерфейсе при создании новой настройки
// обмена данными.
// * ЗаголовокПомощникаСозданияОбмена - Строка - представление заголовка формы помощника
// создания обмена данными выводимое в
// пользовательском интерфейсе.
// * ЗаголовокУзлаПланаОбмена - Строка - представление узла плана обмена
// выводимое в пользовательском интерфейсе.
// * ИмяКонфигурацииКорреспондента - Строка - идентификатор конфигурации корреспондента.
// * НаименованиеКонфигурацииКорреспондента - Строка - представление наименования конфигурации корреспондента
// выводимое в пользовательском интерфейсе.
// * ИспользуемыеТранспортыСообщенийОбмена - Массив из ПеречислениеСсылка.ВидыТранспортаСообщенийОбмена
// - перечень используемых транспортов сообщений.
// Если не заполнен, будут доступны все возможные
// виды транспорта.
// * КраткаяИнформацияПоОбмену - Строка - краткое описание обмена данными, которое
// выводится на первой странице помощника
// создания обмена.
// * ПодробнаяИнформацияПоОбмену - Строка - ссылка на веб-страницу или полный путь к
// форме внутри конфигурации строкой, для
// отображения в помощнике создания обмена.
// * ИмяФайлаНастроекДляПриемника - Строка - имя файла для сохранения настроек подключения
// при настройке обмена через offline-каналы.
// * ПоддерживаетсяСопоставлениеДанных - Булево - Истина, если для данного варианта настройки поддерживается
// интерактивное сопоставление данных. В
// противном случае полученные сообщения обмена
// будут сразу загружаться в информационную базу.
// * РасширениеФормата - Строка - имя расширения формата, применимое для
// данного варианта настройки. Образуется из URI
// пространства имен схемы расширения формата,
// без учета версии. Напр., для пространства
// имен
// "http://v8.1c.ru/edi/edi_stnd/_DemoEnterpriseDataExt/1.1"
// имя расширение формата будет "http://v8.1c.ru/edi/edi_stnd/_DemoEnterpriseDataExt";
// * ЗаголовокПомощникаСозданияОбмена - Строка - представление заголовка формы помощника
// создания обмена данными выводимое в
// пользовательском интерфейсе.
// * ЗаголовокУзлаПланаОбмена - Строка - представление узла плана обмена
// выводимое в пользовательском интерфейсе.
// * ИмяКонфигурацииКорреспондента - Строка - идентификатор конфигурации корреспондента.
// * НаименованиеКонфигурацииКорреспондента - Строка - представление наименования конфигурации корреспондента
// выводимое в пользовательском интерфейсе.
// * ИспользуемыеТранспортыСообщенийОбмена - Массив из ПеречислениеСсылка.ВидыТранспортаСообщенийОбмена
// - перечень используемых транспортов сообщений. Если не заполнен,
// будут доступны все возможные виды транспорта.
// * КраткаяИнформацияПоОбмену - Строка - краткое описание обмена данными, которое
// выводится на первой странице помощника
// создания обмена.
// * ПодробнаяИнформацияПоОбмену - Строка - ссылка на веб-страницу или полный путь к
// форме внутри конфигурации строкой, для
// отображения в помощнике создания обмена.
// * ИмяФайлаНастроекДляПриемника - Строка - имя файла для сохранения настроек подключения
// при настройке обмена через offline-каналы.
// * ПоддерживаетсяСопоставлениеДанных - Булево - Истина, если для данного варианта настройки
// поддерживается
// интерактивное сопоставление данных. В
// противном случае полученные сообщения обмена
// будут сразу загружаться в информационную базу.
// * РасширениеФормата - Строка - имя расширения формата, применимое для
// данного варианта настройки. Образуется из URI
// пространства имен схемы расширения формата,
// без учета версии. Напр., для пространства
// имен "http://v8.1c.ru/edi/edi_stnd/_DemoEnterpriseDataExt/1.1"
// имя расширение формата будет
// "http://v8.1c.ru/edi/edi_stnd/_DemoEnterpriseDataExt";
//
Функция ОписаниеВариантаНастройкиОбменаПоУмолчанию(ИмяПланаОбмена) Экспорт
@@ -1307,7 +1312,7 @@
Если ОбщегоНазначения.РазделениеВключено() Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий")
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда
И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий");
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
@@ -3859,79 +3864,66 @@
Функция ТаблицаМонитораОбменаДанными(Знач ПланыОбмена, Знач ДополнительныеСвойстваПланаОбмена = "") Экспорт
Запрос = Новый Запрос(
"ВЫБРАТЬ
| СценарииОбменовДаннымиНастройкиОбмена.УзелИнформационнойБазы КАК УзелИнформационнойБазы
|ПОМЕСТИТЬ СценарииСинхронизацииДанных
|ИЗ
| Справочник.СценарииОбменовДанными.НастройкиОбмена КАК СценарииОбменовДаннымиНастройкиОбмена
|ГДЕ
| СценарииОбменовДаннымиНастройкиОбмена.Ссылка.ИспользоватьРегламентноеЗадание = ИСТИНА
|
|СГРУППИРОВАТЬ ПО
| СценарииОбменовДаннымиНастройкиОбмена.УзелИнформационнойБазы
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПланыОбмена.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
|
| &ДополнительныеСвойстваПланаОбмена,
|
| ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.РезультатВыполненияОбмена, 0) КАК РезультатПоследнейВыгрузкиДанных,
| ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.РезультатВыполненияОбмена, 0) КАК РезультатПоследнейЗагрузкиДанных,
| ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.ДатаНачала, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачалаПоследнейЗагрузки,
| ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.ДатаОкончания, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаОкончанияПоследнейЗагрузки,
| ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.ДатаНачала, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачалаПоследнейВыгрузки,
| ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.ДатаОкончания, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаОкончанияПоследнейВыгрузки,
| ЕСТЬNULL(СостоянияУспешныхОбменовДаннымиЗагрузка.ДатаОкончания, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаОкончанияПоследнейУспешнойЗагрузки,
| ЕСТЬNULL(СостоянияУспешныхОбменовДаннымиВыгрузка.ДатаОкончания, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаОкончанияПоследнейУспешнойВыгрузки,
| ВЫБОР
| КОГДА СценарииСинхронизацииДанных.УзелИнформационнойБазы ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ 1
| КОНЕЦ КАК РасписаниеНастроено,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ВерсияКорреспондента, 0) КАК ВерсияКорреспондента,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ПрефиксКорреспондента, """") КАК ПрефиксКорреспондента,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.НастройкаЗавершена, ЛОЖЬ) КАК НастройкаЗавершена,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ПереходНаWS_Этап, 0) КАК ПереходНаWS_Этап,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ВидТранспорта, """") КАК ВидТранспорта,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.СинхронизацияНедоступна, ЛОЖЬ) КАК СинхронизацияНедоступна,
| ВЫБОР
| КОГДА ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.РезультатВыполненияОбмена, 0) = 0
| И ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.РезультатВыполненияОбмена, 0) = 0
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЕстьОшибки,
| ЕСТЬNULL(СообщенияДляСопоставленияДанных.ПолученоСообщениеДляСопоставленияДанных, ЛОЖЬ) КАК ПолученоСообщениеДляСопоставленияДанных,
| ЕСТЬNULL(СообщенияДляСопоставленияДанных.ДатаЗакладкиПоследнегоСообщения, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСообщенияДляСопоставленияДанных
|ИЗ
| ПланыОбменаКонфигурации КАК ПланыОбмена
| ЛЕВОЕ СОЕДИНЕНИЕ ОбщиеНастройкиУзловИнформационныхБаз КАК ОбщиеНастройкиУзловИнформационныхБаз
| ПО (ОбщиеНастройкиУзловИнформационныхБаз.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СостоянияОбменовДаннымиЗагрузка КАК СостоянияОбменовДаннымиЗагрузка
| ПО (СостоянияОбменовДаннымиЗагрузка.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СостоянияОбменовДаннымиВыгрузка КАК СостоянияОбменовДаннымиВыгрузка
| ПО (СостоянияОбменовДаннымиВыгрузка.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СостоянияУспешныхОбменовДаннымиЗагрузка КАК СостоянияУспешныхОбменовДаннымиЗагрузка
| ПО (СостоянияУспешныхОбменовДаннымиЗагрузка.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СостоянияУспешныхОбменовДаннымиВыгрузка КАК СостоянияУспешныхОбменовДаннымиВыгрузка
| ПО (СостоянияУспешныхОбменовДаннымиВыгрузка.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СценарииСинхронизацииДанных КАК СценарииСинхронизацииДанных
| ПО (СценарииСинхронизацииДанных.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СообщенияДляСопоставленияДанных КАК СообщенияДляСопоставленияДанных
| ПО СообщенияДляСопоставленияДанных.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы
|
|УПОРЯДОЧИТЬ ПО
| ПланыОбмена.Наименование");
ТекстЗапроса =
"ВЫБРАТЬ
| ПланыОбмена.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| &ДополнительныеСвойстваПланаОбмена КАК ДополнительныеСвойстваПланаОбмена,
| ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.РезультатВыполненияОбмена, 0) КАК РезультатПоследнейВыгрузкиДанных,
| ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.РезультатВыполненияОбмена, 0) КАК РезультатПоследнейЗагрузкиДанных,
| ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.ДатаНачала, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачалаПоследнейЗагрузки,
| ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.ДатаОкончания, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаОкончанияПоследнейЗагрузки,
| ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.ДатаНачала, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачалаПоследнейВыгрузки,
| ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.ДатаОкончания, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаОкончанияПоследнейВыгрузки,
| ЕСТЬNULL(СостоянияУспешныхОбменовДаннымиЗагрузка.ДатаОкончания, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаОкончанияПоследнейУспешнойЗагрузки,
| ЕСТЬNULL(СостоянияУспешныхОбменовДаннымиВыгрузка.ДатаОкончания, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаОкончанияПоследнейУспешнойВыгрузки,
| ВЫБОР
| КОГДА СценарииСинхронизацииДанных.УзелИнформационнойБазы ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ 1
| КОНЕЦ КАК РасписаниеНастроено,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ВерсияКорреспондента, 0) КАК ВерсияКорреспондента,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ПрефиксКорреспондента, """") КАК ПрефиксКорреспондента,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.НастройкаЗавершена, ЛОЖЬ) КАК НастройкаЗавершена,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ПереходНаWS_Этап, 0) КАК ПереходНаWS_Этап,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ВидТранспорта, """") КАК ВидТранспорта,
| ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.СинхронизацияНедоступна, ЛОЖЬ) КАК СинхронизацияНедоступна,
| ВЫБОР
| КОГДА ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.РезультатВыполненияОбмена, 0) = 0
| И ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.РезультатВыполненияОбмена, 0) = 0
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЕстьОшибки,
| ЕСТЬNULL(СообщенияДляСопоставленияДанных.ПолученоСообщениеДляСопоставленияДанных, ЛОЖЬ) КАК ПолученоСообщениеДляСопоставленияДанных,
| ЕСТЬNULL(СообщенияДляСопоставленияДанных.ДатаЗакладкиПоследнегоСообщения, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСообщенияДляСопоставленияДанных
|ИЗ
| ПланыОбменаКонфигурации КАК ПланыОбмена
| ЛЕВОЕ СОЕДИНЕНИЕ ОбщиеНастройкиУзловИнформационныхБаз КАК ОбщиеНастройкиУзловИнформационныхБаз
| ПО (ОбщиеНастройкиУзловИнформационныхБаз.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СостоянияОбменовДаннымиЗагрузка КАК СостоянияОбменовДаннымиЗагрузка
| ПО (СостоянияОбменовДаннымиЗагрузка.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СостоянияОбменовДаннымиВыгрузка КАК СостоянияОбменовДаннымиВыгрузка
| ПО (СостоянияОбменовДаннымиВыгрузка.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СостоянияУспешныхОбменовДаннымиЗагрузка КАК СостоянияУспешныхОбменовДаннымиЗагрузка
| ПО (СостоянияУспешныхОбменовДаннымиЗагрузка.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СостоянияУспешныхОбменовДаннымиВыгрузка КАК СостоянияУспешныхОбменовДаннымиВыгрузка
| ПО (СостоянияУспешныхОбменовДаннымиВыгрузка.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СценарииСинхронизацииДанных КАК СценарииСинхронизацииДанных
| ПО (СценарииСинхронизацииДанных.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
| ЛЕВОЕ СОЕДИНЕНИЕ СообщенияДляСопоставленияДанных КАК СообщенияДляСопоставленияДанных
| ПО (СообщенияДляСопоставленияДанных.УзелИнформационнойБазы = ПланыОбмена.УзелИнформационнойБазы)
|
|УПОРЯДОЧИТЬ ПО
| ПланыОбмена.Наименование";
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДополнительныеСвойстваПланаОбмена,",
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ДополнительныеСвойстваПланаОбмена КАК ДополнительныеСвойстваПланаОбмена,",
ДополнительныеСвойстваПланаОбменаСтрокой(ДополнительныеСвойстваПланаОбмена));
Запрос = Новый Запрос(ТекстЗапроса);
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
УстановитьПривилегированныйРежим(Истина);
ПолучитьСценарииОбменаДаннымиДляМонитора(МенеджерВременныхТаблиц);
ПолучитьПланыОбменаДляМонитора(МенеджерВременныхТаблиц, ПланыОбмена, ДополнительныеСвойстваПланаОбмена);
ПолучитьРезультатыОбменаДляМонитора(МенеджерВременныхТаблиц);
ПолучитьСостоянияОбменовДанными(МенеджерВременныхТаблиц);
@@ -4402,6 +4394,7 @@
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ЧитаемыеОбъекты = "РегистрСведений.УдалитьНастройкиТранспортаОбмена";
Обработчик.ИзменяемыеОбъекты = "РегистрСведений.УдалитьНастройкиТранспортаОбмена,РегистрСведений.НастройкиТранспортаОбменаДанными";
Обработчик.ОчередьОтложеннойОбработки = 1;
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.НастройкиТранспортаОбменаДанными.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
@@ -4416,6 +4409,7 @@
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ЧитаемыеОбъекты = "РегистрСведений.НастройкиОбменаДаннымиXDTO";
Обработчик.ИзменяемыеОбъекты = "РегистрСведений.НастройкиОбменаДаннымиXDTO";
Обработчик.ОчередьОтложеннойОбработки = 1;
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.НастройкиОбменаДаннымиXDTO.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
@@ -4430,6 +4424,7 @@
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ЧитаемыеОбъекты = "РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз";
Обработчик.ИзменяемыеОбъекты = "РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз";
Обработчик.ОчередьОтложеннойОбработки = 1;
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
@@ -4444,6 +4439,7 @@
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ЧитаемыеОбъекты = "РегистрСведений.УдалитьРезультатыОбменаДанными";
Обработчик.ИзменяемыеОбъекты = "РегистрСведений.УдалитьРезультатыОбменаДанными,РегистрСведений.РезультатыОбменаДанными";
Обработчик.ОчередьОтложеннойОбработки = 1;
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
@@ -4600,6 +4596,7 @@
ПриЗаполненииСпискаТекущихДелПредупрежденияСинхронизации(ТекущиеДела);
ПриЗаполненииСпискаТекущихДелНеобходимоОбновление(ТекущиеДела);
ПриЗаполненииСпискаТекущихДелПроверитьСовместимостьСТекущейВерсией(ТекущиеДела);
ПриЗаполненииСпискаТекущихДелПроверитьЗацикливание(ТекущиеДела);
КонецПроцедуры
@@ -10915,14 +10912,10 @@
ТаблицаМонитора = ТаблицаМонитораОбменаДанными(ПланыОбменаБСП);
СтруктураРезультат = РегистрыСведений.РезультатыОбменаДанными.КоличествоПредупрежденийДляЭлементаФормы(ТаблицаМонитора.ВыгрузитьКолонку("УзелИнформационнойБазы"));
ЕстьЗацикливание = ОбменДаннымиКонтрольЗацикливания.ЕстьЗацикливание();
Иначе
СтруктураРезультат = Новый Структура("Количество, Заголовок", 0, "");
ЕстьЗацикливание = Ложь;
КонецЕсли;
// Процедура вызывается только при наличии подсистемы "Текущие дела", поэтому здесь
@@ -10940,6 +10933,28 @@
Дело.Форма = "РегистрСведений.РезультатыОбменаДанными.Форма.ПредупрежденияСинхронизаций";
Дело.Владелец = Раздел;
КонецЦикла;
КонецПроцедуры
// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел
Процедура ПриЗаполненииСпискаТекущихДелПроверитьЗацикливание(ТекущиеДела)
МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер");
Если Не ПравоДоступа("Редактирование", Метаданные.РегистрыСведений.КонтурСинхронизации)
Или МодульТекущиеДелаСервер.ДелоОтключено("ПредупрежденияПриСинхронизацииЗацикливание") Тогда
Возврат;
КонецЕсли;
ПланыОбменаБСП = ОбменДаннымиПовтИсп.ПланыОбменаБСП();
ЕстьЗацикливание = ПланыОбменаБСП.Количество() > 0 И ОбменДаннымиКонтрольЗацикливания.ЕстьЗацикливание();
// Процедура вызывается только при наличии подсистемы "Текущие дела", поэтому здесь
// не делается проверка существования подсистемы.
Разделы = МодульТекущиеДелаСервер.РазделыДляОбъекта(Метаданные.ОбщиеФормы.НастройкиСинхронизацииДанных.ПолноеИмя());
Для Каждого Раздел Из Разделы Цикл
ИдентификаторПредупрежденияПриСинхронизации = "ПредупрежденияПриСинхронизацииЗацикливание" + СтрЗаменить(Раздел.ПолноеИмя(), ".", "");
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = ИдентификаторПредупрежденияПриСинхронизации;
@@ -11140,6 +11155,39 @@
КонецПроцедуры
Процедура ПолучитьСценарииОбменаДаннымиДляМонитора(МенеджерВременныхТаблиц)
Запрос = Новый Запрос;
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| СценарииОбменовДаннымиНастройкиОбмена.УзелИнформационнойБазы КАК УзелИнформационнойБазы
|ПОМЕСТИТЬ СценарииСинхронизацииДанных
|ИЗ
| Справочник.СценарииОбменовДанными.НастройкиОбмена КАК СценарииОбменовДаннымиНастройкиОбмена
|ГДЕ
| СценарииОбменовДаннымиНастройкиОбмена.Ссылка.ИспользоватьРегламентноеЗадание = ИСТИНА
|
|СГРУППИРОВАТЬ ПО
| СценарииОбменовДаннымиНастройкиОбмена.УзелИнформационнойБазы";
Иначе
ТекстЗапроса =
"ВЫБРАТЬ
| НЕОПРЕДЕЛЕНО КАК УзелИнформационнойБазы
|ПОМЕСТИТЬ СценарииСинхронизацииДанных";
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Выполнить();
КонецПроцедуры
Процедура ПолучитьПланыОбменаДляМонитора(МенеджерВременныхТаблиц, ПланыОбменаМассив, Знач ДополнительныеСвойстваПланаОбмена)
Запрос = Новый Запрос;
@@ -11893,7 +11941,7 @@
ПараметрыПодключения.ИмяИнформационнойБазыНаСервере1СПредприятия = НастройкиТранспорта.COMИмяИнформационнойБазыНаСервере1СПредприятия;
ПараметрыПодключения.АутентификацияОперационнойСистемы = НастройкиТранспорта.COMАутентификацияОперационнойСистемы;
ПараметрыПодключения.ИмяПользователя = НастройкиТранспорта.COMИмяПользователя;
ПараметрыПодключения.ПарольПользователя = НастройкиТранспорта.COMПарольПользователя;
ПараметрыПодключения.ПарольПользователя = НастройкиТранспорта.COMПарольПользователя;
Возврат ПараметрыПодключения;
КонецФункции
@@ -12141,9 +12189,9 @@
Функция ПолучитьПараметрыИнформационнойБазы_3_0_2_2(Знач ИмяПланаОбмена, Знач КодУзла, СообщениеОбОшибке,
ДополнительныеПараметры = Неопределено) Экспорт
ПарпаметрыИБ = ПараметрыИнформационнойБазы(ИмяПланаОбмена, КодУзла, СообщениеОбОшибке, ДополнительныеПараметры);
ПараметрыИБ = ПараметрыИнформационнойБазы(ИмяПланаОбмена, КодУзла, СообщениеОбОшибке, ДополнительныеПараметры);
Возврат ОбщегоНазначения.ЗначениеВСтрокуXML(ПарпаметрыИБ);
Возврат ОбщегоНазначения.ЗначениеВСтрокуXML(ПараметрыИБ);
КонецФункции
@@ -14541,6 +14589,38 @@
КонецПроцедуры
Процедура ОчиститьСписокОшибокПриВыгрузкеДанных(УзелИнформационнойБазы) Экспорт
Если Не ЗначениеЗаполнено(УзелИнформационнойБазы) Тогда
Возврат;
КонецЕсли;
РегистрыСведений.РезультатыОбменаДанными.ОчиститьПроблемыПриОтправке(УзелИнформационнойБазы);
КонецПроцедуры
Процедура ОчиститьСписокОшибокПриЗагрузкеДанных(УзелИнформационнойБазы) Экспорт
Если Не ЗначениеЗаполнено(УзелИнформационнойБазы) Тогда
Возврат;
КонецЕсли;
РегистрыСведений.РезультатыОбменаДанными.ОчиститьПроблемыПриПолучении(УзелИнформационнойБазы);
КонецПроцедуры
Функция ТипыИсключаемыеИзПроверкиУстраненияПроблемы() Экспорт
Типы = Новый Массив;
Типы.Добавить(Метаданные.Справочники.СценарииОбменовДанными);
Типы.Добавить(Метаданные.Справочники.СеансыОбменовДанными);
ОбменДаннымиПереопределяемый.ПриЗаполненииТиповИсключаемыхИзПроверкиУстраненияПроблемы(Типы);
Возврат Типы;
КонецФункции
#КонецОбласти
#КонецОбласти
@@ -55,6 +55,7 @@
Словарь.Вставить("авансовыйотчетссылка", "AdvanceReportLink"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("авансы", "Prepayments"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("автоматически", "Automatically"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("автор", "Author"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("агент", "Agent"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("агентские", "Agency"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("агентскоевознаграждение", "AgencyFee"); // @NON-NLS-1 @NON-NLS-2
@@ -225,6 +226,7 @@
Словарь.Вставить("да", "Yes"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("давальческиесырьеиматериалы", "GiverRawMaterialsAndSupplies"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("данныевходящегодокумента", "IncomingDocumentData"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("данныегтд", "CCDData"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("данныеклассификатора", "ClassifierData"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("данныеноменклатуры", "ProductData_1"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("данныеотчета", "ReportData"); // @NON-NLS-1 @NON-NLS-2
@@ -314,6 +316,7 @@
Словарь.Вставить("долястоимости", "CostShare"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("дооборудование", "FurtherEquipping"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("доплата", "ExtraPay"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("дополнительнаяинформация", "AdditionalInformation"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("дополнительныезначенияиспользуются", "AdditionalValuesUsed"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("дополнительныезначениясвесом", "AdditionalValuesWithWeight"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("дополнительныереквизиты", "AdditionalAttributes"); // @NON-NLS-1 @NON-NLS-2
@@ -508,6 +511,7 @@
Словарь.Вставить("кредитбанка", "BankCredit"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("кредитконтрагента", "CounterpartyCredit"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("кредиторскаязадолженность", "AccountsPayable"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("кредитыизаймы", "LoansAndBorrowings"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("кредитыполученные", "LoansReceived_"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("крепость", "Strength"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("креслаколяски", "Wheelchairs"); // @NON-NLS-1 @NON-NLS-2
@@ -544,6 +548,7 @@
Словарь.Вставить("модернизация", "Modernization"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("модернизацияос", "FixedAssetsCostAdditions"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("мол", "FinanciallyLiablePerson"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("молочнаяпродукция", "MilkAndMilkProducts"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("молочнаяпродукциябезветис", "MilkAndDairyProductsWithoutVetIS"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("молочнаяпродукцияветис", "VETISDairyProducts"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("монотоварнаяупаковка", "SingleProductPackage"); // @NON-NLS-1 @NON-NLS-2
@@ -587,6 +592,7 @@
Словарь.Вставить("напрочиедоходы", "OnOtherIncome"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("напрочиерасходы", "ForOtherExpenses"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("настройкирасчета", "CalculationSettings"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("наутверждении", "AwaitingConfirmation"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("наценка", "Markup"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("началодиапазонамагнитногокода", "StartOfMagneticCodeRange"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("началодиапазонаштрихкода", "StartOfBarcodeRange"); // @NON-NLS-1 @NON-NLS-2
@@ -628,6 +634,7 @@
Словарь.Вставить("нет", "None"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("никотиносодержащаяпродукция", "NicotineContainingProducts"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("номенклатура", "Products"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("номенклатураотбор", "NomenclatureSelection"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("номер", "Number"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("номеракцизноймарки", "ExciseStampNumber"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("номербилета", "TicketNumber"); // @NON-NLS-1 @NON-NLS-2
@@ -838,6 +845,13 @@
Словарь.Вставить("полугодье", "HalfYear_"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("получениеналичных", "ReceivingCash"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("пользователь", "User"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("пользовательскаякиskype", "UserCISkype"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("пользовательскаякиадрес", "UserCIAddress"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("пользовательскаякиадресэлектроннойпочты", "UserCIEmail"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("пользовательскаякивебстраница", "UserCIWebPage"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("пользовательскаякидругое", "UserCIOther"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("пользовательскаякителефон", "UserCIPhone"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("пользовательскаякифакс", "UserCIFax"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("помещение", "Premise"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("понаработке", "ByAssetActivity"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("поручениеэкспедиторувпункте", "InstructionForShippingAgentAtPoint"); // @NON-NLS-1 @NON-NLS-2
@@ -1098,6 +1112,7 @@
Словарь.Вставить("суммарезерва", "ReserveAmount_"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("суммаскидки", "DiscountAmount"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("суммасучетомскидки", "AmountIncludingDiscount"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("суммауслуг", "AmountOfServices"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("суммаучет", "AmountAccounting_"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("суммафакт", "SumReal"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("счетафактурывыданныепокупателям", "InvoicesIssuedToCustomers"); // @NON-NLS-1 @NON-NLS-2
@@ -1175,6 +1190,7 @@
Словарь.Вставить("типупаковки", "PackageType"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("типуслуги", "ServiceType"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("типцен", "PriceType_"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("типцены", "PriceType"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("типштрихкода", "BarcodeType"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("типыплатежнойсистемыккт", "TypesOfCashRegisterPaymentSystem"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("тмц", "Inventory"); // @NON-NLS-1 @NON-NLS-2
@@ -1227,6 +1243,7 @@
Словарь.Вставить("упакованнаявода", "PackagedWater"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("упаковка", "Package"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("упаковканоменклатуры", "ProductPackaging"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("упаковкаотбор", "PackagingSelection"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("уполномоченноелицо", "AuthorizedPerson"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("уполномоченноелицоотбор", "AuthorizedPersonSelection"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("уполномоченныйпредставитель", "AuthorizedRepresentativeInTaxAuthority"); // @NON-NLS-1 @NON-NLS-2
@@ -1258,6 +1275,7 @@
Словарь.Вставить("ффомс", "InsuranceContributionsToFCMIF"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("характеристика", "Characteristic"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("характеристиканоменклатуры", "ProductCharacteristic"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("характеристикаотбор", "FeatureSelection"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("характеристикапродукции", "ItemVariant"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("хранимыйфайл", "StoredFile"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("цена", "Price"); // @NON-NLS-1 @NON-NLS-2
@@ -1286,6 +1304,7 @@
Словарь.Вставить("штраф", "Penalty"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("штрихкод", "Barcode"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("штрихкодотбор", "BarcodeSelection"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("эквайер", "Acquirer"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("эквайрер", "Acquirer"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("эквайринговыетерминалы", "POSTerminals"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("эквайринговыйтерминал", "POSTerminal"); // @NON-NLS-1 @NON-NLS-2
@@ -1361,7 +1380,12 @@
Словарь.Вставить("accumulateddepreciationtaxaccounting", "НакопленнаяАмортизацияНУ"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("accumulateddepreciationtd", "НакопленнаяАмортизацияВР"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("accuracyofunitofmeasure", "ТочностьЕдиницыИзмерения"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("acquirer", "Эквайрер"); // @NON-NLS-1 @NON-NLS-2
Массив = Новый Массив;
Массив.Добавить("Эквайер"); // @NON-NLS-1
Массив.Добавить("Эквайрер"); // @NON-NLS-1
Словарь.Вставить("acquirer", Массив);
Словарь.Вставить("acquirerscontract", "ДоговорЭквайрера"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("acreserve", "РезервБУ"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("actionsarerequired", "ТребуютсяДействия"); // @NON-NLS-1 @NON-NLS-2
@@ -1372,6 +1396,7 @@
Словарь.Вставить("actualaddress", "ФактическийАдрес"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("additionalattribute", "ДополнительныйРеквизит"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("additionalattributes", "ДополнительныеРеквизиты"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("additionalinformation", "ДополнительнаяИнформация"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("additionalvaluesowner", "ВладелецДополнительныхЗначений"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("additionalvaluesused", "ДополнительныеЗначенияИспользуются"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("additionalvalueswithweight", "ДополнительныеЗначенияСВесом"); // @NON-NLS-1 @NON-NLS-2
@@ -1412,6 +1437,7 @@
Словарь.Вставить("amountofaccountsreceivable", "СуммаДебиторскойЗадолженности"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("amountofbonuspoints", "СуммаБонусныхБаллов"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("amountofrevaluation_", "СуммаПереоценки"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("amountofservices", "СуммаУслуг"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("amountofvatbeforeadjustment", "СуммаНДСДоКорректировки"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("amountvatremuneration", "СуммаНДСВознаграждения"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("analyticalgroup", "ГруппаАналитическогоУчета"); // @NON-NLS-1 @NON-NLS-2
@@ -1437,12 +1463,14 @@
Словарь.Вставить("atexpenseofthirdpartycompany", "ЗаСчетСтороннейКомпании"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("attorney", "Поверенный"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("auction12", "ТОРГ12"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("author", "Автор"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("authorizationcode", "КодАвторизации"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("authorizedperson", "УполномоченноеЛицо"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("authorizedpersonselection", "УполномоченноеЛицоОтбор"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("authorizedrepresentativeintaxauthority", "УполномоченныйПредставитель"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("authorstatus", "СтатусСоставителя"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("automatically", "Автоматически"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("awaitingconfirmation", "НаУтверждении"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("bank", "Банк"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("bankaccount", "БанковскийСчет"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("bankaccountpayment", "Безналичная"); // @NON-NLS-1 @NON-NLS-2
@@ -1522,6 +1550,7 @@
Словарь.Вставить("cashregistersalesreceiptnumber", "НомерЧекаККМПродажи"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("cashregistershift", "КассоваяСмена"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("cashshiftnumber", "НомерКассовойСмены"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("ccddata", "ДанныеГТД"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("ccdnumber", "НомерГТД"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("ccdnumberbeforechange", "НомерГТДДоИзменения"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("certificate", "Сертификат"); // @NON-NLS-1 @NON-NLS-2
@@ -1783,6 +1812,7 @@
Словарь.Вставить("facost", "СтоимостьОС"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("fax", "Факс"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("feacncode", "КодТНВЭД"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("featureselection", "ХарактеристикаОтбор"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("fee", "Комиссия"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("feeamount", "СуммаКомиссии"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("feminine", "Женский"); // @NON-NLS-1 @NON-NLS-2
@@ -1930,6 +1960,7 @@
Словарь.Вставить("linear", "Линейный"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("linenumber", "НомерСтроки"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("loans_", "Займы"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("loansandborrowings", "КредитыИЗаймы"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("loansreceived", "ЗаймыПолученные"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("loansreceived_", "КредитыПолученные"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("loantocounterparty", "ЗаймКонтрагенту"); // @NON-NLS-1 @NON-NLS-2
@@ -1967,6 +1998,7 @@
Словарь.Вставить("methodofrepaymentofcostofinventory", "СпособПогашенияСтоимостиТМЦ"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("middlename", "Отчество"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("milkanddairyproductswithoutvetis", "МолочнаяПродукцияБезВЕТИС"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("milkandmilkproducts", "МолочнаяПродукция"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("modernization", "Модернизация"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("modernizationdocumentname", "НазваниеДокументаМодернизации"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("modernizationdocumentnumber", "НомерДокументаМодернизации"); // @NON-NLS-1 @NON-NLS-2
@@ -1987,6 +2019,7 @@
Словарь.Вставить("newnodecode", "КодНовогоУзла"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("nicotinecontainingproducts", "НикотиносодержащаяПродукция"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("noactionsneeded", "ДействийНеТребуется"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("nomenclatureselection", "НоменклатураОтбор"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("nominal", "Номинал"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("nonautomatedpointofsale", "НеавтоматизированнаяТорговаяТочка"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("none", "Нет"); // @NON-NLS-1 @NON-NLS-2
@@ -2067,6 +2100,7 @@
Словарь.Вставить("packagemarking", "МаркировкаУпаковки"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("packagemarkings", "МаркировкиУпаковок"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("packagetype", "ТипУпаковки"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("packagingselection", "УпаковкаОтбор"); // @NON-NLS-1 @NON-NLS-2
Массив = Новый Массив;
Массив.Добавить("Оплачен"); // @NON-NLS-1
@@ -2189,6 +2223,7 @@
Словарь.Вставить("priceperpackaging", "ЦенаЗаУпаковку"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("pricesettingdocument", "ДокументУстановкиЦен"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("pricesetup", "УстановкаЦенНоменклатуры"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("pricetype", "ТипЦены"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("pricetype_", "ТипЦен"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("principal", "Принципал"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("productbatchid", "РНПТ"); // @NON-NLS-1 @NON-NLS-2
@@ -2514,6 +2549,13 @@
Словарь.Вставить("usefullifemonthsta", "СрокПолезногоИспользованияНУ"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("usepaymentbycards", "ИспользоватьОплатуПлатежнымиКартами"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("user", "Пользователь"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("userciaddress", "ПользовательскаяКИАдрес"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("userciemail", "ПользовательскаяКИАдресЭлектроннойПочты"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("usercifax", "ПользовательскаяКИФакс"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("userciother", "ПользовательскаяКИДругое"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("userciphone", "ПользовательскаяКИТелефон"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("userciskype", "ПользовательскаяКИSkype"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("userciwebpage", "ПользовательскаяКИВебСтраница"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("useshelflifeonbatchregistration", "ИспользоватьСрокГодностиСерии"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("usetransportparametersemail", "ИспользоватьПараметрыТранспортаEMAIL"); // @NON-NLS-1 @NON-NLS-2
Словарь.Вставить("usetransportparametersfile", "ИспользоватьПараметрыТранспортаFILE"); // @NON-NLS-1 @NON-NLS-2
@@ -39,7 +39,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "БиблиотекаСинхронизацииДанных";
Описание.Версия = "1.0.3.209";
Описание.Версия = "1.0.3.376";
Описание.ИдентификаторИнтернетПоддержки = "DSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "1.0.1.1";
@@ -45,7 +45,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.9.209";
Описание.Версия = "3.1.9.225";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -9938,7 +9938,24 @@
Функция МинимальнаяВерсияПлатформы() Экспорт // АПК:581 - экспортная, так как используется при тестировании.
Возврат "8.3.21.1775; 8.3.22.1923";
СистемнаяИнформация = Новый СистемнаяИнформация();
РежимСовместимости = Метаданные.РежимСовместимости;
Если РежимСовместимости = Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда
ВерсияРежимаСовместимости = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(СистемнаяИнформация.ВерсияПриложения);
Иначе
ВерсияРежимаСовместимости = СтрСоединить(СтрРазделить(РежимСовместимости, СтрСоединить(СтрРазделить(РежимСовместимости, "1234567890", Ложь), ""), Ложь), ".");
КонецЕсли;
Если ВерсияРежимаСовместимости = "8.3.21" Тогда
Возврат "8.3.21.1775; 8.3.22.1923";
ИначеЕсли ВерсияРежимаСовместимости= "8.3.22" Тогда
Возврат "8.3.22.2355; 8.3.23.2011, 8.3.24.1304";
ИначеЕсли ВерсияРежимаСовместимости= "8.3.23" Тогда
Возврат "8.3.23.2011, 8.3.24.1304";
КонецЕсли;
Возврат "8.3.24.1304";
КонецФункции
@@ -1392,7 +1392,7 @@
КонецПроцедуры
// Устарела. Следует использовать ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами
// Возвращает пользовательскую настройку "Предлагать установку расширения работы с файлами".
// Возвращает пользовательскую настройку "Предлагать установку расширения для работы с 1С:Предприятием".
//
// Возвращаемое значение:
// Булево - Истина, если предлагать.
@@ -2555,13 +2555,18 @@
// Возвращаемое значение:
// ЗащищенноеСоединениеOpenSSL
//
Функция НовоеЗащищенноеСоединение(СертификатКлиента = Неопределено, СертификатыУдостоверяющихЦентров = Неопределено) Экспорт
Функция НовоеЗащищенноеСоединение(Знач СертификатКлиента = Неопределено, Знач СертификатыУдостоверяющихЦентров = Неопределено) Экспорт
#Если ВебКлиент Тогда
Возврат Неопределено;
#ИначеЕсли МобильныйКлиент Тогда
#Если ВебКлиент Или МобильныйКлиент Тогда
Возврат Новый ЗащищенноеСоединениеOpenSSL;
#Иначе
СистемнаяИнформация = Новый СистемнаяИнформация;
Если СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.22.0") >= 0 Тогда
Если СертификатыУдостоверяющихЦентров = Неопределено Тогда
СертификатыУдостоверяющихЦентров = Новый СертификатыУдостоверяющихЦентровОС();
КонецЕсли;
КонецЕсли;
Возврат Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатыУдостоверяющихЦентров);
#КонецЕсли
@@ -149,7 +149,7 @@
Источник = ПараметрыВыполнения.Источник;
ОписаниеКоманды = ПараметрыВыполнения.ОписаниеКоманды;
// Установка расширения работы с файлами.
// Установка расширения для работы с 1С:Предприятием.
Если ПараметрыВыполнения.ТребуетсяРаботаСФайлами Тогда
ПараметрыВыполнения.ТребуетсяРаботаСФайлами = Ложь;
Обработчик = Новый ОписаниеОповещения("ПродолжитьВыполнениеКомандыПослеУстановкиРасширенияРаботыСФайлами", ЭтотОбъект, ПараметрыВыполнения);
@@ -366,7 +366,7 @@
ПродолжитьВыполнениеКоманды(Контекст);
КонецПроцедуры
// Ветка процедуры, возникающая после установки расширения работы с файлами.
// Ветка процедуры после установки расширения для работы с 1С:Предприятием.
Процедура ПродолжитьВыполнениеКомандыПослеУстановкиРасширенияРаботыСФайлами(РасширениеРаботыСФайламиПодключено, Контекст) Экспорт
Если Не РасширениеРаботыСФайламиПодключено Тогда
Возврат;
@@ -37,7 +37,7 @@
// Вызывается при изменении способа установки курса валюты.
//
// Параметры:
// Валюта - СправочникСсылка.Валюты
// Валюта - СправочникОбъект.Валюты
//
Процедура ЗапланироватьКопированиеКурсовВалюты(Знач Валюта) Экспорт
@@ -478,7 +478,6 @@
// * СтатусРазбора - Строка
// * Тема - Строка
// * Тексты - Строка
// * Кодировка - Строка
// * СпособКодированияНеASCIIСимволов - Строка
// * УведомитьОДоставке - Строка
// * УведомитьОПрочтении - Строка
@@ -510,7 +509,6 @@
ПоляСообщения.Вставить("СтатусРазбора", "СтатусРазбора");
ПоляСообщения.Вставить("Тема", "Тема");
ПоляСообщения.Вставить("Тексты", "Тексты");
ПоляСообщения.Вставить("Кодировка", "Кодировка");
ПоляСообщения.Вставить("СпособКодированияНеASCIIСимволов", "СпособКодированияНеASCIIСимволов");
ПоляСообщения.Вставить("УведомитьОДоставке", "УведомитьОДоставке");
ПоляСообщения.Вставить("УведомитьОПрочтении", "УведомитьОПрочтении");
@@ -996,7 +996,7 @@
Если НастройкиРаботыСФайламиВФорме.КопироватьПрисоединенныеФайлы Тогда
РаботаСФайламиСлужебный.СкопироватьПрисоединенныеФайлы(
НастройкиРаботыСФайламиВФорме.ЗначениеКопирования, ТекущийОбъект);
НастройкиРаботыСФайламиВФорме.ЗначениеКопирования, ТекущийОбъект.Ссылка);
КонецЕсли;
КонецПроцедуры
Loaded 100 of 242 files, more files were not shown because too many files have changed in this diff. Show more