diff --git a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl
index 3d87ba521..45a79f366 100644
--- a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl
+++ b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl
@@ -14,8 +14,10 @@
ЗаголовокОшибки = НСтр("ru = 'Ошибка при настройке динамического списка присоединенных файлов.'");
ОкончаниеОшибки = НСтр("ru = 'В этом случае настройка динамического списка невозможна.'");
+ ВладелецФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.Файл, "ВладелецФайла");
+
ИмяСправочникаХранилищаВерсийФайлов = РаботаСФайламиСлужебный.ИмяСправочникаХраненияВерсийФайлов(
- Параметры.Файл.ВладелецФайла, "", ЗаголовокОшибки, ОкончаниеОшибки);
+ ВладелецФайла, "", ЗаголовокОшибки, ОкончаниеОшибки);
Если Не ПустаяСтрока(ИмяСправочникаХранилищаВерсийФайлов) Тогда
НастроитьДинамическийСписок(ИмяСправочникаХранилищаВерсийФайлов);
@@ -68,7 +70,8 @@
ПоказатьПредупреждение(, НСтр("ru = 'Смена активной версии разрешена только для неподписанных файлов.'"));
Иначе
СменитьАктивнуюВерсиюФайла(НоваяАктивнаяВерсия);
- Оповестить("Запись_Файл", Новый Структура("Событие", "АктивнаяВерсияИзменена"), Параметры.Файл);
+ ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла("АктивнаяВерсияИзменена");
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Параметры.Файл);
КонецЕсли;
КонецПроцедуры
@@ -77,7 +80,6 @@
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Запись_Файл"
- И Параметр.Свойство("Событие")
И (Параметр.Событие = "ЗаконченоРедактирование"
Или Параметр.Событие = "ВерсияСохранена") Тогда
@@ -253,25 +255,33 @@
НачатьТранзакцию();
Попытка
+
+ БлокировкаВерсии = Новый БлокировкаДанных;
+
+ ЭлементБлокировкиДанных = БлокировкаВерсии.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(Версия)).ПолноеИмя());
+ ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Версия);
+ ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Разделяемый;
+
+ БлокировкаВерсии.Заблокировать();
+
+ РеквизитыНовойВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Версия, "Владелец, ТекстХранилище");
+
Блокировка = Новый БлокировкаДанных;
- ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(Версия.Владелец)).ПолноеИмя());
- ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Версия.Владелец);
-
- ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(Версия)).ПолноеИмя());
- ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Версия);
+ ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(РеквизитыНовойВерсии.Владелец)).ПолноеИмя());
+ ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", РеквизитыНовойВерсии.Владелец);
Блокировка.Заблокировать();
- ЗаблокироватьДанныеДляРедактирования(Версия.Владелец, , УникальныйИдентификаторКарточкиФайла);
+ ЗаблокироватьДанныеДляРедактирования(РеквизитыНовойВерсии.Владелец, , УникальныйИдентификаторКарточкиФайла);
ЗаблокироватьДанныеДляРедактирования(Версия, , УникальныйИдентификаторКарточкиФайла);
- ФайлОбъект = Версия.Владелец.ПолучитьОбъект();
+ ФайлОбъект = РеквизитыНовойВерсии.Владелец.ПолучитьОбъект();
Если ФайлОбъект.ПодписанЭП Тогда
ВызватьИсключение НСтр("ru = 'У подписанного файла нельзя изменять активную версию.'");
КонецЕсли;
ФайлОбъект.ТекущаяВерсия = Версия;
- ФайлОбъект.ТекстХранилище = Версия.ТекстХранилище;
+ ФайлОбъект.ТекстХранилище = РеквизитыНовойВерсии.ТекстХранилище;
ФайлОбъект.Записать();
ВерсияОбъект = Версия.ПолучитьОбъект();
diff --git a/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаСписка/Module.bsl
index 0ee1dedaa..da8179e66 100644
--- a/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/ВерсииФайлов/Forms/ФормаСписка/Module.bsl
@@ -36,8 +36,7 @@
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Запись_Файл"
- И Параметр.Свойство("Событие")
- И ( Параметр.Событие = "ЗаконченоРедактирование"
+ И (Параметр.Событие = "ЗаконченоРедактирование"
ИЛИ Параметр.Событие = "ВерсияСохранена") Тогда
Элементы.Список.Обновить();
diff --git a/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl b/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl
index b7ecf55c4..53d24a60f 100644
--- a/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl
@@ -20,8 +20,10 @@
Возврат;
КонецЕсли;
+ РеквизитыВладельца = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Владелец, "ТекущаяВерсия, ПометкаУдаления");
+
Если ЭтоНовый() Тогда
- РодительскаяВерсия = Владелец.ТекущаяВерсия;
+ РодительскаяВерсия = РеквизитыВладельца.ТекущаяВерсия;
КонецЕсли;
// Выполним установку индекса пиктограммы при записи объекта.
@@ -31,15 +33,15 @@
СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
КонецЕсли;
- Если Владелец.ТекущаяВерсия = Ссылка Тогда
- Если ПометкаУдаления = Истина И Владелец.ПометкаУдаления <> Истина Тогда
+ Если РеквизитыВладельца.ТекущаяВерсия = Ссылка Тогда
+ Если ПометкаУдаления = Истина И РеквизитыВладельца.ПометкаУдаления <> Истина Тогда
ВызватьИсключение НСтр("ru = 'Активную версию нельзя удалить.'");
КонецЕсли;
ИначеЕсли РодительскаяВерсия.Пустая() Тогда
- Если ПометкаУдаления = Истина И Владелец.ПометкаУдаления <> Истина Тогда
+ Если ПометкаУдаления = Истина И РеквизитыВладельца.ПометкаУдаления <> Истина Тогда
ВызватьИсключение НСтр("ru = 'Первую версию нельзя удалить.'");
КонецЕсли;
- ИначеЕсли ПометкаУдаления = Истина И Владелец.ПометкаУдаления <> Истина Тогда
+ ИначеЕсли ПометкаУдаления = Истина И РеквизитыВладельца.ПометкаУдаления <> Истина Тогда
// Очищаем у версий, дочерних к помеченной, ссылку на родительскую -
// переставляем на родительскую версию удаляемой версии.
Запрос = Новый Запрос;
diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl
index a31b6e9ce..bcafa21fc 100644
--- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl
@@ -140,7 +140,7 @@
Оповещение = Новый ОписаниеОповещения("ДобавитьКомпонентыИзКаталогаПослеПодключенияРасширения", ЭтотОбъект);
- ТекстПредложения = НСтр("ru = 'Для загрузки внешних компонент из каталога требуется расширение для работы с файлами'");
+ ТекстПредложения = НСтр("ru = 'Для загрузки внешних компонент из каталога требуется расширение для работы с 1С:Предприятием.'");
ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(Оповещение, ТекстПредложения, Ложь);
КонецПроцедуры
diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Form.form
index 64ae24266..d44c12c5a 100644
--- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Form.form
@@ -813,6 +813,17 @@
true
+
+ ЦелевыеПлатформы
+ 4
+
+
+ true
+
+
+ true
+
+ ОбновитьИзФайла
diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl
index c01077170..c8d569299 100644
--- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl
@@ -62,6 +62,7 @@
АдресДвоичныхДанныхКомпоненты = Неопределено;
УстановитьВидимостьДоступность();
+ ЦелевыеПлатформы = ТекущийОбъект.ЦелевыеПлатформы.Получить();
КонецПроцедуры
@@ -74,6 +75,8 @@
ТекущийОбъект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", ДвоичныеДанныеКомпоненты);
КонецЕсли;
+ ТекущийОбъект.ЦелевыеПлатформы = Новый ХранилищеЗначения(ЦелевыеПлатформы);
+
КонецПроцедуры
&НаСервере
@@ -174,34 +177,9 @@
&НаКлиенте
Процедура ПоддерживаемыеКлиентскиеПриложения(Команда)
-
- Реквизиты = Новый Структура;
- Реквизиты.Вставить("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 @@
КонецЕсли;
ЗаполнитьЗначенияСвойств(ОбъектСправочника, Информация.Реквизиты,, "Идентификатор"); // По данным манифеста.
+ ЦелевыеПлатформы = Информация.Реквизиты.ЦелевыеПлатформы;
+
Если Не ЗначениеЗаполнено(ОбъектСправочника.Идентификатор) Тогда
ОбъектСправочника.Идентификатор = Информация.Реквизиты.Идентификатор;
КонецЕсли;
diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl
index cd2adf934..dc52b189f 100644
--- a/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl
@@ -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,13 +258,10 @@
Пока Выборка.Следующий() Цикл
РеквизитыКомпоненты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Выборка.Ссылка,
- "ХранилищеКомпоненты, 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;
diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/ВнешниеКомпоненты.mdo b/SSL/src/Catalogs/ВнешниеКомпоненты/ВнешниеКомпоненты.mdo
index 9c8a14ec7..3d8891d84 100644
--- a/SSL/src/Catalogs/ВнешниеКомпоненты/ВнешниеКомпоненты.mdo
+++ b/SSL/src/Catalogs/ВнешниеКомпоненты/ВнешниеКомпоненты.mdo
@@ -277,314 +277,14 @@
UseUse
-
- Windows_x86
+
+ ЦелевыеПлатформыru
- Windows x86
+ Целевые платформы
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_64
-
- ru
- Windows x86_64
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86
-
- ru
- Linux x86
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_64
-
- ru
- Linux x86_64
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_Firefox
-
- ru
- Windows x86 Firefox
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_Firefox
-
- ru
- Linux x86 Firefox
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_64_Firefox
-
- ru
- Linux x86_64 Firefox
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_MSIE
-
- ru
- Windows x86 MSIE
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_64_MSIE
-
- ru
- Windows x86_64 MSIE
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_Chrome
-
- ru
- Windows x86 Chrome
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_Chrome
-
- ru
- Linux x86 Chrome
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_64_Chrome
-
- ru
- Linux x86_64 Chrome
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- MacOS_x86_64
-
- ru
- macOS x86_64
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- MacOS_x86_64_Safari
-
- ru
- macOS x86_64 Safari
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- MacOS_x86_64_Chrome
-
- ru
- macOS x86_64 Chrome
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- MacOS_x86_64_Firefox
-
- ru
- macOS x86_64 Firefox
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_ЯндексБраузер
-
- ru
- Windows x86 Яндекс Браузер
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_64_ЯндексБраузер
-
- ru
- Windows x86_64 Яндекс Браузер
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_ЯндексБраузер
-
- ru
- Linux x86 Яндекс Браузер
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_64_ЯндексБраузер
-
- ru
- Linux x86_64 Яндекс Браузер
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- MacOS_x86_64_ЯндексБраузер
-
- ru
- macOS x86_64 Яндекс Браузер
-
-
- Boolean
+ ValueStorage
diff --git a/SSL/src/Catalogs/Заметки/ObjectModule.bsl b/SSL/src/Catalogs/Заметки/ObjectModule.bsl
index 4feef1e1a..ef3acaec2 100644
--- a/SSL/src/Catalogs/Заметки/ObjectModule.bsl
+++ b/SSL/src/Catalogs/Заметки/ObjectModule.bsl
@@ -17,8 +17,8 @@
Если ДополнительныеСвойства.Свойство("ПометкаУдаленияЗаметки") И ДополнительныеСвойства.ПометкаУдаленияЗаметки Тогда
Возврат;
КонецЕсли;
-
- Если ЗначениеЗаполнено(Родитель) И Родитель.Автор <> Автор Тогда
+
+ Если ЗначениеЗаполнено(Родитель) И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Родитель, "Автор") <> Автор Тогда
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Нельзя указывать группу другого пользователя.'"));
Отказ = Истина;
Возврат;
diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ОтменаДоверенности/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ОтменаДоверенности/Module.bsl
index 0b3a631ad..1f462e1fb 100644
--- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ОтменаДоверенности/Module.bsl
+++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ОтменаДоверенности/Module.bsl
@@ -16,7 +16,7 @@
#КонецОбласти
-#Область ОбработчикиСобытийЭлементовФормы
+#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ОтменитьДоверенность(Команда)
@@ -83,7 +83,7 @@
КонецПроцедуры
&НаСервере
-Процедура ДобавитьФайлОтзываИПолучитьРезультатРегистрации(ДанныеОтмены, СвойстваПодписи)
+Процедура ДобавитьФайлОтзываИПолучитьРезультатРегистрации(Знач ДанныеОтмены, Знач СвойстваПодписи)
ФайлДоверенности = Новый Файл(ДанныеОтмены.ИмяФайла);
ПараметрыДобавления = РаботаСФайлами.ПараметрыДобавленияФайла();
ПараметрыДобавления.ВладелецФайлов = Доверенность;
@@ -116,11 +116,11 @@
КонецПроцедуры
&НаСервереБезКонтекста
-Функция ПроверитьСертификатДоверителя(Доверенность, Сертификат)
+Функция ПроверитьСертификатДоверителя(Знач Доверенность, Знач Сертификат)
Результат = Новый Структура;
Результат.Вставить("Ошибка");
- ФайлДоверенности = Доверенность.ФайлДоверенности;
+ ФайлДоверенности = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Доверенность, "ФайлДоверенности");
РезультатПроверки = МашиночитаемыеДоверенностиФНССлужебный.ПроверитьСертификатДоверителя(Доверенность, ФайлДоверенности, Сертификат, Ложь);
Если РезультатПроверки <> Истина Тогда
ПараметрыОшибкиМЧДРР = МашиночитаемыеДоверенностиФНССлужебный.ПараметрыОшибкиМЧДРР(НСтр("ru='Подпись не подходит для отмены'"), РезультатПроверки);
diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl
index ff0cbb559..140866d69 100644
--- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl
+++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl
@@ -25,7 +25,7 @@
НоваяСтрока.Представитель = Строка.Представитель;
НоваяСтрока.ПредставительИдентификатор = Строка.Идентификатор;
НоваяСтрока.ПредставительСтрока = МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорации(
- ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов), "Представитель", Ложь);
+ ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов), "Представитель", Ложь, Ложь);
НоваяСтрока.АдресРеквизитов = Строка.АдресРеквизитов;
КонецЦикла;
@@ -569,7 +569,9 @@
&НаСервере
Процедура СтранаРегистрацииПриИзмененииНаСервере()
- СтранаРегистрацииКод = СтранаРегистрации.Код;
+
+ СтранаРегистрацииКод = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтранаРегистрации, "Код");
+
КонецПроцедуры
&НаКлиенте
@@ -669,7 +671,7 @@
КонецЕсли;
ЗаголовокДекорации = МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорации(
- Реквизиты, "Представитель", Ложь); // ФорматированнаяСтрока
+ Реквизиты, "Представитель", Ложь, Ложь); // ФорматированнаяСтрока
ТаблицаПредставительНесколько[0].ПредставительСтрока = ЗаголовокДекорации;
Реквизиты.ЭтоДолжностноеЛицо = Не ЭтоИндивидуальныйПредприниматель;
diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form
index 2c7dc1938..12fa29be3 100644
--- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form
@@ -894,6 +894,128 @@
true
+
+ ГруппаСтатусВДругомРеестре
+ 232
+
+ ИндексСтатусаВДругомРеестре
+ 229
+
+ ru
+ Индекс статуса в другом реестре
+
+ true
+ true
+
+ true
+
+
+ Список.ИндексСтатусаВДругомРеестре
+
+ None
+
+ ИндексСтатусаВДругомРеестреРасширеннаяПодсказка
+ 231
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ИндексСтатусаВДругомРеестреКонтекстноеМеню
+ 230
+ true
+
+ PictureField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+
+
+ 1
+
+ AsFileRef
+
+
+
+ СтатусВДругомРеестре
+ 226
+
+ ru
+ Статус в другом реестре
+
+ true
+ true
+
+ true
+
+
+ Список.СтатусВДругомРеестре
+
+
+ СтатусВДругомРеестреРасширеннаяПодсказка
+ 228
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СтатусВДругомРеестреКонтекстноеМеню
+ 227
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Статус в другом реестре
+
+
+ ГруппаСтатусВДругомРеестреРасширеннаяПодсказка
+ 233
+ Label
+ true
+ true
+
+ Left
+
+
+ ColumnGroup
+
+ InCell
+ auto
+ true
+
+ Код128
@@ -1429,6 +1551,10 @@
true
+
+ OnGetDataAtServer
+ СписокПриПолученииДанныхНаСервере
+ 600001-01-01T00:00:00
@@ -2033,6 +2159,8 @@
СправочникМашиночитаемыеДоверенности.ДляНалоговыхОрганов КАК ДляНалоговыхОрганов,
СправочникМашиночитаемыеДоверенности.РегистрироватьВРеестре КАК РегистрироватьВРеестре,
СправочникМашиночитаемыеДоверенности.Статус КАК Статус,
+ &СтатусВДругомРеестре КАК СтатусВДругомРеестре,
+ 99 КАК ИндексСтатусаВДругомРеестре,
МашиночитаемыеДоверенностиСтатусы.ТехническийСтатус КАК ТехническийСтатус,
СправочникМашиночитаемыеДоверенности.Верна КАК Верна,
ВЫБОР
@@ -2285,10 +2413,6 @@
СтатусСтатус
-
- ТехническийСтатус
- ТехническийСтатус
- ИндексСтатусаИндексСтатуса
@@ -2333,14 +2457,6 @@
ВерсияФорматаВерсияФормата
-
- УстановившийСтатус
- УстановившийСтатус
-
-
- СтатусУстановленВручную
- СтатусУстановленВручную
- ПолномочияВТекстовомВидеПолномочияВТекстовомВиде
@@ -2377,6 +2493,14 @@
ДатаПроверкиДатаПроверки
+
+ ДатаОтмены
+ ДатаОтмены
+
+
+ ФайлЗаявленияНаОтмену
+ ФайлЗаявленияНаОтмену
+ ДоверителиДоверители
@@ -2406,12 +2530,24 @@
ИмяПредопределенныхДанных
- Ответственный
- Ответственный
+ СтатусВДругомРеестре
+ СтатусВДругомРеестре
- ДатаПроверки
- ДатаПроверки
+ ИндексСтатусаВДругомРеестре
+ ИндексСтатусаВДругомРеестре
+
+
+
+ ru
+ Индекс статуса в другом реестре
+
+
+
+
+
+ ТехническийСтатус
+ ТехническийСтатусДоверитель
@@ -2730,6 +2866,19 @@
true
+
+ СтатусВДругомРеестре
+
+
+
+ ru
+ Статус в другом реестре
+
+
+
+
+ true
+
diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl
index d0480a5d8..84862e54b 100644
--- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl
@@ -25,7 +25,7 @@
ДобавитьПолеОтбора("Доверитель", "ТипДоверителя");
ДобавитьПолеОтбора("Представитель", "ТипПредставителя");
- ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "ДоверенностиПоРоли, ОтборПоСостоянию, ТолькоДействующие, Полномочия, СертификатПредставителя, СертификатДоверителя");
+ ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "ОтборПоСостоянию, ТолькоДействующие, СертификатПредставителя, СертификатДоверителя");
ДоверенностиПоРоли = ?(ЗначениеЗаполнено(Параметры.ДоверенностиПоРоли), Параметры.ДоверенностиПоРоли, Элементы.ДоверенностиПоРоли.СписокВыбора[0].Значение);
Доверитель = ?(ЗначениеЗаполнено(Параметры.Доверитель), Параметры.Доверитель, Доверитель);
Представитель = ?(ЗначениеЗаполнено(Параметры.Представитель), Параметры.Представитель, Представитель);
@@ -43,6 +43,31 @@
Элементы.СписокЗагрузитьИзФайла.Видимость = ЕстьПравоДобавления;
Элементы.СписокЗагрузитьИзРеестраФНС.Видимость = ЕстьПравоДобавления;
Элементы.СписокПолучитьСтатус.Видимость = ПравоДоступа("Изменение", Метаданные.Справочники.МашиночитаемыеДоверенности);
+
+ Настройки = МашиночитаемыеДоверенностиФНССлужебный.НастройкиПодсистемы();
+
+ Элементы.ГруппаСтатусВДругомРеестре.Видимость = Настройки.ПоказыватьСтатусВФормеСписка;
+
+ Если Настройки.ПоказыватьСтатусВФормеСписка Тогда
+
+ Если ЗначениеЗаполнено(Настройки.ЗаголовокКолонкиСтатуса) Тогда
+ Элементы.СтатусВДругомРеестре.Заголовок = Настройки.ЗаголовокКолонкиСтатуса;
+ Иначе
+ Элементы.СтатусВДругомРеестре.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
+ КонецЕсли;
+ Если Настройки.КартинкаКолонкиСтатуса <> Неопределено Тогда
+ Элементы.СтатусВДругомРеестре.КартинкаШапки = Настройки.КартинкаКолонкиСтатуса;
+ КонецЕсли;
+ Если Настройки.КоллекцияКартинокДляСтроки <> Неопределено Тогда
+ Элементы.ИндексСтатусаВДругомРеестре.КартинкаЗначений = Настройки.КоллекцияКартинокДляСтроки;
+ Иначе
+ Элементы.ИндексСтатусаВДругомРеестре.Видимость = Ложь;
+ КонецЕсли;
+
+ ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "СтатусВДругомРеестре", "");
+ Иначе
+ ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "СтатусВДругомРеестре", "НетСтатусов");
+ КонецЕсли;
КонецПроцедуры
@@ -164,6 +189,35 @@
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
+&НаСервереБезКонтекста
+Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
+
+ Если Настройки.ПараметрыДанных.Элементы.Найти("СтатусВДругомРеестре").Значение = "НетСтатусов" Тогда
+ Возврат;
+ КонецЕсли;
+
+ Доверенности = Новый Соответствие;
+ МассивДоверенностей = Строки.ПолучитьКлючи();
+
+ МашиночитаемыеДоверенностиФНСПереопределяемый.ПриПолученииСтатусов(МассивДоверенностей, Доверенности);
+
+ Если Доверенности.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ Для Каждого Строка Из Строки Цикл
+
+ Статус = Доверенности[Строка.Значение.Данные.Ссылка];
+ Если Статус = Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Строка.Значение.Данные.СтатусВДругомРеестре = Статус.Статус;
+ Строка.Значение.Данные.ИндексСтатусаВДругомРеестре = Статус.ИндексКартинки;
+ КонецЦикла;
+
+КонецПроцедуры
+
#КонецОбласти
#Область ОбработчикиКомандФормы
@@ -257,22 +311,22 @@
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ДатаОкончания", ТекущаяДатаСеанса, ВидСравненияКомпоновкиДанных.БольшеИлиРавно);
ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(Список.Отбор, "ДатаОкончания", ВидСравненияКомпоновкиДанных.МеньшеИлиРавно,
МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ДатаОкончанияПериодаИстекающихДоверенностей(ТекущаяДатаСеанса));
- ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.СтатусыМЧД.Действует"), ВидСравненияКомпоновкиДанных.Равно);
- Заголовок = Заголовок+" "+НСтр("ru='(с истекающим сроком)'");
+ ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Действует"), ВидСравненияКомпоновкиДанных.Равно);
+ Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 (с истекающим сроком)'"), Заголовок);
ИначеЕсли ОтборПоСостоянию = "ТребуютВнимания" Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ДатаОкончания", ТекущаяДатаСеанса, ВидСравненияКомпоновкиДанных.Больше);
МассивСтатусов = Новый Массив;
- МассивСтатусов.Добавить(ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ТехническиеСтатусыМЧД.ОшибкаРегистрации"));
- МассивСтатусов.Добавить(ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ТехническиеСтатусыМЧД.Регистрация"));
- МассивСтатусов.Добавить(ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ТехническиеСтатусыМЧД.РегистрацияОтмены"));
+ МассивСтатусов.Добавить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.ОшибкаРегистрации"));
+ МассивСтатусов.Добавить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Регистрация"));
+ МассивСтатусов.Добавить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.РегистрацияОтмены"));
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ТехническийСтатус", МассивСтатусов, ВидСравненияКомпоновкиДанных.ВСписке);
- Заголовок = Заголовок+" "+НСтр("ru='(требуют внимания)'");
+ Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 (требуют внимания)'"), Заголовок);
ИначеЕсли ОтборПоСостоянию = "ОжидаютПодписания" Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ДатаОкончания", ТекущаяДатаСеанса, ВидСравненияКомпоновкиДанных.Больше);
- ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.СтатусыМЧД.Черновик"), ВидСравненияКомпоновкиДанных.Равно);
+ ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Черновик"), ВидСравненияКомпоновкиДанных.Равно);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Подписана", Ложь, ВидСравненияКомпоновкиДанных.Равно);
- Заголовок = Заголовок+" "+НСтр("ru='(ожидают подписания)'");
+ Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 (ожидают подписания)'"), Заголовок);
КонецЕсли;
ВсеОтборыПоСертификатам = ВсеОтборыПоСертификатам();
@@ -303,7 +357,7 @@
ИмяПоляОтбора = ?(ЭлементОтбора.Ключ = "Значение", ИмяПоля, ИмяПоля+ЭлементОтбора.Ключ);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, ИмяПоляОтбора, ЭлементОтбора.Значение, ЗначениеЗаполнено(ЭлементОтбора.Значение));
КонецЦикла;
-КонецПроцедуры
+КонецПроцедуры
&НаКлиенте
Процедура УстановитьОтборПоРоли()
@@ -473,7 +527,8 @@
КонецЕсли;
Если ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
- Возврат МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату(Сертификат.ДанныеСертификата.Получить(), Префикс);
+ ДанныеСертификата = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Сертификат, "ДанныеСертификата");
+ Возврат МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату(ДанныеСертификата.Получить(), Префикс);
Иначе
Возврат МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату(Сертификат, Префикс);
КонецЕсли;
diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form
index 1d00accf7..c88fb85f9 100644
--- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form
@@ -4,43 +4,8 @@
ГруппаСтатусы767
- ГруппаПредставлениеСтатусов
- 769
-
- ДекорацияСозданиеБезРегистрации
- 1069
-
- ru
- Декорация создание без регистрации
-
- true
-
- true
-
-
- ДекорацияСозданиеБезРегистрацииРасширеннаяПодсказка
- 1071
- Label
- true
- true
-
- Left
-
-
-
- ДекорацияСозданиеБезРегистрацииКонтекстноеМеню
- 1070
- true
-
- true
- true
-
-
- CommonPicture.МЧДСозданиеБезРегистрации
-
- AsFileRef
-
-
+ ГруппаСтатусВРеестреФНС
+ 1111ДекорацияСоздание493
@@ -73,41 +38,7 @@
CommonPicture.МЧДСоздание
- AsFileRef
-
-
-
- ДекорацияПодписаниеБезРегистрации
- 1089
-
- ru
- Декорация подписание без регистрации
-
- true
-
- true
-
-
- ДекорацияПодписаниеБезРегистрацииРасширеннаяПодсказка
- 1068
- Label
- true
- true
-
- Left
-
-
-
- ДекорацияПодписаниеБезРегистрацииКонтекстноеМеню
- 1090
- true
-
- true
- true
-
-
- CommonPicture.МЧДСозданаПодписаниеБезРегистрации
-
+ AutoSizeAsFileRef
@@ -143,41 +74,7 @@
CommonPicture.МЧДСозданаПодписание
- AsFileRef
-
-
-
- ДекорацияПодписана
- 510
-
- ru
- Декорация подписана
-
- true
-
- true
-
-
- ДекорацияПодписанаРасширеннаяПодсказка
- 512
- Label
- true
- true
-
- Left
-
-
-
- ДекорацияПодписанаКонтекстноеМеню
- 511
- true
-
- true
- true
-
-
- CommonPicture.МЧДПодписана
-
+ AutoSizeAsFileRef
@@ -213,6 +110,7 @@
CommonPicture.МЧДНаРегистрации
+ AutoSizeAsFileRef
@@ -248,6 +146,7 @@
CommonPicture.МЧДВРеестре
+ AutoSizeAsFileRef
@@ -283,6 +182,7 @@
CommonPicture.МЧДОтменена
+ AutoSizeAsFileRef
@@ -318,6 +218,115 @@
CommonPicture.МЧДИстекСрокДействия
+ AutoSize
+ AsFileRef
+
+
+
+ ДекорацияПодписана
+ 510
+
+ ru
+ Декорация подписана
+
+ true
+
+ true
+
+
+ ДекорацияПодписанаРасширеннаяПодсказка
+ 512
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДекорацияПодписанаКонтекстноеМеню
+ 511
+ true
+
+ true
+ true
+
+
+ CommonPicture.МЧДПодписана
+
+ AutoSize
+ AsFileRef
+
+
+
+ ДекорацияСозданиеБезРегистрации
+ 1069
+
+ ru
+ Декорация создание без регистрации
+
+ true
+
+ true
+
+
+ ДекорацияСозданиеБезРегистрацииРасширеннаяПодсказка
+ 1071
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДекорацияСозданиеБезРегистрацииКонтекстноеМеню
+ 1070
+ true
+
+ true
+ true
+
+
+ CommonPicture.МЧДСозданиеБезРегистрации
+
+ AutoSize
+ AsFileRef
+
+
+
+ ДекорацияПодписаниеБезРегистрации
+ 1089
+
+ ru
+ Декорация подписание без регистрации
+
+ true
+
+ true
+
+
+ ДекорацияПодписаниеБезРегистрацииРасширеннаяПодсказка
+ 1068
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДекорацияПодписаниеБезРегистрацииКонтекстноеМеню
+ 1090
+ true
+
+ true
+ true
+
+
+ CommonPicture.МЧДСозданаПодписаниеБезРегистрации
+
+ AutoSizeAsFileRef
@@ -353,42 +362,10 @@
CommonPicture.МЧДАктивна
+ AutoSizeAsFileRef
- true
- true
-
- true
-
-
- ru
- Группа представление статусов
-
-
- ГруппаПредставлениеСтатусовРасширеннаяПодсказка
- 770
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- HorizontalIfPossible
- Auto
- NormalSeparation
- true
- true
- Auto
- Auto
-
-
-
- ГруппаОписаниеСостояния
- 771ОписаниеСостояния773
@@ -401,6 +378,7 @@
true
+ NoneОписаниеСостоянияРасширеннаяПодсказка775
@@ -418,26 +396,97 @@
trueLabel
- trueURLProcessingОписаниеСостоянияОбработкаНавигационнойСсылкиLeft
+ Center
+ true
+ true
+
+ true
+
+
+ ru
+ Группа статус в реестре ФНС
+
+ true
+
+ ГруппаСтатусВРеестреФНСРасширеннаяПодсказка
+ 1112
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ HorizontalIfPossible
+ Center
+ Auto
+ WeakSeparation
+ true
+ true
+
+ Style.ToolTipBackColor
+
+ Auto
+ Auto
+
+
+
+ ДекорацияРазделитель
+ 1091
+ true
+ true
+
+ true
+
+
+ ДекорацияРазделительРасширеннаяПодсказка
+ 1093
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДекорацияРазделительКонтекстноеМеню
+ 1092
+ true
+
+ Label
+ 1
+ false
+
+ Left
+
+
+
+ ГруппаСтатусВДругомРеестре
+ 1113
- ДекорацияРазделитель
- 1091
- true
+ ДекорацияКартинкаДругойРеестр
+ 1099
+
+ ru
+ Декорация регистрация
+ truetrue
- ДекорацияРазделительРасширеннаяПодсказка
- 1093
+ ДекорацияКартинкаДругойРеестрРасширеннаяПодсказка
+ 1101Labeltruetrue
@@ -446,15 +495,18 @@
- ДекорацияРазделительКонтекстноеМеню
- 1092
+ ДекорацияКартинкаДругойРеестрКонтекстноеМеню
+ 1100true
- Label
- 1
+ truetrue
-
- Left
+
+
+ CommonPicture.МЧДНаРегистрации
+
+ AutoSize
+ AsFileRef
@@ -469,6 +521,7 @@
true
+ NoneОписаниеСостоянияВДругомРеестреРасширеннаяПодсказка1088
@@ -486,7 +539,7 @@
trueLabel
- 50
+ 40true
@@ -494,6 +547,7 @@
ДругойРеестрОбработкаНавигационнойСсылкиLeft
+ Centertrue
@@ -503,11 +557,12 @@
ru
- Группа описание состояния
+ Группа статус в другом реестре
+ 35
- ГруппаОписаниеСостоянияРасширеннаяПодсказка
- 772
+ ГруппаСтатусВДругомРеестреРасширеннаяПодсказка
+ 1114Labeltruetrue
@@ -518,10 +573,14 @@
UsualGroupHorizontalIfPossible
+ CenterAuto
- NormalSeparation
+ WeakSeparationtruetrue
+
+ Style.ToolTipBackColor
+ AutoAuto
@@ -535,7 +594,8 @@
ruГруппа статусы
- true
+ 75
+ falseГруппаСтатусыРасширеннаяПодсказка768
@@ -756,7 +816,8 @@
Style.РезультатУспехЦвет
- Left
+ Center
+ Center
@@ -793,48 +854,8 @@
Style.ПоясняющийОшибкуТекст
- Left
-
-
-
- Код
- 66
- true
- true
-
- true
-
-
- Объект.Code
-
-
- КодРасширеннаяПодсказка
- 68
- Label
- true
- true
-
- Left
-
-
-
- КодКонтекстноеМеню
- 67
- true
-
- InputField
- Enter
- true
- Left
- true
-
- 11
- true
- true
- true
- true
- true
- Normal
+ Center
+ Centertrue
@@ -1149,21 +1170,91 @@
Auto
-
- ДоверительДекорация
- 52
-
- ru
- Реквизиты организации
-
+
+ ГруппаДоверительДекорация
+ 1132
+
+ ДоверительДекорацияОтступ
+ 1134
+ true
+ true
+
+ true
+
+
+ ДоверительДекорацияОтступРасширеннаяПодсказка
+ 1136
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДоверительДекорацияОтступКонтекстноеМеню
+ 1135
+ true
+
+ Label
+ 1
+ true
+ true
+
+ Left
+
+
+
+ ДоверительДекорация
+ 52
+
+ ru
+ Реквизиты организации
+
+ true
+ true
+
+ true
+
+
+ ДоверительДекорацияРасширеннаяПодсказка
+ 54
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДоверительДекорацияКонтекстноеМеню
+ 53
+ true
+
+ Label
+
+ Style.ПоясняющийТекст
+
+
+
+ URLProcessing
+ ДекорацияОбработкаНавигационнойСсылки
+
+ Left
+
+ truetruetrue
+
+ ru
+ Группа доверитель декорация
+
- ДоверительДекорацияРасширеннаяПодсказка
- 54
+ ГруппаДоверительДекорацияРасширеннаяПодсказка
+ 1133Labeltruetrue
@@ -1171,21 +1262,15 @@
Left
-
- ДоверительДекорацияКонтекстноеМеню
- 53
- true
-
- Label
-
- Style.ПоясняющийТекст
-
-
-
- URLProcessing
- ДекорацияОбработкаНавигационнойСсылки
-
- Left
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ WeakSeparation
+ true
+ true
+ Auto
+ Auto
@@ -1475,21 +1560,91 @@
Auto
-
- ЛицоДоверителяДекорация
- 55
-
- ru
- Реквизиты лица без доверенности
-
+
+ ГруппаЛицоДоверителяДекорация
+ 1137
+
+ ЛицоДоверителяДекорацияОтступ
+ 1139
+ true
+ true
+
+ true
+
+
+ ЛицоДоверителяДекорацияОтступРасширеннаяПодсказка
+ 1141
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ЛицоДоверителяДекорацияОтступКонтекстноеМеню
+ 1140
+ true
+
+ Label
+ 1
+ true
+ true
+
+ Left
+
+
+
+ ЛицоДоверителяДекорация
+ 55
+
+ ru
+ Реквизиты лица без доверенности
+
+ true
+ true
+
+ true
+
+
+ ЛицоДоверителяДекорацияРасширеннаяПодсказка
+ 57
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ЛицоДоверителяДекорацияКонтекстноеМеню
+ 56
+ true
+
+ Label
+
+ Style.ПоясняющийТекст
+
+
+
+ URLProcessing
+ ДекорацияОбработкаНавигационнойСсылки
+
+ Left
+
+ truetruetrue
+
+ ru
+ Группа лицо доверителя декорация
+
- ЛицоДоверителяДекорацияРасширеннаяПодсказка
- 57
+ ГруппаЛицоДоверителяДекорацияРасширеннаяПодсказка
+ 1138Labeltruetrue
@@ -1497,21 +1652,15 @@
Left
-
- ЛицоДоверителяДекорацияКонтекстноеМеню
- 56
- true
-
- Label
-
- Style.ПоясняющийТекст
-
-
-
- URLProcessing
- ДекорацияОбработкаНавигационнойСсылки
-
- Left
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ WeakSeparation
+ true
+ true
+ Auto
+ Auto
@@ -1525,7 +1674,7 @@
171ru
- Лицо без доверенности упр. компании:
+ Лицо, действующее от имени упр. компании:truetrue
@@ -1731,21 +1880,95 @@
Auto
-
- ПредставительУправляющейКомпанииДекорация
- 367
-
- ru
- Реквизиты лица без доверенности управляющей компании
-
+
+ ГруппаПредставительУправляющейКомпанииДекорация
+ 1142
+
+ ПредставительУправляющейКомпанииДекорацияОтступ
+ 1144
+ true
+ true
+
+ true
+
+
+ ПредставительУправляющейКомпанииДекорацияОтступРасширеннаяПодсказка
+ 1146
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ПредставительУправляющейКомпанииДекорацияОтступКонтекстноеМеню
+ 1145
+ true
+
+ Label
+ 1
+ true
+ true
+
+ Left
+
+
+
+ ПредставительУправляющейКомпанииДекорация
+ 367
+
+ ru
+ Реквизиты лица без доверенности управляющей компании
+
+ true
+ true
+
+ true
+
+
+ ПредставительУправляющейКомпанииДекорацияРасширеннаяПодсказка
+ 369
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ПредставительУправляющейКомпанииДекорацияКонтекстноеМеню
+ 368
+ true
+
+ Label
+
+ Style.ПоясняющийТекст
+
+
+
+ URLProcessing
+ ДекорацияОбработкаНавигационнойСсылки
+
+ Left
+
+ truetruetrue
+
+ ru
+ Группа представитель управляющей компании декорация
+
+
+ ru
+ Группа лицо доверителя представитель декорация
+
- ПредставительУправляющейКомпанииДекорацияРасширеннаяПодсказка
- 369
+ ГруппаПредставительУправляющейКомпанииДекорацияРасширеннаяПодсказка
+ 1143Labeltruetrue
@@ -1753,21 +1976,15 @@
Left
-
- ПредставительУправляющейКомпанииДекорацияКонтекстноеМеню
- 368
- true
-
- Label
-
- Style.ПоясняющийТекст
-
-
-
- URLProcessing
- ДекорацияОбработкаНавигационнойСсылки
-
- Left
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ WeakSeparation
+ true
+ true
+ Auto
+ Autotrue
@@ -1805,7 +2022,7 @@
1097НадписьПоДоверенности
- 1099
+ 1129ruПо доверенности:
@@ -1817,7 +2034,7 @@
НадписьПоДоверенностиРасширеннаяПодсказка
- 1101
+ 1131Labeltruetrue
@@ -1827,7 +2044,7 @@
НадписьПоДоверенностиКонтекстноеМеню
- 1100
+ 1130trueLabel
@@ -2648,6 +2865,9 @@
ruПодписи доверителей
+
+ Style.NormalTextFont
+ ГруппаЭлектронныеПодписиРасширеннаяПодсказка801
@@ -2663,6 +2883,7 @@
HorizontalIfPossibleCollapsibletrue
+ ButtonWeakSeparationtruetrue
@@ -2984,21 +3205,91 @@
Auto
-
- ПредставительДекорация
- 259
-
- ru
- Реквизиты представителя
-
+
+ ГруппаПредставительДекорация
+ 1147
+
+ ПредставительДекорацияОтступ
+ 1149
+ true
+ true
+
+ true
+
+
+ ПредставительДекорацияОтступРасширеннаяПодсказка
+ 1151
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ПредставительДекорацияОтступКонтекстноеМеню
+ 1150
+ true
+
+ Label
+ 1
+ true
+ true
+
+ Left
+
+
+
+ ПредставительДекорация
+ 259
+
+ ru
+ Реквизиты представителя
+
+ true
+ true
+
+ true
+
+
+ ПредставительДекорацияРасширеннаяПодсказка
+ 261
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ПредставительДекорацияКонтекстноеМеню
+ 260
+ true
+
+ Label
+
+ Style.ПоясняющийТекст
+
+
+
+ URLProcessing
+ ДекорацияОбработкаНавигационнойСсылки
+
+ Left
+
+ truetruetrue
+
+ ru
+ Группа представитель декорация
+
- ПредставительДекорацияРасширеннаяПодсказка
- 261
+ ГруппаПредставительДекорацияРасширеннаяПодсказка
+ 1148Labeltruetrue
@@ -3006,21 +3297,15 @@
Left
-
- ПредставительДекорацияКонтекстноеМеню
- 260
- true
-
- Label
-
- Style.ПоясняющийТекст
-
-
-
- URLProcessing
- ДекорацияОбработкаНавигационнойСсылки
-
- Left
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ WeakSeparation
+ true
+ true
+ Auto
+ Auto
@@ -3034,7 +3319,7 @@
745ru
- Представитель
+ Представитель:truetrue
@@ -3263,21 +3548,91 @@
Auto
-
- ЛицоПредставителяДекорация
- 742
-
- ru
- Реквизиты представителя
-
+
+ ГруппаЛицоПредставителяДекорация
+ 1152
+
+ ЛицоПредставителяОтступ
+ 1154
+ true
+ true
+
+ true
+
+
+ ЛицоПредставителяОтступРасширеннаяПодсказка
+ 1156
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ЛицоПредставителяОтступКонтекстноеМеню
+ 1155
+ true
+
+ Label
+ 1
+ true
+ true
+
+ Left
+
+
+
+ ЛицоПредставителяДекорация
+ 742
+
+ ru
+ Реквизиты представителя
+
+ true
+ true
+
+ true
+
+
+ ЛицоПредставителяДекорацияРасширеннаяПодсказка
+ 744
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ЛицоПредставителяДекорацияКонтекстноеМеню
+ 743
+ true
+
+ Label
+
+ Style.ПоясняющийТекст
+
+
+
+ URLProcessing
+ ДекорацияОбработкаНавигационнойСсылки
+
+ Left
+
+ truetruetrue
+
+ ru
+ Группа лицо представителя декорация
+
- ЛицоПредставителяДекорацияРасширеннаяПодсказка
- 744
+ ГруппаЛицоПредставителяДекорацияРасширеннаяПодсказка
+ 1153Labeltruetrue
@@ -3285,21 +3640,15 @@
Left
-
- ЛицоПредставителяДекорацияКонтекстноеМеню
- 743
- true
-
- Label
-
- Style.ПоясняющийТекст
-
-
-
- URLProcessing
- ДекорацияОбработкаНавигационнойСсылки
-
- Left
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ WeakSeparation
+ true
+ true
+ Auto
+ Autotrue
@@ -3972,6 +4321,8 @@
ruГруппа полномочия
+ 80
+ falseГруппаПолномочияРасширеннаяПодсказка556
@@ -4447,6 +4798,7 @@
HorizontalIfPossibleCollapsibletrue
+ ButtonWeakSeparationtruetrue
@@ -4457,7 +4809,7 @@
ГруппаВозможностьПередоверия
- 1113
+ 1122ФлажокВозможностьПередоверия1110
@@ -4480,7 +4832,7 @@
ФлажокВозможностьПередоверияРасширеннаяПодсказка
- 1112
+ 1126Labeltruetrue
@@ -4490,7 +4842,7 @@
ФлажокВозможностьПередоверияКонтекстноеМеню
- 1111
+ 1125trueCheckBoxField
@@ -4502,7 +4854,7 @@
ВозможностьПередоверия
- 1115
+ 1124truetrue
@@ -4514,7 +4866,7 @@
NoneВозможностьПередоверияРасширеннаяПодсказка
- 1117
+ 1128Labeltruetrue
@@ -4524,7 +4876,7 @@
ВозможностьПередоверияКонтекстноеМеню
- 1116
+ 1127trueInputField
@@ -4560,9 +4912,10 @@
ruГруппа возможность передоверия
+ trueГруппаВозможностьПередоверияРасширеннаяПодсказка
- 1114
+ 1123Labeltruetrue
@@ -4611,31 +4964,101 @@
- ГруппаНомерВРеестре
+ ГруппаРегистрацияВРеестре74
-
- РегистрироватьВРеестре
- 71
-
- ru
- Регистрировать в Распределенном реестре ФНС России
-
+
+ ГруппаРегистрацияВРеестреФНС
+ 1115
+
+ РегистрироватьВРеестре
+ 71
+ true
+ true
+
+ true
+
+
+ Объект.РегистрироватьВРеестре
+
+ None
+ None
+
+ OnChange
+ РегистрироватьВРеестреПриИзменении
+
+
+ РегистрироватьВРеестреРасширеннаяПодсказка
+ 73
+ Label
+ true
+ true
+
+ Left
+
+
+
+ РегистрироватьВРеестреКонтекстноеМеню
+ 72
+ true
+
+ CheckBoxField
+ Enter
+ true
+ Left
+ true
+
+
+
+ ДекорацияРегистрироватьВРеестреФНС
+ 1117
+
+ ru
+ Регистрировать в распределенном реестре ФНС России
+
+ true
+ true
+
+ true
+
+
+ ru
+ Распределенный реестр ФНС России объединяет информационные системы организаций, которым разрешено хранение МЧД, и обеспечивает единую точку доступа для получения статуса МЧД, размещенной любым участником.
+
+ Button
+
+ ДекорацияРегистрироватьВРеестреФНСРасширеннаяПодсказка
+ 1119
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДекорацияРегистрироватьВРеестреФНСКонтекстноеМеню
+ 1118
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+ truetruetrue
-
- Объект.РегистрироватьВРеестре
-
- Right
-
- OnChange
- РегистрироватьВРеестреПриИзменении
-
+
+ ru
+ Группа регистрация в реестре ФНС
+
- РегистрироватьВРеестреРасширеннаяПодсказка
- 73
+ ГруппаРегистрацияВРеестреФНСРасширеннаяПодсказка
+ 1116Labeltruetrue
@@ -4643,17 +5066,16 @@
Left
-
- РегистрироватьВРеестреКонтекстноеМеню
- 72
- true
-
- CheckBoxField
- Enter
- true
- Left
- true
-
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ WeakSeparation
+ true
+ true
+ Auto
+ Auto
+ ГруппаРегистрацияВДругомРеестре
@@ -4673,7 +5095,7 @@
РегистрироватьВДругомРеестре
- Right
+ NoneOnChangeРегистрироватьВДругомРеестреПриИзменении
@@ -4701,7 +5123,7 @@
- ДекорацияРегистрироватьВДругомРеестре
+ ОписаниеРегистрацииВДругомРеестре1094ru
@@ -4712,8 +5134,9 @@
true
+ Button
- ДекорацияРегистрироватьВДругомРеестреРасширеннаяПодсказка
+ ОписаниеРегистрацииВДругомРеестреРасширеннаяПодсказка1096Labeltrue
@@ -4723,7 +5146,7 @@
- ДекорацияРегистрироватьВДругомРеестреКонтекстноеМеню
+ ОписаниеРегистрацииВДругомРеестреКонтекстноеМеню1095true
@@ -4775,10 +5198,10 @@
ru
- Группа номер в реестре
+ Группа регистрация в реестре
- ГруппаНомерВРеестреРасширеннаяПодсказка
+ ГруппаРегистрацияВРеестреРасширеннаяПодсказка75Labeltrue
@@ -4798,25 +5221,112 @@
Auto
-
- НомерДоверенности
- 38
-
- ru
- Единый регистрационный номер доверенности
-
+
+ ГруппаНомера
+ 1120
+
+ НомерДоверенности
+ 38
+
+ ru
+ Единый регистрационный номер доверенности
+
+ true
+ true
+
+ true
+
+
+ Объект.НомерДоверенности
+
+ Top
+
+ НомерДоверенностиРасширеннаяПодсказка
+ 40
+ Label
+ true
+ true
+
+ Left
+
+
+
+ НомерДоверенностиКонтекстноеМеню
+ 39
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+ ru
+ Номер будет получен при подписании
+
+
+
+
+ Код
+ 66
+ true
+ true
+
+ true
+
+
+ Объект.Code
+
+ Top
+
+ КодРасширеннаяПодсказка
+ 68
+ Label
+ true
+ true
+
+ Left
+
+
+
+ КодКонтекстноеМеню
+ 67
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ 11
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+ truetruetrue
-
- Объект.НомерДоверенности
-
- Top
+
+ ru
+ Группа номера
+
- НомерДоверенностиРасширеннаяПодсказка
- 40
+ ГруппаНомераРасширеннаяПодсказка
+ 1121Labeltruetrue
@@ -4824,27 +5334,15 @@
Left
-
- НомерДоверенностиКонтекстноеМеню
- 39
- true
-
- InputField
- Enter
- true
- Left
- true
-
- true
- true
- true
- true
- true
- Normal
-
- ru
- Номер будет получен при подписании
-
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ WeakSeparation
+ true
+ true
+ Auto
+ Auto
@@ -6625,6 +7123,19 @@
true
+
+ ЗарегистрированаВДругомРеестре
+ 56
+
+ Boolean
+
+
+ true
+
+
+ true
+
+ ВыборТипаДоверителя
@@ -6816,6 +7327,7 @@
Отправить
+ trueAutoAuto
diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl
index 73abd24a0..c20e880e9 100644
--- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl
@@ -60,6 +60,7 @@
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
+
КонецПроцедуры
&НаКлиенте
@@ -69,7 +70,9 @@
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
- ОбновитьСтатус();
+ Если Не ТолькоПросмотр Тогда
+ ОбновитьСтатус();
+ КонецЕсли;
КонецПроцедуры
@@ -610,7 +613,7 @@
СтандартнаяОбработка = Истина;
- Если РегистрироватьВДругомРеестре Тогда
+ Если РегистрироватьВДругомРеестре И Не ЗарегистрированаВДругомРеестре Тогда
МашиночитаемыеДоверенностиФНСКлиентПереопределяемый.ПриРегистрацииДоверенности(
Объект.Ссылка, СтандартнаяОбработка, ОписаниеОповещения);
КонецЕсли;
@@ -965,6 +968,8 @@
Если Не Параметры.Ключ.Пустая() Тогда
Модифицированность = Истина;
КонецЕсли;
+
+ ПрочитатьСостояниеВДругомРеестре();
КонецПроцедуры
@@ -1502,7 +1507,8 @@
Если Форма.Подписана Тогда
Форма.Элементы.ЭлектронныеПодписиДобавитьПодпись.Видимость = Ложь;
Форма.Элементы.ФормаДобавитьПодпись.Видимость = Ложь;
- Если МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ВнешниеСтатусы()[Форма.ТехническийСтатус] = Истина Тогда
+ Если МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ВнешниеСтатусы()[Форма.ТехническийСтатус] = Истина
+ Или Форма.ЗарегистрированаВДругомРеестре Тогда
Форма.Элементы.ЭлектронныеПодписиУдалитьПодпись.Видимость = Ложь;
КонецЕсли;
Иначе
@@ -1543,10 +1549,10 @@
Если РеквизитыНедоступныДляРедактирования Тогда
Если Форма.ПредставительРеквизиты = Неопределено Тогда
- Форма.Элементы.ПредставительТипДекорация.Заголовок = НСтр("ru='Физическое лицо'");
+ Форма.Элементы.ПредставительТипДекорация.Заголовок = НСтр("ru='Физическое лицо:'");
Иначе
Форма.Элементы.ПредставительТипДекорация.Заголовок = ?(Форма.ПредставительРеквизиты.ЭтоФизическоеЛицо, НСтр(
- "ru='Физическое лицо'"), НСтр("ru='Организация'"));
+ "ru='Физическое лицо:'"), НСтр("ru='Организация:'"));
КонецЕсли;
КонецЕсли;
@@ -1560,19 +1566,32 @@
Форма.Элементы.РегистрироватьВРеестре.ТолькоПросмотр = Форма.РеквизитыНедоступныДляРедактирования
И МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ВнешниеСтатусы()[Форма.ТехническийСтатус] = Истина;
- Если Форма.Элементы.РегистрироватьВРеестре.ТолькоПросмотр
- И Форма.Объект.РегистрироватьВРеестре И Форма.Объект.Статус <> ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Черновик") Тогда
- Форма.Элементы.РегистрироватьВРеестре.Заголовок = НСтр("ru='Зарегистрирована в Распределенном реестре ФНС России'");
+ Если Форма.Элементы.РегистрироватьВРеестре.ТолькоПросмотр И Форма.Объект.РегистрироватьВРеестре
+ И Форма.Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Действует") Тогда
+ ЗаголовокРегистрироватьВРеестре = НСтр(
+ "ru='Зарегистрирована в распределенном реестре ФНС России'");
Иначе
- Форма.Элементы.РегистрироватьВРеестре.Заголовок = НСтр("ru='Регистрировать в Распределенном реестре ФНС России'");
+ ЗаголовокРегистрироватьВРеестре = НСтр(
+ "ru='Регистрировать в распределенном реестре ФНС России'");
КонецЕсли;
-
+
+ #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ МодульСтроковыеФункции = СтроковыеФункции;
+ #Иначе
+ МодульСтроковыеФункции = СтроковыеФункцииКлиент;
+ #КонецЕсли
+
+ Форма.Элементы.ДекорацияРегистрироватьВРеестреФНС.Заголовок = МодульСтроковыеФункции.ФорматированнаяСтрока(ЗаголовокРегистрироватьВРеестре, Форма.Объект.НомерДоверенности);
+
Если Не Форма.Просрочена И (Форма.Подписана Или Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписана")) Тогда
Если Не Форма.Объект.РегистрироватьВРеестре Тогда
- Форма.Элементы.ФормаОтправить.Видимость = Форма.РегистрироватьВДругомРеестре;
+ Форма.Элементы.ФормаОтправить.Видимость = Форма.РегистрироватьВДругомРеестре И Не Форма.ЗарегистрированаВДругомРеестре;
+ Форма.Элементы.ФормаОтправить.Заголовок = НСтр("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,15 +2947,11 @@
&НаСервереБезКонтекста
Процедура ПрочитатьСостояние(Форма)
- Объект = Форма.Объект;
- Элементы = Форма.Элементы;
+
+ Объект = Форма.Объект;
+ Элементы = Форма.Элементы;
Если ЗначениеЗаполнено(Объект.Ссылка) И Объект.РегистрироватьВРеестре Тогда
- Если ЗначениеЗаполнено(Объект.ДатаОкончания) И КонецДня(Объект.ДатаОкончания) < ТекущаяДатаСеанса() Тогда
- Элементы.ОписаниеСостояния.Видимость = Ложь;
- Возврат;
- КонецЕсли;
-
ДанныеСостояния = МашиночитаемыеДоверенностиФНССлужебный.ПрочитатьСостояниеМЧД(Объект.Ссылка);
Если ЭтоАдресВременногоХранилища(Форма.АдресОшибкиСтатуса) Тогда
ПоместитьВоВременноеХранилище(ДанныеСостояния.ДанныеОшибкиЗапросаСтатуса, Форма.АдресОшибкиСтатуса);
@@ -2942,16 +2959,8 @@
Форма.АдресОшибкиСтатуса = ПоместитьВоВременноеХранилище(ДанныеСостояния.ДанныеОшибкиЗапросаСтатуса, Форма.УникальныйИдентификатор);
КонецЕсли;
- Если ДанныеСостояния.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.ОжидаетОбработки
- Или ДанныеСостояния.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Ошибка Тогда
- СтрокаОбновления = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Обновить'"));
- Элементы.ОписаниеСостояния.Заголовок = Новый ФорматированнаяСтрока(ДанныеСостояния.ОписаниеСостояния, Символы.ПС, СтрокаОбновления);
- Элементы.ОписаниеСостояния.Видимость = Истина;
- Иначе
- Элементы.ОписаниеСостояния.Видимость = Ложь;
- КонецЕсли;
- Иначе
- Элементы.ОписаниеСостояния.Видимость = Ложь;
+ ОтобразитьОписаниеСостояния(Форма, ДанныеСостояния);
+
КонецЕсли;
КонецПроцедуры
@@ -2960,13 +2969,18 @@
Процедура ПрочитатьСостояниеВДругомРеестре()
Элементы.ГруппаРегистрацияВДругомРеестре.Видимость = Ложь;
- Элементы.ОписаниеСостоянияВДругомРеестре.Видимость = Ложь;
-
+ Элементы.ГруппаСтатусВДругомРеестре.Видимость = Ложь;
+
ПараметрыПереопределения = Новый Структура;
ПараметрыПереопределения.Вставить("ПоказыватьРегистрироватьВРеестре", Ложь);
- ПараметрыПереопределения.Вставить("ЗарегистрированаВРеестре", Ложь);
ПараметрыПереопределения.Вставить("ЗаголовокФлажкаРегистрации", "");
+ ПараметрыПереопределения.Вставить("ПодсказкаРегистрации", "");
+
+ ПараметрыПереопределения.Вставить("ЗарегистрированаВРеестре", Ложь);
+ ПараметрыПереопределения.Вставить("Картинка");
ПараметрыПереопределения.Вставить("СостояниеРегистрации", "");
+ ПараметрыПереопределения.Вставить("ПодсказкаСостояния", "");
+
ПараметрыПереопределения.Вставить("ПолномочияПриОткрытии", Параметры.Полномочия);
ПараметрыПереопределения.Вставить("ВыбранныеПолномочия",
Новый Структура("Полномочия, Ограничения", Объект.Полномочия.Выгрузить(), Объект.Ограничения.Выгрузить()));
@@ -2981,15 +2995,17 @@
Если ПараметрыПереопределения.ПоказыватьРегистрироватьВРеестре Тогда
Элементы.ГруппаРегистрацияВДругомРеестре.Видимость = Истина;
-
- Элементы.РегистрироватьВДругомРеестре.Заголовок = ПараметрыПереопределения.ЗаголовокФлажкаРегистрации;
- Если Не ПараметрыПереопределения.ЗарегистрированаВРеестре Тогда
- Элементы.ДекорацияРегистрироватьВДругомРеестре.Заголовок = ПараметрыПереопределения.СостояниеРегистрации;
+ Элементы.ОписаниеРегистрацииВДругомРеестре.Заголовок = ПараметрыПереопределения.ЗаголовокФлажкаРегистрации;
+ Если ЗначениеЗаполнено(ПараметрыПереопределения.ПодсказкаРегистрации) Тогда
+ Элементы.ОписаниеРегистрацииВДругомРеестре.Подсказка = ПараметрыПереопределения.ПодсказкаРегистрации;
+ Элементы.ОписаниеРегистрацииВДругомРеестре.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка;
Иначе
- Элементы.ДекорацияРегистрироватьВДругомРеестре.Заголовок = "";
+ Элементы.ОписаниеРегистрацииВДругомРеестре.ОтображениеПодсказки = ОтображениеПодсказки.Нет;
КонецЕсли;
-
- Если Не РеквизитыНедоступныДляРедактирования И ЗначениеЗаполнено(ПараметрыПереопределения.КодыПолномочийДляДобавления) Тогда
+
+ Если Не РеквизитыНедоступныДляРедактирования
+ И ЗначениеЗаполнено(ПараметрыПереопределения.КодыПолномочийДляДобавления)
+ И Не ТолькоПросмотр Тогда
КодыПолномочийДляДобавления = ПоместитьВоВременноеХранилище(
Новый Структура("КодыПолномочийДляДобавления, ТекстВопросаДляДобавленияПолномочий",
ПараметрыПереопределения.КодыПолномочийДляДобавления,
@@ -3000,9 +3016,23 @@
КонецЕсли;
+ ЗарегистрированаВДругомРеестре = ПараметрыПереопределения.ЗарегистрированаВРеестре;
+
Если ПараметрыПереопределения.ЗарегистрированаВРеестре Тогда
+ Элементы.ГруппаСтатусВДругомРеестре.Видимость = Истина;
- Элементы.ОписаниеСостоянияВДругомРеестре.Видимость = Истина;
+ Если ЗначениеЗаполнено(ПараметрыПереопределения.Картинка) Тогда
+ Элементы.ДекорацияКартинкаДругойРеестр.Видимость = Истина;
+ Элементы.ДекорацияКартинкаДругойРеестр.Картинка = БиблиотекаКартинок[ПараметрыПереопределения.Картинка];
+ Иначе
+ Элементы.ДекорацияКартинкаДругойРеестр.Видимость = Ложь;
+ КонецЕсли;
+ Если ЗначениеЗаполнено(ПараметрыПереопределения.ПодсказкаСостояния) Тогда
+ Элементы.ОписаниеСостоянияВДругомРеестре.Подсказка = ПараметрыПереопределения.ПодсказкаСостояния;
+ Элементы.ОписаниеСостоянияВДругомРеестре.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка;
+ Иначе
+ Элементы.ОписаниеСостоянияВДругомРеестре.ОтображениеПодсказки = ОтображениеПодсказки.Нет;
+ КонецЕсли;
Элементы.ОписаниеСостоянияВДругомРеестре.Заголовок = ПараметрыПереопределения.СостояниеРегистрации;
Элементы.РегистрироватьВДругомРеестре.ТолькоПросмотр = Истина;
РегистрироватьВДругомРеестре = Истина;
@@ -3050,20 +3080,13 @@
ОповеститьОбИзменении(Объект.Ссылка);
КонецЕсли;
- Если ДанныеСостояния.ОтображатьСтатусВДокументе И Объект.РегистрироватьВРеестре Тогда
- СтрокаОбновления = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр("ru='Обновить'"));
- Элементы.ОписаниеСостояния.Заголовок = Новый ФорматированнаяСтрока(ДанныеСостояния.ОписаниеСостояния, Символы.ПС, СтрокаОбновления);
- Элементы.ОписаниеСостояния.Видимость = Истина;
- Иначе
- Элементы.ОписаниеСостояния.Видимость = Ложь;
- КонецЕсли;
-
Если ЭтоАдресВременногоХранилища(АдресОшибкиСтатуса) Тогда
ПоместитьВоВременноеХранилище(ДанныеСостояния.ДанныеОшибкиЗапросаСтатуса, АдресОшибкиСтатуса);
Иначе
АдресОшибкиСтатуса = ПоместитьВоВременноеХранилище(ДанныеСостояния.ДанныеОшибкиЗапросаСтатуса, УникальныйИдентификатор);
КонецЕсли;
-
+
+ ОтобразитьОписаниеСостояния(ЭтотОбъект, ДанныеСостояния);
Иначе
Элементы.ОписаниеСостояния.Видимость = Ложь;
КонецЕсли;
@@ -3098,6 +3121,45 @@
КонецФункции
+&НаКлиентеНаСервереБезКонтекста
+Процедура ОтобразитьОписаниеСостояния(Форма, ДанныеСостояния)
+
+ Элементы = Форма.Элементы;
+ Объект = Форма.Объект;
+
+ #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ МодульСтроковыеФункции = СтроковыеФункции;
+ #Иначе
+ МодульСтроковыеФункции = СтроковыеФункцииКлиент;
+ #КонецЕсли
+
+ Если Форма.Элементы.ДекорацияПросрочена.Видимость Тогда
+ Элементы.ОписаниеСостояния.Видимость = Ложь;
+ ИначеЕсли Форма.Элементы.ДекорацияГотово.Видимость Тогда
+ Форма.Элементы.ОписаниеСостояния.Заголовок = МодульСтроковыеФункции.ФорматированнаяСтрока(
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru='Не требуется регистрация в реестре ФНС'"), "ПоясняющийТекст"));
+ Элементы.ОписаниеСостояния.Видимость = Истина;
+ ИначеЕсли Форма.Элементы.ДекорацияПодписана.Видимость Тогда
+ Форма.Элементы.ОписаниеСостояния.Заголовок = МодульСтроковыеФункции.ФорматированнаяСтрока(
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru='Требуется регистрация в реестре ФНС'"), "ПоясняющийТекст"));
+ Элементы.ОписаниеСостояния.Видимость = Истина;
+ ИначеЕсли ДанныеСостояния.ОтображатьСтатусВДокументе И Объект.РегистрироватьВРеестре Тогда
+ СтрокаОбновления = МодульСтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru='Обновить'"));
+ Элементы.ОписаниеСостояния.Заголовок = Новый ФорматированнаяСтрока(ДанныеСостояния.ОписаниеСостояния,
+ Символы.ПС, СтрокаОбновления);
+ Элементы.ОписаниеСостояния.Видимость = Истина;
+ ИначеЕсли ДанныеСостояния.ОтображатьСтатусВДокументе И ЗначениеЗаполнено(ДанныеСостояния.ОписаниеСостояния) Тогда
+ Элементы.ОписаниеСостояния.Заголовок = Новый ФорматированнаяСтрока(ДанныеСостояния.ОписаниеСостояния);
+ Элементы.ОписаниеСостояния.Видимость = Истина;
+ Иначе
+ Элементы.ОписаниеСостояния.Видимость = Ложь;
+ КонецЕсли;
+
+КонецПроцедуры
+
&НаСервереБезКонтекста
Процедура УстановитьСтатусРегистрации(Знач Доверенность, Знач ИдентификаторТранзакции = Неопределено,
Знач РегистрироватьВРеестреФНС = Истина, Знач РегистрироватьВДругомРеестре = Ложь)
diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl
index a19f2edfd..a14bf071c 100644
--- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl
+++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl
@@ -842,7 +842,7 @@
Функция СведенияОДокументеУдостоверяющемЛичность(РеквизитыФизическогоЛица) // УдЛичнФЛТип
- Если Не РеквизитыФизическогоЛица.Свойство("ДокументВид") Тогда
+ Если Не РеквизитыФизическогоЛица.Свойство("ДокументВид") Или РеквизитыФизическогоЛица.ДокументВид = "0" Тогда
Возврат Неопределено;
КонецЕсли;
@@ -2096,13 +2096,10 @@
СведенияОДоверенности = Доверенность.СвДов;
СведенияОДоверителях = Доверенность.СвДоверит;
- СведенияОПредставителях = Доверенность.СвУпПред;
- СведенияОПолномочияхПредставителей = Доверенность.СвПолн;
ЕдиныйРегистрационныйНомерПервоначальнойДоверенности = СведенияОДоверенности.НомДовер;
ДатаВыдачиДоверенности = Дата(СведенияОДоверенности.ДатаВыдДовер);
СрокДействияДоверенности = Дата(СведенияОДоверенности.СрокДейст);
- ПризнакВозможностиПередоверия = СведенияОДоверенности.ПрПередов;
ВнутреннийНомерПервоначальнойДоверенности = СведенияОДоверенности.ВнНомДовер;
СведенияОДоверителяхПервоначальнойДоверенности = СведенияОДоверителяхПервоначальнойДоверенности(СведенияОДоверителях);
@@ -2116,7 +2113,6 @@
ЕдиныйРегистрационныйНомерПервоначальнойДоверенности = СведенияОПервоначальнойДоверенности.НомДоверПерв;
СведенияОДоверителяхПервоначальнойДоверенности = СведенияОПервоначальнойДоверенности.СвДоверПерв;
КонецЕсли;
-
СведенияОПервоначальнойДоверенности = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвПервДоверТип"));
СведенияОПервоначальнойДоверенности.ПрДовер = ПризнакДоверенности;
@@ -2332,7 +2328,6 @@
Передоверие = Документ.Передов;
- ПризнакНаличияДоверенностиВыданнойВПорядкеПередоверия = Передоверие.ПрНалПередов;
СведенияОПервоначальнойДоверенности = Передоверие.СвПервДовер;
СведенияОДоверенностиОснованииПередоверия = Передоверие.СвПередов;
СведенияОДоверенности = Передоверие.СвПереДовер;
@@ -2735,7 +2730,6 @@
Процедура ВывестиПередоверие(ТабличныйДокумент, Макет, Передоверие)
- ПризнакНаличияДоверенностиВыданнойВПорядкеПередоверия = Передоверие.ПрНалПередов;
СведенияОПервоначальнойДоверенности = Передоверие.СвПервДовер;
СведенияОДоверенностиОснованииПередоверия = Передоверие.СвПередов;
СведенияОДоверенности = Передоверие.СвПереДовер;
diff --git a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl
index b002dfa7f..9149ef61f 100644
--- a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl
@@ -86,6 +86,99 @@
КонецФункции
+#Область ОбработчикиОбновления
+
+// Заполняет реквизит ЦелевыеПлатформы в справочнике "Общие внешние компоненты".
+//
+Процедура ОбработатьОбщиеВнешниеКомпоненты() Экспорт
+
+ Запрос = Новый Запрос;
+ Запрос.Текст = "
+ |ВЫБРАТЬ
+ | ОбщиеВнешниеКомпоненты.Ссылка,
+ | ОбщиеВнешниеКомпоненты.ХранилищеКомпоненты,
+ | ОбщиеВнешниеКомпоненты.ЦелевыеПлатформы
+ |ИЗ
+ | Справочник.ОбщиеВнешниеКомпоненты КАК ОбщиеВнешниеКомпоненты";
+
+ Выборка = Запрос.Выполнить().Выбрать();
+
+ Если Выборка.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ ОбъектовОбработано = 0;
+ ПроблемныхОбъектов = 0;
+
+ Пока Выборка.Следующий() Цикл
+
+ ЦелевыеПлатформы = Выборка.ЦелевыеПлатформы.Получить();
+ ДвоичныеДанныеКомпоненты = Выборка.ХранилищеКомпоненты.Получить();
+
+ Если ТипЗнч(ДвоичныеДанныеКомпоненты) <> Тип("ДвоичныеДанные") Тогда
+ ОбъектовОбработано = ОбъектовОбработано + 1;
+ Продолжить;
+ КонецЕсли;
+
+ ИнформацияОКомпонентеИзФайла = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(
+ ДвоичныеДанныеКомпоненты, Ложь);
+ Если Не ИнформацияОКомпонентеИзФайла.Разобрано Тогда
+ ОбъектовОбработано = ОбъектовОбработано + 1;
+ Продолжить;
+ КонецЕсли;
+
+ Реквизиты = ИнформацияОКомпонентеИзФайла.Реквизиты;
+
+ Если ЦелевыеПлатформы <> Неопределено И ОбщегоНазначения.КоллекцииИдентичны(ЦелевыеПлатформы, Реквизиты.ЦелевыеПлатформы) Тогда
+ ОбъектовОбработано = ОбъектовОбработано + 1;
+ Продолжить;
+ КонецЕсли;
+
+ ПредставлениеСсылки = Строка(Выборка.Ссылка);
+ НачатьТранзакцию();
+ Попытка
+
+ Блокировка = Новый БлокировкаДанных;
+ ЭлементБлокировки = Блокировка.Добавить("Справочник.ОбщиеВнешниеКомпоненты");
+ ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
+ ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
+ Блокировка.Заблокировать();
+
+ КомпонентаОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.ОбщиеВнешниеКомпоненты
+ КомпонентаОбъект.ЦелевыеПлатформы = Новый ХранилищеЗначения(Реквизиты.ЦелевыеПлатформы);
+ ОбновлениеИнформационнойБазы.ЗаписатьОбъект(КомпонентаОбъект);
+
+ ОбъектовОбработано = ОбъектовОбработано + 1;
+ ЗафиксироватьТранзакцию();
+
+ Исключение
+
+ ОтменитьТранзакцию();
+
+ ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
+
+ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось обработать общую компоненту %1 по причине:
+ |%2'"), ПредставлениеСсылки, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
+
+ ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
+ УровеньЖурналаРегистрации.Предупреждение, Выборка.Ссылка.Метаданные(), Выборка.Ссылка, ТекстСообщения);
+
+ КонецПопытки;
+
+ КонецЦикла;
+
+ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
+ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось обработать общие компоненты (пропущены): %1'"),
+ ПроблемныхОбъектов);
+ ВызватьИсключение ТекстСообщения;
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#КонецЕсли
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ОбщиеВнешниеКомпоненты.mdo b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ОбщиеВнешниеКомпоненты.mdo
index 914e2638d..23dff187f 100644
--- a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ОбщиеВнешниеКомпоненты.mdo
+++ b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ОбщиеВнешниеКомпоненты.mdo
@@ -189,314 +189,14 @@
UseUse
-
- Windows_x86
+
+ ЦелевыеПлатформыru
- Windows x86
+ Целевые платформы
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_64
-
- ru
- Windows x86_64
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86
-
- ru
- Linux x86
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_64
-
- ru
- Linux x86_64
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_Firefox
-
- ru
- Windows x86 Firefox
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_Firefox
-
- ru
- Linux x86 Firefox
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_64_Firefox
-
- ru
- Linux x86_64 Firefox
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_MSIE
-
- ru
- Windows x86 MSIE
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_64_MSIE
-
- ru
- Windows x86_64 MSIE
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_Chrome
-
- ru
- Windows x86 Chrome
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_Chrome
-
- ru
- Linux x86 Chrome
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_64_Chrome
-
- ru
- Linux x86_64 Chrome
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- MacOS_x86_64
-
- ru
- macOS x86_64
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- MacOS_x86_64_Safari
-
- ru
- macOS x86_64 Safari
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- MacOS_x86_64_Chrome
-
- ru
- macOS x86_64 Chrome
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- MacOS_x86_64_Firefox
-
- ru
- macOS x86_64 Firefox
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_ЯндексБраузер
-
- ru
- Windows x86 Яндекс Браузер
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Windows_x86_64_ЯндексБраузер
-
- ru
- Windows x86_64 Яндекс Браузер
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_ЯндексБраузер
-
- ru
- Linux x86 Яндекс Браузер
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- Linux_x86_64_ЯндексБраузер
-
- ru
- Linux x86_64 Яндекс Браузер
-
-
- Boolean
-
-
-
-
- Use
- Use
-
-
- MacOS_x86_64_ЯндексБраузер
-
- ru
- macOS x86_64 Яндекс Браузер
-
-
- Boolean
+ ValueStorage
diff --git a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Form.form b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Form.form
index 1090b27c3..1fb13b299 100644
--- a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Form.form
+++ b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Form.form
@@ -368,6 +368,12 @@
true
+
+ ТекущаяПапка
+
+ CatalogRef.ПапкиФайлов
+
+
diff --git a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl
index 7ea7aa0a7..85c3965b4 100644
--- a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl
+++ b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl
@@ -11,9 +11,7 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
- Если Параметры.Свойство("ТекущаяПапка") Тогда
- Элементы.Список.ТекущаяСтрока = Параметры.ТекущаяПапка;
- КонецЕсли;
+ Элементы.Список.ТекущаяСтрока = Параметры.ТекущаяПапка;
КонецПроцедуры
diff --git a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Form.form
index a2a9934df..84ccf9208 100644
--- a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Form.form
@@ -624,6 +624,12 @@
DontUseAuto
+
+ Родитель
+
+ CatalogRef.ПапкиФайлов
+
+
diff --git a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl
index be54e4cb6..0cd1e5947 100644
--- a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl
@@ -11,7 +11,7 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
- Если Параметры.Свойство("Родитель") Тогда
+ Если ЗначениеЗаполнено(Параметры.Родитель) Тогда
Объект.Родитель = Параметры.Родитель;
КонецЕсли;
@@ -334,7 +334,7 @@
// Конец СтандартныеПодсистемы.Свойства
&НаСервере
-Функция ПараметрыНастройкиСинхронизации(ВладелецФайла)
+Функция ПараметрыНастройкиСинхронизации(Знач ВладелецФайла)
ТипВладельцаФайла = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип("СправочникСсылка.Файлы"));
@@ -418,7 +418,7 @@
КонецПроцедуры
&НаСервереБезКонтекста
-Функция РабочийКаталогВладельцаОчисткаНаСервере(Ссылка, РодительСсылка, Наименование)
+Функция РабочийКаталогВладельцаОчисткаНаСервере(Знач Ссылка, Знач РодительСсылка, Знач Наименование)
РабочийКаталогРодителя = РаботаСФайламиСлужебныйВызовСервера.РабочийКаталогПапки(РодительСсылка);
diff --git a/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl
index 972070edc..ca096970d 100644
--- a/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl
@@ -63,7 +63,9 @@
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Если ВидФормы = "ФормаСписка" Тогда
+ // АПК:1417-выкл структура с динамическим составом свойств
ТекущаяСтрока = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ТекущаяСтрока");
+ // АПК:1417-вкл
Если ТипЗнч(ТекущаяСтрока) = Тип("СправочникСсылка.ПапкиФайлов") И Не ТекущаяСтрока.Пустая() Тогда
СтандартнаяОбработка = Ложь;
Параметры.Удалить("ТекущаяСтрока");
diff --git a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl
index e10440419..3e532b18d 100644
--- a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl
@@ -97,7 +97,7 @@
КонецЕсли;
Иначе
- СообщитьПользователю(НСтр("ru = 'Без расширения работы с файлами невозможно работать с файлами.'"), "Объект");
+ СообщитьПользователю(НСтр("ru = 'Без расширения для работы с 1С:Предприятием невозможно работать с файлами.'"), "Объект");
КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl
index 43afb51d1..5632c111a 100644
--- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl
@@ -283,6 +283,8 @@
// Чтение настроек отчетов из объекта копирования.
Если СозданКопированием Тогда
ПрочитатьНастройкиОтчетовОбъектаКопирования();
+ ПреобразоватьПараметрыТекста(Объект, "ПараметрыВПредставление");
+ ПреобразоватьПараметрыНастроекОтчетов(Объект, "ПараметрыВПредставление");
КонецЕсли;
// Активизация первой строки
@@ -4420,6 +4422,9 @@
ИдентификаторСтроки = СтрокаОтчеты.ПолучитьИдентификатор();
СтрокаПредупреждения = ОтчетыПриАктивизацииСтрокиНаСервере(ИдентификаторСтроки, Истина, ПользовательскиеНастройкиКД);
+ Если Индекс = 0 Тогда
+ ЗаписатьНастройкиСтрокиОтчеты(ИдентификаторТекущейСтрокиТаблицыОтчетов);
+ КонецЕсли;
Если СтрокаПредупреждения <> "" Тогда
ОбщегоНазначения.СообщитьПользователю(СтрокаПредупреждения, , "Объект.Отчеты["+ Индекс +"].Представление");
КонецЕсли;
diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl
index ef1e62abf..2caaa9c3a 100644
--- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl
+++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl
@@ -60,9 +60,10 @@
Функция ОпределитьОтборДляВнешнегоПользователя()
ТекущийВнешнийПользователь = ВнешниеПользователи.ТекущийВнешнийПользователь();
+ ОбъектАвторизации = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийВнешнийПользователь, "ОбъектАвторизации");
СтрокаОтбораВТекстеЗапроса = СтрЗаменить(
"ГДЕ РолиИсполнителейНазначениеПереопределяемый.ТипПользователей = ЗНАЧЕНИЕ(Справочник.%Имя%.ПустаяСсылка)", // @query-part
- "%Имя%", ТекущийВнешнийПользователь.ОбъектАвторизации.Метаданные().Имя);
+ "%Имя%", ОбъектАвторизации.Метаданные().Имя);
Возврат СтрокаОтбораВТекстеЗапроса;
КонецФункции
diff --git a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl
index 5d1ec5214..b09d6c51d 100644
--- a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl
+++ b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl
@@ -52,9 +52,12 @@
Если Пользователи.ЭтоСеансВнешнегоПользователя() Тогда
ТекущийПользователь = ВнешниеПользователи.ТекущийВнешнийПользователь();
- ОбъектАвторизации = Справочники[ТекущийПользователь.ОбъектАвторизации.Метаданные().Имя].ПустаяСсылка();
+ ЗначениеРеквизита = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийПользователь, "ОбъектАвторизации");
+ ОбъектАвторизации = ?(ЗначениеРеквизита <> Неопределено,
+ Справочники[ЗначениеРеквизита.Метаданные().Имя].ПустаяСсылка(),
+ Справочники.Пользователи.ПустаяСсылка());
Иначе
- ОбъектАвторизации = Справочники.Пользователи.ПустаяСсылка();
+ ОбъектАвторизации = Справочники.Пользователи.ПустаяСсылка();
КонецЕсли;
ФрагментыТекстаПоискДляДополнительныхЯзыков = Новый Массив;
diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/СеансыОбменовДанными.mdo b/SSL/src/Catalogs/СеансыОбменовДанными/СеансыОбменовДанными.mdo
index d0857d73f..3cf056bd0 100644
--- a/SSL/src/Catalogs/СеансыОбменовДанными/СеансыОбменовДанными.mdo
+++ b/SSL/src/Catalogs/СеансыОбменовДанными/СеансыОбменовДанными.mdo
@@ -92,6 +92,7 @@
Use
+ trueru
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl
index 4307a7d0a..44ad2751c 100644
--- a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl
@@ -41,32 +41,9 @@
//
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
-
- ТекущиеДанные = Элементы.Список.ТекущиеДанные;
-
- Если Команда.Имя = "НастройкаПорядкаЭлементовОбычное__Вниз" Или Команда.Имя = "НастройкаПорядкаЭлементовОбычное__Вверх" Тогда
- Если ТекущиеДанные.Ссылка = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ФормаНапечатана")
- Или ТекущиеДанные.Ссылка = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен") Тогда
- ПоказатьПредупреждение(,НСтр("ru='Начальное и конечное состояние перемещать нельзя.'"));
- Иначе
-
- Если Команда.Имя = "НастройкаПорядкаЭлементовОбычное__Вниз" Тогда
- Перемещать = ВозможностьПеремещения("Вниз",ТекущиеДанные.РеквизитДопУпорядочивания);
- ИначеЕсли Команда.Имя = "НастройкаПорядкаЭлементовОбычное__Вверх" Тогда
- Перемещать = ВозможностьПеремещения("Вверх",ТекущиеДанные.РеквизитДопУпорядочивания);
- КонецЕсли;
-
- Если Перемещать Тогда
- ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
- Иначе
- ПоказатьПредупреждение(,НСтр("ru = 'Начальное и конечное состояние перемещать нельзя.'"));
- КонецЕсли;
-
- КонецЕсли;
- Иначе
- ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
- КонецЕсли;
-
+
+ ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
+
КонецПроцедуры
&НаКлиенте
@@ -89,37 +66,3 @@
//Конец СтандартныеПодсистемы.ПодключаемыеКоманды
#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-&НаСервере
-Функция ВозможностьПеремещения(Перемещение, НомерПорядка);
-
- Запрос = Новый Запрос;
- Запрос.Текст ="ВЫБРАТЬ
- | СостоянияОригиналовПервичныхДокументов.Ссылка КАК Ссылка
- |ИЗ
- | Справочник.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов
- |ГДЕ
- | СостоянияОригиналовПервичныхДокументов.РеквизитДопУпорядочивания > &НомерПорядка
- | И СостоянияОригиналовПервичныхДокументов.Ссылка <> ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ФормаНапечатана)
- | И СостоянияОригиналовПервичныхДокументов.Ссылка <> ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналыНеВсе)
- | И СостоянияОригиналовПервичныхДокументов.Ссылка <> ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен)";
-
- Если Перемещение = "Вверх" Тогда
- Запрос.Текст = СтрЗаменить(Запрос.Текст,"> &НомерПорядка","< &НомерПорядка");
- КонецЕсли;
-
- Запрос.УстановитьПараметр("НомерПорядка", НомерПорядка);
-
- Выборка = Запрос.Выполнить();
-
- Если Не Выборка.Пустой() Тогда
- Возврат Истина;
- Иначе
- Возврат Ложь;
- КонецЕсли;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl
index 6f2d615e9..38bf60d82 100644
--- a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl
@@ -217,7 +217,7 @@
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
- СтранаМираСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.СтраныМира");
+ СтранаМираДляОбработки = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.СтраныМира");
НастройкиОбновления = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
@@ -227,24 +227,28 @@
ПроблемныхОбъектов = 0;
ОбъектовОбработано = 0;
- Пока СтранаМираСсылка.Следующий() Цикл
- ПредставлениеСсылки = Строка(СтранаМираСсылка.Ссылка);
+ Пока СтранаМираДляОбработки.Следующий() Цикл
+
+ СтранаМираСсылка = СтранаМираДляОбработки.Ссылка; // СправочникСсылка.СтраныМира
+ ПредставлениеСсылки = Строка(СтранаМираСсылка);
+
Попытка
- ДанныеКлассификатора = УправлениеКонтактнойИнформацией.ДанныеКлассификатораСтранМираПоКоду(СтранаМираСсылка.Ссылка.Код);
+ КодСтраны = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтранаМираСсылка, "Код");
+ ДанныеКлассификатора = УправлениеКонтактнойИнформацией.ДанныеКлассификатораСтранМираПоКоду(КодСтраны);
Если ДанныеКлассификатора <> Неопределено Тогда
Блокировка = Новый БлокировкаДанных();
ЭлементБлокировки = Блокировка.Добавить("Справочник.СтраныМира");
- ЭлементБлокировки.УстановитьЗначение("Ссылка", СтранаМираСсылка.Ссылка);
+ ЭлементБлокировки.УстановитьЗначение("Ссылка", СтранаМираСсылка);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
- СтранаМира = СтранаМираСсылка.Ссылка.ПолучитьОбъект();
+ СтранаМира = СтранаМираСсылка.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(СтранаМира, ДанныеКлассификатора);
ОбновлениеИнформационнойБазы.ЗаписатьДанные(СтранаМира);
@@ -256,7 +260,7 @@
КонецПопытки;
Иначе
- ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СтранаМираСсылка.Ссылка);
+ ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СтранаМираСсылка);
КонецЕсли;
// Обновление наименований
@@ -278,7 +282,7 @@
|%2'"),
ПредставлениеСсылки, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,
- Метаданные.Справочники.СтраныМира, СтранаМираСсылка.Ссылка, ТекстСообщения);
+ Метаданные.Справочники.СтраныМира, СтранаМираСсылка, ТекстСообщения);
КонецПопытки;
КонецЦикла;
diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Form.form
index 0e9b95de7..6375b5b8e 100644
--- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Form.form
@@ -407,6 +407,9 @@
true
+
+ Список.DeletionMark
+ Список.Ref
diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Module.bsl
index 2239173a1..6aadf4d4f 100644
--- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаСписка/Module.bsl
@@ -20,13 +20,15 @@
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
КоллекцияСценариев = Новый Массив;
- Для Каждого ДанныеСтроки Из ВыделенныеСтроки Цикл
+ Для Каждого Сценарий Из ВыделенныеСтроки Цикл
+
+ ДанныеСтроки = Элементы.Список.ДанныеСтроки(Сценарий);
Если ДанныеСтроки.ПометкаУдаления Тогда
Продолжить;
КонецЕсли;
- КоллекцияСценариев.Добавить(ДанныеСтроки.Ссылка);
+ КоллекцияСценариев.Добавить(Сценарий);
КонецЦикла;
diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Form.form
index 11d3188e3..e713ea5f1 100644
--- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Form.form
@@ -1,5 +1,212 @@
+
+ ГруппаСценарийОтключен
+ 172
+
+ Декорация5
+ 174
+ true
+ true
+
+ true
+
+
+ Декорация5РасширеннаяПодсказка
+ 176
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Декорация5КонтекстноеМеню
+ 175
+ true
+
+ true
+ true
+
+
+ CommonPicture.Предупреждение32
+
+ AsFileRef
+
+
+
+ Декорация6
+ 177
+
+ ru
+ Сценарий отключен из-за ошибок синхронизации. Включите его после исправления проблем.
+
+ true
+ true
+
+ true
+
+
+ Декорация6РасширеннаяПодсказка
+ 179
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Декорация6КонтекстноеМеню
+ 178
+ true
+
+ Label
+ true
+ true
+ Center
+
+ Left
+
+
+ true
+
+ true
+
+
+ ru
+ Группа сценарий отключен
+
+ true
+
+ ГруппаСценарийОтключенРасширеннаяПодсказка
+ 173
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ AlwaysHorizontal
+ Auto
+ true
+ true
+
+ Style.ЦветФонаПредупреждения
+
+ Auto
+ Auto
+
+
+
+ ГруппаИнформацияОНастрокеВОднойБазе
+ 164
+
+ Декорация3
+ 166
+ true
+ true
+
+ true
+
+
+ Декорация3РасширеннаяПодсказка
+ 168
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Декорация3КонтекстноеМеню
+ 167
+ true
+
+ 3
+ true
+ 2
+ true
+
+
+ StdPicture.Information
+
+ Proportionally
+ AsFileRef
+
+
+
+ Декорация4
+ 169
+
+ ru
+ Достаточно настроить сценарий только в одной области (базе)
+
+ true
+ true
+
+ true
+
+
+ Декорация4РасширеннаяПодсказка
+ 171
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Декорация4КонтекстноеМеню
+ 170
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+ true
+
+ true
+
+
+ ru
+ Группа информация о настроке в одной базе
+
+ true
+
+ ГруппаИнформацияОНастрокеВОднойБазеРасширеннаяПодсказка
+ 165
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ HorizontalIfPossible
+ Center
+ Auto
+ true
+ true
+
+ Web.LightGreen
+
+ Auto
+ Auto
+
+ ГруппаКодНаименование103
diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl
index 695e92c98..733d66ed3 100644
--- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl
@@ -56,6 +56,8 @@
Элементы.НастройкиОбменаВидТранспортаОбмена.Видимость = Ложь;
Элементы.НастройкиОбменаУзелИнформационнойБазы.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать;
Элементы.НастройкиОбменаУзелИнформационнойБазы.КнопкаВыпадающегоСписка = Ложь;
+ Элементы.ГруппаИнформацияОНастрокеВОднойБазе.Видимость = Истина;
+ Элементы.ГруппаСценарийОтключен.Видимость = Объект.ОтключенАвтоматически;
КонецЕсли;
@@ -271,13 +273,13 @@
&НаКлиенте
Процедура РедактированиеРасписанияРегламентногоЗаданияЗавершение(Расписание, ДополнительныеПараметры) Экспорт
-
+
Если Расписание <> Неопределено Тогда
Если РазделениеВключено
- И Расписание.ПериодПовтораВТечениеДня < 15*60 Тогда
+ И Расписание.ПериодПовтораВТечениеДня < 15 * 60 Тогда
- Расписание.ПериодПовтораВТечениеДня = 15*60;
+ Расписание.ПериодПовтораВТечениеДня = 15 * 60;
ТекстПредупреждения = НСтр("ru = 'Минимальный интервал не должен быть меньше 15 минут (900 секунд).'");
ПоказатьПредупреждение(, ТекстПредупреждения);
diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl
index f02cf7e3e..850fb78bb 100644
--- a/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl
+++ b/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl
@@ -22,10 +22,16 @@
КонецЕсли;
- Если ИспользоватьРегламентноеЗадание И ОтключенАвтоматически Тогда
+ РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
+
+ Если РазделениеВключено
+ И ИспользоватьРегламентноеЗадание
+ И ОтключенАвтоматически Тогда
ОтключенАвтоматически = Ложь;
+ ОбменДаннымиВнутренняяПубликация.УдалитьЗадачиПоСценариюСОшибкой(Ссылка);
+
КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl
index 6364f9b19..892b62119 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl
@@ -156,9 +156,7 @@
&НаКлиенте
Процедура ПроверитьВозможностьСинхронизацииСОблачнымСервисом()
- СтруктураРезультата = Неопределено;
-
- ВыполнитьПроверкуПодключения(Объект.Ссылка, СтруктураРезультата);
+ СтруктураРезультата = ВыполнитьПроверкуПодключения(Объект.Ссылка);
РезультатПротокол = СтруктураРезультата.РезультатПротокол;
РезультатТекст = СтруктураРезультата.РезультатТекст;
@@ -243,12 +241,14 @@
КонецПроцедуры
&НаСервере
-Процедура ВыполнитьПроверкуПодключения(УчетнаяЗапись, СтруктураРезультата)
+Функция ВыполнитьПроверкуПодключения(Знач УчетнаяЗапись)
+ СтруктураРезультата = Неопределено;
РаботаСФайламиСлужебный.ВыполнитьПроверкуПодключения(УчетнаяЗапись, СтруктураРезультата);
-КонецПроцедуры
+ Возврат СтруктураРезультата;
+КонецФункции
&НаСервереБезКонтекста
-Функция ПроверитьСоединение(Сервис, ТекстПротокола)
+Функция ПроверитьСоединение(Знач Сервис, Знач ТекстПротокола)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
diff --git a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl
index 96b55a8bd..9bd916ea9 100644
--- a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl
+++ b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl
@@ -130,7 +130,7 @@
И ТипЗнч(Источник) <> Тип("Массив") Тогда
Элементы.Список.Обновить();
- Если ТипЗнч(Параметр) = Тип("Структура") И Параметр.Свойство("Файл") Тогда
+ Если ЗначениеЗаполнено(Параметр.Файл) Тогда
Элементы.Список.ТекущаяСтрока = Параметр.Файл;
ИначеЕсли Источник <> Неопределено Тогда
Элементы.Список.ТекущаяСтрока = Источник;
@@ -155,7 +155,8 @@
РаботаСФайламиСлужебныйКлиент.ПеренестиФайлыВПапку(ВыделенныеСтроки, ВыбранноеЗначение);
Для Каждого ВыделеннаяСтрока Из ВыделенныеСтроки Цикл
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ВыделеннаяСтрока);
+ ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены");
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, ВыделеннаяСтрока);
КонецЦикла;
Элементы.Список.Обновить();
@@ -281,7 +282,8 @@
&НаКлиенте
Процедура СписокПриИзменении(Элемент)
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), Элемент.ВыделенныеСтроки);
+ ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены");
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Элемент.ВыделенныеСтроки);
КонецПроцедуры
@@ -1034,9 +1036,9 @@
КонецПроцедуры
&НаСервере
-Процедура ЗашифроватьСервер(МассивДанныхДляЗанесенияВБазу, МассивОтпечатков,
- МассивФайловВРабочемКаталогеДляУдаления,
- ИмяРабочегоКаталога, ОбъектСсылка)
+Процедура ЗашифроватьСервер(Знач МассивДанныхДляЗанесенияВБазу, Знач МассивОтпечатков,
+ Знач МассивФайловВРабочемКаталогеДляУдаления,
+ Знач ИмяРабочегоКаталога, Знач ОбъектСсылка)
ПараметрыЗаписиИнформацииОШифровании = РаботаСФайламиСлужебный.ПараметрыЗаписиИнформацииОШифровании();
ПараметрыЗаписиИнформацииОШифровании.ИмяРабочегоКаталога = ИмяРабочегоКаталога;
diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl
index b01c92016..09d70855c 100644
--- a/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl
+++ b/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl
@@ -56,24 +56,19 @@
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
- Если ИмяСобытия = "Запись_Файл" И Параметр.Свойство("ЭтоНовый") И Параметр.ЭтоНовый Тогда
-
- Если Параметр <> Неопределено Тогда
- ВладелецФайла = Неопределено;
- Если Параметр.Свойство("Владелец", ВладелецФайла) Тогда
- Если ВладелецФайла = Элементы.Папки.ТекущаяСтрока Тогда
- Элементы.Список.Обновить();
-
- ФайлСозданный = Неопределено;
- Если Параметр.Свойство("Файл", ФайлСозданный) Тогда
- Элементы.Список.ТекущаяСтрока = ФайлСозданный;
- КонецЕсли;
+ Если ИмяСобытия = "Запись_Файл" Тогда
+
+ Если Параметр.ЭтоНовый = Истина Тогда
+ Если Параметр.Владелец = Элементы.Папки.ТекущаяСтрока Тогда
+ Элементы.Список.Обновить();
+
+ Если ЗначениеЗаполнено(Параметр.Файл) Тогда
+ Элементы.Список.ТекущаяСтрока = Параметр.Файл;
КонецЕсли;
КонецЕсли;
+
+ Элементы.Список.Обновить();
КонецЕсли;
-
- Элементы.Список.Обновить();
-
КонецЕсли;
Если ВРег(ИмяСобытия) = ВРег("Запись_НаборКонстант")
diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl
index 66a10f295..2c364922d 100644
--- a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl
@@ -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 @@
&НаСервере
Процедура СоздатьКопиюВерсии(Приемник, Источник)
- Если Источник.ТекущаяВерсия.Пустая() Тогда
+ РеквизитыИсточника = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Источник,
+ "ТекущаяВерсия,Зашифрован,ДатаМодификацииУниверсальная");
+
+ Если РеквизитыИсточника.ТекущаяВерсия.Пустая() Тогда
Возврат;
КонецЕсли;
ХранилищеФайла = Неопределено;
- Если Источник.ТекущаяВерсия.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
- ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(Источник.ТекущаяВерсия);
+ РеквизитыТекущейВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(РеквизитыИсточника.ТекущаяВерсия,
+ "ТипХраненияФайла,Размер,Расширение,ТекстХранилище");
+
+ Если РеквизитыТекущейВерсии.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
+ ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(РеквизитыИсточника.ТекущаяВерсия);
КонецЕсли;
СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией");
СведенияОФайле.ИмяБезРасширения = Объект.Наименование;
- СведенияОФайле.Размер = Источник.ТекущаяВерсия.Размер;
- СведенияОФайле.РасширениеБезТочки = Источник.ТекущаяВерсия.Расширение;
+ СведенияОФайле.Размер = РеквизитыТекущейВерсии.Размер;
+ СведенияОФайле.РасширениеБезТочки = РеквизитыТекущейВерсии.Расширение;
СведенияОФайле.АдресВременногоХранилищаФайла = ХранилищеФайла;
- СведенияОФайле.АдресВременногоХранилищаТекста = Источник.ТекущаяВерсия.ТекстХранилище;
- СведенияОФайле.СсылкаНаВерсиюИсточник = Источник.ТекущаяВерсия;
- СведенияОФайле.Зашифрован = Источник.Зашифрован;
- СведенияОФайле.ВремяИзмененияУниверсальное = Источник.ДатаМодификацииУниверсальная;
+ СведенияОФайле.АдресВременногоХранилищаТекста = РеквизитыТекущейВерсии.ТекстХранилище;
+ СведенияОФайле.СсылкаНаВерсиюИсточник = РеквизитыИсточника.ТекущаяВерсия;
+ СведенияОФайле.Зашифрован = РеквизитыИсточника.Зашифрован;
+ СведенияОФайле.ВремяИзмененияУниверсальное = РеквизитыИсточника.ДатаМодификацииУниверсальная;
СведенияОФайле.ВремяИзменения = ДатаМодификации;
Версия = РаботаСФайламиСлужебный.СоздатьВерсию(Приемник, СведенияОФайле);
РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(
- Приемник, Версия, Источник.ТекущаяВерсия.ТекстХранилище, УникальныйИдентификатор);
+ Приемник, Версия, РеквизитыТекущейВерсии.ТекстХранилище, УникальныйИдентификатор);
ОбновитьОбъект();
КонецПроцедуры
diff --git a/SSL/src/Catalogs/Файлы/ManagerModule.bsl b/SSL/src/Catalogs/Файлы/ManagerModule.bsl
index 7fccb60c2..024bbeed5 100644
--- a/SSL/src/Catalogs/Файлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/Файлы/ManagerModule.bsl
@@ -198,19 +198,26 @@
НачатьТранзакцию();
Попытка
- БлокировкаДанных = Новый БлокировкаДанных;
- ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("Справочник.Файлы");
+ БлокировкаДанныхФайл = Новый БлокировкаДанных;
+ ЭлементБлокировкиДанных = БлокировкаДанныхФайл.Добавить("Справочник.Файлы");
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Строка.Ссылка);
-
- ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("Справочник.ВерсииФайлов");
- ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Строка.Ссылка.ТекущаяВерсия);
ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Разделяемый;
+ БлокировкаДанныхФайл.Заблокировать();
+ ТекущаяВерсия = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Строка.Ссылка, "ТекущаяВерсия");
+
+ БлокировкаДанных = Новый БлокировкаДанных;
+ ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("Справочник.ВерсииФайлов");
+ ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ТекущаяВерсия);
+ ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Разделяемый;
БлокировкаДанных.Заблокировать();
+ РеквизитыТекущейВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ТекущаяВерсия,
+ "ДатаМодификацииУниверсальная,ТипХраненияФайла");
+
ОбновляемыйФайл = Строка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.Файлы
- ОбновляемыйФайл.ДатаМодификацииУниверсальная = ОбновляемыйФайл.ТекущаяВерсия.ДатаМодификацииУниверсальная;
- ОбновляемыйФайл.ТипХраненияФайла = ОбновляемыйФайл.ТекущаяВерсия.ТипХраненияФайла;
+ ОбновляемыйФайл.ДатаМодификацииУниверсальная = РеквизитыТекущейВерсии.ДатаМодификацииУниверсальная;
+ ОбновляемыйФайл.ТипХраненияФайла = РеквизитыТекущейВерсии.ТипХраненияФайла;
НаборЗаписей = РегистрыСведений.СведенияОФайлах.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Файл.Установить(Строка.Ссылка);
diff --git a/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo b/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo
index 1822db063..71a16bc5e 100644
--- a/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo
+++ b/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo
@@ -28,6 +28,10 @@
InformationRegister.ОбработчикиОбновления
+
+ Catalog.СеансыОбменовДанными
+
+ Constant.ОтложенноеОбновлениеЗавершеноУспешно
diff --git a/SSL/src/CommonCommands/АрхивСообщенийОбменов/АрхивСообщенийОбменов.mdo b/SSL/src/CommonCommands/АрхивСообщенийОбменов/АрхивСообщенийОбменов.mdo
index 8374ddb4d..f7ffc97e7 100644
--- a/SSL/src/CommonCommands/АрхивСообщенийОбменов/АрхивСообщенийОбменов.mdo
+++ b/SSL/src/CommonCommands/АрхивСообщенийОбменов/АрхивСообщенийОбменов.mdo
@@ -7,8 +7,4 @@
CommandGroup.ПараметрыСинхронизацииДанныхAuto
-
- ru
- Настройка параметров подключения обмена данными
-
diff --git a/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/Form.form b/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/Form.form
index 2140d7468..7ac0e633b 100644
--- a/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/Form.form
+++ b/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/Form.form
@@ -2,14 +2,14 @@
ru
- Установка расширения работы с файлами
+ Установка расширения для работы с 1С:ПредприятиемДекорацияПояснение6ru
- Для удобной работы с программой предлагается установить расширение для работы с 1С:Предприятием.
+ Для удобной работы с приложением предлагается установить расширение для работы с 1С:Предприятием.
Установить?true
diff --git a/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/ВопросОбУстановкеРасширенияРаботыСФайлами.mdo b/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/ВопросОбУстановкеРасширенияРаботыСФайлами.mdo
index dd00fc5bf..4bb052bdf 100644
--- a/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/ВопросОбУстановкеРасширенияРаботыСФайлами.mdo
+++ b/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/ВопросОбУстановкеРасширенияРаботыСФайлами.mdo
@@ -3,7 +3,7 @@
ВопросОбУстановкеРасширенияРаботыСФайламиru
- Вопрос об установке расширения работы с файлами
+ Вопрос об установке расширения для работы с 1С:ПредприятиемPersonalComputerMobileDevice
diff --git a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl
index 06748dabb..bfc00d673 100644
--- a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl
+++ b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl
@@ -730,6 +730,7 @@
Если ТипЗнч(Ветка) = Тип("ДанныеФормыЭлементДерева") И ОбъектМетаданных.ПолноеИмя() = Ветка.ПолноеИмя Тогда
Продолжить;
КонецЕсли;
+
Если Не ОбъектМетаданныхДоступен(ОбъектМетаданных) Тогда
Продолжить;
КонецЕсли;
@@ -740,6 +741,7 @@
НоваяВетка.Представление = ОбъектМетаданных.Представление();
НоваяВетка.Картинка = КартинкаВИнтерфейсе(ОбъектМетаданных);
НоваяВетка.Адрес = ?(ТипЗнч(Ветка) = Тип("ДанныеФормыЭлементДерева"), Ветка.Адрес + "/", "") + НоваяВетка.Представление;
+
Если ЗначениеЗаполнено(АдресаВыбранныхОбъектов) Тогда
НоваяВетка.Пометка = ?(АдресаВыбранныхОбъектов.НайтиПоЗначению(НоваяВетка.Адрес) = Неопределено, 0, 1);
Иначе
@@ -800,7 +802,10 @@
&НаСервере
Функция ОбъектМетаданныхДоступен(ОбъектМетаданных)
- Если Не ЭтоПодсистема(ОбъектМетаданных) Тогда
+ ЭтоПодсистема = ЭтоПодсистема(ОбъектМетаданных);
+ ЭтоЖурналДокументов = ОбщегоНазначения.ЭтоЖурналДокументов(ОбъектМетаданных);
+
+ Если Не ЭтоПодсистема Тогда
ЭтоВыбираемыйОбъект = Не ЗначениеЗаполнено(КоллекцииВыбираемыхОбъектовМетаданных);
Для Каждого ВидОбъекта Из КоллекцииВыбираемыхОбъектовМетаданных.ВыгрузитьЗначения() Цикл
Если Метаданные[ВидОбъекта].Содержит(ОбъектМетаданных) Тогда
@@ -816,7 +821,7 @@
Если Не ОбщегоНазначения.ЭтоСправочник(ОбъектМетаданных)
И Не ОбщегоНазначения.ЭтоДокумент(ОбъектМетаданных)
- И Не ОбщегоНазначения.ЭтоЖурналДокументов(ОбъектМетаданных)
+ И Не ЭтоЖурналДокументов
И Не ОбщегоНазначения.ЭтоПланВидовХарактеристик(ОбъектМетаданных)
И Не ОбщегоНазначения.ЭтоРегистрСведений(ОбъектМетаданных)
И Не ОбщегоНазначения.ЭтоРегистрБухгалтерии(ОбъектМетаданных)
@@ -827,7 +832,14 @@
И Не ОбщегоНазначения.ЭтоПланВидовРасчета(ОбъектМетаданных)
И Не ОбщегоНазначения.ЭтоБизнесПроцесс(ОбъектМетаданных)
И Не ОбщегоНазначения.ЭтоЗадача(ОбъектМетаданных)
- И Не ЭтоПодсистема(ОбъектМетаданных) Тогда
+ И Не ЭтоПодсистема Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(ФильтрПоОбъектамМетаданных)
+ И Не ЭтоПодсистема
+ И Не ЭтоЖурналДокументов
+ И ФильтрПоОбъектамМетаданных.НайтиПоЗначению(ОбъектМетаданных.ПолноеИмя()) = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
diff --git a/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Form.form b/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Form.form
index 0ce95e4c3..62dba8d7f 100644
--- a/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Form.form
+++ b/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Form.form
@@ -2,7 +2,7 @@
ru
- Установлено обновление программы
+ Установлено обновление приложенияСодержимое
@@ -40,7 +40,7 @@
true
- CommonPicture.Информация32
+ StdPicture.DialogInformationProportionallyAsFileRef
@@ -57,8 +57,8 @@
1ru
- Версия программы обновлена (внесены изменения в конфигурацию информационной базы).
-Для дальнейшей работы рекомендуется перезапустить программу
+ Версия приложения обновлена (внесены изменения в конфигурацию информационной базы).
+Для дальнейшей работы рекомендуется перезапустить приложение.truetrue
@@ -122,6 +122,266 @@
Auto
+
+ ГруппаВариантыДействия
+ 24
+
+ ВариантПерезапуск
+ 26
+ true
+ true
+
+ true
+
+
+ ВариантДействия
+
+ None
+
+ OnChange
+ ВариантПерезапускПриИзменении
+
+
+ ВариантПерезапускРасширеннаяПодсказка
+ 28
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ВариантПерезапускКонтекстноеМеню
+ 27
+ true
+
+ RadioButtonField
+ Enter
+ true
+ Left
+ true
+
+
+
+ ru
+ Применить исправление прямо сейчас (потребуется перезапуск)
+
+
+ 0
+
+
+ Vertical
+
+
+
+ ГруппаЗапланировать
+ 35
+
+ ВариантЗапланировать
+ 29
+ true
+ true
+
+ true
+
+
+ ВариантДействия
+
+ None
+
+ OnChange
+ ВариантЗапланироватьПриИзменении
+
+
+ ВариантЗапланироватьРасширеннаяПодсказка
+ 31
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ВариантЗапланироватьКонтекстноеМеню
+ 30
+ true
+
+ RadioButtonField
+ Enter
+ true
+ Left
+ true
+
+
+
+ ru
+ Запланировать перезапуск на указанное время:
+
+
+ 1
+
+
+ Vertical
+
+
+
+ ВремяПерезапуска
+ 37
+ true
+ true
+
+ true
+
+
+ ВремяПерезапуска
+
+ None
+
+ ВремяПерезапускаРасширеннаяПодсказка
+ 39
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ВремяПерезапускаКонтекстноеМеню
+ 38
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ 4
+ true
+ true
+ true
+ false
+ true
+
+ ru
+ ДФ=HH:mm
+
+ true
+ true
+ true
+ Normal
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Группа запланировать
+
+
+ ГруппаЗапланироватьРасширеннаяПодсказка
+ 36
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ AlwaysHorizontal
+ Auto
+ true
+ true
+ Auto
+ Auto
+
+
+
+ ВариантНапомнитьЗавтра
+ 32
+ true
+ true
+
+ true
+
+
+ ВариантДействия
+
+ None
+
+ OnChange
+ ВариантНапомнитьЗавтраПриИзменении
+
+
+ ВариантНапомнитьЗавтраРасширеннаяПодсказка
+ 34
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ВариантНапомнитьЗавтраКонтекстноеМеню
+ 33
+ true
+
+ RadioButtonField
+ Enter
+ true
+ Left
+ true
+
+
+
+ ru
+ Напомнить завтра
+
+
+ 2
+
+
+ Vertical
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Группа варианты действия
+
+
+ ГруппаВариантыДействияРасширеннаяПодсказка
+ 25
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Auto
+ true
+ true
+ Auto
+ Auto
+
+ ГруппаРасписание20
@@ -261,16 +521,16 @@
ФормаКоманднаяПанель-1
- ФормаПерезапустить
- 4
+ ФормаВыполнитьДействие
+ 40truetruetrue
- ФормаПерезапуститьРасширеннаяПодсказка
- 5
+ ФормаВыполнитьДействиеРасширеннаяПодсказка
+ 41Labeltruetrue
@@ -278,7 +538,7 @@
Left
- Form.Command.Перезапустить
+ Form.Command.ВыполнитьДействиеAutotruetrue
@@ -286,33 +546,6 @@
UserCmdsAuto
-
- ФормаНапомнитьПозже
- 6
- true
- true
-
- true
-
- true
-
- ФормаНапомнитьПозжеРасширеннаяПодсказка
- 7
- Label
- true
- true
-
- Left
-
-
- Form.Command.НапомнитьПозже
- Normal
- Auto
- true
- true
- UserCmds
- Auto
- ФормаБольшеНеПоказывать8
@@ -449,50 +682,46 @@
true
-
- Перезапустить
+
+ ВариантДействияru
- Перезапустить
+ Вариант действия
- 1
-
- ru
- Перезапустить
-
-
-
-
- Перезапустить
-
-
- Auto
- Auto
-
-
- НапомнитьПозже
+
+
+ true
+
+
+
+ ВремяПерезапускаru
- Напомнить завтра
+ Время перезапуска
- 2
-
- ru
- Отложить напоминание до завтра
-
-
-
-
- НапомнитьПозже
-
-
- Auto
- Auto
-
+
+
+ true
+
+
БольшеНеНапоминать
@@ -502,7 +731,7 @@
3ru
- Больше не напоминать
+ Отключение напоминаний о перезапуске для всех следующих уведомлений.
+
+ ВыполнитьДействие
+
+ ru
+ Выполнить действие
+
+ 4
+
+
+
+ ВыполнитьДействие
+
+
+ Auto
+ Auto
+
diff --git a/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Module.bsl b/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Module.bsl
index 99b489b50..cab117dc4 100644
--- a/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Module.bsl
+++ b/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Module.bsl
@@ -14,6 +14,7 @@
ПараметрыПроверки = Справочники.ВерсииРасширений.ДинамическиИзмененныеРасширения();
ПараметрыПроверки.Вставить("КонфигурацияБазыДанныхИзмененаДинамически", КонфигурацияБазыДанныхИзмененаДинамически());
+ КоличествоНовыхПатчей = 0;
Если ПараметрыПроверки.Исправления <> Неопределено И ПараметрыПроверки.Исправления.СписокНовых.Количество() > 0 Тогда
АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
ПараметрыМетода = Новый Массив;
@@ -25,15 +26,11 @@
ФоновоеЗадание.ОжидатьЗавершенияВыполнения(Неопределено);
ОписаниеНовыхПатчей = ПолучитьИзВременногоХранилища(АдресХранилища);
- УточняющаяСсылка = " " + НСтр("ru = 'Подробно'");
- Иначе
- УточняющаяСсылка = "Ссылка";
+ КоличествоНовыхПатчей = ПараметрыПроверки.Исправления.СписокНовых.Количество();
КонецЕсли;
- Сообщение = СтандартныеПодсистемыСервер.ТекстСообщенияПриДинамическомОбновлении(ПараметрыПроверки,
- УточняющаяСсылка);
-
- Элементы.Текст.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(Сообщение, "ПереходПоСсылке");
+ УстановитьОсновнойТекст(ПараметрыПроверки, КоличествоНовыхПатчей);
+ УстановитьВидимостьДоступность(ЭтотОбъект);
СРасписанием = Истина;
Если ПараметрыПроверки.Исправления = Неопределено
@@ -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 = 'Подробнее'"));
+ КонецЕсли;
+ КонецЕсли;
+ Сообщение = СтрСоединить(ЧастиСообщения, Символы.ПС);
+
+ Элементы.Текст.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(Сообщение, "ПереходПоСсылке");
+
+КонецПроцедуры
+
+&НаКлиентеНаСервереБезКонтекста
+Процедура УстановитьВидимостьДоступность(Форма)
+
+ Если Форма.ВариантДействия = 0 Тогда
+ ЗаголовокКнопкиВыполнитьДействие = НСтр("ru = 'Перезапустить'");
+ Форма.Элементы.ВремяПерезапуска.Доступность = Ложь;
+ ИначеЕсли Форма.ВариантДействия = 1 Тогда
+ ЗаголовокКнопкиВыполнитьДействие = НСтр("ru = 'Запланировать'");
+ Форма.Элементы.ВремяПерезапуска.Доступность = Истина;
+ ИначеЕсли Форма.ВариантДействия = 2 Тогда
+ ЗаголовокКнопкиВыполнитьДействие = НСтр("ru = 'Напомнить завтра'");
+ Форма.Элементы.ВремяПерезапуска.Доступность = Ложь;
+ КонецЕсли;
+
+ Форма.Элементы.ФормаВыполнитьДействие.Заголовок = ЗаголовокКнопкиВыполнитьДействие;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗапланироватьПерезапуск()
+ СтандартныеПодсистемыКлиент.ОтключитьЗапланированныйПерезапуск();
+ ДатаСеанса = ОбщегоНазначенияКлиент.ДатаСеанса();
+ ВремяСеанса = Дата('00010101') + (ДатаСеанса-НачалоДня(ДатаСеанса));
+ СекундДоПерезапуска = ВремяПерезапуска - ВремяСеанса;
+ Если СекундДоПерезапуска < 560 Тогда
+ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Минимальное время перезапуска: %1'"), Формат(ВремяСеанса + 600, "ДФ=HH:mm"));
+ ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения,,"ВремяПерезапуска");
+ Возврат;
+ КонецЕсли;
+ СтандартныеПодсистемыКлиент.ПодключениеОбработчиковОжиданияПоказаОповещенийИПерезапуска(СекундДоПерезапуска);
+ СохранитьНастройкуВремяПерезапускаПриложенияДляПримененияИсправлений(ВремяПерезапуска);
+ НапомнитьЗавтраНаСервере();
+ Закрыть();
+КонецПроцедуры
+
+&НаСервереБезКонтекста
+Процедура СохранитьНастройкуВремяПерезапускаПриложенияДляПримененияИсправлений(ВремяПерезапуска)
+ ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ОбщиеНастройкиПользователя",
+ "ВремяПерезапускаПриложенияДляПримененияИсправлений",
+ ВремяПерезапуска);
+КонецПроцедуры
+
+
+
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form
index 3a27f601f..c5162ff90 100644
--- a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form
+++ b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form
@@ -790,7 +790,7 @@
URLProcessing
- ПредупреждениеОЗацикливанииОписаниеОбработкаНавигационнойСсылки
+ ПредупреждениеОбОтключенныхСценарияхОписаниеОбработкаНавигационнойСсылкиLeft
diff --git a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl
index 375969185..087ed5800 100644
--- a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl
+++ b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl
@@ -1258,6 +1258,31 @@
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
+
+&НаКлиенте
+Процедура ПредупреждениеОбОтключенныхСценарияхОписаниеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
+
+ Если НавигационнаяСсылкаФорматированнойСтроки = "СписокСценариев" Тогда
+
+ СтандартнаяОбработка = Ложь;
+
+ Оповещение = Новый ОписаниеОповещения("ПослеВыбораОтключенногоСценария", ЭтотОбъект);
+ ПоказатьВыборИзМеню(Оповещение, ОтключенныеСценарии, Элементы.ПредупреждениеОбОтключенныхСценарияхОписание);
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеВыбораОтключенногоСценария(Результат, ДополнительныеПараметры) Экспорт
+
+ Если Результат = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ПоказатьЗначение(,Результат.Значение);
+
+КонецПроцедуры
&НаКлиенте
Процедура ИнформацияОПереходеНаИнтернетОписаниеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
@@ -1666,17 +1691,19 @@
Если ОтключенныеСценарии.Количество() = 1 Тогда
- Шаблон = НСтр("ru = 'Обнаружен сценарий, который были отключен из-за ошибок выполнения: %1'");
- Текст = СтрШаблон(Шаблон, ОтключенныеСценарии[0].Значение);
- Элементы.ПредупреждениеОбОтключенныхСценарияхОписание.Заголовок = Текст;
+ Шаблон = НСтр("ru = 'Сценарий ""%2"" был отключен из-за ошибок синхронизации. Включите сценарий после устранения проблем.'");
+
+ Сценарий = ОтключенныеСценарии[0].Значение;
+ ТекстПредупреждения = СтрШаблон(Шаблон, ПолучитьНавигационнуюСсылку(Сценарий), Сценарий);
+ Элементы.ПредупреждениеОбОтключенныхСценарияхОписание.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(ТекстПредупреждения);
ИначеЕсли ОтключенныеСценарии.Количество() > 1 Тогда
+
+ ТекстПредупреждения =
+ НСтр("ru = 'Обнаружены сценарии, которые были отключены из-за ошибок выполнения. Включите сценарий после устранения проблем.'");
- Шаблон = НСтр("ru = 'Обнаружены сценарии, которые были отключены из-за ошибок выполнения: %1'");
- МассивСценариев = ОтключенныеСценарии.ВыгрузитьЗначения();
- Текст = СтрШаблон(Шаблон, СтрСоединить(МассивСценариев, ", "));
- Элементы.ПредупреждениеОбОтключенныхСценарияхОписание.Заголовок = Текст;
-
+ Элементы.ПредупреждениеОбОтключенныхСценарияхОписание.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(ТекстПредупреждения);
+
КонецЕсли;
КонецПроцедуры
@@ -1843,4 +1870,5 @@
КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl b/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl
index caaa364a2..ea8cd1c1a 100644
--- a/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl
+++ b/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl
@@ -158,12 +158,15 @@
Если ЗначениеЗаполнено(АдресОтвета) Тогда
АвтоматическаяПодстановкаАдресаОтвета = Ложь;
Иначе
- Если УчетнаяЗапись.ИспользоватьДляПолучения Тогда
+ РеквизитыУчетнойЗаписи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетнаяЗапись,
+ "ИспользоватьДляПолучения,ИмяПользователя,АдресЭлектроннойПочты");
+
+ Если РеквизитыУчетнойЗаписи.ИспользоватьДляПолучения Тогда
// Устанавливаем почтовый адрес по умолчанию.
- Если ЗначениеЗаполнено(УчетнаяЗапись.ИмяПользователя) Тогда
- АдресОтвета = УчетнаяЗапись.ИмяПользователя + " <" + УчетнаяЗапись.АдресЭлектроннойПочты + ">";
+ Если ЗначениеЗаполнено(РеквизитыУчетнойЗаписи.ИмяПользователя) Тогда
+ АдресОтвета = РеквизитыУчетнойЗаписи.ИмяПользователя + " <" + РеквизитыУчетнойЗаписи.АдресЭлектроннойПочты + ">";
Иначе
- АдресОтвета = УчетнаяЗапись.АдресЭлектроннойПочты;
+ АдресОтвета = РеквизитыУчетнойЗаписи.АдресЭлектроннойПочты;
КонецЕсли;
КонецЕсли;
diff --git a/SSL/src/CommonForms/ПечатьДокументов/Form.form b/SSL/src/CommonForms/ПечатьДокументов/Form.form
index da097eb57..bf83340dc 100644
--- a/SSL/src/CommonForms/ПечатьДокументов/Form.form
+++ b/SSL/src/CommonForms/ПечатьДокументов/Form.form
@@ -3824,6 +3824,14 @@
ОбъектыПечати
+
+ ПараметрыВывода
+
+
+
+ Сообщения
+
+
diff --git a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl
index e099342c4..d0542c8bb 100644
--- a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl
+++ b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl
@@ -52,6 +52,11 @@
КонецЦикла;
КонецЕсли;
+ ПараметрыВывода = Параметры.ПараметрыВывода;
+ Если ПараметрыВывода = Неопределено Тогда
+ ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
+ КонецЕсли;
+
Если Параметры.КоллекцияПечатныхФорм = Неопределено Тогда
КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
Если Отказ Тогда
@@ -63,20 +68,12 @@
ОбъектыПечати = Параметры.ОбъектыПечати;
КонецЕсли;
- СообщенияФоновогоЗадания = Неопределено;
- Параметры.Свойство("Сообщения", СообщенияФоновогоЗадания);
- Если СообщенияФоновогоЗадания <> Неопределено Тогда
- Для Каждого Сообщение Из СообщенияФоновогоЗадания Цикл
+ Если Параметры.Сообщения <> Неопределено Тогда
+ Для Каждого Сообщение Из Параметры.Сообщения Цикл
ОбщегоНазначения.СообщитьПользователю(Сообщение.Текст);
КонецЦикла;
КонецЕсли;
- ПараметрыВывода = Неопределено;
- Параметры.Свойство("ПараметрыВывода", ПараметрыВывода);
- Если ПараметрыВывода = Неопределено Тогда
- ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
- КонецЕсли;
-
СоздатьРеквизитыИЭлементыФормыДляПечатныхФорм(КоллекцияПечатныхФорм);
СохранитьНастройкиКомплектаПоУмолчанию();
ЗагрузитьНастройкиКоличестваКопий();
@@ -192,9 +189,11 @@
Если ЗаписанныеОбъекты.Количество() > 0 Тогда
ОповеститьОбИзменении(ТипЗнч(ЗаписанныеОбъекты[0]));
КонецЕсли;
- Для Каждого ЗаписанныйОбъект Из ЗаписанныеОбъекты Цикл
- Оповестить("Запись_Файл", Новый Структура, ЗаписанныйОбъект);
- КонецЦикла;
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
+ МодульРаботаСФайламиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиСлужебныйКлиент");
+ МодульРаботаСФайламиСлужебныйКлиент.ОповеститьОбИзмененииФайлов(ЗаписанныеОбъекты);
+ КонецЕсли;
+
ПоказатьОповещениеПользователя(, , НСтр("ru = 'Сохранение завершено'"), БиблиотекаКартинок.Информация32);
КонецЕсли;
@@ -375,9 +374,12 @@
Если ЗаписанныеОбъекты.Количество() > 0 Тогда
ОповеститьОбИзменении(ТипЗнч(ЗаписанныеОбъекты[0]));
КонецЕсли;
- Для Каждого ЗаписанныйОбъект Из ЗаписанныеОбъекты Цикл
- Оповестить("Запись_Файл", Новый Структура, ЗаписанныйОбъект);
- КонецЦикла;
+
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
+ МодульРаботаСФайламиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиСлужебныйКлиент");
+ МодульРаботаСФайламиСлужебныйКлиент.ОповеститьОбИзмененииФайлов(ЗаписанныеОбъекты);
+ КонецЕсли;
+
ПоказатьОповещениеПользователя(, , НСтр("ru = 'Сохранение и подписание завершено'"), БиблиотекаКартинок.Информация32);
КонецПроцедуры
diff --git a/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl b/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl
index 4359fa3ff..824e6d2c9 100644
--- a/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl
+++ b/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl
@@ -848,7 +848,7 @@
СохранитьПечатныеФормыВКаталог(ВыбранноеЗначение.СписокВложений, ВыбранноеЗначение.ПапкаДляСохранения);
КонецЕсли;
- Иначе
+ ИначеЕсли ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
Если ВыбранноеЗначение.Подписать Тогда
ЗаписанныеОбъекты = ПараметрыВыбора.ЗаписанныеОбъекты;
Иначе
@@ -859,9 +859,9 @@
Если ЗаписанныеОбъекты.Количество() > 0 Тогда
ОповеститьОбИзменении(ТипЗнч(ЗаписанныеОбъекты[0]));
КонецЕсли;
- Для Каждого ЗаписанныйОбъект Из ЗаписанныеОбъекты Цикл
- Оповестить("Запись_Файл", Новый Структура, ЗаписанныйОбъект);
- КонецЦикла;
+
+ МодульРаботаСФайламиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиСлужебныйКлиент");
+ МодульРаботаСФайламиСлужебныйКлиент.ОповеститьОбИзмененииФайлов(ЗаписанныеОбъекты);
ПоказатьОповещениеПользователя(НСтр("ru = 'Сохранение завершено'"), , , БиблиотекаКартинок.Информация32);
КонецЕсли;
@@ -998,7 +998,7 @@
УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
-// Ветка процедуры, возникающая после установки расширения работы с файлами.
+// Ветка процедуры после установки расширения для работы с 1С:Предприятием.
&НаКлиенте
Процедура ПродолжитьПечатьПослеУстановкиРасширенияРаботыСФайлами(РасширениеПодключено, ДополнительныеПараметры) Экспорт
diff --git a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form
index de82c0dab..2118e8256 100644
--- a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form
+++ b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form
@@ -281,7 +281,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -312,7 +312,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -343,7 +343,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -374,7 +374,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -409,7 +409,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -472,7 +472,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -503,7 +503,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -534,7 +534,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -565,7 +565,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -600,7 +600,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -869,7 +869,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -900,7 +900,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -931,7 +931,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -962,7 +962,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -1025,7 +1025,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -1056,7 +1056,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -1087,7 +1087,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -1118,7 +1118,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -1152,6 +1152,324 @@
Auto
+
+ Linux_E2K
+ 213
+
+ Linux_E2K_1СПредприятие
+ 215
+ true
+ true
+
+ true
+
+
+ Linux_E2K_1СПредприятиеРасширеннаяПодсказка
+ 217
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Linux_E2K_1СПредприятиеКонтекстноеМеню
+ 216
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ Linux_E2K_Chrome
+ 218
+ true
+ true
+
+ true
+
+
+ Linux_E2K_ChromeРасширеннаяПодсказка
+ 220
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Linux_E2K_ChromeКонтекстноеМеню
+ 219
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ Linux_E2K_Firefox
+ 221
+ true
+ true
+
+ true
+
+
+ Linux_E2K_FirefoxРасширеннаяПодсказка
+ 223
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Linux_E2K_FirefoxКонтекстноеМеню
+ 222
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ Linux_E2K_ЯндексБраузер
+ 224
+ true
+ true
+
+ true
+
+
+ Linux_E2K_ЯндексБраузерРасширеннаяПодсказка
+ 226
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Linux_E2K_ЯндексБраузерКонтекстноеМеню
+ 225
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ E2K
+
+
+ Linux_E2KРасширеннаяПодсказка
+ 214
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Center
+ true
+ true
+ auto
+ Auto
+ Auto
+
+
+
+ Linux_ARM64
+ 314
+
+ Linux_ARM64_1СПредприятие
+ 316
+ true
+ true
+
+ true
+
+
+ Linux_ARM64_1СПредприятиеРасширеннаяПодсказка
+ 318
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Linux_ARM64_1СПредприятиеКонтекстноеМеню
+ 317
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ Linux_ARM64_Chrome
+ 319
+ true
+ true
+
+ true
+
+
+ Linux_ARM64_ChromeРасширеннаяПодсказка
+ 321
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Linux_ARM64_ChromeКонтекстноеМеню
+ 320
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ Linux_ARM64_Firefox
+ 322
+ true
+ true
+
+ true
+
+
+ Linux_ARM64_FirefoxРасширеннаяПодсказка
+ 324
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Linux_ARM64_FirefoxКонтекстноеМеню
+ 323
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ Linux_ARM64_ЯндексБраузер
+ 325
+
+ ru
+ Linux ARM64 яндекс браузер
+
+ true
+ true
+
+ true
+
+
+ Linux_ARM64_ЯндексБраузерРасширеннаяПодсказка
+ 327
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Linux_ARM64_ЯндексБраузерКонтекстноеМеню
+ 326
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ ARM64
+
+
+ Linux_ARM64РасширеннаяПодсказка
+ 315
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Center
+ true
+ true
+ auto
+ Auto
+ Auto
+
+ truetrue
@@ -1418,7 +1736,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -1449,7 +1767,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -1480,7 +1798,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -1511,7 +1829,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -1542,7 +1860,7 @@
true
- CommonPicture.ВнешняяКомпонентаНеДоступна
+ CommonPicture.СерыйКрест
@@ -1606,6 +1924,679 @@
Auto
+
+ ГруппаМобильныеПлатформы
+ 227
+
+ МобильныеПлатформы
+ 229
+
+ Android
+ 231
+
+ ru
+ Android
+
+ true
+ true
+
+ true
+
+
+ AndroidРасширеннаяПодсказка
+ 233
+ Label
+ true
+ true
+
+ Left
+
+
+
+ AndroidКонтекстноеМеню
+ 232
+ true
+
+ Label
+ 10
+ true
+ true
+
+ Left
+
+
+
+ iOS
+ 234
+
+ ru
+ iOS
+
+ true
+ true
+
+ true
+
+
+ iOSРасширеннаяПодсказка
+ 236
+ Label
+ true
+ true
+
+ Left
+
+
+
+ iOSКонтекстноеМеню
+ 235
+ true
+
+ Label
+ 10
+ true
+ true
+
+ Left
+
+
+
+ WindowsRT
+ 237
+
+ ru
+ Windows RT
+
+ true
+ true
+
+ true
+
+
+ WindowsRTРасширеннаяПодсказка
+ 239
+ Label
+ true
+ true
+
+ Left
+
+
+
+ WindowsRTКонтекстноеМеню
+ 238
+ true
+
+ Label
+ 10
+ true
+ true
+
+ Left
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Мобильные ОС
+
+
+ МобильныеПлатформыРасширеннаяПодсказка
+ 230
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ true
+ true
+ auto
+ Auto
+ Auto
+
+
+
+ МобильныеПлатформы_ARM
+ 271
+
+ Android_ARM
+ 273
+ true
+ true
+
+ true
+
+
+ Android_ARMРасширеннаяПодсказка
+ 275
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Android_ARMКонтекстноеМеню
+ 274
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ iOS_ARM
+ 276
+ true
+ true
+
+ true
+
+
+ iOS_ARMРасширеннаяПодсказка
+ 278
+ Label
+ true
+ true
+
+ Left
+
+
+
+ iOS_ARMКонтекстноеМеню
+ 277
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ WindowsRT_ARM
+ 279
+ true
+ true
+
+ true
+
+
+ WindowsRT_ARMРасширеннаяПодсказка
+ 281
+ Label
+ true
+ true
+
+ Left
+
+
+
+ WindowsRT_ARMКонтекстноеМеню
+ 280
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ ARM
+
+
+ МобильныеПлатформы_ARMРасширеннаяПодсказка
+ 272
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Center
+ true
+ true
+ auto
+ Auto
+ Auto
+
+
+
+ МобильныеПлатформы_ARM64
+ 285
+
+ Android_ARM64
+ 287
+ true
+ true
+
+ true
+
+
+ Android_ARM64РасширеннаяПодсказка
+ 289
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Android_ARM64КонтекстноеМеню
+ 288
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ iOS_ARM64
+ 290
+ true
+ true
+
+ true
+
+
+ iOS_ARM64РасширеннаяПодсказка
+ 292
+ Label
+ true
+ true
+
+ Left
+
+
+
+ iOS_ARM64КонтекстноеМеню
+ 291
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ WindowsRT_ARM64
+ 293
+ true
+ true
+
+ true
+
+
+ WindowsRT_ARM64РасширеннаяПодсказка
+ 295
+ Label
+ true
+ true
+
+ Left
+
+
+
+ WindowsRT_ARM64КонтекстноеМеню
+ 294
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ ARM64
+
+
+ МобильныеПлатформы_ARM64РасширеннаяПодсказка
+ 286
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Center
+ true
+ true
+ auto
+ Auto
+ Auto
+
+
+
+ МобильныеПлатформы_x86
+ 243
+
+ Android_x86
+ 245
+ true
+ true
+
+ true
+
+
+ Android_x86РасширеннаяПодсказка
+ 247
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Android_x86КонтекстноеМеню
+ 246
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ iOS_x86
+ 248
+ true
+ true
+
+ true
+
+
+ iOS_x86РасширеннаяПодсказка
+ 250
+ Label
+ true
+ true
+
+ Left
+
+
+
+ iOS_x86КонтекстноеМеню
+ 249
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ WindowsRT_x86
+ 251
+ true
+ true
+
+ true
+
+
+ WindowsRT_x86РасширеннаяПодсказка
+ 253
+ Label
+ true
+ true
+
+ Left
+
+
+
+ WindowsRT_x86КонтекстноеМеню
+ 252
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ x86
+
+
+ МобильныеПлатформы_x86РасширеннаяПодсказка
+ 244
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ true
+ true
+ auto
+ Auto
+ Auto
+
+
+
+ МобильныеПлатформы_x86_64
+ 257
+
+ Android_x86_64
+ 259
+ true
+ true
+
+ true
+
+
+ Android_x86_64РасширеннаяПодсказка
+ 261
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Android_x86_64КонтекстноеМеню
+ 260
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ iOS_x86_64
+ 262
+ true
+ true
+
+ true
+
+
+ iOS_x86_64РасширеннаяПодсказка
+ 264
+ Label
+ true
+ true
+
+ Left
+
+
+
+ iOS_x86_64КонтекстноеМеню
+ 263
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+
+ WindowsRT_x86_64
+ 265
+ true
+ true
+
+ true
+
+
+ WindowsRT_x86_64РасширеннаяПодсказка
+ 267
+ Label
+ true
+ true
+
+ Left
+
+
+
+ WindowsRT_x86_64КонтекстноеМеню
+ 266
+ true
+
+ true
+ true
+
+
+ CommonPicture.СерыйКрест
+
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ x86-64
+
+
+ МобильныеПлатформы_x86_64РасширеннаяПодсказка
+ 258
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Center
+ true
+ true
+ auto
+ Auto
+ Auto
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Моб. приложения
+
+ true
+
+ ГруппаМобильныеПлатформыРасширеннаяПодсказка
+ 228
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ AlwaysHorizontal
+ StrongSeparation
+ true
+ true
+ Auto
+ Auto
+
+ truetrue
@@ -1634,44 +2625,38 @@
Auto
-
- КакЗапуститьКлиентскоеПриложение
- 158
-
- ru
- <link https://its.1c.ru/db/v83doc#bookmark:adm:TI000000069>Как запустить определенное клиентское приложение?</>
-
- true
- true
-
- true
-
-
- КакЗапуститьКлиентскоеПриложениеРасширеннаяПодсказка
- 160
- Label
- true
- true
-
- Left
-
-
-
- КакЗапуститьКлиентскоеПриложениеКонтекстноеМеню
- 159
- true
-
- true
- Label
- true
- true
-
- Left
-
-
+ Bottom
+ trueФормаКоманднаяПанель-1
+
+ ФормаОткрытьСсылку
+ 328
+ true
+ true
+
+ true
+
+
+ ФормаОткрытьСсылкуРасширеннаяПодсказка
+ 329
+ Label
+ true
+ true
+
+ Left
+
+
+ CommandBarHyperlink
+ Form.Command.ОткрытьСсылку
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+ Lefttrue
@@ -1679,7 +2664,6 @@
OnCreateAtServerПриСозданииНаСервере
- HelpLockOwnertruetrue
@@ -1962,6 +2946,245 @@
true
+
+ Linux_E2K
+ 22
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ Linux_E2K_Chrome
+ 23
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ Android_ARM
+ 27
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ iOS_ARM
+ 28
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ WindowsRT_ARM
+ 29
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ Android_ARM64
+ 30
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ iOS_ARM64
+ 33
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ Android_x86
+ 34
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ WindowsRT_x86
+ 35
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ Android_x86_64
+ 36
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ WindowsRT_x86_64
+ 37
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ Linux_E2K_Firefox
+ 39
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ Linux_E2K_ЯндексБраузер
+ 40
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ Linux_ARM64
+ 41
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ Linux_ARM64_Chrome
+ 42
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ Linux_ARM64_Firefox
+ 43
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ Linux_ARM64_ЯндексБраузер
+ 44
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ ОткрытьСсылку
+
+ ru
+ Как запустить определенное клиентское приложение?
+
+ 1
+
+
+
+ ОткрытьСсылку
+
+
+ Auto
+ Auto
+ ПоддерживаемыеКлиенты
diff --git a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl
index 8beae42f4..b4a20956a 100644
--- a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl
+++ b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl
@@ -16,7 +16,7 @@
КонецЕсли;
КартинкаДоступна = БиблиотекаКартинок.ВнешняяКомпонентаДоступна;
- КартинкаНеДоступна = БиблиотекаКартинок.ВнешняяКомпонентаНеДоступна;
+ КартинкаНеДоступна = БиблиотекаКартинок.СерыйКрест;
Элементы.Windows_x86_1СПредприятие.Картинка = ?(Windows_x86, КартинкаДоступна, КартинкаНеДоступна);
Элементы.Windows_x86_Chrome.Картинка = ?(Windows_x86_Chrome, КартинкаДоступна, КартинкаНеДоступна);
@@ -41,8 +41,36 @@
Элементы.Linux_x86_ЯндексБраузер.Картинка = ?(Linux_x86_ЯндексБраузер, КартинкаДоступна, КартинкаНеДоступна);
Элементы.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");
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl
index 82a91bf1a..c2ba3225e 100644
--- a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl
+++ b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl
@@ -2410,10 +2410,10 @@
КонецЕсли;
Ячейка = Результат.Область(НомерСтроки, НомерСтолбца, НомерСтроки, НомерСтолбца);
+ ЗаполнитьЗначенияСвойств(Ячейка, КопируемаяЯчейка);
+
Если КопируемаяЯчейка.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Шаблон Тогда
Ячейка.Текст = КопируемаяЯчейка.Текст;
- Иначе
- ЗаполнитьЗначенияСвойств(Ячейка, КопируемаяЯчейка);
КонецЕсли;
КонецЦикла;
КонецЦикла;
diff --git a/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl b/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl
index 7eab56259..a252c5ed5 100644
--- a/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl
+++ b/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl
@@ -18,17 +18,6 @@
#КонецОбласти
-#Область ОбработчикиКомандФормы
-
-&НаКлиенте
-Процедура ПродолжитьПопыткуУстановки(Команда)
-
- Закрыть(Истина);
-
-КонецПроцедуры
-
-#КонецОбласти
-
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
@@ -44,3 +33,15 @@
КонецПроцедуры
#КонецОбласти
+
+#Область ОбработчикиКомандФормы
+
+&НаКлиенте
+Процедура ПродолжитьПопыткуУстановки(Команда)
+
+ Закрыть(Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
diff --git a/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form b/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form
index f0458d12c..9008cbfa6 100644
--- a/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form
+++ b/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form
@@ -13662,7 +13662,7 @@
true
- CommonPicture.СкрытаяНастройкаОтчета
+ CommonPicture.СерыйКрест
diff --git a/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl b/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl
index a9a5fc168..9286842db 100644
--- a/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl
+++ b/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl
@@ -6153,7 +6153,7 @@
ДоступныеРежимыОтображения.Добавить("ПоказыватьТолькоФлажокВНастройкахОтчета", НСтр("ru = 'Только флажок в настройках отчета'"), , БиблиотекаКартинок.ОбычныйДоступСФлажком);
КонецЕсли;
- ДоступныеРежимыОтображения.Добавить("НеПоказывать", НСтр("ru = 'Не показывать'"), , БиблиотекаКартинок.СкрытаяНастройкаОтчета);
+ ДоступныеРежимыОтображения.Добавить("НеПоказывать", НСтр("ru = 'Не показывать'"), , БиблиотекаКартинок.СерыйКрест);
Возврат ДоступныеРежимыОтображения;
diff --git a/SSL/src/CommonForms/ФормаОтчета/Module.bsl b/SSL/src/CommonForms/ФормаОтчета/Module.bsl
index 598db0828..967de4404 100644
--- a/SSL/src/CommonForms/ФормаОтчета/Module.bsl
+++ b/SSL/src/CommonForms/ФормаОтчета/Module.bsl
@@ -1004,9 +1004,7 @@
&НаКлиенте
Процедура СохранитьОтчет(Команда)
- ТекстПредложения = НСтр("ru = 'Для сохранения результата отчета в файл рекомендуется
- |установить расширение для работы с файлами.'");
-
+ ТекстПредложения = НСтр("ru = 'Для сохранения результата отчета в файл рекомендуется установить расширение для работы с 1С:Предприятием.'");
Обработчик = Новый ОписаниеОповещения("СохранитьОтчетЗавершение", ЭтотОбъект);
ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(Обработчик, ТекстПредложения);
@@ -1016,7 +1014,7 @@
Процедура СохранитьСнимокОтчета(Команда)
Если НастройкиОтчета.СвойстваРезультата.КомпоновщикНастроек = Неопределено Тогда
- ТекстПредупреждения = НСтр("ru = 'Перед сохранением снимка необходимо сформировать отчет'");
+ ТекстПредупреждения = НСтр("ru = 'Перед сохранением снимка необходимо сформировать отчет.'");
ПоказатьПредупреждение(, ТекстПредупреждения);
Возврат;
КонецЕсли;
diff --git a/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl
index 0d4d89ff1..bdeaeed7d 100644
--- a/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl
@@ -1202,10 +1202,6 @@
КонецЦикла;
- Для Каждого Набор Из НаборыРегистровБухгалтерии Цикл
- Набор.Записать();
- КонецЦикла;
-
Исключение
ОбменДаннымиСлужебный.ОтключитьОбновлениеКлючейДоступа(Ложь, Ложь);
@@ -1228,6 +1224,23 @@
КонецЦикла;
+ Попытка
+
+ Для Каждого Набор Из НаборыРегистровБухгалтерии Цикл
+ Набор.Записать();
+ КонецЦикла;
+
+ Исключение
+
+ ОбменДаннымиСлужебный.ОтключитьОбновлениеКлючейДоступа(Ложь, Ложь);
+
+ ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста(),
+ УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
+
+ ВызватьИсключение;
+
+ КонецПопытки;
+
УстановитьИспользованиеИтоговРегистров(Истина);
ОбменДаннымиСлужебный.ОтключитьОбновлениеКлючейДоступа(Ложь, Ложь);
diff --git a/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl
index f6a34601d..aae6b46b8 100644
--- a/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl
+++ b/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl
@@ -464,8 +464,6 @@
Функция СписокРегионов() Экспорт
- Классификатор = РегистрыСведений.АдресныеОбъекты.КлассификаторСубъектовРФ();
-
Результат = Новый Соответствие;
Запрос = Новый Запрос;
diff --git a/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl
index db266286b..e6a672462 100644
--- a/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl
@@ -2007,6 +2007,8 @@
//
Процедура УстановитьИспользованиеВебСервиса(Использовать) Экспорт
+ УстановитьПривилегированныйРежим(Истина);
+
Источник = ?(Использовать, "Авто", "Приложение");
Константы.ИсточникДанныхАдресногоКлассификатора.Установить(Источник);
@@ -2020,6 +2022,8 @@
//
Функция ИспользоватьВебСервис() Экспорт
+ УстановитьПривилегированныйРежим(Истина);
+
Источник = Константы.ИсточникДанныхАдресногоКлассификатора.Получить();
Возврат СтрСравнить(Источник, "Приложение") <> 0;
diff --git a/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl
index 297b4b479..0d2e58599 100644
--- a/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl
+++ b/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl
@@ -1108,11 +1108,11 @@
Возврат Результат;
КонецЕсли;
КонецЕсли;
- ИменаСвойств = "КлючВарианта, Родитель, Родитель.КлючВарианта" + ?(НадоПрочитатьСсылкуОтчета, ", Отчет", "")
- + ?(НадоПрочитатьНастройки, ", Настройки", "");
+ ИменаСвойств = "КлючВарианта,Пользовательский,Родитель,Родитель.КлючВарианта" + ?(НадоПрочитатьСсылкуОтчета, ",Отчет", "")
+ + ?(НадоПрочитатьНастройки, ",Настройки", ""); // АПК:1297 Имена реквизитов, поэтому без НСтр.
СвойстваВарианта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Результат.СсылкаВарианта, ИменаСвойств);
Результат.КлючВарианта = СвойстваВарианта.КлючВарианта;
- Если ЗначениеЗаполнено(СвойстваВарианта.Родитель) Тогда
+ Если СвойстваВарианта.Пользовательский И ЗначениеЗаполнено(СвойстваВарианта.Родитель) Тогда
Если ТипЗнч(СвойстваВарианта.РодительКлючВарианта) = Тип("Строка")
И ЗначениеЗаполнено(СвойстваВарианта.РодительКлючВарианта) Тогда
КлючПредопределенногоВарианта = СвойстваВарианта.РодительКлючВарианта;
diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl
index 3dc0f0810..539c51b92 100644
--- a/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl
@@ -117,6 +117,7 @@
ЗаполнитьЗначенияСвойств(ОбщаяКомпонента, Информация.Реквизиты); // По данным манифеста.
ЗаполнитьЗначенияСвойств(ОбщаяКомпонента, ОписаниеКомпоненты); // По данным с сайта.
+ ОбщаяКомпонента.ЦелевыеПлатформы = Новый ХранилищеЗначения(Информация.Реквизиты.ЦелевыеПлатформы);
ОбщаяКомпонента.ХранилищеКомпоненты = Новый ХранилищеЗначения(ДвоичныеДанныеКомпоненты);
ОбщаяКомпонента.Записать();
@@ -202,6 +203,7 @@
КонецФункции
+
#Область ОбработчикиСобытийПодсистемКонфигурации
// См. ГрупповоеИзменениеОбъектовПереопределяемый.ПриОпределенииОбъектовСРедактируемымиРеквизитами.
@@ -257,6 +259,21 @@
КонецПроцедуры
+// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления.
+Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
+
+ Обработчик = Обработчики.Добавить();
+ Обработчик.Версия = "3.1.9.221";
+ Обработчик.ОбщиеДанные = Истина;
+ Обработчик.Идентификатор = Новый УникальныйИдентификатор("a76bc949-68aa-4ba3-b9f3-a03b530da817");
+ Обработчик.Процедура = "Справочники.ОбщиеВнешниеКомпоненты.ОбработатьОбщиеВнешниеКомпоненты";
+ Обработчик.Комментарий = НСтр("ru = 'Заполнение реквизитов совместимости общих компонент.'");
+ Обработчик.РежимВыполнения = "Оперативно";
+
+КонецПроцедуры
+
#КонецОбласти
#КонецОбласти
+
+
diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl
index f027307c8..d20dff930 100644
--- a/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl
+++ b/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl
@@ -21,6 +21,7 @@
// который выполняет код встроенного языка; Неопределено - поддерживается поведение платформы по умолчанию:
// не изолированно - если компонентой поддерживается только этот режим, изолированно - в остальных случаях.
// См. https://its.1c.ru/db/v83doc#bookmark:dev:TI000001866
+// * ПолноеИмяМакета - Строка - полное имя макета конфигурации с ZIP-архивом, в котором храниться внешняя компонента.
//
//
Функция ПараметрыПодключения() Экспорт
@@ -28,6 +29,7 @@
Параметры = Новый Структура;
Параметры.Вставить("ИдентификаторыСозданияОбъектов", Новый Массив);
Параметры.Вставить("Изолированно", Ложь);
+ Параметры.Вставить("ПолноеИмяМакета");
Возврат Параметры;
@@ -270,6 +272,7 @@
ЗаполнитьЗначенияСвойств(Объект, Информация.Реквизиты); // По данным манифеста.
ЗаполнитьЗначенияСвойств(Объект, СтрокаРезультата); // По данным с сайта.
+ Объект.ЦелевыеПлатформы = Новый ХранилищеЗначения(Информация.Реквизиты.ЦелевыеПлатформы);
Объект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", Информация.ДвоичныеДанные);
Объект.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl
index 618ac2b15..4e41f57d9 100644
--- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl
@@ -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.'"), Строка(СистемнаяИнформация.ТипПлатформы));
Возврат Результат;
КонецЕсли;
+
ПроверитьМестоположениеКомпоненты(Идентификатор, Информация.Местоположение);
Результат.Местоположение = Информация.Местоположение;
Возврат Результат;
@@ -815,19 +815,43 @@
Функция ОперационнаяСистемаПоддерживаетсяКомпонентой(РеквизитыКомпоненты)
СистемнаяИнформация = Новый СистемнаяИнформация;
+
+ ИмяТипаПлатформы = ОбщегоНазначенияКлиентСервер.ИмяТипаПлатформы(СистемнаяИнформация.ТипПлатформы);
- Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.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,8 +928,22 @@
Если Результат.Состояние = "НайденаВОбщемХранилище" Тогда
Реквизиты.Удалить("ИмяФайла");
КонецЕсли;
-
+ Реквизиты.ЦелевыеПлатформы = Неопределено;
+
РеквизитыОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Результат.Ссылка, Реквизиты);
+
+ РеквизитыОбъекта.ЦелевыеПлатформы = РеквизитыОбъекта.ЦелевыеПлатформы.Получить();
+ Если РеквизитыОбъекта.ЦелевыеПлатформы = Неопределено Тогда
+
+ ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не заполнена информация о совместимости компоненты %1.'"), Идентификатор);
+ ЗаписьЖурналаРегистрации(НСтр("ru = 'Проверка совместимости компоненты'",
+ ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Предупреждение, , Результат.Ссылка, ТекстПредупреждения);
+
+ РеквизитыОбъекта.ЦелевыеПлатформы = ЦелевыеПлатформы();
+ Иначе
+ Результат.ЗаполненыЦелевыеПлатформы = Истина;
+ КонецЕсли;
ЗаполнитьЗначенияСвойств(Результат.Реквизиты, РеквизитыОбъекта);
Результат.Местоположение = ПолучитьНавигационнуюСсылку(Результат.Ссылка, "ХранилищеКомпоненты");
@@ -918,6 +958,29 @@
КонецФункции
+// Возвращаемое значение:
+// Структура:
+// * ЦелевыеПлатформы - см. ЦелевыеПлатформы
+// * Идентификатор - Строка
+// * Наименование - Строка
+// * Версия - Строка
+// * ДатаВерсии - Дата
+// * ИмяФайла - Строка
+//
+Функция РеквизитыКомпоненты()
+
+ Реквизиты = Новый Структура;
+ Реквизиты.Вставить("Идентификатор");
+ Реквизиты.Вставить("Наименование");
+ Реквизиты.Вставить("Версия");
+ Реквизиты.Вставить("ДатаВерсии");
+ Реквизиты.Вставить("ИмяФайла");
+ Реквизиты.Вставить("ЦелевыеПлатформы", ЦелевыеПлатформы());
+
+ Возврат Реквизиты;
+
+КонецФункции
+
// Возвращаемое значение:
// Структура:
// * Windows_x86 - Булево
@@ -940,42 +1003,63 @@
// * 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,165 +1083,211 @@
АрхитектураПлатформы = НРег(ЧтениеXML.ЗначениеАтрибута("arch"));
ПрограммаПросмотра = НРег(ЧтениеXML.ЗначениеАтрибута("client"));
- Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "i386"
- И (ТипКомпоненты = "native" Или ТипКомпоненты = "com") Тогда
+ Если ОперационнаяСистема = "windows" И (ТипКомпоненты = "native" Или ТипКомпоненты = "com") Тогда
- Реквизиты.Windows_x86 = Истина;
+ Если АрхитектураПлатформы = "i386" Тогда
+ Реквизиты.Windows_x86 = Истина;
+ Продолжить;
+ КонецЕсли;
+
+ Если АрхитектураПлатформы = "x86_64" Тогда
+ Реквизиты.Windows_x86_64 = Истина;
+ Продолжить;
+ КонецЕсли;
+
Продолжить;
КонецЕсли;
-
- Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "x86_64"
- И (ТипКомпоненты = "native" Или ТипКомпоненты = "com") Тогда
-
- Реквизиты.Windows_x86_64 = Истина;
+
+ Если ОперационнаяСистема = "linux" И ТипКомпоненты = "native" Тогда
+
+ Если АрхитектураПлатформы = "i386" Тогда
+ Реквизиты.Linux_x86 = Истина;
+ Продолжить;
+ КонецЕсли;
+
+ Если АрхитектураПлатформы = "x86_64" Тогда
+ Реквизиты.Linux_x86_64 = Истина;
+ Продолжить;
+ КонецЕсли;
+
+ Если АрхитектураПлатформы = "arm64" Тогда
+ Реквизиты.Linux_ARM64 = Истина;
+ Продолжить;
+ КонецЕсли;
+
+ Если АрхитектураПлатформы = "e2k" Тогда
+ Реквизиты.Linux_E2K = Истина;
+ Продолжить;
+ КонецЕсли;
+
Продолжить;
КонецЕсли;
-
- Если ОперационнаяСистема = "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 = Истина;
Продолжить;
КонецЕсли;
+
+ Если ОперационнаяСистема = "windowsruntime" Тогда
- Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64"
- Или АрхитектураПлатформы = "universal") И ТипКомпоненты = "plugin"
- И ПрограммаПросмотра = "safari" Тогда
+ Если АрхитектураПлатформы = "arm" Тогда
+ Реквизиты.WindowsRT_ARM = Истина;
+ ИначеЕсли АрхитектураПлатформы = "x86_64" Тогда
+ Реквизиты.WindowsRT_x86_64 = Истина;
+ ИначеЕсли АрхитектураПлатформы = "x86" Тогда
+ Реквизиты.WindowsRT_x86 = Истина;
+ КонецЕсли;
+
+ Продолжить;
+
+ КонецЕсли;
+
+ Если ОперационнаяСистема = "android" Тогда
- Реквизиты.MacOS_x86_64_Safari = Истина;
+ Если АрхитектураПлатформы = "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"
- Или АрхитектураПлатформы = "universal") И ТипКомпоненты = "plugin"
- И (ПрограммаПросмотра = "chrome" Или ПрограммаПросмотра = "anychromiumbased") Тогда
-
- Реквизиты.MacOS_x86_64_Chrome = Истина;
-
- КонецЕсли;
-
- Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64"
- Или АрхитектураПлатформы = "universal") И ТипКомпоненты = "plugin"
- И ПрограммаПросмотра = "firefox" Тогда
-
- Реквизиты.MacOS_x86_64_Firefox = Истина;
+ Если ОперационнаяСистема = "windows" И ТипКомпоненты = "plugin" Тогда
+
+ Если АрхитектураПлатформы = "i386" И ПрограммаПросмотра = "msie" Тогда
+ Реквизиты.Windows_x86_MSIE = Истина;
+ Продолжить;
+ КонецЕсли;
+
+ Если АрхитектураПлатформы = "x86_64" И ПрограммаПросмотра = "msie" Тогда
+ Реквизиты.Windows_x86_64_MSIE = Истина;
+ Продолжить;
+ КонецЕсли;
+
+ Если АрхитектураПлатформы = "i386" И ПрограммаПросмотра = "firefox" Тогда
+ Реквизиты.Windows_x86_Firefox = Истина;
+ Продолжить;
+ КонецЕсли;
+
+ Если АрхитектураПлатформы = "i386" И (ПрограммаПросмотра = "chrome" Или ПрограммаПросмотра = "anychromiumbased") Тогда
+ Реквизиты.Windows_x86_Chrome = Истина;
+ КонецЕсли;
+
+ Если АрхитектураПлатформы = "i386" И (ПрограммаПросмотра = "yandexbrowser" Или ПрограммаПросмотра = "anychromiumbased") Тогда
+ Реквизиты.Windows_x86_ЯндексБраузер = Истина;
+ КонецЕсли;
+
+ Если АрхитектураПлатформы = "x86_64" И (ПрограммаПросмотра = "yandexbrowser" Или ПрограммаПросмотра = "anychromiumbased") Тогда
+ Реквизиты.Windows_x86_64_ЯндексБраузер = Истина;
+ КонецЕсли;
+
Продолжить;
+
КонецЕсли;
- Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "i386"
- И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "yandexbrowser"
- Или ПрограммаПросмотра = "anychromiumbased") Тогда
-
- Реквизиты.Windows_x86_ЯндексБраузер = Истина;
+ Если ОперационнаяСистема = "macos" И ТипКомпоненты = "plugin" Тогда
+ Если (АрхитектураПлатформы = "x86_64" Или АрхитектураПлатформы = "universal") И ПрограммаПросмотра = "safari" Тогда
+ Реквизиты.MacOS_x86_64_Safari = Истина;
+ Продолжить;
+ КонецЕсли;
+
+ Если (АрхитектураПлатформы = "x86_64" Или АрхитектураПлатформы = "universal") И ПрограммаПросмотра = "firefox" Тогда
+ Реквизиты.MacOS_x86_64_Firefox = Истина;
+ Продолжить;
+ КонецЕсли;
+
+ Если (АрхитектураПлатформы = "x86_64" Или АрхитектураПлатформы = "universal") И (ПрограммаПросмотра = "chrome" Или ПрограммаПросмотра = "anychromiumbased") Тогда
+ Реквизиты.MacOS_x86_64_Chrome = Истина;
+ КонецЕсли;
+
+ Если (АрхитектураПлатформы = "x86_64" Или АрхитектураПлатформы = "universal") И (ПрограммаПросмотра = "yandexbrowser"
+ Или ПрограммаПросмотра = "anychromiumbased") Тогда
+ Реквизиты.MacOS_x86_64_ЯндексБраузер = Истина;
+ КонецЕсли;
+
+ Продолжить;
+
КонецЕсли;
- Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "x86_64"
- И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "yandexbrowser"
- Или ПрограммаПросмотра = "anychromiumbased") Тогда
-
- Реквизиты.Windows_x86_64_ЯндексБраузер = Истина;
-
- КонецЕсли;
-
- Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "i386"
- И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "yandexbrowser"
- Или ПрограммаПросмотра = "anychromiumbased") Тогда
-
- Реквизиты.Linux_x86_ЯндексБраузер = Истина;
-
- КонецЕсли;
-
- Если ОперационнаяСистема = "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.'"), ТекущаяДатаСеанса());
-
+ Объект.ЦелевыеПлатформы = Новый ХранилищеЗначения(Информация.Реквизиты.ЦелевыеПлатформы);
Объект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", Информация.ДвоичныеДанные);
Если Не ЗначениеЗаполнено(Версия) Тогда // Если запрос конкретной версии - пропускаем.
diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl
index ebe2cbcbf..80e3a9879 100644
--- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl
+++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl
@@ -105,7 +105,7 @@
КонецЕсли;
- Если ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты) Тогда
+ Если Не Информация.ЗаполненыЦелевыеПлатформы Или ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты.ЦелевыеПлатформы) Тогда
Результат.Доступна = Истина;
ВыполнитьОбработкуОповещения(Оповещение, Результат);
@@ -120,10 +120,15 @@
"ПроверитьДоступностьКомпонентыПослеОтображенияДоступныхВидовКлиентов",
ЭтотОбъект,
ПараметрыОповещения);
+
+ Если Не Контекст.ПредложитьУстановить Тогда
+ ВыполнитьОбработкуОповещения(ОповещениеФормы, Ложь);
+ Возврат;
+ КонецЕсли;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ТекстПояснения", Контекст.ТекстПояснения);
- ПараметрыФормы.Вставить("ПоддерживаемыеКлиенты", Информация.Реквизиты);
+ ПараметрыФормы.Вставить("ПоддерживаемыеКлиенты", Информация.Реквизиты.ЦелевыеПлатформы);
ОткрытьФорму("ОбщаяФорма.УстановкаВнешнейКомпонентыНевозможна",
ПараметрыФормы,,,,, ОповещениеФормы);
@@ -191,34 +196,39 @@
КонецЕсли;
КонецЕсли;
- Если ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты) Тогда
+ Если Не Информация.ЗаполненыЦелевыеПлатформы Или ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты.ЦелевыеПлатформы) Тогда
Результат.Доступна = Истина;
Возврат Результат;
Иначе
- КнопкиВопроса = Новый СписокЗначений;
- КнопкиВопроса.Добавить("Закрыть", НСтр("ru = 'Закрыть'"));
- КнопкиВопроса.Добавить("ПродолжитьПопыткуУстановки", НСтр("ru = 'Продолжить попытку установки'"));
-
- ЗаголовокВопроса = Контекст.ТекстПояснения;
- Если ПустаяСтрока(ЗаголовокВопроса) Тогда
- ЗаголовокВопроса = НСтр("ru = 'Установка внешней компоненты невозможна.'");
- КонецЕсли;
-
ОписаниеОшибки = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
НСтр("ru = 'Не предусмотрена работа внешней компоненты
- |в клиентском приложении %1.
- |Обратитесь к разработчику внешней компоненты.'"), ПредставлениеТекущегоКлиента());
-
- Ответ = Ждать ВопросАсинх(ОписаниеОшибки, КнопкиВопроса,, "Закрыть", ЗаголовокВопроса);
-
- Если Ответ = "ПродолжитьПопыткуУстановки" Тогда
- Результат.Доступна = Истина;
- Иначе
+ |в клиентском приложении %1.
+ |Обратитесь к разработчику внешней компоненты.'"), ПредставлениеТекущегоКлиента());
+
+ Если Не Контекст.ПредложитьУстановить Тогда
Результат.Доступна = Ложь;
Результат.ОписаниеОшибки = ОписаниеОшибки;
+ Иначе
+ КнопкиВопроса = Новый СписокЗначений;
+ КнопкиВопроса.Добавить("Закрыть", НСтр("ru = 'Закрыть'"));
+ КнопкиВопроса.Добавить("ПродолжитьПопыткуУстановки", НСтр("ru = 'Продолжить попытку установки'"));
+
+ ЗаголовокВопроса = Контекст.ТекстПояснения;
+ Если ПустаяСтрока(ЗаголовокВопроса) Тогда
+ ЗаголовокВопроса = НСтр("ru = 'Установка внешней компоненты невозможна.'");
+ КонецЕсли;
+
+ Ответ = Ждать ВопросАсинх(ОписаниеОшибки, КнопкиВопроса,, "Закрыть", ЗаголовокВопроса);
+
+ Если Ответ = "ПродолжитьПопыткуУстановки" Тогда
+ Результат.Доступна = Истина;
+ Иначе
+ Результат.Доступна = Ложь;
+ Результат.ОписаниеОшибки = ОписаниеОшибки;
+ КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -304,7 +314,7 @@
Функция ТекущийКлиентПоддерживаетсяКомпонентой(Реквизиты)
СистемнаяИнформация = Новый СистемнаяИнформация;
- Браузер = Неопределено;
+ Браузер = Неопределено;
#Если ВебКлиент Тогда
Строка = СистемнаяИнформация.ИнформацияПрограммыПросмотра;
Если СтрНайти(Строка, "YaBrowser/") > 0 Тогда
@@ -319,8 +329,10 @@
Браузер = "Firefox";
КонецЕсли;
#КонецЕсли
+
+ ИмяТипаПлатформы = ОбщегоНазначенияКлиентСервер.ИмяТипаПлатформы(СистемнаяИнформация.ТипПлатформы);
- Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86 Тогда
+ Если ИмяТипаПлатформы = "Linux_x86" Тогда
Если Браузер = Неопределено Тогда
Возврат Реквизиты.Linux_x86;
@@ -337,8 +349,8 @@
Если Браузер = "ЯндексБраузер" Тогда
Возврат Реквизиты.Linux_x86_ЯндексБраузер;
КонецЕсли;
-
- ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64 Тогда
+
+ ИначеЕсли ИмяТипаПлатформы = "Linux_x86_64" Тогда
Если Браузер = Неопределено Тогда
Возврат Реквизиты.Linux_x86_64;
@@ -355,8 +367,8 @@
Если Браузер = "ЯндексБраузер" Тогда
Возврат Реквизиты.Linux_x86_64_ЯндексБраузер;
КонецЕсли;
-
- ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86_64 Тогда
+
+ ИначеЕсли ИмяТипаПлатформы = "MacOS_x86_64" Тогда
Если Браузер = Неопределено Тогда
Возврат Реквизиты.MacOS_x86_64;
@@ -377,8 +389,8 @@
Если Браузер = "ЯндексБраузер" Тогда
Возврат Реквизиты.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 Тогда
@@ -490,19 +573,42 @@
#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда
Приложение = НСтр("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'");
КонецЕсли;
// Например:
diff --git a/SSL/src/CommonModules/ГенерацияШтрихкода/Module.bsl b/SSL/src/CommonModules/ГенерацияШтрихкода/Module.bsl
index 5f19f7e2d..681eba71d 100644
--- a/SSL/src/CommonModules/ГенерацияШтрихкода/Module.bsl
+++ b/SSL/src/CommonModules/ГенерацияШтрихкода/Module.bsl
@@ -190,12 +190,15 @@
УстановитьОтключениеБезопасногоРежима(Истина);
#КонецЕсли
ВнешняяКомпонента = Неопределено;
-
+ ОписаниеКомпоненты = ОписаниеКомпоненты();
#Если НЕ МобильноеПриложениеСервер Тогда
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда
МодульВнешниеКомпонентыСервер = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСервер");
- РезультатПодключения = МодульВнешниеКомпонентыСервер.ПодключитьКомпоненту("Barcode");
+ ПараметрыПодключения = МодульВнешниеКомпонентыСервер.ПараметрыПодключения();
+ ПараметрыПодключения.ПолноеИмяМакета = ОписаниеКомпоненты.ПолноеИмяМакета;
+ РезультатПодключения = МодульВнешниеКомпонентыСервер.ПодключитьКомпоненту(ОписаниеКомпоненты.ИмяОбъекта,,
+ ПараметрыПодключения);
Если РезультатПодключения.Подключено Тогда
ВнешняяКомпонента = РезультатПодключения.ПодключаемыйМодуль;
КонецЕсли;
@@ -203,8 +206,8 @@
КонецЕсли;
#КонецЕсли
- Если ВнешняяКомпонента = Неопределено Тогда
- ВнешняяКомпонента = ОбщегоНазначения.ПодключитьКомпонентуИзМакета("Barcode", "ОбщийМакет.КомпонентаПечатиШтрихкодов");
+ Если ВнешняяКомпонента = Неопределено Тогда
+ ВнешняяКомпонента = ОбщегоНазначения.ПодключитьКомпонентуИзМакета(ОписаниеКомпоненты.ИмяОбъекта, ОписаниеКомпоненты.ПолноеИмяМакета);
КонецЕсли;
Если ВнешняяКомпонента = Неопределено Тогда
@@ -237,6 +240,22 @@
КонецФункции
+// Описание подключения внешней компоненты печати штрихкодов.
+//
+// Возвращаемое значение:
+// Структура:
+// * ПолноеИмяМакета - Строка
+// * ИмяОбъекта - Строка
+//
+Функция ОписаниеКомпоненты() Экспорт
+
+ Параметры = Новый Структура;
+ Параметры.Вставить("ИмяОбъекта", "Barcode");
+ Параметры.Вставить("ПолноеИмяМакета", "ОбщийМакет.КомпонентаПечатиШтрихкодов");
+ Возврат Параметры;
+
+КонецФункции
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl
index 9735c2c8d..c317a9e0b 100644
--- a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl
+++ b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl
@@ -103,4 +103,20 @@
Возврат "ТЧ";
КонецФункции
+Функция СтатусНеоднозначность() Экспорт
+ Возврат ПрефиксНесопоставленныхСтрок() + "Неоднозначность";
+КонецФункции
+
+Функция СтатусНесопоставлен() Экспорт
+ Возврат ПрефиксНесопоставленныхСтрок() + "Несопоставлен";
+КонецФункции
+
+Функция СтатусСопоставлен() Экспорт
+ Возврат "СтрокаСопоставлена";
+КонецФункции
+
+Функция ПрефиксНесопоставленныхСтрок() Экспорт
+ Возврат "Исправить";
+КонецФункции
+
#КонецОбласти
diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl
index f0ae4cdce..6d3725757 100644
--- a/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl
+++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl
@@ -293,6 +293,10 @@
// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки.
Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт
+ Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ВыгрузкаЗагрузкаДанных") Тогда
+ Возврат;
+ КонецЕсли;
+
СтандартныеПодсистемыСервер.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
СерверныеОповещения.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
@@ -3002,6 +3006,20 @@
#КонецОбласти
+#Область НастройкаПорядкаЭлементов
+
+Процедура ПередПеремещениемЭлемента(ПеремещаемыйЭлемент, СоседнийЭлемент, Направление, ТекстОшибки, СтандартнаяОбработка) Экспорт
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
+ МодульУчетОригиналовПервичныхДокументов = ОбщегоНазначения.ОбщийМодуль("УчетОригиналовПервичныхДокументов");
+ МодульУчетОригиналовПервичныхДокументов.ПередПеремещениемЭлемента(
+ ПеремещаемыйЭлемент, СоседнийЭлемент, Направление, ТекстОшибки, СтандартнаяОбработка);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область ОбменДанными
// См. ОбменДаннымиПереопределяемый.ПриНастройкеПодчиненногоУзлаРИБ.
@@ -3163,6 +3181,11 @@
МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса");
МодульОбменДаннымиВМоделиСервиса.ПриДобавленииОбработчиковОбновления(Обработчики);
КонецЕсли;
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ВнешниеКомпонентыВМоделиСервиса") Тогда
+ МодульВнешниеКомпонентыВМоделиСервисаСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыВМоделиСервисаСлужебный");
+ МодульВнешниеКомпонентыВМоделиСервисаСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики);
+ КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда
МодульРаботаСПочтовымиСообщениямиСлужебный = ОбщегоНазначения.ОбщийМодуль(
diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl
index cd7a43c76..487bc4716 100644
--- a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl
@@ -1053,15 +1053,17 @@
Процедура ДобавитьГруппыПроверок(ГруппыПроверок)
- Для Каждого ГруппаПроверок Из ГруппыПроверок Цикл
+ СведенияОПроверках = СведенияОПроверкахВеденияУчета(ГруппыПроверок);
+
+ Для Каждого ГруппаПроверок Из СведенияОПроверках Цикл
- ГруппаПроверокПоИдентификатору = КонтрольВеденияУчета.ПроверкаПоИдентификатору(ГруппаПроверок.Идентификатор);
+ ГруппаПроверокПоИдентификатору = ГруппаПроверок.Проверка;
Если Не ЗначениеЗаполнено(ГруппаПроверокПоИдентификатору) Тогда
ГруппаПроверокОбъект = Справочники.ПравилаПроверкиУчета.СоздатьГруппу();
Иначе
- Если ГруппаПроверокПоИдентификатору.ПроверкаВеденияУчетаИзменена Тогда
+ Если ГруппаПроверок.ПроверкаВеденияУчетаИзменена Тогда
Продолжить;
КонецЕсли;
@@ -1074,11 +1076,11 @@
ЗаполнитьЗначенияСвойств(ГруппаПроверокОбъект, ГруппаПроверок);
- РодительГруппыПроверки = КонтрольВеденияУчета.ПроверкаПоИдентификатору(ГруппаПроверок.ИдентификаторГруппы);
+ РодительГруппыПроверки = ГруппаПроверок.РодительПроверки;
ГруппаПроверокОбъект.Родитель = РодительГруппыПроверки;
Если ЗначениеЗаполнено(РодительГруппыПроверки) Тогда
- ГруппаПроверокОбъект.КонтекстПроверокВеденияУчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РодительГруппыПроверки, "КонтекстПроверокВеденияУчета");
+ ГруппаПроверокОбъект.КонтекстПроверокВеденияУчета = ГруппаПроверок.КонтекстПроверокВеденияУчетаРодителя;
Иначе
ГруппаПроверокОбъект.КонтекстПроверокВеденияУчета = ГруппаПроверок.КонтекстПроверокВеденияУчета;
КонецЕсли;
@@ -1127,10 +1129,11 @@
Процедура ДобавитьПроверки(Проверки)
- Для Каждого Проверка Из Проверки Цикл
+ СведенияОПроверках = СведенияОПроверкахВеденияУчета(Проверки);
+
+ Для Каждого СведенияОПроверке Из СведенияОПроверках Цикл
- ПроверкаПоИдентификатору = КонтрольВеденияУчета.ПроверкаПоИдентификатору(Проверка.Идентификатор);
- Если Не ЗначениеЗаполнено(ПроверкаПоИдентификатору) Тогда
+ Если Не ЗначениеЗаполнено(СведенияОПроверке.Проверка) Тогда
ПроверкаОбъект = Справочники.ПравилаПроверкиУчета.СоздатьЭлемент();
ПроверкаОбъект.СпособВыполнения = Перечисления.СпособыВыполненияПроверки.ПоОбщемуРасписанию;
@@ -1138,38 +1141,38 @@
Иначе
- Если ПроверкаПоИдентификатору.ПроверкаВеденияУчетаИзменена Тогда
+ Если СведенияОПроверке.ПроверкаВеденияУчетаИзменена Тогда
Продолжить;
КонецЕсли;
- ПроверкаОбъект = ПроверкаПоИдентификатору.ПолучитьОбъект();
- Если ПроверкаПоИдентификатору.ПометкаУдаления Тогда
+ ПроверкаОбъект = СведенияОПроверке.Проверка.ПолучитьОбъект();
+ Если ПроверкаОбъект.ПометкаУдаления Тогда
ПроверкаОбъект.УстановитьПометкуУдаления(Ложь);
КонецЕсли;
КонецЕсли;
- ЗаполнитьЗначенияСвойств(ПроверкаОбъект, Проверка);
+ ЗаполнитьЗначенияСвойств(ПроверкаОбъект, СведенияОПроверке);
- РодительПроверки = КонтрольВеденияУчета.ПроверкаПоИдентификатору(Проверка.ИдентификаторГруппы);
+ РодительПроверки = СведенияОПроверке.РодительПроверки;
ПроверкаОбъект.Родитель = РодительПроверки;
Если ЗначениеЗаполнено(РодительПроверки) Тогда
- ПроверкаОбъект.КонтекстПроверокВеденияУчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РодительПроверки, "КонтекстПроверокВеденияУчета");
+ ПроверкаОбъект.КонтекстПроверокВеденияУчета = СведенияОПроверке.КонтекстПроверокВеденияУчетаРодителя;
Иначе
- ПроверкаОбъект.КонтекстПроверокВеденияУчета = Проверка.КонтекстПроверокВеденияУчета;
+ ПроверкаОбъект.КонтекстПроверокВеденияУчета = СведенияОПроверке.КонтекстПроверокВеденияУчета;
КонецЕсли;
- ПроверкаОбъект.Использование = Не Проверка.Отключена;
+ ПроверкаОбъект.Использование = Не СведенияОПроверке.Отключена;
- Если ЗначениеЗаполнено(Проверка.ЛимитПроблем) Тогда
- ПроверкаОбъект.ЛимитПроблем = Проверка.ЛимитПроблем;
+ Если ЗначениеЗаполнено(СведенияОПроверке.ЛимитПроблем) Тогда
+ ПроверкаОбъект.ЛимитПроблем = СведенияОПроверке.ЛимитПроблем;
Иначе
ПроверкаОбъект.ЛимитПроблем = 1000;
КонецЕсли;
- Если ЗначениеЗаполнено(Проверка.ДатаНачалаПроверки) Тогда
- ПроверкаОбъект.ДатаНачалаПроверки = Проверка.ДатаНачалаПроверки;
+ Если ЗначениеЗаполнено(СведенияОПроверке.ДатаНачалаПроверки) Тогда
+ ПроверкаОбъект.ДатаНачалаПроверки = СведенияОПроверке.ДатаНачалаПроверки;
КонецЕсли;
// АПК:1327-выкл блокировка устанавливается выше по стеку.
@@ -1879,6 +1882,53 @@
КонецФункции
+Функция СведенияОПроверкахВеденияУчета(Проверки)
+
+ ИменаКолонок = Новый Массив;
+ Для Каждого Колонка Из Проверки.Колонки Цикл
+ Если Колонка.Имя = "Идентификатор"
+ Или Колонка.Имя = "ИдентификаторГруппы" Тогда
+ Продолжить;
+ КонецЕсли;
+ ИменаКолонок.Добавить("Проверки" + "." + Колонка.Имя);
+ КонецЦикла;
+
+ Запрос = Новый Запрос(
+ "ВЫБРАТЬ
+ | Проверки.Идентификатор КАК Идентификатор,
+ | Проверки.ИдентификаторГруппы КАК ИдентификаторГруппы,
+ | &ВыбираемыеКолонки
+ |ПОМЕСТИТЬ ВТПроверки
+ |ИЗ
+ | &Проверки КАК Проверки
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | Проверки.Идентификатор КАК Идентификатор,
+ | Проверки.ИдентификаторГруппы КАК ИдентификаторГруппы,
+ | &ВыбираемыеКолонки,
+ | ЕСТЬNULL(ПроверкиУчета.Ссылка, ЗНАЧЕНИЕ(Справочник.ПравилаПроверкиУчета.ПустаяСсылка)) КАК Проверка,
+ | ПроверкиУчета.ПроверкаВеденияУчетаИзменена КАК ПроверкаВеденияУчетаИзменена,
+ | РодителиПроверокУчета.Ссылка КАК РодительПроверки,
+ | РодителиПроверокУчета.КонтекстПроверокВеденияУчета КАК КонтекстПроверокВеденияУчетаРодителя
+ |ИЗ
+ | ВТПроверки КАК Проверки
+ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПравилаПроверкиУчета КАК ПроверкиУчета
+ | ПО Проверки.Идентификатор = ПроверкиУчета.Идентификатор
+ | И (НЕ ПроверкиУчета.ПометкаУдаления)
+ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПравилаПроверкиУчета КАК РодителиПроверокУчета
+ | ПО Проверки.ИдентификаторГруппы = РодителиПроверокУчета.Идентификатор
+ | И (НЕ РодителиПроверокУчета.ПометкаУдаления)");
+ Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ВыбираемыеКолонки", СтрСоединить(ИменаКолонок, ","));
+
+ Запрос.УстановитьПараметр("Проверки", Проверки);
+ Результат = Запрос.Выполнить().Выгрузить();
+
+ Возврат Результат;
+
+КонецФункции
+
// См. КонтрольВеденияУчета.ВыполнитьПроверкиВКонтексте.
Функция ПроверкиПоКонтексту(КонтекстПроверокВеденияУчета) Экспорт
diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНС/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНС/Module.bsl
index a862847ae..c21234368 100644
--- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНС/Module.bsl
+++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНС/Module.bsl
@@ -195,7 +195,6 @@
| ИЛИ МашиночитаемыеДоверенности.ДатаОтмены >= &НаДату)");
ПараметрДата = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Добавить();
- ПараметрДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Добавить();
ПараметрДата.Использование = Истина;
ПараметрДата.Значение = НаДату;
ПараметрДата.Параметр = Новый ПараметрКомпоновкиДанных("НаДату");
diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПереопределяемый/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПереопределяемый/Module.bsl
index 6fabdc64b..b2ebcfea5 100644
--- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПереопределяемый/Module.bsl
+++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПереопределяемый/Module.bsl
@@ -79,7 +79,7 @@
// * ЭтоИндивидуальныйПредприниматель - Булево
// * ЭтоФизическоеЛицо - Булево
// * ЭтоДолжностноеЛицо - Булево
-// * ДолжностьЛицаБезДоверенности - Строка
+// * ДолжностьЛицаДоверителя - Строка
// * Фамилия - Строка
// * Имя - Строка
// * Отчество - Строка
@@ -152,17 +152,19 @@
// Параметры:
// Доверенность - СправочникСсылка.МашиночитаемыеДоверенности
// РегистрацияВРеестре - Структура:
-// *ПоказыватьРегистрироватьВРеестре - Булево - показывать флажок Регистрировать в реестре
-// *ЗарегистрированаВРеестре - Булево
-// *СостояниеРегистрации - Строка, ФорматированнаяСтрока - если ЗарегистрированаВРеестре = Истина,
-// тогда отображается в шапке, иначе около флажка регистрации.
-// *ЗаголовокФлажкаРегистрации - Строка - заголовок флажка
-// *ПолномочияПриОткрытии - Неопределено, Массив из Строка - список кодов полномочий, переданных в параметре при открытии
+// * ПоказыватьРегистрироватьВРеестре - Булево - показывать флажок регистрации в реестре.
+// * ЗаголовокФлажкаРегистрации - Строка - заголовок флажка регистрации в реестре.
+// * ПодсказкаРегистрации - Строка - подсказка флажка регистрации.
+// * ЗарегистрированаВРеестре - Булево
+// * СостояниеРегистрации - Строка, ФорматированнаяСтрока
+// * ПодсказкаСостояния - Строка - подсказка состояния регистрации.
+// * Картинка - Строка - имя картинки статуса в строке состояния.
+// * ПолномочияПриОткрытии - Неопределено, Массив из Строка - список кодов полномочий, переданных в параметре при открытии
// формы. Можно анализировать и не отображать флажок регистрации, если полномочия относятся к другой подсистеме.
-// *ВыбранныеПолномочия - Структура:
+// * ВыбранныеПолномочия - Структура:
// ** Полномочия - ТаблицаЗначений
// ** Ограничения - ТаблицаЗначений
-// *КодыПолномочийДляДобавления - Массив из Строка - коды полномочий, которые предлагать добавить при выборе флажка регистрации.
+// * КодыПолномочийДляДобавления - Массив из Строка - коды полномочий, которые предлагать добавить при выборе флажка регистрации.
// Если одно из них уже выбрано, предложение о добавлении не выводится.
//
Процедура ПриПолученииСтатусаРегистрации(Доверенность, РегистрацияВРеестре) Экспорт
@@ -180,6 +182,37 @@
+КонецПроцедуры
+
+// Переопределяет процедуру настроек формы списка для реестра Федеральной таможенной службы или другого.
+//
+// Параметры:
+// Настройки - Структура:
+// * ПоказыватьСтатусВФормеСписка - Булево - показывать статус в реестре в форме списка.
+// * ЗаголовокКолонкиСтатуса - Строка - заголовок колонки статуса в форме списка.
+// * КартинкаКолонкиСтатуса - Картинка - картинка колонки статуса в форме списка.
+// * КоллекцияКартинокДляСтроки - Картинка - коллекция для картинки строки.
+//
+Процедура ПриОпределенииНастроек(Настройки) Экспорт
+
+
+
+КонецПроцедуры
+
+// Переопределяет процедуру получения статусов доверенностей для реестра Федеральной таможенной службы или другого.
+//
+// Параметры:
+// Доверенности - Массив из СправочникСсылка.МашиночитаемыеДоверенности
+// Статусы - Соответствие из КлючИЗначение:
+// * Ключ - СправочникСсылка.МашиночитаемыеДоверенности
+// * Значение - Структура:
+// ** ИндексКартинки - Число - картинка колонки статуса в форме списка.
+// ** Статус - Строка
+//
+Процедура ПриПолученииСтатусов(Доверенности, Статусы) Экспорт
+
+
+
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПовтИсп/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПовтИсп/Module.bsl
index ebf8e0329..caa83dafd 100644
--- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПовтИсп/Module.bsl
+++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНСПовтИсп/Module.bsl
@@ -26,4 +26,18 @@
КонецФункции
+Функция НастройкиПодсистемы() Экспорт
+
+ Настройки = Новый Структура;
+ Настройки.Вставить("ПоказыватьСтатусВФормеСписка", Ложь);
+ Настройки.Вставить("ЗаголовокКолонкиСтатуса", "");
+ Настройки.Вставить("КартинкаКолонкиСтатуса", Неопределено);
+ Настройки.Вставить("КоллекцияКартинокДляСтроки", Неопределено);
+
+ МашиночитаемыеДоверенностиФНСПереопределяемый.ПриОпределенииНастроек(Настройки);
+
+ Возврат Настройки;
+
+КонецФункции
+
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебный/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебный/Module.bsl
index 48a128423..65b1072cf 100644
--- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебный/Module.bsl
+++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебный/Module.bsl
@@ -8,6 +8,12 @@
#Область СлужебныйПрограммныйИнтерфейс
+Функция НастройкиПодсистемы() Экспорт
+
+ Возврат МашиночитаемыеДоверенностиФНСПовтИсп.НастройкиПодсистемы();
+
+КонецФункции
+
// МЧДПодписей.
//
// Параметры:
@@ -1246,18 +1252,11 @@
Реквизиты.ОГРН = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ОГРН", "");
Реквизиты.ЭлектроннаяПочта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПАдресЭлектроннойПочты", "");
- Если ЗначениеЗаполнено(Реквизиты.ЭлектроннаяПочта) И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
- МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
- Реквизиты.ЭлектроннаяПочтаЗначение = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(
- Реквизиты.ЭлектроннаяПочта, Перечисления["ТипыКонтактнойИнформации"].АдресЭлектроннойПочты);
- КонецЕсли;
-
+ Реквизиты.ЭлектроннаяПочтаЗначение = КонтактнаяИнформацияВJSON(
+ Реквизиты.ЭлектроннаяПочта, "АдресЭлектроннойПочты");
+
Реквизиты.Телефон = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ТелефонОрганизации", "");
- Если ЗначениеЗаполнено(Реквизиты.Телефон) И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
- МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
- Реквизиты.ТелефонЗначение = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(
- Реквизиты.Телефон, Перечисления["ТипыКонтактнойИнформации"].Телефон);
- КонецЕсли;
+ Реквизиты.ТелефонЗначение = КонтактнаяИнформацияВJSON(Реквизиты.Телефон, "Телефон");
Реквизиты.ЛицоБезДоверенности = Неопределено;
@@ -1276,19 +1275,15 @@
КонецЕсли;
РеквизитыЛицаБезДоверенности.Пол = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ФизическоеЛицоПол", "");
- РеквизитыЛицаБезДоверенности.СтраховойНомерПФР = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИПРегистрационныйНомерПФР", "");
+ РеквизитыЛицаБезДоверенности.СтраховойНомерПФР = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "ИндивидуальныйПредпринимательСНИЛС", "");
РеквизитыЛицаБезДоверенности.АдресРегистрации = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "АдресРегистрации", "");
РеквизитыЛицаБезДоверенности.АдресРегистрацииЗначение = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СведенияОбОрганизации, "АдресРегистрации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='Запрос отправлен %2'"), "ПоясняющийТекст", ОтформатироватьДату(Выборка.ДатаТранзакции)));
+ НСтр("ru='Запрос в реестр ФНС отправлен %2'"), "ПоясняющийТекст", ОтформатироватьДату(Выборка.ДатаТранзакции)));
ИначеЕсли ЗначениеЗаполнено(Выборка.ТехническийСтатус) Тогда
ОписаниеСостояния = СтроковыеФункции.ФорматированнаяСтрока(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru='%2'"), "ПоясняющийТекст", Выборка.ТехническийСтатус))
+ НСтр("ru='%2'"), "ПоясняющийТекст", Выборка.ТехническийСтатус));
Иначе
ОписаниеСостояния = СтроковыеФункции.ФорматированнаяСтрока(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru='Запрос не направлялся'"), "ПоясняющийТекст"));
+ НСтр("ru='Запрос в реестр ФНС не направлялся'"), "ПоясняющийТекст"));
КонецЕсли;
- Если ЗначениеЗаполнено(Выборка.ДатаЗапросаСтатуса) Тогда
+ Если ЗначениеЗаполнено(Выборка.ДатаЗапросаСтатуса) И Выборка.ТехническийСтатус <> Перечисления.ТехническиеСтатусыМЧД.Активна Тогда
ОписаниеСостояния = Новый ФорматированнаяСтрока(ОписаниеСостояния, Символы.ПС,
СтроковыеФункции.ФорматированнаяСтрока(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Состояние на %2'"), "ПоясняющийТекст", ОтформатироватьДату(Выборка.ДатаЗапросаСтатуса))));
@@ -2766,39 +2782,39 @@
Если Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.ОжидаетОбработки
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Регистрация Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru=': Ожидает регистрации'"), "ПоясняющийТекст");
+ НСтр("ru=': Ожидает регистрации'"), "ПоясняющийТекст");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.ОжидаетОбработки
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Отмена Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru=': Ожидает отмены'"), "ПоясняющийТекст");
+ НСтр("ru=': Ожидает отмены'"), "ПоясняющийТекст");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Успешно
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Регистрация
И Выборка.ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Регистрация Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru=': Ожидает регистрации в ИР «Доверенность»'"), "ПоясняющийТекст");
+ НСтр("ru=': Ожидает регистрации в ИР «Доверенность»'"), "ПоясняющийТекст");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Успешно
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Регистрация Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru=': Успешно зарегистрирована'"), "ПоясняющийТекст");
+ НСтр("ru=': Успешно зарегистрирована'"), "ПоясняющийТекст");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Успешно
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Отмена Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru=': Успешно отменена'"), "ПоясняющийТекст");
+ НСтр("ru=': Успешно отменена'"), "ПоясняющийТекст");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Ошибка
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Регистрация Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru=': Ошибка регистрации'"), "ПоясняющийТекст", "ПоказатьОшибку");
+ НСтр("ru=': Ошибка регистрации'"), "ПоясняющийТекст", "ПоказатьОшибку");
ИначеЕсли Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Ошибка
И Выборка.ТипТранзакции = Перечисления.ТипыТранзакцийСРеестромМЧД.Отмена Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru=': Ошибка отмены'"), "ПоясняющийТекст", "ПоказатьОшибку");
+ НСтр("ru=': Ошибка отмены'"), "ПоясняющийТекст", "ПоказатьОшибку");
ИначеЕсли ЗначениеЗаполнено(Выборка.ДатаТранзакции) И Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Ошибка Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru=': Не удалось получить статус'"), "ПоясняющийТекст", "ПоказатьОшибку");
+ НСтр("ru=': Не удалось получить статус'"), "ПоясняющийТекст", "ПоказатьОшибку");
ИначеЕсли Выборка.ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Регистрация
И Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.ПустаяСсылка() Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru=': Ошибка регистрации'"), "ПоясняющийТекст", "ПоказатьОшибку");
+ НСтр("ru=': Ошибка регистрации'"), "ПоясняющийТекст", "ПоказатьОшибку");
КонецЕсли;
ОписаниеСостояния = Новый ФорматированнаяСтрока(ОписаниеСостояния,
diff --git a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиент/Module.bsl
index 6617b3313..fea71369d 100644
--- a/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиент/Module.bsl
+++ b/SSL/src/CommonModules/МашиночитаемыеДоверенностиФНССлужебныйКлиент/Module.bsl
@@ -289,7 +289,6 @@
ПараметрыФормы.ИнформацияДляПоддержки = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
НСтр("ru = 'Обратитесь в службу поддержки фирмы ""1С"", предоставив техническую информацию о возникшей проблеме'"),
"ТехническаяИнформация");
- ДополнительныеДанныеПроверокНаСервере = Новый Структура;
ПараметрыФормы.ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверок", Ошибка);
ПараметрыФормы.ДополнительныеДанные.Вставить("ДоверенностьМЧД", Ошибка.ДополнительныеФайлы);
diff --git a/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl b/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl
index 37982dd97..8d34838b4 100644
--- a/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl
+++ b/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl
@@ -569,7 +569,7 @@
Попытка
- ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СсылкиНаОбъекты, НастройкиОбновление);
+ ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СсылкиНаОбъекты.Ссылка, НастройкиОбновление);
Результат.ОбъектовОбработано = Результат.ОбъектовОбработано + 1;
Исключение
@@ -858,16 +858,16 @@
//
Процедура ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СсылкаНаОбъект, НастройкиОбновления) Экспорт
- ИмяПредопределенныхДанных = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаОбъект.Ссылка, "ИмяПредопределенныхДанных");
+ ИмяПредопределенныхДанных = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаОбъект, "ИмяПредопределенныхДанных");
Если Не ЗначениеЗаполнено(ИмяПредопределенныхДанных) Тогда
- ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СсылкаНаОбъект.Ссылка);
+ ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СсылкаНаОбъект);
Возврат;
КонецЕсли;
Элемент = НастройкиОбновления.ПредопределенныеДанные.Найти(ИмяПредопределенныхДанных, "ИмяПредопределенныхДанных");
Если Элемент = Неопределено Тогда
- ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СсылкаНаОбъект.Ссылка);
+ ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СсылкаНаОбъект);
Возврат;
КонецЕсли;
@@ -876,15 +876,15 @@
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(НастройкиОбновления.ИмяОбъектМетаданных);
- ЭлементБлокировки.УстановитьЗначение("Ссылка", СсылкаНаОбъект.Ссылка);
+ ЭлементБлокировки.УстановитьЗначение("Ссылка", СсылкаНаОбъект);
Блокировка.Заблокировать();
- Объект = СсылкаНаОбъект.Ссылка.ПолучитьОбъект();
+ Объект = СсылкаНаОбъект.ПолучитьОбъект();
Если Объект = Неопределено Тогда // объект может быть уже удален в других сеансах
ОтменитьТранзакцию();
Возврат;
КонецЕсли;
- ЗаблокироватьДанныеДляРедактирования(СсылкаНаОбъект.Ссылка);
+ ЗаблокироватьДанныеДляРедактирования(СсылкаНаОбъект);
Для каждого ЛокализуемыйРеквизитОбъекта Из НастройкиОбновления.ЛокализуемыеРеквизитыОбъекта Цикл
Имя = ЛокализуемыйРеквизитОбъекта.Ключ;
diff --git a/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl b/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl
index a13a4ec95..c7bbf4a64 100644
--- a/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl
+++ b/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl
@@ -158,7 +158,7 @@
Команда = Команды.Добавить();
Команда.Вид = "НастройкаПорядкаЭлементов";
- Команда.Идентификатор = "Вверх";
+ Команда.Идентификатор = НаправлениеПеремещенияЭлементаВверх();
Команда.Представление = НСтр("ru = 'Переместить элемент вверх'");
Команда.Порядок = 1;
Команда.Картинка = БиблиотекаКартинок.ПереместитьВверх;
@@ -170,7 +170,7 @@
Команда = Команды.Добавить();
Команда.Вид = "НастройкаПорядкаЭлементов";
- Команда.Идентификатор = "Вниз";
+ Команда.Идентификатор = НаправлениеПеремещенияЭлементаВниз();
Команда.Представление = НСтр("ru = 'Переместить элемент вниз'");
Команда.Порядок = 2;
Команда.Картинка = БиблиотекаКартинок.ПереместитьВниз;
@@ -182,6 +182,15 @@
КонецПроцедуры
+Функция НаправлениеПеремещенияЭлементаВверх() Экспорт
+ Возврат "Вверх";
+КонецФункции
+
+Функция НаправлениеПеремещенияЭлементаВниз() Экспорт
+ Возврат "Вниз";
+КонецФункции
+
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git a/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl b/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl
index aa4b73d11..662a12a0d 100644
--- a/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl
@@ -245,7 +245,7 @@
ИндексТекущего = Родитель.Строки.Индекс(СтрокаДереваЗначений);
ИндексСоседнего = ИндексТекущего;
- Если Направление = "Вверх" Тогда
+ Если Направление = НастройкаПорядкаЭлементов.НаправлениеПеремещенияЭлементаВверх() Тогда
Если ИндексТекущего > 0 Тогда
ИндексСоседнего = ИндексТекущего - 1;
КонецЕсли;
@@ -260,7 +260,15 @@
СоседнийЭлементСсылка = СоседняяСтрока.Ссылка;
Если Не Информация.ЕстьГруппы Или Информация.ДляГрупп Или Не СоседнийЭлементСсылка.ЭтоГруппа Тогда
- ПоменятьЭлементыМестами(ТекущийЭлементСсылка, СоседнийЭлементСсылка, Информация.ПолноеИмя);
+ ТекстОшибки = "";
+ СтандартнаяОбработка = Истина;
+ ИнтеграцияПодсистемБСП.ПередПеремещениемЭлемента(ТекущийЭлементСсылка, СоседнийЭлементСсылка, Направление, ТекстОшибки, СтандартнаяОбработка);
+
+ Если СтандартнаяОбработка Тогда
+ ПоменятьЭлементыМестами(ТекущийЭлементСсылка, СоседнийЭлементСсылка, Информация.ПолноеИмя);
+ Иначе
+ Возврат ТекстОшибки;
+ КонецЕсли;
КонецЕсли;
КонецЕсли;
diff --git a/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl b/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl
index 5c37dd139..9c771a25c 100644
--- a/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl
+++ b/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl
@@ -31,7 +31,19 @@
Если Не МодульАдресныйКлассификаторСлужебный.ЕстьПравоДобавлениеИзменениеАдресныхСведений() Тогда
Элементы.АдресныйКлассификаторНастройки.Видимость = Ложь;
КонецЕсли;
- Форма.ИспользоватьВебСервисАдресов = МодульАдресныйКлассификаторСлужебный.ИспользоватьВебСервис();
+
+ ЗначениеРеквизитаФормы = Новый Структура("ИспользоватьВебСервисАдресов", Неопределено);
+ ЗаполнитьЗначенияСвойств(ЗначениеРеквизитаФормы, Форма);
+
+ Если ЗначениеРеквизитаФормы["ИспользоватьВебСервисАдресов"] <> Неопределено Тогда
+ Форма["ИспользоватьВебСервисАдресов"] = МодульАдресныйКлассификаторСлужебный.ИспользоватьВебСервис();
+ КонецЕсли;
+
+ ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ Элементы,
+ "ИспользоватьВебСервисАдресов",
+ "Видимость",
+ Истина);
Иначе
Элементы.АдресныйКлассификаторНастройки.Видимость = Ложь;
КонецЕсли;
diff --git a/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl
index 6b71b66ab..419658635 100644
--- a/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl
+++ b/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl
@@ -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(КомпонентыОбмена, ЗначениеСвойства,
Свойство.Тип, СсылкиИзОбъекта, ПроведеноЗаполнениеВложенныхСвойств, Расширения);
+
Иначе
- Значение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, ПодСвойство, Приемник, КомпонентыОбмена,,ОписаниеСвойства.Тип);
@@ -5347,7 +5409,7 @@
КонецЦикла;
КонецЕсли;
-
+
КонецПроцедуры
Процедура КонвертироватьКлючевоеСвойство(Приемник, Знач КомпонентыОбмена, Знач ИмяСвойства, Знач ТипЗначения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,23 +8961,13 @@
Для Каждого Свойство Из РасширенныйТипXDTO.Свойства Цикл
- Если Свойство.URIПространстваИмен <> Расширение.Ключ Тогда
+ Если Свойство.URIПространстваИмен <> ПространствоИменРасширения
+ ИЛИ СвойстваИсточника.Найти(Свойство) <> Неопределено Тогда
- Если ЭтоТаблицаОбъекта(Свойство) Тогда
-
- РасширенияТабличныхЧастейПоОсновнымРасширениям(Свойство, Расширение, ВложенныеРасширения["РасширенияТабличныхЧастей"]);
-
- ИначеЕсли Свойство.Имя = КлассКлючевыеСвойстваФормата()
- Или СтрНайти(Свойство.Тип.Имя, КлассКлючевыеСвойстваФормата()) > 0 Тогда
-
- РасширенияКлючевыхСвойствПоОсновнымРасширениям(Свойство, Расширение, ВложенныеРасширения["РасширенияКлючевыхСвойств"]);
-
- КонецЕсли;
-
Продолжить;
КонецЕсли;
-
+
СвойстваИсточника.Добавить(Свойство);
КонецЦикла;
@@ -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");
- СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипДанных");
-
- ОписаниеРасширенияТабличнойЧасти = Новый Соответствие;
- ОписаниеРасширенияТабличнойЧасти.Вставить(Расширение.Ключ, СтруктураРасширенияПравилаКонвертацииОбъекта);
-
- РасширенияТабличныхЧастей.Вставить(Свойство.Имя, ОписаниеРасширенияТабличнойЧасти);
+ КонецЦикла;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
-
-
diff --git a/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl
index 1ef4e58ae..75e1cb30d 100644
--- a/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl
+++ b/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl
@@ -86,6 +86,8 @@
ПараметрыЗадания.Вставить("Использование", Истина);
ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ТекущаяУниверсальнаяДата());
ПараметрыЗадания.Вставить("Параметры", ПараметрыПроцедуры);
+ ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3);
+ ПараметрыЗадания.Вставить("ИнтервалПовтораПриАварийномЗавершении", 300);
МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий");
МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания);
@@ -289,8 +291,6 @@
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи
| ПО втПоследнийСценарий.ДатаСоздания = Задачи.ДатаСоздания
| И втПоследнийСценарий.ИдентификаторОбмена = Задачи.ИдентификаторОбмена
- | И (НЕ Задачи.ЗавершенаУспешно)
- | И (НЕ Задачи.ЗавершенаСОшибкой)
|;
|
|////////////////////////////////////////////////////////////////////////////////
@@ -316,12 +316,7 @@
Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(Запись, Выборка);
Запись.Прочитать();
-
- Если Запись.Выбран() Тогда
- Запись.ЗавершенаСОшибкой = Истина;
- Запись.Ошибка = НСтр("ru = 'Отменено пользователем'");
- Запись.Записать();
- КонецЕсли;
+ Запись.Удалить();
КонецЦикла;
@@ -503,7 +498,7 @@
КонецПроцедуры
Процедура ВыполнитьЗагрузкуДляУзлаИнформационнойБазыИзСервисаПередачиФайлов(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ИдентификаторЗадачи, ИдентификаторФайла) Экспорт
-
+
УстановитьПривилегированныйРежим(Истина);
ИмяФайлаСообщения = ОбменДаннымиСервер.ПолучитьФайлИзХранилища(ИдентификаторФайла);
@@ -666,7 +661,8 @@
"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 3
| Задачи.ДатаСоздания КАК ДатаСоздания,
| Задачи.Сценарий КАК Сценарий,
- | Задачи.ИдентификаторОбмена КАК ИдентификаторОбмена
+ | Задачи.ИдентификаторОбмена КАК ИдентификаторОбмена,
+ | Задачи.УзелИнформационнойБазы КАК УзелИнформационнойБазы
|ПОМЕСТИТЬ втДаты
|ИЗ
| РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи
@@ -679,7 +675,9 @@
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
- | Задачи.ДатаСоздания КАК ДатаСоздания
+ | Задачи.ДатаСоздания КАК ДатаСоздания,
+ | Задачи.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
+ | Задачи.Ошибка КАК Ошибка
|ИЗ
| втДаты КАК втДаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи
@@ -730,6 +728,70 @@
КонецФункции
+Процедура УдалитьЗадачиПоСценариюСОшибкой(Сценарий) Экспорт
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Задачи.ИдентификаторОбмена КАК ИдентификаторОбмена
+ |ПОМЕСТИТЬ ВТ_Задачи
+ |ИЗ
+ | РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК Задачи
+ |ГДЕ
+ | Задачи.Сценарий = &Сценарий
+ | И Задачи.ЗавершенаСОшибкой
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ЗадачиОбменаДаннымиВнутренняяПубликация.ДатаСоздания КАК ДатаСоздания,
+ | ЗадачиОбменаДаннымиВнутренняяПубликация.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
+ | ЗадачиОбменаДаннымиВнутренняяПубликация.НомерЗадачи КАК НомерЗадачи,
+ | ЗадачиОбменаДаннымиВнутренняяПубликация.ИдентификаторОбмена КАК ИдентификаторОбмена,
+ | ЗадачиОбменаДаннымиВнутренняяПубликация.ИдентификаторЗадачи КАК ИдентификаторЗадачи
+ |ИЗ
+ | ВТ_Задачи КАК ВТ_Задачи
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗадачиОбменаДаннымиВнутренняяПубликация КАК ЗадачиОбменаДаннымиВнутренняяПубликация
+ | ПО ВТ_Задачи.ИдентификаторОбмена = ЗадачиОбменаДаннымиВнутренняяПубликация.ИдентификаторОбмена";
+
+ Запрос.УстановитьПараметр("Сценарий", Сценарий);
+
+ Выборка = Запрос.Выполнить().Выбрать();
+
+ НачатьТранзакцию();
+
+ Попытка
+
+ Блокировка = Новый БлокировкаДанных;
+ ЭлементБлокировки = Блокировка.Добавить("Справочник.СценарииОбменовДанными");
+ ЭлементБлокировки.УстановитьЗначение("Ссылка", Сценарий);
+ ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
+ Блокировка.Заблокировать();
+
+ Пока Выборка.Следующий() Цикл
+
+ Запись = РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация.СоздатьМенеджерЗаписи();
+ ЗаполнитьЗначенияСвойств(Запись, Выборка);
+ Запись.Прочитать();
+ Запись.Удалить();
+
+ КонецЦикла;
+
+ ЗафиксироватьТранзакцию();
+
+ Исключение
+
+ ОтменитьТранзакцию();
+
+ СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+
+ ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОтключениеСценария(),
+ УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке);
+
+ КонецПопытки;
+
+КонецПроцедуры
+
Функция ОчередьЗадачВыполнена(Сценарий = "", ИдентификаторОбмена = "", Ошибка = "")
// Считаем, что сценарий (или ручной обмен) завершен, если для всех задач ЗавершеноУспешно = Истина, или есть ошибка
@@ -1035,7 +1097,6 @@
СтруктураНастроекОбмена = НастройкиОбменаДляУзлаИнформационнойБазы(Узел, Действие, Отказ);
ИнициализацияПрокси(Прокси, ПараметрыПрокси, СтруктураНастроекОбмена, Отказ, Ошибка);
ВыполнитьЗадачуВыгрузкаДанныхКорреспондент(Задача, Прокси, СтруктураНастроекОбмена, Отказ, Ошибка);
- ОтметитьВыполнениеЗадачи(Задача, Ошибка);
ИначеЕсли Действие = Перечисления.ДействияПриОбменеВнутренняяПубликация.ЗагрузкаДанных Тогда
@@ -1443,7 +1504,10 @@
Или СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка_ТранспортСообщения Тогда
Отказ = Истина;
- Ошибка = СтруктураНастроекОбмена.СтрокаСообщенияОбОшибке;
+
+ Если ЗначениеЗаполнено(СтруктураНастроекОбмена.СтрокаСообщенияОбОшибке) Тогда
+ Ошибка = СтруктураНастроекОбмена.СтрокаСообщенияОбОшибке;
+ КонецЕсли;
Возврат Истина;
diff --git a/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl
index 2afb57cc8..3dc821113 100644
--- a/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl
+++ b/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl
@@ -366,4 +366,23 @@
КонецФункции
+Функция ПроверитьИЗарегистрироватьCOMСоединитель(Знач СтрукураНастроек) Экспорт
+
+ Если ТипЗнч(СтрукураНастроек) <> Тип("Структура") Тогда
+ СтрукураНастроек = РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспорта(
+ СтрукураНастроек, Перечисления.ВидыТранспортаСообщенийОбмена.COM)
+ КонецЕсли;
+
+ Результат = ОбменДаннымиСервер.УстановитьВнешнееСоединениеСБазой(СтрукураНастроек);
+
+ Если Результат.Соединение = Неопределено Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Результат = Неопределено;
+
+ Возврат Истина;
+
+КонецФункции
+
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl
index 0dc97b3b7..b737b6e8f 100644
--- a/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl
+++ b/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl
@@ -348,6 +348,52 @@
КонецПроцедуры
+// Открывает панель настройки синхронизации данных.
+//
+// Параметры:
+// ПараметрКоманды - Структура
+// - Неопределено
+// ПараметрыВыполненияКоманды - ПараметрыВыполненияКоманды
+//
+Процедура ОткрытьПанельСинхронизацииДанных(ПараметрКоманды, ПараметрыВыполненияКоманды) Экспорт
+
+ ИмяОбработки = "";
+ ИмяФормыОбработки = "";
+
+ Если СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ДоступноИспользованиеРазделенныхДанных Тогда
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ОбменДаннымиНастройкиПрограммы") Тогда
+ ИмяОбработки = "ПанельАдминистрированияБСД";
+ ИмяФормыОбработки = "СинхронизацияДанных";
+ ИначеЕсли ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкиПрограммы") Тогда
+ ИмяОбработки = "ПанельАдминистрированияБСП";
+ ИмяФормыОбработки = "СинхронизацияДанных";
+ КонецЕсли;
+ Иначе
+ Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса") Тогда
+ Возврат;
+ КонецЕсли;
+
+ ИмяОбработки = "ПанельАдминистрированияБСПВМоделиСервиса";
+ ИмяФормыОбработки = "СинхронизацияДанныхДляАдминистратораСервиса";
+ КонецЕсли;
+
+ Если ИмяОбработки = "" Тогда
+ Возврат;
+ КонецЕсли;
+
+ ИмяОткрываемойФормы = "Обработка.[ИмяОбработки].Форма.[ИмяФормыОбработки]";
+ ИмяОткрываемойФормы = СтрЗаменить(ИмяОткрываемойФормы, "[ИмяОбработки]", ИмяОбработки);
+ ИмяОткрываемойФормы = СтрЗаменить(ИмяОткрываемойФормы, "[ИмяФормыОбработки]", ИмяФормыОбработки);
+
+ ОткрытьФорму(
+ ИмяОткрываемойФормы,
+ Новый Структура,
+ ПараметрыВыполненияКоманды.Источник,
+ ИмяОткрываемойФормы + ?(ПараметрыВыполненияКоманды.Окно = Неопределено, ".ОтдельноеОкно", ""),
+ ПараметрыВыполненияКоманды.Окно);
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
@@ -1512,4 +1558,16 @@
Возврат Истина;
КонецФункции
+Функция ПроверитьИЗарегистрироватьCOMСоединитель(Знач СтрукураНастроек, Оповещение = Неопределено) Экспорт
+
+ Если НЕ ОбщегоНазначенияКлиент.ИнформационнаяБазаФайловая() Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ Если НЕ ОбменДаннымиВызовСервера.ПроверитьИЗарегистрироватьCOMСоединитель(СтрукураНастроек) Тогда
+ ОбщегоНазначенияКлиент.ЗарегистрироватьCOMСоединитель(Ложь, Оповещение);
+ КонецЕсли;
+
+КонецФункции
+
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl
index ba38a8833..7d7916d50 100644
--- a/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl
+++ b/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl
@@ -352,10 +352,12 @@
Функция ЕстьЗацикливание() Экспорт
+ УстановитьПривилегированныйРежим(Истина);
+
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
- | КонтурСинхронизации.УзелИнформационнойБазы КАК УзелИнформационнойБазы
+ | ИСТИНА КАК ЕстьЗацикливание
|ИЗ
| РегистрСведений.КонтурСинхронизации КАК КонтурСинхронизации
|ГДЕ
diff --git a/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl
index 5a4daa542..d31c408fe 100644
--- a/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl
+++ b/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl
@@ -263,6 +263,22 @@
КонецПроцедуры
+// Заполняет массив типов, исключаемых из проверки устранения проблемы
+// (см. РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьУстранениеПроблемы).
+//
+// Параметры:
+// Типы - Массив из ОбъектМетаданных
+//
+Процедура ПриЗаполненииТиповИсключаемыхИзПроверкиУстраненияПроблемы(Типы) Экспорт
+
+
+
+КонецПроцедуры
+
+#Область УстаревшиеПроцедурыИФункции
+
+// Устарела. В процедуре нет необходимости. Теперь для поиска плана обмена используется параметр Глобальный
+// (см процедуру ПриПолученииНастроек в менеджере универсального плана обмена)
// Вызывается при проверке имени плана обмена универсального формата.
// Допускает настройку синхронизацию между планами обменов EnterpriseData с отличающимися имена.
//
@@ -270,7 +286,7 @@
// ИмяПланаОбмена - Строка - имя плана обмена универсального формата,
// для которого подбираем соответствие из метаданных конфигурации.
// ВариантНастройки - Строка - идентификатор варианта настройки, используется для уточнения поиска.
-// Может быть незаполнен, например, при проверке формата полученного сообщения обмена.
+// Может быть не заполнен, например, при проверке формата полученного сообщения обмена.
// ПланОбменаРаспознан - Булево - признак того, что переданное имя плана обмена распознано и работу можно продолжить.
//
Процедура ПриПроверкеКорректностиИмениПланаОбменаEnterpriseData(ИмяПланаОбмена, ВариантНастройки, ПланОбменаРаспознан) Экспорт
@@ -281,3 +297,5 @@
#КонецОбласти
+#КонецОбласти
+
diff --git a/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl
index 630f43bc2..5b82eb21a 100644
--- a/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl
+++ b/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl
@@ -577,7 +577,7 @@
// ИмяПланаОбмена - Строка - имя плана обмена, как оно задано в конфигураторе.
//
// Возвращаемое значение:
-// Булево - Истина - используется кеш, иначе Ложь - используются запросы к РС ПубличныеИдентификаторыСинхронизируемыхОбъектов.
+// Булево
//
Функция ЭтоГлобальныйОбменЧерезУниверсальныйФормат(Знач ИмяПланаОбмена) Экспорт
diff --git a/SSL/src/CommonModules/ОбменДаннымиРегистрацияСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиРегистрацияСервер/Module.bsl
index cf8e1a983..f7efc110d 100644
--- a/SSL/src/CommonModules/ОбменДаннымиРегистрацияСервер/Module.bsl
+++ b/SSL/src/CommonModules/ОбменДаннымиРегистрацияСервер/Module.bsl
@@ -304,7 +304,11 @@
Функция РеквизитНайденВТабличнойЧастиРеквизитовРегистрацииОбъектов(МетаданныеТаблицы, ИмяИскомогоРеквизита)
- МетаТест = Новый Структура("Реквизиты, СтандартныеРеквизиты, Измерения, Ресурсы");
+ МетаТест = Новый Структура;
+ МетаТест.Вставить("Реквизиты", Неопределено);
+ МетаТест.Вставить("СтандартныеРеквизиты", Неопределено);
+ МетаТест.Вставить("Измерения", Неопределено);
+ МетаТест.Вставить("Ресурсы", Неопределено);
ЗаполнитьЗначенияСвойств(МетаТест, МетаданныеТаблицы);
ИмяКандидата = ВРег(ИмяИскомогоРеквизита);
@@ -317,6 +321,17 @@
Или ИмяКандидата = "СЧЕТДТ" Или ИмяКандидата = "СЧЕТКТ" Тогда
Возврат Истина;
КонецЕсли;
+
+ // Необходимо учесть планы обмена без Корреспонденции, свойства Субконто и Счет
+ Если Корреспонденция = Ложь Тогда
+
+ Если ИмяКандидата = "СУБКОНТО"
+ Или ИмяКандидата = "СЧЕТ" Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ КонецЕсли;
+
КонецЕсли;
Для Каждого КлючЗначение Из МетаТест Цикл
diff --git a/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl
index 7e96f993d..95fe907c9 100644
--- a/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl
+++ b/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl
@@ -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 @@
ПриЗаполненииСпискаТекущихДелПредупрежденияСинхронизации(ТекущиеДела);
ПриЗаполненииСпискаТекущихДелНеобходимоОбновление(ТекущиеДела);
ПриЗаполненииСпискаТекущихДелПроверитьСовместимостьСТекущейВерсией(ТекущиеДела);
+ ПриЗаполненииСпискаТекущихДелПроверитьЗацикливание(ТекущиеДела);
КонецПроцедуры
@@ -9003,7 +9000,7 @@
ОбработкаОбменаДаннымиВнешнееСоединение = Неопределено;
ИначеЕсли СтруктураНастроекОбмена.ПроизводитьВыгрузкуДанных Тогда
-
+
// Обработка для загрузки данных.
Если ЭтоПланОбменаXDTO Тогда
ОбработкаДляЗагрузкиДанных = ВнешнееСоединение.Обработки.КонвертацияОбъектовXDTO.Создать();
@@ -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 @@
КонецПроцедуры
+Процедура ОчиститьСписокОшибокПриВыгрузкеДанных(УзелИнформационнойБазы) Экспорт
+
+ Если Не ЗначениеЗаполнено(УзелИнформационнойБазы) Тогда
+ Возврат;
+ КонецЕсли;
+
+ РегистрыСведений.РезультатыОбменаДанными.ОчиститьПроблемыПриОтправке(УзелИнформационнойБазы);
+
+КонецПроцедуры
+
+Процедура ОчиститьСписокОшибокПриЗагрузкеДанных(УзелИнформационнойБазы) Экспорт
+
+ Если Не ЗначениеЗаполнено(УзелИнформационнойБазы) Тогда
+ Возврат;
+ КонецЕсли;
+
+ РегистрыСведений.РезультатыОбменаДанными.ОчиститьПроблемыПриПолучении(УзелИнформационнойБазы);
+
+КонецПроцедуры
+
+Функция ТипыИсключаемыеИзПроверкиУстраненияПроблемы() Экспорт
+
+ Типы = Новый Массив;
+ Типы.Добавить(Метаданные.Справочники.СценарииОбменовДанными);
+ Типы.Добавить(Метаданные.Справочники.СеансыОбменовДанными);
+
+ ОбменДаннымиПереопределяемый.ПриЗаполненииТиповИсключаемыхИзПроверкиУстраненияПроблемы(Типы);
+
+ Возврат Типы;
+
+КонецФункции
+
#КонецОбласти
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl
index dc3a74cea..cca60cf99 100644
--- a/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl
+++ b/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl
@@ -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
diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl
index 875228b9d..d13ebe28d 100644
--- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl
+++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl
@@ -39,7 +39,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "БиблиотекаСинхронизацииДанных";
- Описание.Версия = "1.0.3.209";
+ Описание.Версия = "1.0.3.376";
Описание.ИдентификаторИнтернетПоддержки = "DSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "1.0.1.1";
diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl
index 70a031c21..e621120ec 100644
--- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl
+++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl
@@ -45,7 +45,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
- Описание.Версия = "3.1.9.209";
+ Описание.Версия = "3.1.9.225";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
diff --git a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl
index 306d602aa..9a7e153d1 100644
--- a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl
+++ b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl
@@ -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";
КонецФункции
diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl
index 2638e66e9..0799f397c 100644
--- a/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl
+++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl
@@ -1392,7 +1392,7 @@
КонецПроцедуры
// Устарела. Следует использовать ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами
-// Возвращает пользовательскую настройку "Предлагать установку расширения работы с файлами".
+// Возвращает пользовательскую настройку "Предлагать установку расширения для работы с 1С:Предприятием".
//
// Возвращаемое значение:
// Булево - Истина, если предлагать.
diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl
index 0305a1e5e..a43fa95b2 100644
--- a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl
+++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl
@@ -2555,13 +2555,18 @@
// Возвращаемое значение:
// ЗащищенноеСоединениеOpenSSL
//
-Функция НовоеЗащищенноеСоединение(СертификатКлиента = Неопределено, СертификатыУдостоверяющихЦентров = Неопределено) Экспорт
+Функция НовоеЗащищенноеСоединение(Знач СертификатКлиента = Неопределено, Знач СертификатыУдостоверяющихЦентров = Неопределено) Экспорт
-#Если ВебКлиент Тогда
- Возврат Неопределено;
-#ИначеЕсли МобильныйКлиент Тогда
+#Если ВебКлиент Или МобильныйКлиент Тогда
Возврат Новый ЗащищенноеСоединениеOpenSSL;
#Иначе
+ СистемнаяИнформация = Новый СистемнаяИнформация;
+ Если СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.22.0") >= 0 Тогда
+ Если СертификатыУдостоверяющихЦентров = Неопределено Тогда
+ СертификатыУдостоверяющихЦентров = Новый СертификатыУдостоверяющихЦентровОС();
+ КонецЕсли;
+ КонецЕсли;
+
Возврат Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатыУдостоверяющихЦентров);
#КонецЕсли
diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl
index f5a8df03d..471ddccb8 100644
--- a/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl
+++ b/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl
@@ -149,7 +149,7 @@
Источник = ПараметрыВыполнения.Источник;
ОписаниеКоманды = ПараметрыВыполнения.ОписаниеКоманды;
- // Установка расширения работы с файлами.
+ // Установка расширения для работы с 1С:Предприятием.
Если ПараметрыВыполнения.ТребуетсяРаботаСФайлами Тогда
ПараметрыВыполнения.ТребуетсяРаботаСФайлами = Ложь;
Обработчик = Новый ОписаниеОповещения("ПродолжитьВыполнениеКомандыПослеУстановкиРасширенияРаботыСФайлами", ЭтотОбъект, ПараметрыВыполнения);
@@ -366,7 +366,7 @@
ПродолжитьВыполнениеКоманды(Контекст);
КонецПроцедуры
-// Ветка процедуры, возникающая после установки расширения работы с файлами.
+// Ветка процедуры после установки расширения для работы с 1С:Предприятием.
Процедура ПродолжитьВыполнениеКомандыПослеУстановкиРасширенияРаботыСФайлами(РасширениеРаботыСФайламиПодключено, Контекст) Экспорт
Если Не РасширениеРаботыСФайламиПодключено Тогда
Возврат;
diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl
index 9117680f5..82eeb7a71 100644
--- a/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl
@@ -37,7 +37,7 @@
// Вызывается при изменении способа установки курса валюты.
//
// Параметры:
-// Валюта - СправочникСсылка.Валюты
+// Валюта - СправочникОбъект.Валюты
//
Процедура ЗапланироватьКопированиеКурсовВалюты(Знач Валюта) Экспорт
diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl
index 8bd056c56..4d5d24757 100644
--- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl
+++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl
@@ -478,7 +478,6 @@
// * СтатусРазбора - Строка
// * Тема - Строка
// * Тексты - Строка
-// * Кодировка - Строка
// * СпособКодированияНеASCIIСимволов - Строка
// * УведомитьОДоставке - Строка
// * УведомитьОПрочтении - Строка
@@ -510,7 +509,6 @@
ПоляСообщения.Вставить("СтатусРазбора", "СтатусРазбора");
ПоляСообщения.Вставить("Тема", "Тема");
ПоляСообщения.Вставить("Тексты", "Тексты");
- ПоляСообщения.Вставить("Кодировка", "Кодировка");
ПоляСообщения.Вставить("СпособКодированияНеASCIIСимволов", "СпособКодированияНеASCIIСимволов");
ПоляСообщения.Вставить("УведомитьОДоставке", "УведомитьОДоставке");
ПоляСообщения.Вставить("УведомитьОПрочтении", "УведомитьОПрочтении");
diff --git a/SSL/src/CommonModules/РаботаСФайлами/Module.bsl b/SSL/src/CommonModules/РаботаСФайлами/Module.bsl
index 9aae99d0d..8901f12e4 100644
--- a/SSL/src/CommonModules/РаботаСФайлами/Module.bsl
+++ b/SSL/src/CommonModules/РаботаСФайлами/Module.bsl
@@ -996,7 +996,7 @@
Если НастройкиРаботыСФайламиВФорме.КопироватьПрисоединенныеФайлы Тогда
РаботаСФайламиСлужебный.СкопироватьПрисоединенныеФайлы(
- НастройкиРаботыСФайламиВФорме.ЗначениеКопирования, ТекущийОбъект);
+ НастройкиРаботыСФайламиВФорме.ЗначениеКопирования, ТекущийОбъект.Ссылка);
КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl
index 949d1d793..a3ecf226c 100644
--- a/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl
@@ -504,7 +504,8 @@
// Строка - полный путь к корневому каталогу тома.
//
Функция ПолныйПутьТома(Том) Экспорт
-
+
+ УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
КорневойКаталог = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Том,
@@ -1246,9 +1247,17 @@
// т.к. внешняя транзакция всегда будет активна.
// см. РаботаСФайламиСлужебный.ЗаписатьИнформациюОШифровании.
Если ЭтоЗашифрованныйФайл ИЛИ НЕ ТранзакцияАктивна() Тогда
- УстановитьОтключениеБезопасногоРежима(Истина);
- УдалитьФайл(Контекст.СтарыйПутьКФайлу);
- УстановитьОтключениеБезопасногоРежима(Ложь);
+
+ СвойстваФайла = СвойстваФайлаВТоме(ПрисоединенныйФайл);
+ НовыйПутьКФайлу = ПолноеИмяФайлаВТоме(СвойстваФайла);
+
+ Если НовыйПутьКФайлу <> Контекст.СтарыйПутьКФайлу Тогда
+
+ УстановитьОтключениеБезопасногоРежима(Истина);
+ УдалитьФайл(Контекст.СтарыйПутьКФайлу);
+ УстановитьОтключениеБезопасногоРежима(Ложь);
+
+ КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl
index 8bb36a822..ed4a559e2 100644
--- a/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl
+++ b/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl
@@ -1371,17 +1371,17 @@
КонецПроцедуры
Процедура ДоступнаКомандаСканироватьЗавершение(РезультатПроверкиИнициализации, ОповещениеРезультата) Экспорт
- КомпонентаПроинициализирована = РезультатПроверкиИнициализации.Подключено;
+ ДоступнаКомандаСканировать = РезультатПроверкиИнициализации.Подключено;
+ ПодключаемыйМодуль = РезультатПроверкиИнициализации.ПодключаемыйМодуль;
- Если Не КомпонентаПроинициализирована Тогда
- Если ЗначениеЗаполнено(РезультатПроверкиИнициализации.ОписаниеОшибки) Тогда
- ПоказатьПредупреждение(, РезультатПроверкиИнициализации.ОписаниеОшибки);
- КонецЕсли;
- Возврат;
+ Если ДоступнаКомандаСканировать Тогда
+ РаботаСФайламиСлужебныйКлиент.ВключитьЛогированиеКомпоненты(РезультатПроверкиИнициализации.ПодключаемыйМодуль);
КонецЕсли;
+
+ ДоступнаКомандаСканировать = ДоступнаКомандаСканировать
+ И РаботаСФайламиСлужебныйКлиент.ЕстьУстройства(Неопределено, ПодключаемыйМодуль, Ложь);
- РаботаСФайламиСлужебныйКлиент.ВключитьЛогированиеКомпоненты(РезультатПроверкиИнициализации.ПодключаемыйМодуль);
- ВыполнитьОбработкуОповещения(ОповещениеРезультата, КомпонентаПроинициализирована);
+ ВыполнитьОбработкуОповещения(ОповещениеРезультата, ДоступнаКомандаСканировать);
КонецПроцедуры
Процедура ПослеПроверкиНаличияПрограммыКонвертации(РезультатЗапуска, Контекст) Экспорт
@@ -1599,8 +1599,9 @@
Форма.ПараметрыРаботыСФайлами.ОписанияЭлементовФормы[НомерЭлемента].ФильтрДиалогаВыбора);
ПараметрыДобавленияФайла.Вставить("НеОткрыватьКарточку", Истина);
- // ИнтеграцияС1СДокументооборотом
ИспользоватьДОДляХраненияФайловОбъекта = Ложь;
+
+ // ИнтеграцияС1СДокументооборотом
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
ВерсияБИД = "1.0.0.0";
СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().Свойство("ВерсияБИД", ВерсияБИД);
diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl
index c164c5c54..75cb0a21b 100644
--- a/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl
@@ -761,7 +761,7 @@
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
КонецЕсли;
- КопируемыеФайлы = ПрисоединенныеФайлыКОбъекту(Источник.Ссылка, Истина);
+ КопируемыеФайлы = ПрисоединенныеФайлыКОбъекту(Источник, Истина);
Для Каждого КопируемыйФайл Из КопируемыеФайлы Цикл
Если ДоступнаЭлектроннаяПодпись = Неопределено Тогда
ДоступнаЭлектроннаяПодпись = (МодульЭлектроннаяПодписьСлужебный <> Неопределено)
@@ -774,7 +774,7 @@
КопияФайла = КопируемыйФайл.Скопировать();
КопияФайлаСсылка = МенеджерОбъекта.ПолучитьСсылку();
КопияФайла.УстановитьСсылкуНового(КопияФайлаСсылка);
- КопияФайла.ВладелецФайла = Получатель.Ссылка;
+ КопияФайла.ВладелецФайла = Получатель;
КопияФайла.Редактирует = Справочники.Пользователи.ПустаяСсылка();
КопияФайла.ТекстХранилище = КопируемыйФайл.ТекстХранилище;
@@ -1303,7 +1303,10 @@
//
Процедура ЗаписатьИнформациюОШифровании(ФайлСсылка, ПараметрыЗаписиИнформацииОШифровании) Экспорт
- ТекущаяВерсияФайла = ТекущаяВерсия(ФайлСсылка);
+ МетаданныеОбъекта = ФайлСсылка.Метаданные();
+ Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъекта) Тогда
+ ТекущаяВерсияФайла = ТекущаяВерсия(ФайлСсылка);
+ КонецЕсли;
АдресВременногоХранилищаТекстаТекущейВерсии = "";
АдресВременногоХранилищаОсновногоФайла = "";
@@ -1352,8 +1355,7 @@
СведенияОФайле.РасширениеБезТочки = РеквизитыВерсии.Расширение;
СведенияОФайле.ВремяИзменения = РеквизитыВерсии.ДатаСоздания;
СведенияОФайле.ВремяИзмененияУниверсальное = РеквизитыВерсии.ДатаМодификацииУниверсальная;
- СведенияОФайле.Размер = ВерсияСсылка.Размер;
- СведенияОФайле.ВремяИзмененияУниверсальное = РеквизитыВерсии.ДатаМодификацииУниверсальная;
+ СведенияОФайле.Размер = РеквизитыВерсии.Размер;
СведенияОФайле.НовыйСтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
СведенияОФайле.Зашифрован = ПараметрыЗаписиИнформацииОШифровании.Зашифровать;
СведенияОФайле.ХранитьВерсии = Ложь;
@@ -2889,12 +2891,17 @@
//
Функция ТекстЗапросаДляОчисткиФайлов(ВладелецФайла, Настройка, МассивИсключений, ЭлементИсключение)
- ПолноеИмяСправочникаФайлов = Настройка.ТипВладельцаФайла.ПолноеИмя;
- МетаданныеОбъектаФайлов = ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени(ПолноеИмяСправочникаФайлов);
+ РеквизитыСправочникаФайлов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Настройка.ТипВладельцаФайла, "ПолноеИмя, Имя");
+
+ МетаданныеВладельцаФайлов = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ВладелецФайла);
+ ПолноеИмяВладельцаФайлов = МетаданныеВладельцаФайлов.ПолноеИмя();
+
+ МетаданныеОбъектаФайлов = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Настройка.ТипВладельцаФайла);
ЕстьВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъектаФайлов);
Если ЕстьВозможностьХранитьВерсии Тогда
СправочникВерсийФайлов = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(МетаданныеОбъектаФайлов.Реквизиты.ТекущаяВерсия.Тип.Типы()[0]);
- ПолноеИмяСправочникаВерсийФайлов = СправочникВерсийФайлов.ПолноеИмя;
+ МетаданныеВерсийФайлов = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(СправочникВерсийФайлов);
+ ПолноеИмяСправочникаВерсийФайлов = МетаданныеВерсийФайлов.ПолноеИмя();
Если Настройка.ПериодОчистки <> Перечисления.ПериодОчисткиФайлов.ПоПравилу Тогда
ТекстЗапроса =
@@ -2920,7 +2927,7 @@
| КОНЕЦ
| ";
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаФайлов", ПолноеИмяСправочникаФайлов);
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаФайлов", РеквизитыСправочникаФайлов.ПолноеИмя);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаВерсийФайлов", ПолноеИмяСправочникаВерсийФайлов);
Иначе
@@ -2953,8 +2960,8 @@
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Реквизиты" + ",", РеквизитыВладельцаФайлов(ВладелецФайла));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаВерсийФайлов", ПолноеИмяСправочникаВерсийФайлов);
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаФайлов", ПолноеИмяСправочникаФайлов);
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#СправочникВладелецФайла", ВладелецФайла.ПолноеИмя);
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаФайлов", РеквизитыСправочникаФайлов.ПолноеИмя);
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#СправочникВладелецФайла", ПолноеИмяВладельцаФайлов);
КонецЕсли;
Иначе // Не ЕстьВозможностьХранитьВерсии
@@ -2982,8 +2989,8 @@
| И ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) = &ТипВладельца
| ";
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ТипВладельцаФайла", "Справочник." + Настройка.ТипВладельцаФайла.Имя);
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#СправочникВладелецФайла", ВладелецФайла.ПолноеИмя);
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ТипВладельцаФайла", "Справочник." + РеквизитыСправочникаФайлов.Имя);
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#СправочникВладелецФайла", ПолноеИмяВладельцаФайлов);
Иначе
ТекстЗапроса =
@@ -3008,8 +3015,8 @@
| КОНЕЦ
| И ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) = &ТипВладельца";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Реквизиты" + ",", РеквизитыВладельцаФайлов(ВладелецФайла));
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаФайлов", ПолноеИмяСправочникаФайлов);
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#СправочникВладелецФайла", ВладелецФайла.ПолноеИмя);
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаФайлов", РеквизитыСправочникаФайлов.ПолноеИмя);
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#СправочникВладелецФайла", ПолноеИмяВладельцаФайлов);
КонецЕсли;
КонецЕсли;
@@ -5043,7 +5050,7 @@
Если СведенияОФайле.Размер = СтруктураРеквизитов.Размер Тогда
Если СтруктураРеквизитов.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
- ДвоичныеДанныеПредыдущейВерсии = РаботаСФайламиВТомахСлужебный.ДанныеФайла(ВерсияСсылкаДляСравненияРазмера);
+ ДвоичныеДанныеПредыдущейВерсии = РаботаСФайламиВТомахСлужебный.ДанныеФайла(ВерсияСсылкаДляСравненияРазмера, Ложь);
Иначе
ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(ВерсияСсылкаДляСравненияРазмера);
ДвоичныеДанныеПредыдущейВерсии = ХранилищеФайла.Получить();
@@ -6081,7 +6088,7 @@
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ТипВладельца");
- Параметр.Значение = ТипЗнч(ВладелецФайла.ЗначениеПустойСсылки);
+ Параметр.Значение = ТипЗнч(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВладелецФайла, "ЗначениеПустойСсылки"));
Параметр.Использование = Истина;
Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ПериодОчистки");
@@ -8938,13 +8945,15 @@
АдресСервера = КодироватьURIПоСтруктуре(ПараметрыСинхронизации.СтруктураАдресаСервера);
- ТекстСобытия = НСтр("ru = 'Начата проверка синхронизации файлов'") + " " + УчетнаяЗапись.Наименование;
+ НаименованиеУчетнойЗаписи = Строка(УчетнаяЗапись);
+
+ ТекстСобытия = НСтр("ru = 'Начата проверка синхронизации файлов'") + " " + НаименованиеУчетнойЗаписи;
ЗаписатьВЖурналСобытийСинхронизацииФайлов(ТекстСобытия, ПараметрыСинхронизации.УчетнаяЗапись);
ПрочитатьПараметрыКаталога(РезультатПроверки, АдресСервера, ПараметрыСинхронизации);
ПроверитьВозможностьРазмещенияФайлов(РезультатПроверки, АдресСервера, ПараметрыСинхронизации);
- ТекстСобытия = НСтр("ru = 'Завершена проверка синхронизации файлов'") + " " + УчетнаяЗапись.Наименование;
+ ТекстСобытия = НСтр("ru = 'Завершена проверка синхронизации файлов'") + " " + НаименованиеУчетнойЗаписи;
ЗаписатьВЖурналСобытийСинхронизацииФайлов(ТекстСобытия, ПараметрыСинхронизации.УчетнаяЗапись);
КонецПроцедуры
@@ -9500,8 +9509,8 @@
Если ЭтоЭлементРаботаСФайлами(ФайлОбъект.Ссылка) Тогда
МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(ФайлОбъект.Ссылка));
ВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъекта);
- Если ВозможностьХранитьВерсии И ЗначениеЗаполнено(ФайлОбъект.ТекущаяВерсия.Ссылка) Тогда
- ИмяФайлаСДвоичнымиДанными = ИмяФайлаСДвоичнымиДанными(ФайлОбъект.ТекущаяВерсия.Ссылка);
+ Если ВозможностьХранитьВерсии И Не ФайлОбъект.ТекущаяВерсия.Пустая() Тогда
+ ИмяФайлаСДвоичнымиДанными = ИмяФайлаСДвоичнымиДанными(ФайлОбъект.ТекущаяВерсия);
Иначе
ИмяФайлаСДвоичнымиДанными = ИмяФайлаСДвоичнымиДанными(ФайлОбъект.Ссылка);
КонецЕсли;
diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl
index c1e2ca567..1613cec9f 100644
--- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl
+++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl
@@ -5,27 +5,21 @@
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
-
#Область СлужебныйПрограммныйИнтерфейс
Процедура ОбновитьПрисоединенныйФайл(Знач ПрисоединенныйФайл, Знач ИнформацияОФайле) Экспорт
-
+
РаботаСФайлами.ОбновитьФайл(ПрисоединенныйФайл, ИнформацияОФайле);
-
+
КонецПроцедуры
// См. функцию ДобавитьПрисоединенныйФайл в модуле РаботаСФайлами.
-Функция ДобавитьФайл(ПараметрыФайла,
- Знач АдресФайлаВоВременномХранилище,
- Знач АдресВременногоХранилищаТекста = "",
- Знач Описание = "") Экспорт
-
+Функция ДобавитьФайл(ПараметрыФайла, Знач АдресФайлаВоВременномХранилище, Знач АдресВременногоХранилищаТекста = "",
+ Знач Описание = "") Экспорт
+
Возврат РаботаСФайлами.ДобавитьФайл(
- ПараметрыФайла,
- АдресФайлаВоВременномХранилище,
- АдресВременногоХранилищаТекста,
- Описание);
-
+ ПараметрыФайла, АдресФайлаВоВременномХранилище, АдресВременногоХранилищаТекста, Описание);
+
КонецФункции
// Получает данные файла и его двоичные данные.
@@ -43,28 +37,39 @@
// * ДвоичныеДанныеПодписи - ДвоичныеДанные
//
Функция ДанныеФайлаИДвоичныеДанные(ФайлИлиВерсияСсылка, АдресПодписи = Неопределено, ИдентификаторФормы = Неопределено) Экспорт
-
+
МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(ФайлИлиВерсияСсылка));
ЭтоСправочникФайлов = ОбщегоНазначения.ЕстьРеквизитОбъекта("ВладелецФайла", МетаданныеОбъекта);
ВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъекта);
+
+ Если ВозможностьХранитьВерсии Тогда
+ Если Не ЭтоСправочникФайлов Тогда
+ РеквизитыФайлаИлиВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлИлиВерсияСсылка,
+ "ТекущаяВерсия, Владелец");
+ Иначе
+ РеквизитыФайлаИлиВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлИлиВерсияСсылка, "ТекущаяВерсия");
+ КонецЕсли;
+ ИначеЕсли Не ЭтоСправочникФайлов Тогда
+ РеквизитыФайлаИлиВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлИлиВерсияСсылка, "Владелец");
+ КонецЕсли;
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
-
- Если ВозможностьХранитьВерсии
- И ЗначениеЗаполнено(ФайлИлиВерсияСсылка.ТекущаяВерсия) Тогда
-
- ВерсияСсылка = ФайлИлиВерсияСсылка.ТекущаяВерсия;
+
+ Если ВозможностьХранитьВерсии И ЗначениеЗаполнено(РеквизитыФайлаИлиВерсии.ТекущаяВерсия) Тогда
+
+ ВерсияСсылка = РеквизитыФайлаИлиВерсии.ТекущаяВерсия;
ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка, ВерсияСсылка, ПараметрыДанныхФайла);
ИначеЕсли ЭтоСправочникФайлов Тогда
ВерсияСсылка = ФайлИлиВерсияСсылка;
- ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка, , ПараметрыДанныхФайла);
+ ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка,, ПараметрыДанныхФайла);
Иначе
ВерсияСсылка = ФайлИлиВерсияСсылка;
- ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка.Владелец, ВерсияСсылка, ПараметрыДанныхФайла);
+ ДанныеФайла = ДанныеФайла(РеквизитыФайлаИлиВерсии.Владелец, ВерсияСсылка, ПараметрыДанныхФайла);
КонецЕсли;
-
+
ДвоичныеДанные = Неопределено;
-
+
ТипХраненияФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВерсияСсылка, "ТипХраненияФайла");
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
ДвоичныеДанные = РаботаСФайламиВТомахСлужебный.ДанныеФайла(ВерсияСсылка);
@@ -77,16 +82,16 @@
Если АдресПодписи <> Неопределено Тогда
ДвоичныеДанныеПодписи = ПолучитьИзВременногоХранилища(АдресПодписи);
КонецЕсли;
-
+
Если ИдентификаторФормы <> Неопределено Тогда
ДвоичныеДанные = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ИдентификаторФормы);
КонецЕсли;
-
- СтруктураВозврата = Новый Структура("ДанныеФайла, ДвоичныеДанные, ДвоичныеДанныеПодписи",
- ДанныеФайла, ДвоичныеДанные, ДвоичныеДанныеПодписи);
-
+
+ СтруктураВозврата = Новый Структура("ДанныеФайла, ДвоичныеДанные, ДвоичныеДанныеПодписи", ДанныеФайла,
+ ДвоичныеДанные, ДвоичныеДанныеПодписи);
+
Возврат СтруктураВозврата;
-
+
КонецФункции
// Создать папку файлов.
@@ -101,14 +106,15 @@
// Возвращаемое значение:
// СправочникСсылка.ПапкиФайлов.
//
-Функция СоздатьПапкуФайлов(Имя, Родитель, Пользователь = Неопределено, ГруппаФайлов = Неопределено, РабочийКаталог = Неопределено) Экспорт
-
+Функция СоздатьПапкуФайлов(Имя, Родитель, Пользователь = Неопределено, ГруппаФайлов = Неопределено,
+ РабочийКаталог = Неопределено) Экспорт
+
Если ЭтоСправочникФайлы(Родитель) Тогда
Папка = Справочники.ПапкиФайлов.СоздатьЭлемент();
Папка.Ответственный = ?(Пользователь <> Неопределено, Пользователь, Пользователи.АвторизованныйПользователь());
Папка.Родитель = Родитель;
Иначе
-
+
Папка = Справочники[РаботаСФайламиСлужебный.ИмяСправочникаХраненияФайлов(Родитель)].СоздатьГруппу();
Если ТипЗнч(Папка.Ссылка) = ТипЗнч(Родитель) Тогда
Папка.Родитель = ?(ГруппаФайлов = Неопределено, Родитель, ГруппаФайлов);
@@ -117,21 +123,21 @@
Папка.Родитель = ГруппаФайлов;
Папка.ВладелецФайла = Родитель;
КонецЕсли;
-
+
Папка.Автор = ?(Пользователь <> Неопределено, Пользователь, Пользователи.АвторизованныйПользователь());
-
+
КонецЕсли;
Папка.Наименование = Имя;
Папка.ДатаСоздания = ТекущаяДатаСеанса();
Папка.Заполнить(Неопределено);
Папка.Записать();
-
+
Если ЗначениеЗаполнено(РабочийКаталог) Тогда
РаботаСФайламиСлужебный.СохранитьРабочийКаталогПапки(Папка.Ссылка, РабочийКаталог);
КонецЕсли;
-
+
Возврат Папка.Ссылка;
-
+
КонецФункции
// Создает файл в ИБ вместе с версией.
@@ -146,41 +152,42 @@
// СправочникСсылка.Файлы - созданный файл.
//
Функция СоздатьФайлСВерсией(ВладелецФайла, СведенияОФайле) Экспорт
-
+
НачатьТранзакцию();
Попытка
-
+
ФайлСсылка = СоздатьФайл(ВладелецФайла, СведенияОФайле);
Версия = Справочники.ВерсииФайлов.ПустаяСсылка();
Если СведенияОФайле.ХранитьВерсии Тогда
Версия = РаботаСФайламиСлужебный.СоздатьВерсию(ФайлСсылка, СведенияОФайле);
КонецЕсли;
РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(ФайлСсылка, Версия, СведенияОФайле.АдресВременногоХранилищаТекста);
-
+
Если Не ЗначениеЗаполнено(СведенияОФайле.Кодировка) Тогда
- СведенияОФайле.Кодировка = РаботаСФайламиСлужебныйКлиентСервер.ОпределитьКодировкуДвоичныхДанных(СведенияОФайле.АдресВременногоХранилищаФайла, СведенияОФайле.РасширениеБезТочки);
+ СведенияОФайле.Кодировка = РаботаСФайламиСлужебныйКлиентСервер.ОпределитьКодировкуДвоичныхДанных(
+ СведенияОФайле.АдресВременногоХранилищаФайла, СведенияОФайле.РасширениеБезТочки);
КонецЕсли;
-
+
Если СведенияОФайле.Кодировка <> Неопределено Тогда
РегистрыСведений.КодировкиФайлов.ЗаписатьКодировкуВерсииФайла(
?(Версия = Справочники.ВерсииФайлов.ПустаяСсылка(), ФайлСсылка, Версия), СведенияОФайле.Кодировка);
КонецЕсли;
-
+
ЕстьПравоСохранения = ПравоДоступа("СохранениеДанныхПользователя", Метаданные);
Если СведенияОФайле.ЗаписатьВИсторию И ЕстьПравоСохранения Тогда
НавигационнаяСсылкаФайла = ПолучитьНавигационнуюСсылку(ФайлСсылка);
ИсторияРаботыПользователя.Добавить(НавигационнаяСсылкаФайла);
КонецЕсли;
-
+
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
-
+
РаботаСФайламиПереопределяемый.ПриСозданииФайла(ФайлСсылка);
Возврат ФайлСсылка;
-
+
КонецФункции
// Освобождает файл.
@@ -190,21 +197,22 @@
// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
//
Процедура ОсвободитьФайл(ДанныеФайла, УникальныйИдентификатор = Неопределено) Экспорт
-
+
НачатьТранзакцию();
Попытка
БлокировкаДанных = Новый БлокировкаДанных;
- ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(ДанныеФайла.Ссылка)).ПолноеИмя());
+ ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(
+ ДанныеФайла.Ссылка)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ДанныеФайла.Ссылка);
БлокировкаДанных.Заблокировать();
-
+
ФайлОбъект = ДанныеФайла.Ссылка.ПолучитьОбъект();
-
- ЗаблокироватьДанныеДляРедактирования(ФайлОбъект.Ссылка, , УникальныйИдентификатор);
+
+ ЗаблокироватьДанныеДляРедактирования(ФайлОбъект.Ссылка,, УникальныйИдентификатор);
ФайлОбъект.Редактирует = Справочники.Пользователи.ПустаяСсылка();
ФайлОбъект.ДатаЗаема = Дата("00010101000000");
ФайлОбъект.Записать();
-
+
РаботаСФайламиПереопределяемый.ПриОсвобожденииФайла(ДанныеФайла, УникальныйИдентификатор);
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор);
ЗафиксироватьТранзакцию();
@@ -213,27 +221,27 @@
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор);
ВызватьИсключение;
КонецПопытки;
-
+
КонецПроцедуры
Функция ОсвободитьФайлы(Знач Файлы) Экспорт
-
+
ВерсииФайлов = Новый Соответствие;
-
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
-
+
Для Каждого ПрисоединенныйФайл Из Файлы Цикл
РаботаСФайламиСлужебный.ОсвободитьФайл(ПрисоединенныйФайл);
- ДанныеФайла = ДанныеФайла(ПрисоединенныйФайл,,ПараметрыДанныхФайла);
+ ДанныеФайла = ДанныеФайла(ПрисоединенныйФайл,, ПараметрыДанныхФайла);
ВерсииФайлов.Вставить(ПрисоединенныйФайл, ДанныеФайла.ТекущаяВерсия);
КонецЦикла;
-
+
Результат = Новый Структура;
Результат.Вставить("КоличествоЗанятыхФайлов", РаботаСФайламиСлужебный.КоличествоЗанятыхФайлов());
Результат.Вставить("ВерсииФайлов", ВерсииФайлов);
Возврат Результат;
-
+
КонецФункции
// Занять файл на редактирование.
@@ -249,58 +257,64 @@
// Булево - успешно ли выполнена операция.
//
Функция ЗанятьФайл(ДанныеФайла, СтрокаОшибки = "", ДополнительныеПараметры = Неопределено) Экспорт
-
+
Если ДополнительныеПараметры = Неопределено Тогда
ДополнительныеПараметры = РаботаСФайламиСлужебныйКлиентСервер.ПараметрыЗанятияФайла();
КонецЕсли;
-
+
СтрокаОшибки = "";
РаботаСФайламиПереопределяемый.ПриПопыткеЗанятьФайл(ДанныеФайла, СтрокаОшибки);
Если Не ПустаяСтрока(СтрокаОшибки) Тогда
Возврат Ложь;
КонецЕсли;
-
+
НачатьТранзакцию();
Попытка
БлокировкаДанных = Новый БлокировкаДанных;
- ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(ДанныеФайла.Ссылка)).ПолноеИмя());
+ ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(
+ ДанныеФайла.Ссылка)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ДанныеФайла.Ссылка);
БлокировкаДанных.Заблокировать();
-
+
ФайлОбъект = ДанныеФайла.Ссылка.ПолучитьОбъект();
-
- ЗаблокироватьДанныеДляРедактирования(ФайлОбъект.Ссылка, , ДополнительныеПараметры.УникальныйИдентификатор);
+
+ ЗаблокироватьДанныеДляРедактирования(ФайлОбъект.Ссылка,, ДополнительныеПараметры.УникальныйИдентификатор);
Если ДополнительныеПараметры.Пользователь = Неопределено Тогда
ФайлОбъект.Редактирует = Пользователи.АвторизованныйПользователь();
Иначе
ФайлОбъект.Редактирует = ДополнительныеПараметры.Пользователь;
КонецЕсли;
Если ТипЗнч(ДополнительныеПараметры.ДополнительныеСвойства) = Тип("Структура") Тогда
- ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ФайлОбъект.ДополнительныеСвойства, ДополнительныеПараметры.ДополнительныеСвойства, Ложь);
+ ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ФайлОбъект.ДополнительныеСвойства,
+ ДополнительныеПараметры.ДополнительныеСвойства, Ложь);
КонецЕсли;
ФайлОбъект.ДатаЗаема = ТекущаяДатаСеанса();
ФайлОбъект.Записать();
-
+
НавигационнаяСсылкаТекущейВерсии = ДанныеФайла.НавигационнаяСсылкаТекущейВерсии;
РабочийКаталогВладельца = ДанныеФайла.РабочийКаталогВладельца;
-
- ДанныеФайла = ДанныеФайла(ДанныеФайла.Ссылка, ?(ДанныеФайла.Версия = ДанныеФайла.Ссылка, Неопределено, ДанныеФайла.Версия));
+
+ ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
+ ПараметрыДанныхФайла.ВызыватьИсключение = ДополнительныеПараметры.ВызыватьИсключение;
+
+ ДанныеФайла = ДанныеФайла(ДанныеФайла.Ссылка, ?(ДанныеФайла.Версия = ДанныеФайла.Ссылка, Неопределено,
+ ДанныеФайла.Версия), ПараметрыДанныхФайла);
ДанныеФайла.НавигационнаяСсылкаТекущейВерсии = НавигационнаяСсылкаТекущейВерсии;
ДанныеФайла.РабочийКаталогВладельца = РабочийКаталогВладельца;
-
+
РаботаСФайламиПереопределяемый.ПриЗахватеФайла(ДанныеФайла, ДополнительныеПараметры.УникальныйИдентификатор);
-
+
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, ДополнительныеПараметры.УникальныйИдентификатор);
ЗафиксироватьТранзакцию();
-
+
Исключение
ОтменитьТранзакцию();
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, ДополнительныеПараметры.УникальныйИдентификатор);
ВызватьИсключение;
КонецПопытки;
-
+
Возврат Истина;
-
+
КонецФункции
// Возвращает массив структур или структуру (в зависимости от переданных данных),
@@ -318,23 +332,23 @@
//
//
Функция ДанныеФайловДляПодписания(Знач Файлы, ИдентификаторФормы = Неопределено) Экспорт
-
+
Если ТипЗнч(Файлы) <> Тип("Массив") Тогда
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы;
- Возврат ДанныеФайла(Файлы,,ПараметрыДанныхФайла);
+ Возврат ДанныеФайла(Файлы,, ПараметрыДанныхФайла);
КонецЕсли;
-
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы;
-
+
ДанныеФайлов = Новый Массив;
Для Каждого Файл Из Файлы Цикл
- ДанныеФайлов.Добавить(ДанныеФайла(Файл,,ПараметрыДанныхФайла));
+ ДанныеФайлов.Добавить(ДанныеФайла(Файл,, ПараметрыДанныхФайла));
КонецЦикла;
-
+
Возврат ДанныеФайлов;
-
+
КонецФункции
// Возвращает структуру, содержащую различные сведения о файле и версии.
@@ -381,112 +395,111 @@
// * ХранитьВерсии - Булево
//
Функция ДанныеФайла(ФайлСсылка, ВерсияСсылка = Неопределено, ПараметрыДанныхФайла = Неопределено) Экспорт
-
+
Если ПараметрыДанныхФайла = Неопределено Тогда
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
КонецЕсли;
-
+
ИдентификаторФормы = ПараметрыДанныхФайла.ИдентификаторФормы;
ВызыватьИсключение = ПараметрыДанныхФайла.ВызыватьИсключение;
ПолучатьСсылкуНаДвоичныеДанные = ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные;
-
+
ЕстьПраваНаОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлСсылка, "Ссылка", Истина);
-
+
Если ЕстьПраваНаОбъект = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ФайлСсылка);
-
+
ФайлОбъект = ФайлСсылка.ПолучитьОбъект();
-
+
ДанныеФайла = Новый Структура;
ДанныеФайла.Вставить("Ссылка", ФайлОбъект.Ссылка);
ДанныеФайла.Вставить("Редактирует", ФайлОбъект.Редактирует);
ДанныеФайла.Вставить("Владелец", ФайлОбъект.ВладелецФайла);
-
+
МетаданныеОбъектаФайла = Метаданные.НайтиПоТипу(ТипЗнч(ФайлСсылка));
-
- Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъектаФайла) И ЗначениеЗаполнено(ФайлСсылка.ТекущаяВерсия) Тогда
+
+ Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъектаФайла) И ЗначениеЗаполнено(
+ ФайлСсылка.ТекущаяВерсия) Тогда
ТекущаяВерсияФайла = ФайлОбъект.ТекущаяВерсия;
Иначе
ТекущаяВерсияФайла = ФайлСсылка;
КонецЕсли;
-
+
Если ВерсияСсылка <> Неопределено Тогда
ДанныеФайла.Вставить("Версия", ВерсияСсылка);
Иначе
ДанныеФайла.Вставить("Версия", ТекущаяВерсияФайла);
КонецЕсли;
-
+
ДанныеФайла.Вставить("ТекущаяВерсия", ТекущаяВерсияФайла);
ДанныеФайла.Вставить("ХранитьВерсии", ФайлОбъект.ХранитьВерсии);
ДанныеФайла.Вставить("ПометкаУдаления", ФайлОбъект.ПометкаУдаления);
ДанныеФайла.Вставить("Зашифрован", ФайлОбъект.Зашифрован);
ДанныеФайла.Вставить("ПодписанЭП", ФайлОбъект.ПодписанЭП);
ДанныеФайла.Вставить("ДатаЗаема", ФайлОбъект.ДатаЗаема);
-
+
Если ВерсияСсылка = Неопределено Тогда
Если ПолучатьСсылкуНаДвоичныеДанные Тогда
- СсылкаНаДвоичныеДанныеФайла =
- ПоместитьВоВременноеХранилище(РаботаСФайлами.ДвоичныеДанныеФайла(ТекущаяВерсияФайла, ВызыватьИсключение), ИдентификаторФормы);
+ СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(РаботаСФайлами.ДвоичныеДанныеФайла(
+ ТекущаяВерсияФайла, ВызыватьИсключение), ИдентификаторФормы);
Иначе
СсылкаНаДвоичныеДанныеФайла = Неопределено;
КонецЕсли;
ДанныеФайла.Вставить("СсылкаНаДвоичныеДанныеФайла", СсылкаНаДвоичныеДанныеФайла);
-
+
ДанныеФайла.Вставить("НавигационнаяСсылка", ПолучитьНавигационнуюСсылку(ФайлСсылка));
ДанныеФайла.Вставить("АвторТекущейВерсии", ФайлСсылка.Изменил);
- ДанныеФайла.Вставить("Кодировка", РегистрыСведений.КодировкиФайлов.ОпределитьКодировкуФайла(ТекущаяВерсияФайла, ФайлОбъект.Расширение));
+ ДанныеФайла.Вставить("Кодировка", РегистрыСведений.КодировкиФайлов.ОпределитьКодировкуФайла(ТекущаяВерсияФайла,
+ ФайлОбъект.Расширение));
Иначе
Если ПолучатьСсылкуНаДвоичныеДанные Тогда
- СсылкаНаДвоичныеДанныеФайла =
- ПоместитьВоВременноеХранилище(РаботаСФайлами.ДвоичныеДанныеФайла(ВерсияСсылка, ВызыватьИсключение), ИдентификаторФормы);
+ СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(РаботаСФайлами.ДвоичныеДанныеФайла(
+ ВерсияСсылка, ВызыватьИсключение), ИдентификаторФормы);
Иначе
СсылкаНаДвоичныеДанныеФайла = Неопределено;
КонецЕсли;
ДанныеФайла.Вставить("СсылкаНаДвоичныеДанныеФайла", СсылкаНаДвоичныеДанныеФайла);
-
+
ДанныеФайла.Вставить("НавигационнаяСсылка", ПолучитьНавигационнуюСсылку(ФайлОбъект.Ссылка));
ДанныеФайла.Вставить("АвторТекущейВерсии", ВерсияСсылка.Автор);
- ДанныеФайла.Вставить("Кодировка", РегистрыСведений.КодировкиФайлов.ОпределитьКодировкуФайла(ВерсияСсылка, ФайлОбъект.Расширение));
+ ДанныеФайла.Вставить("Кодировка", РегистрыСведений.КодировкиФайлов.ОпределитьКодировкуФайла(ВерсияСсылка,
+ ФайлОбъект.Расширение));
КонецЕсли;
-
+
Если ДанныеФайла.Зашифрован Тогда
-
+
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
МассивСертификатовШифрования = МодульЭлектроннаяПодпись.СертификатыШифрования(ДанныеФайла.Ссылка);
Иначе
МассивСертификатовШифрования = Неопределено;
КонецЕсли;
-
+
ДанныеФайла.Вставить("МассивСертификатовШифрования", МассивСертификатовШифрования);
-
+
КонецЕсли;
-
+
ДанныеФайла.Вставить("Служебный", Ложь);
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ФайлОбъект, "Служебный") Тогда
ДанныеФайла.Служебный = ФайлОбъект.Служебный;
КонецЕсли;
-
+
РаботаСФайламиСлужебный.ЗаполнитьДополнительныеДанныеФайла(ДанныеФайла, ФайлОбъект, ВерсияСсылка);
Возврат ДанныеФайла;
-
+
КонецФункции
-Функция ПолучитьДанныеФайла(Знач ПрисоединенныйФайл,
- Знач ИдентификаторФормы = Неопределено,
- Знач ПолучатьСсылкуНаДвоичныеДанные = Истина,
- Знач ДляРедактирования = Ложь) Экспорт
-
- Возврат РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл,
- ИдентификаторФормы,
- ПолучатьСсылкуНаДвоичныеДанные,
- ДляРедактирования);
+Функция ПолучитьДанныеФайла(Знач ПрисоединенныйФайл, Знач ИдентификаторФормы = Неопределено,
+ Знач ПолучатьСсылкуНаДвоичныеДанные = Истина, Знач ДляРедактирования = Ложь) Экспорт
+
+ Возврат РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл, ИдентификаторФормы, ПолучатьСсылкуНаДвоичныеДанные,
+ ДляРедактирования);
КонецФункции
Функция ДанныеФайлаДляПечати(Знач ПрисоединенныйФайл, Знач ИдентификаторФормы = Неопределено) Экспорт
-
+
ДанныеФайла = ПолучитьДанныеФайла(ПрисоединенныйФайл, ИдентификаторФормы);
Расширение = НРег(ДанныеФайла.Расширение);
Если Расширение = "mxl" Тогда
@@ -496,19 +509,19 @@
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ИмяВременногоФайла);
УстановленБезопасныйРежим = БезопасныйРежим() <> Ложь;
-
+
Если ТипЗнч(УстановленБезопасныйРежим) = Тип("Строка") Тогда
УстановленБезопасныйРежим = Истина;
КонецЕсли;
-
+
Если Не УстановленБезопасныйРежим Тогда
УдалитьФайлы(ИмяВременногоФайла);
КонецЕсли;
ДанныеФайла.Вставить("ТабличныйДокумент", ТабличныйДокумент);
КонецЕсли;
-
+
Возврат ДанныеФайла;
-
+
КонецФункции
// Возвращает сведения о файле и версии.
@@ -525,34 +538,36 @@
//
Функция ДанныеФайлаДляОткрытия(ФайлСсылка, ВерсияСсылка, ИдентификаторФормы = Неопределено,
РабочийКаталогВладельца = Неопределено, ПредыдущийАдресФайла = Неопределено) Экспорт
-
+
ЕстьПраваНаОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлСсылка, "Ссылка", Истина);
Если ЕстьПраваНаОбъект = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
-
+
Если ПредыдущийАдресФайла <> Неопределено Тогда
- Если НЕ ПустаяСтрока(ПредыдущийАдресФайла) И ЭтоАдресВременногоХранилища(ПредыдущийАдресФайла) Тогда
+ Если Не ПустаяСтрока(ПредыдущийАдресФайла) И ЭтоАдресВременногоХранилища(ПредыдущийАдресФайла) Тогда
УдалитьИзВременногоХранилища(ПредыдущийАдресФайла);
КонецЕсли;
КонецЕсли;
-
- Если Не ЗначениеЗаполнено(ВерсияСсылка)
- И ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", Метаданные.НайтиПоТипу(ТипЗнч(ФайлСсылка)))
- И ЗначениеЗаполнено(ФайлСсылка.ТекущаяВерсия) Тогда
-
- ВерсияСсылка = ФайлСсылка.ТекущаяВерсия;
+
+ Если Не ЗначениеЗаполнено(ВерсияСсылка) И ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия",
+ Метаданные.НайтиПоТипу(ТипЗнч(ФайлСсылка))) Тогда
+
+ ТекущаяВерсия = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлСсылка, "ТекущаяВерсия");
+ Если ЗначениеЗаполнено(ТекущаяВерсия) Тогда
+ ВерсияСсылка = ТекущаяВерсия;
+ КонецЕсли;
КонецЕсли;
-
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы;
-
+
ДанныеФайла = ДанныеФайла(ФайлСсылка, ВерсияСсылка, ПараметрыДанныхФайла);
Если РабочийКаталогВладельца = Неопределено Тогда
РабочийКаталогВладельца = РабочийКаталогПапки(ДанныеФайла.Владелец);
КонецЕсли;
ДанныеФайла.Вставить("РабочийКаталогВладельца", РабочийКаталогВладельца);
-
+
Если ДанныеФайла.РабочийКаталогВладельца <> "" Тогда
ИмяФайла = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(
ДанныеФайла.ПолноеНаименованиеВерсии, ДанныеФайла.Расширение);
@@ -560,84 +575,87 @@
ПолноеИмяФайлаВРабочемКаталоге = РабочийКаталогВладельца + ИмяФайла;
ДанныеФайла.Вставить("ПолноеИмяФайлаВРабочемКаталоге", ПолноеИмяФайлаВРабочемКаталоге);
КонецЕсли;
-
+
СведенияОВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДанныеФайла.Версия,
"ТипХраненияФайла, Том, ПутьКФайлу");
-
- Если ДанныеФайла.Версия <> Неопределено
- И СведенияОВерсии.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
-
+
+ Если ДанныеФайла.Версия <> Неопределено И СведенияОВерсии.ТипХраненияФайла
+ = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
+
ДвоичныеДанные = РаботаСФайламиВТомахСлужебный.ДанныеФайла(ДанныеФайла.Версия);
ДанныеФайла.НавигационнаяСсылкаТекущейВерсии = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ИдентификаторФормы);
-
+
КонецЕсли;
-
+
ПредыдущийАдресФайла = ДанныеФайла.НавигационнаяСсылкаТекущейВерсии;
Возврат ДанныеФайла;
-
+
КонецФункции
Функция ДанныеОбновленияПоляИзображения(ФайлСсылка, ПараметрыПолученияДанных) Экспорт
-
- ДанныеФайла = ?(ЗначениеЗаполнено(ФайлСсылка), ПолучитьДанныеФайла(ФайлСсылка, ПараметрыПолученияДанных), Неопределено);
-
+
+ ДанныеФайла = ?(ЗначениеЗаполнено(ФайлСсылка), ПолучитьДанныеФайла(ФайлСсылка, ПараметрыПолученияДанных),
+ Неопределено);
+
ДанныеОбновления = Новый Структура;
- ДанныеОбновления.Вставить("ДанныеФайла", ДанныеФайла);
- ДанныеОбновления.Вставить("ЦветТекста", ЦветаСтиля.ЦветТекстаНевыбраннойКартинки);
+ ДанныеОбновления.Вставить("ДанныеФайла", ДанныеФайла);
+ ДанныеОбновления.Вставить("ЦветТекста", ЦветаСтиля.ЦветТекстаНевыбраннойКартинки);
ДанныеОбновления.Вставить("ФайлПоврежден", Ложь);
-
- Если ДанныеФайла <> Неопределено
- И ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла) = Неопределено Тогда
-
+
+ Если ДанныеФайла <> Неопределено И ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла)
+ = Неопределено Тогда
+
ДанныеОбновления.ФайлПоврежден = Истина;
ДанныеОбновления.ЦветТекста = ЦветаСтиля.ПоясняющийОшибкуТекст;
-
+
КонецЕсли;
-
+
Возврат ДанныеОбновления;
-
+
КонецФункции
-Процедура ОпределитьФормуПрисоединенногоФайла(Источник, ВидФормы, Параметры,
- ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Экспорт
-
+Процедура ОпределитьФормуПрисоединенногоФайла(Источник, ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация,
+ СтандартнаяОбработка) Экспорт
+
ЭтоФормаВерсии = Ложь;
-
+
Если Источник <> Неопределено Тогда
- ЭтоФормаВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("РодительскаяВерсия", Метаданные.НайтиПоТипу(ТипЗнч(Источник)));
+ ЭтоФормаВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("РодительскаяВерсия", Метаданные.НайтиПоТипу(ТипЗнч(
+ Источник)));
КонецЕсли;
-
+
Если ВидФормы = "ФормаГруппы" Тогда
ВыбраннаяФорма = "Обработка.РаботаСФайлами.Форма.ГруппаФайлов";
СтандартнаяОбработка = Ложь;
ИначеЕсли ВидФормы = "ФормаОбъекта" Тогда
-
+
Если Не ЭтоФормаВерсии Тогда
ВыбраннаяФорма = "Обработка.РаботаСФайлами.Форма.ПрисоединенныйФайл";
СтандартнаяОбработка = Ложь;
КонецЕсли;
-
+
ИначеЕсли ВидФормы = "ФормаСписка" Тогда
-
+
Если Не ЭтоФормаВерсии Тогда
ВыбраннаяФорма = "Обработка.РаботаСФайлами.Форма.ПрисоединенныеФайлы";
СтандартнаяОбработка = Ложь;
КонецЕсли;
-
+
КонецЕсли;
-
+
КонецПроцедуры
-Функция КоличествоПрисоединенныхФайлов(ВладелецФайлов, ВозвращатьДанныеФайлов = Ложь, РеквизитРазмещения = Неопределено) Экспорт
-
+Функция КоличествоПрисоединенныхФайлов(ВладелецФайлов, ВозвращатьДанныеФайлов = Ложь,
+ РеквизитРазмещения = Неопределено) Экспорт
+
ФайлыВладельца = Новый Структура;
ФайлыВладельца.Вставить("КоличествоФайлов", 0);
ФайлыВладельца.Вставить("ДанныеФайла", Неопределено);
-
+
ИмяСправочникаХранения = РаботаСФайламиСлужебный.ИмяСправочникаХраненияФайлов(ВладелецФайлов);
Если ЗначениеЗаполнено(ИмяСправочникаХранения) Тогда
-
- ТекстЗапроса =
+
+ ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| СправочникХраненияФайлов.Ссылка КАК Файл
|ИЗ
@@ -648,71 +666,69 @@
| И &ЭтоГруппа = ЛОЖЬ
| И &Служебный = ЛОЖЬ";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяСправочника", "Справочник." + ИмяСправочникаХранения);
-
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Служебный",
- ?(РаботаСФайламиСлужебный.ЕстьРеквизитСлужебный(ИмяСправочникаХранения),
- "СправочникХраненияФайлов.Служебный", "ЛОЖЬ"));
-
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ЭтоГруппа",
- ?(Метаданные.Справочники[ИмяСправочникаХранения].Иерархический,
- "СправочникХраненияФайлов.ЭтоГруппа", "ЛОЖЬ"));
-
+
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Служебный", ?(РаботаСФайламиСлужебный.ЕстьРеквизитСлужебный(
+ ИмяСправочникаХранения), "СправочникХраненияФайлов.Служебный", "ЛОЖЬ"));
+
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ЭтоГруппа", ?(
+ Метаданные.Справочники[ИмяСправочникаХранения].Иерархический, "СправочникХраненияФайлов.ЭтоГруппа", "ЛОЖЬ"));
+
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("ВладелецФайла", ВладелецФайлов);
ТаблицаФайлов = Запрос.Выполнить().Выгрузить();
КоличествоФайлов = ТаблицаФайлов.Количество();
-
+
ФайлыВладельца.КоличествоФайлов = КоличествоФайлов;
-
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
ПараметрыДанныхФайла.ВызыватьИсключение = Ложь;
-
+
Если ВозвращатьДанныеФайлов И КоличествоФайлов > 0 Тогда
Если РеквизитРазмещения = Неопределено Или Не ЗначениеЗаполнено(ВладелецФайлов[РеквизитРазмещения]) Тогда
- ФайлыВладельца.ДанныеФайла = ДанныеФайла(ТаблицаФайлов[0].Файл, , ПараметрыДанныхФайла);
+ ФайлыВладельца.ДанныеФайла = ДанныеФайла(ТаблицаФайлов[0].Файл,, ПараметрыДанныхФайла);
Иначе
- ФайлыВладельца.ДанныеФайла = ДанныеФайла(ВладелецФайлов[РеквизитРазмещения], , ПараметрыДанныхФайла);
+ ФайлыВладельца.ДанныеФайла = ДанныеФайла(ВладелецФайлов[РеквизитРазмещения],, ПараметрыДанныхФайла);
КонецЕсли;
КонецЕсли;
-
+
КонецЕсли;
-
+
Возврат ?(ВозвращатьДанныеФайлов, ФайлыВладельца, ФайлыВладельца.КоличествоФайлов);
-
+
КонецФункции
Функция ЭтоЭлементРаботаСФайлами(ЭлементДанных) Экспорт
- Возврат РаботаСФайламиСлужебный.ЭтоЭлементРаботаСФайлами(ЭлементДанных);
+ Возврат РаботаСФайламиСлужебный.ЭтоЭлементРаботаСФайлами(ЭлементДанных);
КонецФункции
Функция НовыйТабличныйДокументНаСервере(КоличествоСтраниц) Экспорт
ТабличныйДокумент =Новый ТабличныйДокумент;
- ПустаяОбласть = ТабличныйДокумент.ПолучитьОбласть(1,1,1,1);
+ ПустаяОбласть = ТабличныйДокумент.ПолучитьОбласть(1, 1, 1, 1);
Для ИндексОбъекта = 1 По КоличествоСтраниц Цикл
ТабличныйДокумент.Вывести(ПустаяОбласть);
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЦикла;
Возврат ТабличныйДокумент;
-КонецФункции
+КонецФункции
Функция КонвертироватьНастройкиСканирования(ВходящиеНастройки) Экспорт
НастройкиСканирования = Новый Структура("Разрешение, Цветность, Поворот, РазмерБумаги, СжатиеTIFF");
Результат = Новый Структура("Разрешение, Цветность, Поворот, РазмерБумаги, СжатиеTIFF");
-
+
ЗаполнитьЗначенияСвойств(НастройкиСканирования, ВходящиеНастройки);
-
+
Результат.Разрешение = -1;
Если НастройкиСканирования.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi200 Тогда
- Результат.Разрешение = 200;
- ИначеЕсли НастройкиСканирования.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi300 Тогда
+ Результат.Разрешение = 200;
+ ИначеЕсли НастройкиСканирования.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi300 Тогда
Результат.Разрешение = 300;
- ИначеЕсли НастройкиСканирования.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi600 Тогда
+ ИначеЕсли НастройкиСканирования.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi600 Тогда
Результат.Разрешение = 600;
- ИначеЕсли НастройкиСканирования.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi1200 Тогда
+ ИначеЕсли НастройкиСканирования.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi1200 Тогда
Результат.Разрешение = 1200;
КонецЕсли;
-
+
Результат.Цветность = -1;
Если НастройкиСканирования.Цветность = Перечисления.ЦветностиИзображения.Монохромное Тогда
Результат.Цветность = 0;
@@ -721,18 +737,18 @@
ИначеЕсли НастройкиСканирования.Цветность = Перечисления.ЦветностиИзображения.Цветное Тогда
Результат.Цветность = 2;
КонецЕсли;
-
+
Результат.Поворот = 0;
Если НастройкиСканирования.Поворот = Перечисления.СпособыПоворотаИзображения.НетПоворота Тогда
Результат.Поворот = 0;
- ИначеЕсли НастройкиСканирования.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа90 Тогда
+ ИначеЕсли НастройкиСканирования.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа90 Тогда
Результат.Поворот = 90;
- ИначеЕсли НастройкиСканирования.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа180 Тогда
+ ИначеЕсли НастройкиСканирования.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа180 Тогда
Результат.Поворот = 180;
- ИначеЕсли НастройкиСканирования.Поворот = Перечисления.СпособыПоворотаИзображения.ВлевоНа90 Тогда
+ ИначеЕсли НастройкиСканирования.Поворот = Перечисления.СпособыПоворотаИзображения.ВлевоНа90 Тогда
Результат.Поворот = 270;
КонецЕсли;
-
+
Результат.РазмерБумаги = 0;
Если НастройкиСканирования.РазмерБумаги = Перечисления.РазмерыБумаги.НеЗадано Тогда
Результат.РазмерБумаги = 0;
@@ -761,7 +777,7 @@
ИначеЕсли НастройкиСканирования.РазмерБумаги = Перечисления.РазмерыБумаги.USExecutive Тогда
Результат.РазмерБумаги = 10;
КонецЕсли;
-
+
Результат.СжатиеTIFF = 6; // БезСжатия
Если НастройкиСканирования.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.LZW Тогда
Результат.СжатиеTIFF = 2;
@@ -774,16 +790,16 @@
ИначеЕсли НастройкиСканирования.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.CCITT4 Тогда
Результат.СжатиеTIFF = 4;
КонецЕсли;
-
- Возврат Результат;
-
+
+ Возврат Результат;
+
КонецФункции
Процедура ЗаполнитьНастройкиСканирования(ПараметрыСканирования, ИдентификаторКлиента) Экспорт
-
+
НастройкиСканированияПользователя = РаботаСФайлами.ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента);
ЗаполнитьЗначенияСвойств(ПараметрыСканирования, НастройкиСканированияПользователя);
-
+
КонецПроцедуры
Функция ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента) Экспорт
@@ -806,31 +822,32 @@
// - Неопределено - рабочий каталог будет установлен для текущего пользователя.
//
Процедура УстановитьРабочийКаталогПользователя(ИмяКаталога, Пользователь = Неопределено) Экспорт
-
+
ИмяПользователя = Неопределено;
-
+
УстановитьПривилегированныйРежим(Истина);
Если Пользователь <> Неопределено Тогда
- ИдентификаторПользователяИБ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователь, "ИдентификаторПользователяИБ");
+ ИдентификаторПользователяИБ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователь,
+ "ИдентификаторПользователяИБ");
СвойстваПользователяИБ = Пользователи.СвойстваПользователяИБ(ИдентификаторПользователяИБ);
ИмяПользователя = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СвойстваПользователяИБ, "Имя");
КонецЕсли;
-
+
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить(
"ЛокальныйКэшФайлов", "ПутьКЛокальномуКэшуФайлов", ИмяКаталога,, ИмяПользователя, Истина);
-
+
КонецПроцедуры
Функция ЭтоСправочникФайлы(ВладелецФайлов) Экспорт
-
+
Возврат РаботаСФайламиСлужебный.ИмяСправочникаХраненияФайлов(ВладелецФайлов) = "Файлы";
-
+
КонецФункции
Функция ИмяСправочникаХраненияФайлов(ВладелецФайлов) Экспорт
-
+
Возврат РаботаСФайламиСлужебный.ИмяСправочникаХраненияФайлов(ВладелецФайлов);
-
+
КонецФункции
// Создает файл в ИБ.
@@ -845,14 +862,15 @@
// СправочникСсылка.Файлы - созданный файл.
//
Функция СоздатьФайл(Знач Владелец, Знач СведенияОФайле)
-
+
МенеджерСправочникаФайлов = Справочники[СведенияОФайле.ИмяСправочникаХранилищаФайлов]; // СправочникМенеджер
-
+
Файл = МенеджерСправочникаФайлов.СоздатьЭлемент(); // ОпределяемыйТип.ПрисоединенныйФайлОбъект
Файл.ВладелецФайла = Владелец;
Файл.Наименование = СведенияОФайле.ИмяБезРасширения;
- Файл.Автор = ?(СведенияОФайле.Автор <> Неопределено, СведенияОФайле.Автор, Пользователи.АвторизованныйПользователь());
- Файл.Изменил = Файл.Автор;
+ Файл.Автор = ?(СведенияОФайле.Автор <> Неопределено, СведенияОФайле.Автор,
+ Пользователи.АвторизованныйПользователь());
+ Файл.Изменил = Файл.Автор;
Файл.ДатаСоздания = ТекущаяДатаСеанса();
Файл.Описание = СведенияОФайле.Комментарий;
Файл.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Неопределено);
@@ -860,28 +878,30 @@
Файл.Расширение = СведенияОФайле.РасширениеБезТочки;
Файл.Размер = СведенияОФайле.Размер;
Файл.ДатаМодификацииУниверсальная = СведенияОФайле.ВремяИзмененияУниверсальное;
-
+
ИспользованиеПолнотекстовогоПоиска = Метаданные.СвойстваОбъектов.ИспользованиеПолнотекстовогоПоиска.Использовать;
- Если Метаданные.Справочники[СведенияОФайле.ИмяСправочникаХранилищаФайлов].ПолнотекстовыйПоиск = ИспользованиеПолнотекстовогоПоиска Тогда
-
+ Если Метаданные.Справочники[СведенияОФайле.ИмяСправочникаХранилищаФайлов].ПолнотекстовыйПоиск
+ = ИспользованиеПолнотекстовогоПоиска Тогда
+
Если ТипЗнч(СведенияОФайле.АдресВременногоХранилищаТекста) = Тип("ХранилищеЗначения") Тогда
// При создании Файла из шаблона хранилище значения копируется напрямую.
Файл.ТекстХранилище = СведенияОФайле.АдресВременногоХранилищаТекста;
ИначеЕсли Не ПустаяСтрока(СведенияОФайле.АдресВременногоХранилищаТекста) Тогда
- РезультатИзвлеченияТекста = РаботаСФайламиСлужебный.ИзвлечьТекст(СведенияОФайле.АдресВременногоХранилищаТекста);
+ РезультатИзвлеченияТекста = РаботаСФайламиСлужебный.ИзвлечьТекст(
+ СведенияОФайле.АдресВременногоХранилищаТекста);
Файл.ТекстХранилище = РезультатИзвлеченияТекста.ТекстХранилище;
Файл.СтатусИзвлеченияТекста = РезультатИзвлеченияТекста.СтатусИзвлеченияТекста;
КонецЕсли;
-
+
Иначе
Файл.ТекстХранилище = Новый ХранилищеЗначения("");
Файл.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
КонецЕсли;
-
+
Файл.Заполнить(Неопределено);
Файл.Записать();
Возврат Файл.Ссылка;
-
+
КонецФункции
// Обновляет или создает версию Файла и возвращает ссылку на обновленную версию (или Ложь, если файл бинарно не
@@ -897,35 +917,34 @@
// Возвращаемое значение:
// СправочникСсылка.ВерсииФайлов - созданная или измененная версия; Неопределено, если файл бинарно не был изменен.
//
-Функция ОбновитьОбъектФайла(ФайлСсылка, СведенияОФайле, ВерсияСсылка = Неопределено,
+Функция ОбновитьОбъектФайла(ФайлСсылка, СведенияОФайле, ВерсияСсылка = Неопределено,
УникальныйИдентификаторФормы = Неопределено, Пользователь = Неопределено)
-
+
ЕстьПравоСохранения = ПравоДоступа("СохранениеДанныхПользователя", Метаданные);
ЕстьПраваНаОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлСсылка, "Ссылка", Истина);
Если ЕстьПраваНаОбъект = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
-
+
УстановитьПривилегированныйРежим(Истина);
-
+
ВремяИзмененияУниверсальное = СведенияОФайле.ВремяИзмененияУниверсальное;
- Если НЕ ЗначениеЗаполнено(ВремяИзмененияУниверсальное)
- ИЛИ ВремяИзмененияУниверсальное > ТекущаяУниверсальнаяДата() Тогда
+ Если Не ЗначениеЗаполнено(ВремяИзмененияУниверсальное) Или ВремяИзмененияУниверсальное > ТекущаяУниверсальнаяДата() Тогда
ВремяИзмененияУниверсальное = ТекущаяУниверсальнаяДата();
КонецЕсли;
-
+
ВремяИзменения = СведенияОФайле.ВремяИзменения;
- Если НЕ ЗначениеЗаполнено(ВремяИзменения)
- ИЛИ УниверсальноеВремя(ВремяИзменения) > ВремяИзмененияУниверсальное Тогда
+ Если Не ЗначениеЗаполнено(ВремяИзменения) Или УниверсальноеВремя(ВремяИзменения) > ВремяИзмененияУниверсальное Тогда
ВремяИзменения = ТекущаяДатаСеанса();
КонецЕсли;
-
+
РаботаСФайламиСлужебный.ПроверитьРасширениеФайлаДляЗагрузки(СведенияОФайле.РасширениеБезТочки);
-
+
ДвоичныеДанные = Неопределено;
МетаданныеСправочника = Метаданные.НайтиПоТипу(ТипЗнч(ФайлСсылка));
- СправочникПоддерживаетВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеСправочника);
-
+ СправочникПоддерживаетВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия",
+ МетаданныеСправочника);
+
ВерсияСсылкаДляСравненияРазмера = ВерсияСсылка;
Если ВерсияСсылка <> Неопределено Тогда
ВерсияСсылкаДляСравненияРазмера = ВерсияСсылка;
@@ -934,56 +953,57 @@
Иначе
ВерсияСсылкаДляСравненияРазмера = ФайлСсылка;
КонецЕсли;
-
+
КодировкаПредВерсии = РегистрыСведений.КодировкиФайлов.КодировкаВерсииФайла(ВерсияСсылкаДляСравненияРазмера);
-
+
СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВерсияСсылкаДляСравненияРазмера,
"Размер, ТипХраненияФайла");
-
+
ХранилищеФайла = Неопределено;
Если СведенияОФайле.Размер = СтруктураРеквизитов.Размер Тогда
-
+
Если СтруктураРеквизитов.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
- ДвоичныеДанныеПредыдущейВерсии = РаботаСФайламиВТомахСлужебный.ДанныеФайла(ВерсияСсылкаДляСравненияРазмера);
+ ДвоичныеДанныеПредыдущейВерсии = РаботаСФайламиВТомахСлужебный.ДанныеФайла(ВерсияСсылкаДляСравненияРазмера,
+ Ложь);
Иначе
ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(ВерсияСсылкаДляСравненияРазмера);
ДвоичныеДанныеПредыдущейВерсии = ХранилищеФайла.Получить();
КонецЕсли;
-
+
ДвоичныеДанные = РаботаСФайламиСлужебный.ДвоичныеДанныеИзСведенийОФайле(СведенияОФайле);
Если ДвоичныеДанныеПредыдущейВерсии = ДвоичныеДанные Тогда
Возврат Неопределено; // Файл бинарно не изменен - вернем Ложь.
КонецЕсли;
-
+
КонецЕсли;
-
+
СсылкаНаВерсию = ?(ВерсияСсылка = Неопределено, ФайлСсылка, ВерсияСсылка);
-
+
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(СсылкаНаВерсию.Метаданные().ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", СсылкаНаВерсию);
-
+
Расширение = ОбщегоНазначенияКлиентСервер.РасширениеБезТочки(СведенияОФайле.РасширениеБезТочки);
ТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайла(СведенияОФайле.Размер, Расширение);
МенеджерФайла = РаботаСФайламиСлужебный.МенеджерФайловПоТипу(ТипХраненияФайла);
Контекст = РаботаСФайламиСлужебный.КонтекстОбновленияФайла(СсылкаНаВерсию,
- СведенияОФайле.АдресВременногоХранилищаФайла, , ТипХраненияФайла);
+ СведенияОФайле.АдресВременногоХранилищаФайла,, ТипХраненияФайла);
МенеджерФайла.ПередОбновлениемДанныхФайла(Контекст);
-
+
НачатьТранзакцию();
Попытка
-
+
Блокировка.Заблокировать();
-
+
Версия = СсылкаНаВерсию.ПолучитьОбъект();
- ЗаблокироватьДанныеДляРедактирования(СсылкаНаВерсию, , УникальныйИдентификаторФормы);
-
+ ЗаблокироватьДанныеДляРедактирования(СсылкаНаВерсию,, УникальныйИдентификаторФормы);
+
Версия.ТипХраненияФайла = ТипХраненияФайла;
Если Версия.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
СвойстваВерсии = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме();
ЗаполнитьЗначенияСвойств(СвойстваВерсии, Версия);
КонецЕсли;
-
+
Если Пользователь = Неопределено Тогда
Версия.Изменил = Пользователи.АвторизованныйПользователь();
Иначе
@@ -994,28 +1014,28 @@
Версия.Наименование = СведенияОФайле.ИмяБезРасширения;
Версия.Описание = СведенияОФайле.Комментарий;
Версия.Расширение = Расширение;
-
+
Если ДвоичныеДанные = Неопределено Тогда
ДвоичныеДанные = РаботаСФайламиСлужебный.ДвоичныеДанныеИзСведенийОФайле(СведенияОФайле);
КонецЕсли;
-
+
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
-
+
ХранилищеФайла = Новый ХранилищеЗначения(ДвоичныеДанные);
-
+
Если Версия.Размер = 0 Тогда
ДвоичныеДанныеФайла = ХранилищеФайла.Получить(); // ДвоичныеДанные
Версия.Размер = ДвоичныеДанныеФайла.Размер();
-
+
РаботаСФайламиСлужебный.ПроверитьРазмерФайлаДляЗагрузки(Версия);
КонецЕсли;
// очистим поля
Версия.ПутьКФайлу = "";
Версия.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка();
-
+
Иначе // хранение в томе
-
+
Если Версия.Размер = 0 Тогда
Версия.Размер = ДвоичныеДанные.Размер();
РаботаСФайламиСлужебный.ПроверитьРазмерФайлаДляЗагрузки(Версия);
@@ -1023,69 +1043,72 @@
Версия.ФайлХранилище = Новый ХранилищеЗначения(Неопределено);
РаботаСФайламиВТомахСлужебный.ЗаполнитьСведенияОФайле(Версия, ДвоичныеДанные);
КонецЕсли;
-
+
ИспользованиеПолнотекстовогоПоиска = Метаданные.СвойстваОбъектов.ИспользованиеПолнотекстовогоПоиска.Использовать;
Если МетаданныеСправочника.ПолнотекстовыйПоиск = ИспользованиеПолнотекстовогоПоиска Тогда
-
+
Если СведенияОФайле.АдресВременногоХранилищаТекста <> Неопределено Тогда
Если РаботаСФайламиСлужебный.ИзвлекатьТекстыФайловНаСервере() Тогда
Версия.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
Иначе
- РезультатИзвлеченияТекста = РаботаСФайламиСлужебный.ИзвлечьТекст(СведенияОФайле.АдресВременногоХранилищаТекста);
+ РезультатИзвлеченияТекста = РаботаСФайламиСлужебный.ИзвлечьТекст(
+ СведенияОФайле.АдресВременногоХранилищаТекста);
Версия.ТекстХранилище = РезультатИзвлеченияТекста.ТекстХранилище;
Версия.СтатусИзвлеченияТекста = РезультатИзвлеченияТекста.СтатусИзвлеченияТекста;
КонецЕсли;
Иначе
Версия.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
КонецЕсли;
-
+
Если СведенияОФайле.НовыйСтатусИзвлеченияТекста <> Неопределено Тогда
Версия.СтатусИзвлеченияТекста = СведенияОФайле.НовыйСтатусИзвлеченияТекста;
КонецЕсли;
-
+
Иначе
Версия.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
КонецЕсли;
-
+
Если Версия.Размер = 0 Тогда
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
ДвоичныеДанныеФайла = ХранилищеФайла.Получить(); // ДвоичныеДанные
Версия.Размер = ДвоичныеДанныеФайла.Размер();
КонецЕсли;
КонецЕсли;
-
+
Версия.Заполнить(Неопределено);
-
+
МенеджерФайла.ПередЗаписьюДанныхФайла(Контекст, Версия);
Версия.Записать();
МенеджерФайла.ПриОбновленииДанныхФайла(Контекст, Версия.Ссылка);
-
+
РегистрыСведений.КодировкиФайлов.ЗаписатьКодировкуВерсииФайла(Версия.Ссылка, КодировкаПредВерсии);
Если СведенияОФайле.ХранитьВерсии Тогда
- РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(ФайлСсылка, Версия.Ссылка, СведенияОФайле.АдресВременногоХранилищаТекста, УникальныйИдентификаторФормы);
+ РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(ФайлСсылка, Версия.Ссылка,
+ СведенияОФайле.АдресВременногоХранилищаТекста, УникальныйИдентификаторФормы);
Иначе
- РаботаСФайламиСлужебный.ОбновитьТекстВФайле(ФайлСсылка, СведенияОФайле.АдресВременногоХранилищаТекста, УникальныйИдентификаторФормы);
+ РаботаСФайламиСлужебный.ОбновитьТекстВФайле(ФайлСсылка, СведенияОФайле.АдресВременногоХранилищаТекста,
+ УникальныйИдентификаторФормы);
КонецЕсли;
РазблокироватьДанныеДляРедактирования(СсылкаНаВерсию, УникальныйИдентификаторФормы);
ЗафиксироватьТранзакцию();
-
+
Исключение
ОтменитьТранзакцию();
РазблокироватьДанныеДляРедактирования(СсылкаНаВерсию, УникальныйИдентификаторФормы);
МенеджерФайла.ПослеОбновленияДанныхФайла(Контекст, Ложь);
ВызватьИсключение;
КонецПопытки;
-
+
МенеджерФайла.ПослеОбновленияДанныхФайла(Контекст, Истина);
-
+
Если ЕстьПравоСохранения Тогда
НавигационнаяСсылкаФайла = ПолучитьНавигационнуюСсылку(ФайлСсылка);
ИсторияРаботыПользователя.Добавить(НавигационнаяСсылкаФайла);
КонецЕсли;
-
+
Возврат Версия.Ссылка;
-
+
КонецФункции
// Обновляет или создает версию файла и снимает блокировку.
@@ -1103,43 +1126,44 @@
// Возвращаемое значение:
// Булево - Истина, если создание версии выполнено (и файл бинарно изменен).
//
-Функция СохранитьИзмененияИОсвободитьФайл(ДанныеФайла, СведенияОФайле,
- НеМенятьЗаписьВРабочемКаталоге, ПолныйПутьКФайлу, РабочийКаталогПользователя,
- УникальныйИдентификаторФормы = Неопределено) Экспорт
-
+Функция СохранитьИзмененияИОсвободитьФайл(ДанныеФайла, СведенияОФайле, НеМенятьЗаписьВРабочемКаталоге,
+ ПолныйПутьКФайлу, РабочийКаталогПользователя, УникальныйИдентификаторФормы = Неопределено) Экспорт
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
-
- ДанныеФайлаТекущие = ДанныеФайла(ДанныеФайла.Ссылка,,ПараметрыДанныхФайла);
- Если Не ДанныеФайлаТекущие.ФайлРедактируетТекущийПользователь И НЕ ФайлСинхронизируетсяОблачнымСервисом(ДанныеФайла.Ссылка) Тогда
+
+ ДанныеФайлаТекущие = ДанныеФайла(ДанныеФайла.Ссылка,, ПараметрыДанныхФайла);
+ Если Не ДанныеФайлаТекущие.ФайлРедактируетТекущийПользователь И Не ФайлСинхронизируетсяОблачнымСервисом(
+ ДанныеФайла.Ссылка) Тогда
ВызватьИсключение НСтр("ru = 'Файл не занят текущим пользователем'");
КонецЕсли;
-
+
ПредыдущаяВерсия = ДанныеФайла.ТекущаяВерсия;
СведенияОФайле.Зашифрован = ДанныеФайла.Зашифрован;
СведенияОФайле.Кодировка = ДанныеФайла.Кодировка;
-
+
Если ТипЗнч(ДанныеФайла.Ссылка) = Тип("СправочникСсылка.Файлы") Тогда
- НоваяВерсия = РаботаСФайламиСлужебный.ОбновитьВерсиюФайла(ДанныеФайла.Ссылка, СведенияОФайле,, УникальныйИдентификаторФормы);
+ НоваяВерсия = РаботаСФайламиСлужебный.ОбновитьВерсиюФайла(ДанныеФайла.Ссылка, СведенияОФайле,,
+ УникальныйИдентификаторФормы);
Иначе
НоваяВерсия = ОбновитьОбъектФайла(ДанныеФайла.Ссылка, СведенияОФайле,, УникальныйИдентификаторФормы);
КонецЕсли;
-
+
ОсвободитьФайл(ДанныеФайла, УникальныйИдентификаторФормы);
-
+
Если НоваяВерсия = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
-
+
ДанныеФайла.ТекущаяВерсия = НоваяВерсия;
-
- Если НЕ ОбщегоНазначения.ЭтоВебКлиент() И Не НеМенятьЗаписьВРабочемКаталоге Тогда
- УдалитьВерсиюИЗанестиИнформациюФайлаВРегистр(ПредыдущаяВерсия, НоваяВерсия,
- ПолныйПутьКФайлу, РабочийКаталогПользователя, ДанныеФайла.РабочийКаталогВладельца <> "");
+
+ Если Не ОбщегоНазначения.ЭтоВебКлиент() И Не НеМенятьЗаписьВРабочемКаталоге Тогда
+ УдалитьВерсиюИЗанестиИнформациюФайлаВРегистр(ПредыдущаяВерсия, НоваяВерсия, ПолныйПутьКФайлу,
+ РабочийКаталогПользователя, ДанныеФайла.РабочийКаталогВладельца <> "");
КонецЕсли;
-
+
Возврат Истина;
-
+
КонецФункции
// Получает данные файла, затем обновляет или создает версию Файла и снимает блокировку.
@@ -1157,17 +1181,17 @@
// * Успешно - Булево - Истина, если создание версии выполнено (и файл бинарно изменен).
// * ДанныеФайла - Структура - структура с данными файла.
//
-Функция СохранитьИзмененияИОсвободитьФайлПоСсылке(ФайлСсылка, СведенияОФайле,
- ПолныйПутьКФайлу, РабочийКаталогПользователя, УникальныйИдентификаторФормы = Неопределено) Экспорт
-
+Функция СохранитьИзмененияИОсвободитьФайлПоСсылке(ФайлСсылка, СведенияОФайле, ПолныйПутьКФайлу,
+ РабочийКаталогПользователя, УникальныйИдентификаторФормы = Неопределено) Экспорт
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
-
- ДанныеФайла = ДанныеФайла(ФайлСсылка,,ПараметрыДанныхФайла);
- ВерсияСоздана = СохранитьИзмененияИОсвободитьФайл(ДанныеФайла, СведенияОФайле, Ложь, ПолныйПутьКФайлу, РабочийКаталогПользователя,
- УникальныйИдентификаторФормы);
+
+ ДанныеФайла = ДанныеФайла(ФайлСсылка,, ПараметрыДанныхФайла);
+ ВерсияСоздана = СохранитьИзмененияИОсвободитьФайл(ДанныеФайла, СведенияОФайле, Ложь, ПолныйПутьКФайлу,
+ РабочийКаталогПользователя, УникальныйИдентификаторФормы);
Возврат Новый Структура("Успешно,ДанныеФайла", ВерсияСоздана, ДанныеФайла);
-
+
КонецФункции
// Предназначена для записи изменений файла без его освобождения.
@@ -1187,122 +1211,126 @@
// Возвращаемое значение:
// Булево - Истина, если создание версии выполнено (и файл бинарно изменен).
//
-Функция СохранитьИзмененияФайла(ФайлСсылка, СведенияОФайле,
- НеМенятьЗаписьВРабочемКаталоге, ОтносительныйПутьКФайлу, ПолныйПутьКФайлу, ВРабочемКаталогеВладельца,
- УникальныйИдентификаторФормы = Неопределено) Экспорт
-
+Функция СохранитьИзмененияФайла(ФайлСсылка, СведенияОФайле, НеМенятьЗаписьВРабочемКаталоге, ОтносительныйПутьКФайлу,
+ ПолныйПутьКФайлу, ВРабочемКаталогеВладельца, УникальныйИдентификаторФормы = Неопределено) Экспорт
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
- ДанныеФайлаТекущие = ДанныеФайла(ФайлСсылка,,ПараметрыДанныхФайла);
- Если Не ДанныеФайлаТекущие.ФайлРедактируетТекущийПользователь И НЕ ФайлСинхронизируетсяОблачнымСервисом(ФайлСсылка) Тогда
+ ДанныеФайлаТекущие = ДанныеФайла(ФайлСсылка,, ПараметрыДанныхФайла);
+ Если Не ДанныеФайлаТекущие.ФайлРедактируетТекущийПользователь И Не ФайлСинхронизируетсяОблачнымСервисом(ФайлСсылка) Тогда
ВызватьИсключение НСтр("ru = 'Файл не занят текущим пользователем'");
КонецЕсли;
-
+
СтараяВерсия = ?(СведенияОФайле.ХранитьВерсии, ФайлСсылка.ТекущаяВерсия, ФайлСсылка);
Если СведенияОФайле.Зашифрован = Неопределено Тогда
СведенияОФайле.Зашифрован = ДанныеФайлаТекущие.Зашифрован;
КонецЕсли;
-
+
Если СведенияОФайле.Кодировка = Неопределено Тогда
- СведенияОФайле.Кодировка = РаботаСФайламиСлужебныйКлиентСервер.ОпределитьКодировкуДвоичныхДанных(СведенияОФайле.АдресВременногоХранилищаФайла, СведенияОФайле.РасширениеБезТочки);
+ СведенияОФайле.Кодировка = РаботаСФайламиСлужебныйКлиентСервер.ОпределитьКодировкуДвоичныхДанных(
+ СведенияОФайле.АдресВременногоХранилищаФайла, СведенияОФайле.РасширениеБезТочки);
КонецЕсли;
-
+
Если ТипЗнч(ФайлСсылка.Ссылка) = Тип("СправочникСсылка.Файлы") Тогда
- НоваяВерсия = РаботаСФайламиСлужебный.ОбновитьВерсиюФайла(ФайлСсылка.Ссылка, СведенияОФайле,, УникальныйИдентификаторФормы, СведенияОФайле.НоваяВерсияАвтор);
+ НоваяВерсия = РаботаСФайламиСлужебный.ОбновитьВерсиюФайла(ФайлСсылка.Ссылка, СведенияОФайле,,
+ УникальныйИдентификаторФормы, СведенияОФайле.НоваяВерсияАвтор);
Иначе
НоваяВерсия = ОбновитьОбъектФайла(ФайлСсылка.Ссылка, СведенияОФайле,, УникальныйИдентификаторФормы);
КонецЕсли;
-
+
Если НоваяВерсия = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Если СведенияОФайле.ХранитьВерсии Тогда
-
- Если НЕ ОбщегоНазначения.ЭтоВебКлиент() И Не НеМенятьЗаписьВРабочемКаталоге Тогда
+
+ Если Не ОбщегоНазначения.ЭтоВебКлиент() И Не НеМенятьЗаписьВРабочемКаталоге Тогда
УдалитьИзРегистра(СтараяВерсия);
ЗаписатьПолноеИмяФайлаВРегистр(НоваяВерсия, ОтносительныйПутьКФайлу, Ложь, ВРабочемКаталогеВладельца);
КонецЕсли;
-
+
КонецЕсли;
-
+
Возврат Истина;
-
+
КонецФункции
// Создает новый файл по аналогии с указанным и возвращает ссылку на него.
//
// Параметры:
// ИсходныйФайл - СправочникСсылка.Файлы - существующий файл.
-// ВладелецНовогоФайла - ЛюбаяСсылка - владелец файла.
+// ВладелецНовогоФайла - ОпределяемыйТип.ВладелецФайлов - владелец файла.
//
// Возвращаемое значение:
// СправочникСсылка.Файлы - новый файл.
//
Функция СкопироватьФайл(ИсходныйФайл, ВладелецНовогоФайла)
-
+
Если ИсходныйФайл = Неопределено Или ИсходныйФайл.Пустая() Тогда
Возврат Неопределено;
КонецЕсли;
-
+
МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоСсылке(ИсходныйФайл);
НовыйФайл = ИсходныйФайл.Скопировать();
КопияФайлаСсылка = МенеджерОбъекта.ПолучитьСсылку();
НовыйФайл.УстановитьСсылкуНового(КопияФайлаСсылка);
- НовыйФайл.ВладелецФайла = ВладелецНовогоФайла.Ссылка;
+ НовыйФайл.ВладелецФайла = ВладелецНовогоФайла;
НовыйФайл.Редактирует = Справочники.Пользователи.ПустаяСсылка();
-
+
НовыйФайл.ТекстХранилище = Новый ХранилищеЗначения(ИсходныйФайл.ТекстХранилище.Получить());
НовыйФайл.ФайлХранилище = Новый ХранилищеЗначения(ИсходныйФайл.ФайлХранилище.Получить());
-
+
ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(ИсходныйФайл);
ДвоичныеДанныеВХранилищеЗначения = Новый ХранилищеЗначения(ДвоичныеДанные);
-
+
ТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайла(НовыйФайл.Размер, НовыйФайл.Расширение);
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
НовыйФайл.ТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайлов();
ЗаписатьФайлВИнформационнуюБазу(КопияФайлаСсылка, ДвоичныеДанныеВХранилищеЗначения);
Иначе
-
+
НовыйФайл.Том = Неопределено;
НовыйФайл.ПутьКФайлу = Неопределено;
НовыйФайл.ТипХраненияФайла = Неопределено;
-
+
РаботаСФайламиВТомахСлужебный.ДобавитьФайл(НовыйФайл, ДвоичныеДанные);
-
+
КонецЕсли;
-
+
НовыйФайл.Записать();
-
+
Если НовыйФайл.ХранитьВерсии Тогда
-
+
+ РеквизитыТекущейВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(НовыйФайл.ТекущаяВерсия,
+ "Размер,Расширение,ТекстХранилище");
+
СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией");
СведенияОФайле.ИмяБезРасширения = НовыйФайл.Наименование;
- СведенияОФайле.Размер = НовыйФайл.ТекущаяВерсия.Размер;
- СведенияОФайле.РасширениеБезТочки = НовыйФайл.ТекущаяВерсия.Расширение;
+ СведенияОФайле.Размер = РеквизитыТекущейВерсии.Размер;
+ СведенияОФайле.РасширениеБезТочки = РеквизитыТекущейВерсии.Расширение;
СведенияОФайле.АдресВременногоХранилищаФайла = ДвоичныеДанныеВХранилищеЗначения;
- СведенияОФайле.АдресВременногоХранилищаТекста = НовыйФайл.ТекущаяВерсия.ТекстХранилище;
+ СведенияОФайле.АдресВременногоХранилищаТекста = РеквизитыТекущейВерсии.ТекстХранилище;
СведенияОФайле.СсылкаНаВерсиюИсточник = НовыйФайл.ТекущаяВерсия;
СведенияОФайле.Зашифрован = НовыйФайл.Зашифрован;
Версия = РаботаСФайламиСлужебный.СоздатьВерсию(НовыйФайл.Ссылка, СведенияОФайле);
- РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(НовыйФайл.Ссылка, Версия, НовыйФайл.ТекущаяВерсия.ТекстХранилище);
-
+ РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(НовыйФайл.Ссылка, Версия, РеквизитыТекущейВерсии.ТекстХранилище);
+
КонецЕсли;
-
+
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
-
+
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
ДоступнаЭлектроннаяПодпись = МодульЭлектроннаяПодписьСлужебный.ДоступнаЭлектроннаяПодпись(ТипЗнч(ИсходныйФайл));
Если ДоступнаЭлектроннаяПодпись Тогда
-
+
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
-
+
Если ИсходныйФайл.ПодписанЭП Тогда
-
+
НовыйФайл.Прочитать();
НовыйФайл.ПодписанЭП = Истина;
НовыйФайл.Записать();
-
+
ЭлектронныеПодписиИсходногоФайла = МодульЭлектроннаяПодпись.УстановленныеПодписи(ИсходныйФайл);
Для Каждого ЭП Из ЭлектронныеПодписиИсходногоФайла Цикл
МенеджерЗаписи = РегистрыСведений["ЭлектронныеПодписи"].СоздатьМенеджерЗаписи(); // РегистрСведенийМенеджерЗаписи.ЭлектронныеПодписи
@@ -1310,14 +1338,14 @@
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ЭП);
МенеджерЗаписи.Записать(Истина);
КонецЦикла;
-
+
КонецЕсли;
-
+
Если ИсходныйФайл.Зашифрован Тогда
-
+
НовыйФайл.Прочитать();
НовыйФайл.Зашифрован = Истина;
-
+
ЭлектронныеПодписиИсходногоФайла = МодульЭлектроннаяПодпись.СертификатыШифрования(ИсходныйФайл);
Для Каждого Сертификат Из ЭлектронныеПодписиИсходногоФайла Цикл
МенеджерЗаписи = РегистрыСведений["СертификатыШифрования"].СоздатьМенеджерЗаписи(); // РегистрСведенийМенеджерЗаписи.СертификатыШифрования
@@ -1328,17 +1356,17 @@
// Чтобы прошла запись ранее подписанного объекта.
НовыйФайл.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
НовыйФайл.Записать();
-
+
КонецЕсли;
-
+
КонецЕсли;
-
+
КонецЕсли;
-
+
РаботаСФайламиПереопределяемый.ЗаполнитьРеквизитыФайлаИзИсходногоФайла(НовыйФайл, ИсходныйФайл);
-
+
Возврат НовыйФайл;
-
+
КонецФункции
// Переносит Файл в другую папку.
@@ -1347,14 +1375,15 @@
// ДанныеФайла - см. ДанныеФайла
// Папка - СправочникСсылка.ПапкиФайлов - ссылка на папку, куда нужно переместить файл.
//
-Процедура ПеренестиФайл(ДанныеФайла, Папка)
-
+Процедура ПеренестиФайл(ДанныеФайла, Папка)
+
НачатьТранзакцию();
Попытка
БлокировкаДанных = Новый БлокировкаДанных;
- ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(ДанныеФайла.Ссылка)).ПолноеИмя());
+ ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(
+ ДанныеФайла.Ссылка)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ДанныеФайла.Ссылка);
- БлокировкаДанных.Заблокировать();
+ БлокировкаДанных.Заблокировать();
ФайлОбъект = ДанныеФайла.Ссылка.ПолучитьОбъект();
ФайлОбъект.Заблокировать();
ФайлОбъект.ВладелецФайла = Папка;
@@ -1364,7 +1393,7 @@
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
-
+
КонецПроцедуры
// Переносит Файлы в другую папку.
@@ -1376,21 +1405,21 @@
// Возвращаемое значение:
// Массив из см. РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла
//
-Функция ПеренестиФайлы(ОбъектыСсылка, Папка) Экспорт
-
+Функция ПеренестиФайлы(ОбъектыСсылка, Папка) Экспорт
+
ДанныеФайлов = Новый Массив;
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
-
+
Для Каждого ФайлСсылка Из ОбъектыСсылка Цикл
ПеренестиФайл(ФайлСсылка, Папка);
- ДанныеФайла = ДанныеФайла(ФайлСсылка,,ПараметрыДанныхФайла);
+ ДанныеФайла = ДанныеФайла(ФайлСсылка,, ПараметрыДанныхФайла);
ДанныеФайлов.Добавить(ДанныеФайла);
КонецЦикла;
-
+
Возврат ДанныеФайлов;
-
+
КонецФункции
// Получает РедактируетТекущийПользователь - в привилегированном режиме.
@@ -1401,9 +1430,9 @@
// Булево - Истина, если файл редактирует текущий пользователь.
//
Функция ПолучитьРедактируетТекущийПользователь(ВерсияСсылка) Экспорт
-
+
УстановитьПривилегированныйРежим(Истина);
-
+
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
@@ -1415,17 +1444,17 @@
|ГДЕ
| ВерсииФайлов.Ссылка = &Версия
| И Файлы.Ссылка = ВерсииФайлов.Владелец";
-
+
Запрос.Параметры.Вставить("Версия", ВерсияСсылка);
-
+
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
РедактируетТекущийПользователь = (Выборка.Редактирует = Пользователи.АвторизованныйПользователь());
Возврат РедактируетТекущийПользователь;
КонецЕсли;
-
+
Возврат Ложь;
-
+
КонецФункции
// Получает данные файла и делает заем (checkout) - для экономии вызовов
@@ -1445,23 +1474,23 @@
ДанныеФайла = ДанныеФайла(ФайлСсылка);
СтрокаОшибки = "";
- Если НЕ РаботаСФайламиКлиентСервер.МожноЛиЗанятьФайл(ДанныеФайла, СтрокаОшибки) Тогда
+ Если Не РаботаСФайламиКлиентСервер.МожноЛиЗанятьФайл(ДанныеФайла, СтрокаОшибки) Тогда
Возврат Ложь;
- КонецЕсли;
-
+ КонецЕсли;
+
Если Не ЗначениеЗаполнено(ДанныеФайла.Редактирует) Тогда
-
+
ПараметрыЗанятияФайла = РаботаСФайламиСлужебныйКлиентСервер.ПараметрыЗанятияФайла();
ПараметрыЗанятияФайла.УникальныйИдентификатор = УникальныйИдентификатор;
-
+
СтрокаОшибки = "";
- Если Не ЗанятьФайл(ДанныеФайла, СтрокаОшибки, ПараметрыЗанятияФайла) Тогда
+ Если Не ЗанятьФайл(ДанныеФайла, СтрокаОшибки, ПараметрыЗанятияФайла) Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
-
+
Возврат Истина;
-
+
КонецФункции
// Получает ДанныеФайла для файлов и помещает в МассивДанныхФайла.
@@ -1471,12 +1500,12 @@
// МассивДанныхФайла - Массив - структуры с данными файлов.
//
Процедура ПолучитьДанныеДляМассиваФайлов(Знач МассивФайлов, МассивДанныхФайла) Экспорт
-
+
Для Каждого Файл Из МассивФайлов Цикл
ДанныеФайла = ДанныеФайла(Файл);
МассивДанныхФайла.Добавить(ДанныеФайла);
КонецЦикла;
-
+
КонецПроцедуры
// Занимает файл на редактирование и возвращает данные файла для открытия в редакторе.
@@ -1494,32 +1523,33 @@
// * ТекстСообщения - Строка - описание причины в случае неуспеха, например, "Файл занят другим пользователем".
// * ФайлУжеРедактируетТекущийПользователь - Булево - Истина, если файл уже открыт на редактирование ранее.
///
-Функция ЗанятьФайлДляРедактирования(ФайлСсылка, УникальныйИдентификатор = Неопределено,
+Функция ЗанятьФайлДляРедактирования(ФайлСсылка, УникальныйИдентификатор = Неопределено,
РабочийКаталогВладельца = Неопределено, ВерсияСсылка = Неопределено) Экспорт
-
+
Результат = Новый Структура;
Результат.Вставить("ДанныеПолучены", Ложь);
Результат.Вставить("ДанныеФайла", Неопределено);
Результат.Вставить("ТекстСообщения", "");
Результат.Вставить("ФайлУжеРедактируетТекущийПользователь", Ложь);
- Результат.ДанныеФайла = ДанныеФайлаДляОткрытия(ФайлСсылка, ВерсияСсылка, УникальныйИдентификатор, РабочийКаталогВладельца);
+ Результат.ДанныеФайла = ДанныеФайлаДляОткрытия(ФайлСсылка, ВерсияСсылка, УникальныйИдентификатор,
+ РабочийКаталогВладельца);
Если Не РаботаСФайламиКлиентСервер.МожноЛиЗанятьФайл(Результат.ДанныеФайла, Результат.ТекстСообщения) Тогда
Возврат Результат;
КонецЕсли;
-
+
ПараметрыЗанятияФайла = РаботаСФайламиСлужебныйКлиентСервер.ПараметрыЗанятияФайла();
ПараметрыЗанятияФайла.УникальныйИдентификатор = УникальныйИдентификатор;
-
+
Результат.ФайлУжеРедактируетТекущийПользователь = Результат.ДанныеФайла.ФайлРедактируетТекущийПользователь;
- Если Не ЗначениеЗаполнено(Результат.ДанныеФайла.Редактирует)
- И Не ЗанятьФайл(Результат.ДанныеФайла, Результат.ТекстСообщения, ПараметрыЗанятияФайла) Тогда
+ Если Не ЗначениеЗаполнено(Результат.ДанныеФайла.Редактирует) И Не ЗанятьФайл(Результат.ДанныеФайла,
+ Результат.ТекстСообщения, ПараметрыЗанятияФайла) Тогда
Возврат Результат;
КонецЕсли;
-
+
Результат.ДанныеПолучены = Истина;
Возврат Результат;
-
+
КонецФункции
// Выполняет ПоместитьВоВременноеХранилище (если файл хранится в томе) и возвращает нужную ссылку.
@@ -1532,15 +1562,15 @@
// Строка - навигационная ссылка во временном хранилище.
//
Функция ПолучитьНавигационнуюСсылкуДляОткрытия(ВерсияСсылка, ИдентификаторФормы = Неопределено) Экспорт
-
+
ЕстьПраваНаОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВерсияСсылка, "Ссылка", Истина);
-
+
Если ЕстьПраваНаОбъект = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
-
+
Возврат ПоместитьВоВременноеХранилище(РаботаСФайлами.ДвоичныеДанныеФайла(ВерсияСсылка));
-
+
КонецФункции
// Выполняет ДанныеФайла и вычисляет РабочийКаталогВладельца.
@@ -1555,7 +1585,7 @@
// * Ссылка - ОпределяемыйТип.ПрисоединенныйФайл
//
Функция ДанныеФайлаИРабочийКаталог(ФайлИлиВерсияСсылка, РабочийКаталогВладельца = Неопределено) Экспорт
-
+
ФайлСсылка = Неопределено;
ВерсияСсылка = Неопределено;
ВозможностьХранитьВерсии = Ложь;
@@ -1563,39 +1593,43 @@
ВерсияСсылка = ФайлИлиВерсияСсылка;
Иначе
ФайлСсылка = ФайлИлиВерсияСсылка;
- ВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", ФайлИлиВерсияСсылка.Метаданные());
+ ВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия",
+ ФайлИлиВерсияСсылка.Метаданные());
КонецЕсли;
-
- ТекущаяВерсия = ?(Не ВозможностьХранитьВерсии, Неопределено,
- ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлСсылка, "ТекущаяВерсия"));
-
+
+ ТекущаяВерсия = ?(Не ВозможностьХранитьВерсии, Неопределено, ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлСсылка,
+ "ТекущаяВерсия"));
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
-
- ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка,,ПараметрыДанныхФайла);
+
+ ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка,, ПараметрыДанныхФайла);
Если РабочийКаталогВладельца = Неопределено Тогда
РабочийКаталогВладельца = РабочийКаталогПапки(ДанныеФайла.Владелец);
КонецЕсли;
-
+
ДанныеФайла.Вставить("РабочийКаталогВладельца", РабочийКаталогВладельца);
Если РабочийКаталогВладельца <> "" Тогда
-
+
ПолноеИмяФайлаВРабочемКаталоге = "";
ИмяКаталога = ""; // Путь к локальному кэш здесь не используется.
ВРабочемКаталогеНаЧтение = Истина; // не используется
ВРабочемКаталогеВладельца = Истина;
-
+
Если ВерсияСсылка <> Неопределено Тогда
- ПолноеИмяФайлаВРабочемКаталоге = ПолноеИмяФайлаВРабочемКаталоге(ВерсияСсылка, ИмяКаталога, ВРабочемКаталогеНаЧтение, ВРабочемКаталогеВладельца);
+ ПолноеИмяФайлаВРабочемКаталоге = ПолноеИмяФайлаВРабочемКаталоге(ВерсияСсылка, ИмяКаталога,
+ ВРабочемКаталогеНаЧтение, ВРабочемКаталогеВладельца);
ИначеЕсли ВозможностьХранитьВерсии И ТекущаяВерсия <> Неопределено Тогда
- ПолноеИмяФайлаВРабочемКаталоге = ПолноеИмяФайлаВРабочемКаталоге(ТекущаяВерсия, ИмяКаталога, ВРабочемКаталогеНаЧтение, ВРабочемКаталогеВладельца);
+ ПолноеИмяФайлаВРабочемКаталоге = ПолноеИмяФайлаВРабочемКаталоге(ТекущаяВерсия, ИмяКаталога,
+ ВРабочемКаталогеНаЧтение, ВРабочемКаталогеВладельца);
Иначе
- ПолноеИмяФайлаВРабочемКаталоге = ПолноеИмяФайлаВРабочемКаталоге(ФайлСсылка, ИмяКаталога, ВРабочемКаталогеНаЧтение, ВРабочемКаталогеВладельца);
+ ПолноеИмяФайлаВРабочемКаталоге = ПолноеИмяФайлаВРабочемКаталоге(ФайлСсылка, ИмяКаталога,
+ ВРабочемКаталогеНаЧтение, ВРабочемКаталогеВладельца);
КонецЕсли;
-
+
ДанныеФайла.Вставить("ПолноеИмяФайлаВРабочемКаталоге", ПолноеИмяФайлаВРабочемКаталоге);
КонецЕсли;
-
+
Возврат ДанныеФайла;
КонецФункции
@@ -1607,16 +1641,16 @@
// Структура - структура с данными файла.
//
Функция ПолучитьДанныеФайлаИКоличествоВерсий(ФайлСсылка) Экспорт
-
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
-
- ДанныеФайла = ДанныеФайла(ФайлСсылка,,ПараметрыДанныхФайла);
+
+ ДанныеФайла = ДанныеФайла(ФайлСсылка,, ПараметрыДанныхФайла);
КоличествоВерсий = ПолучитьКоличествоВерсий(ФайлСсылка);
ДанныеФайла.Вставить("КоличествоВерсий", КоличествоВерсий);
-
+
Возврат ДанныеФайла;
-
+
КонецФункции
// Освобождение Файла с получением данных.
@@ -1626,10 +1660,10 @@
// УникальныйИдентификатор - уникальный идентификатор формы.
//
Процедура ПолучитьДанныеФайлаИОсвободитьФайл(ФайлСсылка, ДанныеФайла, УникальныйИдентификатор = Неопределено) Экспорт
-
+
ДанныеФайла = ДанныеФайла(ФайлСсылка);
ОсвободитьФайл(ДанныеФайла, УникальныйИдентификатор);
-
+
КонецПроцедуры
// Для записи изменений файла без его освобождения.
@@ -1650,23 +1684,21 @@
// * Успешно - Булево - Истина, если создание версии выполнено (и файл бинарно изменен).
// * ДанныеФайла - Структура - структура с данными файла.
//
-Функция ПолучитьДанныеФайлаИСохранитьИзмененияФайла(ФайлСсылка, СведенияОФайле,
- ОтносительныйПутьКФайлу, ПолныйПутьКФайлу, ВРабочемКаталогеВладельца,
- УникальныйИдентификаторФормы = Неопределено) Экспорт
-
+Функция ПолучитьДанныеФайлаИСохранитьИзмененияФайла(ФайлСсылка, СведенияОФайле, ОтносительныйПутьКФайлу,
+ ПолныйПутьКФайлу, ВРабочемКаталогеВладельца, УникальныйИдентификаторФормы = Неопределено) Экспорт
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
-
- ДанныеФайла = ДанныеФайла(ФайлСсылка,,ПараметрыДанныхФайла);
+
+ ДанныеФайла = ДанныеФайла(ФайлСсылка,, ПараметрыДанныхФайла);
Если Не ДанныеФайла.ФайлРедактируетТекущийПользователь Тогда
ВызватьИсключение НСтр("ru = 'Файл не занят текущим пользователем'");
КонецЕсли;
-
- ВерсияСоздана = СохранитьИзмененияФайла(ФайлСсылка, СведенияОФайле,
- Ложь, ОтносительныйПутьКФайлу, ПолныйПутьКФайлу, ВРабочемКаталогеВладельца,
- УникальныйИдентификаторФормы);
- Возврат Новый Структура("Успешно,ДанныеФайла", ВерсияСоздана, ДанныеФайла);
-
+
+ ВерсияСоздана = СохранитьИзмененияФайла(ФайлСсылка, СведенияОФайле, Ложь, ОтносительныйПутьКФайлу,
+ ПолныйПутьКФайлу, ВРабочемКаталогеВладельца, УникальныйИдентификаторФормы);
+ Возврат Новый Структура("Успешно,ДанныеФайла", ВерсияСоздана, ДанныеФайла);
+
КонецФункции
// Получает синтетический рабочий каталог папки на компьютере (он может прийти от родительской папки).
@@ -1678,17 +1710,17 @@
// Строка - рабочий каталог.
//
Функция РабочийКаталогПапки(СсылкаПапки) Экспорт
-
+
Если Не ЭтоСправочникФайлы(СсылкаПапки) Тогда
- Возврат ""
+ Возврат "";
КонецЕсли;
-
+
УстановитьПривилегированныйРежим(Истина);
-
+
РабочийКаталог = "";
// Подготовить структуру отбора по измерениям.
-
+
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Папка", СсылкаПапки);
СтруктураОтбора.Вставить("Пользователь", Пользователи.АвторизованныйПользователь());
@@ -1698,14 +1730,14 @@
// Получить путь из регистра
РабочийКаталог = СтруктураРесурсов.Путь;
-
- Если НЕ ПустаяСтрока(РабочийКаталог) Тогда
+
+ Если Не ПустаяСтрока(РабочийКаталог) Тогда
// Добавляем слэш в конце, если его нет.
РабочийКаталог = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РабочийКаталог);
КонецЕсли;
-
+
Возврат РабочийКаталог;
-
+
КонецФункции
// Возвращаемое значение:
@@ -1717,9 +1749,9 @@
// * НаЧтение - Булево
//
Функция ФайлВРабочемКаталоге()
-
+
Возврат Новый Структура("Файл, Путь, Размер, ДатаПомещенияВРабочийКаталог, НаЧтение");
-
+
КонецФункции
// Сохраняет в регистре сведений рабочий каталог папки и
@@ -1730,11 +1762,11 @@
// РабочийКаталогПапки - Строка - рабочий каталог папки.
// ИмяКаталогаПрежнееЗначение - Строка - прежнее значение рабочего каталога.
//
-Процедура СохранитьРабочийКаталогПапкиИЗаменитьПутиВРегистре(СсылкаПапки, РабочийКаталогПапки,
+Процедура СохранитьРабочийКаталогПапкиИЗаменитьПутиВРегистре(СсылкаПапки, РабочийКаталогПапки,
ИмяКаталогаПрежнееЗначение) Экспорт
-
+
РаботаСФайламиСлужебный.СохранитьРабочийКаталогПапки(СсылкаПапки, РабочийКаталогПапки);
-
+
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
@@ -1749,47 +1781,43 @@
| ФайлыВРабочемКаталоге.Пользователь = &Пользователь
| И ФайлыВРабочемКаталоге.ВРабочемКаталогеВладельца = ИСТИНА
| И ФайлыВРабочемКаталоге.Путь ПОДОБНО &Путь СПЕЦСИМВОЛ ""~""";
-
+
Запрос.УстановитьПараметр("Пользователь", Пользователи.АвторизованныйПользователь());
- Запрос.УстановитьПараметр("Путь",
- ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(ИмяКаталогаПрежнееЗначение) + "%");
+ Запрос.УстановитьПараметр("Путь", ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(ИмяКаталогаПрежнееЗначение)
+ + "%");
УстановитьПривилегированныйРежим(Истина);
- РезультатЗапроса = Запрос.Выполнить();
-
+ РезультатЗапроса = Запрос.Выполнить();
+
СписокДляЗамены = Новый Массив;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
-
+
НовыйПуть = Выборка.Путь;
НовыйПуть = СтрЗаменить(НовыйПуть, ИмяКаталогаПрежнееЗначение, РабочийКаталогПапки);
-
+
ФайлВРабочемКаталоге = ФайлВРабочемКаталоге();
ФайлВРабочемКаталоге.Файл = Выборка.Файл;
ФайлВРабочемКаталоге.Путь = НовыйПуть;
ФайлВРабочемКаталоге.Размер = Выборка.Размер;
ФайлВРабочемКаталоге.ДатаПомещенияВРабочийКаталог = Выборка.ДатаПомещенияВРабочийКаталог;
ФайлВРабочемКаталоге.НаЧтение = Выборка.НаЧтение;
-
+
СписокДляЗамены.Добавить(ФайлВРабочемКаталоге);
-
+
КонецЦикла;
-
+
Для Каждого ЭлементСписка Из СписокДляЗамены Цикл
-
+
ВРабочемКаталогеВладельца = Истина;
-
+
ФайлВРабочемКаталоге = ЭлементСписка; // см. ФайлВРабочемКаталоге
ЗаписатьСтруктуруЗаписиВРегистр(
- ФайлВРабочемКаталоге.Файл,
- ФайлВРабочемКаталоге.Путь,
- ФайлВРабочемКаталоге.Размер,
- ФайлВРабочемКаталоге.ДатаПомещенияВРабочийКаталог,
- ФайлВРабочемКаталоге.НаЧтение,
- ВРабочемКаталогеВладельца);
-
+ ФайлВРабочемКаталоге.Файл, ФайлВРабочемКаталоге.Путь, ФайлВРабочемКаталоге.Размер,
+ ФайлВРабочемКаталоге.ДатаПомещенияВРабочийКаталог, ФайлВРабочемКаталоге.НаЧтение, ВРабочемКаталогеВладельца);
+
КонецЦикла;
-
+
КонецПроцедуры
// После смены пути запишем заново - с теми же значениями остальных полей.
@@ -1801,24 +1829,20 @@
// НаЧтение - Булево - файл помещен на чтение.
// ВРабочемКаталогеВладельца - Булево - файл в рабочем каталоге владельца (а не в основном рабочем каталоге).
//
-Процедура ЗаписатьСтруктуруЗаписиВРегистр(Файл,
- Путь,
- Размер,
- ДатаПомещенияВРабочийКаталог,
- НаЧтение,
- ВРабочемКаталогеВладельца)
-
+Процедура ЗаписатьСтруктуруЗаписиВРегистр(Файл, Путь, Размер, ДатаПомещенияВРабочийКаталог, НаЧтение,
+ ВРабочемКаталогеВладельца)
+
ЕстьПраваНаОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Файл, "Ссылка", Истина);
-
+
Если ЕстьПраваНаОбъект = Неопределено Тогда
Возврат;
КонецЕсли;
-
+
УстановитьПривилегированныйРежим(Истина);
// Создать набор записей
НаборЗаписей = РегистрыСведений.ФайлыВРабочемКаталоге.СоздатьНаборЗаписей();
-
+
НаборЗаписей.Отбор.Файл.Установить(Файл);
НаборЗаписей.Отбор.Пользователь.Установить(Пользователи.АвторизованныйПользователь());
@@ -1831,9 +1855,9 @@
НоваяЗапись.НаЧтение = НаЧтение;
НоваяЗапись.ВРабочемКаталогеВладельца = ВРабочемКаталогеВладельца;
-
+
НаборЗаписей.Записать();
-
+
КонецПроцедуры
// Находит запись в регистре сведений ФайлыВРабочемКаталоге по относительному пути файла.
@@ -1852,9 +1876,9 @@
// ВРегистреПапка - СправочникСсылка.ПапкиФайлов - папка файла.
//
Функция НайтиВРегистреПоПути(ИмяФайла) Экспорт
-
+
УстановитьПривилегированныйРежим(Истина);
-
+
Результат = Новый Структура;
Результат.Вставить("ФайлЕстьВРегистре", Ложь);
Результат.Вставить("Файл", Справочники.ВерсииФайлов.ПустаяСсылка());
@@ -1867,19 +1891,19 @@
// Для каждого по пути находим запись в регистре сведений - оттуда берем поле.
// Версия и Размер и ДатаПомещенияВРабочийКаталог.
-
+
АвторизованныйПользователь = Пользователи.АвторизованныйПользователь();
-
+
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ФайлыВРабочемКаталоге");
ЭлементБлокировки.УстановитьЗначение("Пользователь", АвторизованныйПользователь);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
-
+
НачатьТранзакцию();
Попытка
-
+
Блокировка.Заблокировать();
-
+
ЗапросВРегистр = Новый Запрос;
ЗапросВРегистр.УстановитьПараметр("ИмяФайла", ИмяФайла);
ЗапросВРегистр.УстановитьПараметр("Пользователь", АвторизованныйПользователь);
@@ -1903,30 +1927,30 @@
|ГДЕ
| ФайлыВРабочемКаталоге.Путь = &ИмяФайла
| И ФайлыВРабочемКаталоге.Пользователь = &Пользователь";
-
+
РезультатЗапроса = ЗапросВРегистр.Выполнить();
- Если НЕ РезультатЗапроса.Пустой() Тогда
-
+ Если Не РезультатЗапроса.Пустой() Тогда
+
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
-
+
ЗаполнитьЗначенияСвойств(Результат, Выборка);
-
+
Результат.ФайлЕстьВРегистре = Истина;
Результат.ВРегистреПапка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
Выборка.Владелец, "ВладелецФайла");
-
+
КонецЕсли;
-
+
ЗафиксироватьТранзакцию();
-
+
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
-
+
Возврат Результат;
-
+
КонецФункции
// Находит в регистре сведений ФайлыВРабочемКаталоге информацию о ВерсииФайла: путь к файлу версии в рабочем каталоге,
@@ -1938,17 +1962,17 @@
// ВРабочемКаталогеНаЧтение - Булево - файл помещен на чтение.
// ВРабочемКаталогеВладельца - Булево - файл в рабочем каталоге владельца (а не в основном рабочем каталоге).
//
-Функция ПолноеИмяФайлаВРабочемКаталоге(Знач Версия, Знач ИмяКаталога,
- ВРабочемКаталогеНаЧтение, ВРабочемКаталогеВладельца) Экспорт
-
+Функция ПолноеИмяФайлаВРабочемКаталоге(Знач Версия, Знач ИмяКаталога, ВРабочемКаталогеНаЧтение,
+ ВРабочемКаталогеВладельца) Экспорт
+
ЕстьПраваНаОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Версия, "Ссылка", Истина);
Если ЕстьПраваНаОбъект = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
-
+
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
-
+
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Файл", Версия.Ссылка);
СтруктураОтбора.Вставить("Пользователь", Пользователи.АвторизованныйПользователь());
@@ -1961,9 +1985,9 @@
ОбщегоНазначения.СократитьИмяФайла(ПолноеИмяФайла);
ПолноеИмяФайла = ИмяКаталога + ПолноеИмяФайла;
КонецЕсли;
-
+
Возврат ПолноеИмяФайла;
-
+
КонецФункции
// Записать в регистр сведений ФайлыВРабочемКаталоге информацию о пути файла.
@@ -1973,16 +1997,13 @@
// НаЧтение - Булево - файл помещен на чтение.
// ВРабочемКаталогеВладельца - Булево - файл в рабочем каталоге владельца (а не в основном рабочем каталоге).
//
-Процедура ЗаписатьПолноеИмяФайлаВРегистр(ТекущаяВерсия,
- ПолноеИмяФайла,
- НаЧтение,
- ВРабочемКаталогеВладельца) Экспорт
-
+Процедура ЗаписатьПолноеИмяФайлаВРегистр(ТекущаяВерсия, ПолноеИмяФайла, НаЧтение, ВРабочемКаталогеВладельца) Экспорт
+
УстановитьПривилегированныйРежим(Истина);
// Создать набор записей
НаборЗаписей = РегистрыСведений.ФайлыВРабочемКаталоге.СоздатьНаборЗаписей();
-
+
НаборЗаписей.Отбор.Файл.Установить(ТекущаяВерсия.Ссылка);
НаборЗаписей.Отбор.Пользователь.Установить(Пользователи.АвторизованныйПользователь());
@@ -1995,9 +2016,9 @@
НоваяЗапись.НаЧтение = НаЧтение;
НоваяЗапись.ВРабочемКаталогеВладельца = ВРабочемКаталогеВладельца;
-
+
НаборЗаписей.Записать();
-
+
КонецПроцедуры
// Удалить из регистра сведений ФайлыВРабочемКаталоге запись о данной версии файла.
@@ -2005,21 +2026,21 @@
// Версия - СправочникСсылка.ВерсииФайлов - версия.
//
Процедура УдалитьИзРегистра(Файл) Экспорт
-
+
ЕстьПраваНаОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Файл, "Ссылка", Истина);
Если ЕстьПраваНаОбъект = Неопределено Тогда
Возврат;
КонецЕсли;
-
+
УстановитьПривилегированныйРежим(Истина);
-
+
НаборЗаписей = РегистрыСведений.ФайлыВРабочемКаталоге.СоздатьНаборЗаписей();
-
+
НаборЗаписей.Отбор.Файл.Установить(Файл);
НаборЗаписей.Отбор.Пользователь.Установить(Пользователи.АвторизованныйПользователь());
-
+
НаборЗаписей.Записать();
-
+
КонецПроцедуры
// Удалить из регистра сведений ФайлыВРабочемКаталоге запись о старой версии и внести запись о новой.
@@ -2030,24 +2051,21 @@
// ИмяКаталога - путь рабочего каталога.
// ВРабочемКаталогеВладельца - Булево - файл в рабочем каталоге владельца (а не в основном рабочем каталоге).
//
-Процедура УдалитьВерсиюИЗанестиИнформациюФайлаВРегистр(СтараяВерсия,
- НоваяВерсия,
- ПолноеИмяФайла,
- ИмяКаталога,
- ВРабочемКаталогеВладельца)
-
+Процедура УдалитьВерсиюИЗанестиИнформациюФайлаВРегистр(СтараяВерсия, НоваяВерсия, ПолноеИмяФайла, ИмяКаталога,
+ ВРабочемКаталогеВладельца)
+
Если ОбщегоНазначения.ЭтоВебКлиент() Тогда
Возврат;
КонецЕсли;
-
- Если НЕ ЗначениеЗаполнено(НоваяВерсия) Тогда
+
+ Если Не ЗначениеЗаполнено(НоваяВерсия) Тогда
Возврат;
КонецЕсли;
-
+
УдалитьИзРегистра(СтараяВерсия);
НаЧтение = Истина;
ЗанестиИнформациюФайлаВРегистр(НоваяВерсия, ПолноеИмяФайла, ИмяКаталога, НаЧтение, 0, ВРабочемКаталогеВладельца);
-
+
КонецПроцедуры
// Записать в регистр сведений ФайлыВРабочемКаталоге информацию о пути файла.
@@ -2060,31 +2078,27 @@
// РазмерФайла - Число - размер файла в байтах.
// ВРабочемКаталогеВладельца - Булево - файл в рабочем каталоге владельца (а не в основном рабочем каталоге).
//
-Процедура ЗанестиИнформациюФайлаВРегистр(Версия,
- ПолныйПуть,
- ИмяКаталога,
- НаЧтение,
- РазмерФайла,
- ВРабочемКаталогеВладельца) Экспорт
+Процедура ЗанестиИнформациюФайлаВРегистр(Версия, ПолныйПуть, ИмяКаталога, НаЧтение, РазмерФайла,
+ ВРабочемКаталогеВладельца) Экспорт
ПолноеИмяФайла = ПолныйПуть;
-
+
Если ВРабочемКаталогеВладельца = Ложь Тогда
Если СтрНайти(ПолныйПуть, ИмяКаталога) = 1 Тогда
ПолноеИмяФайла = Сред(ПолныйПуть, СтрДлина(ИмяКаталога) + 1);
КонецЕсли;
КонецЕсли;
-
+
ЕстьПраваНаОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Версия, "Ссылка", Истина);
-
+
Если ЕстьПраваНаОбъект = Неопределено Тогда
Возврат;
КонецЕсли;
-
+
УстановитьПривилегированныйРежим(Истина);
// Создать набор записей
НаборЗаписей = РегистрыСведений.ФайлыВРабочемКаталоге.СоздатьНаборЗаписей();
-
+
НаборЗаписей.Отбор.Файл.Установить(Версия.Ссылка);
НаборЗаписей.Отбор.Пользователь.Установить(Пользователи.АвторизованныйПользователь());
@@ -2104,7 +2118,7 @@
НоваяЗапись.ВРабочемКаталогеВладельца = ВРабочемКаталогеВладельца;
НаборЗаписей.Записать();
-
+
КонецПроцедуры
// Сортирует массив структур по полю Дата - на сервере, т.к. на тонком клиенте нет ТаблицаЗначений.
@@ -2113,24 +2127,24 @@
// МассивСтруктур - массив структур описаний файлов.
//
Процедура СортироватьМассивСтруктур(МассивСтруктур) Экспорт
-
+
ТаблицаФайлов = Новый ТаблицаЗначений;
ТаблицаФайлов.Колонки.Добавить("Путь");
ТаблицаФайлов.Колонки.Добавить("Версия");
ТаблицаФайлов.Колонки.Добавить("Размер");
-
+
ТаблицаФайлов.Колонки.Добавить("ДатаПомещенияВРабочийКаталог", Новый ОписаниеТипов("Дата"));
-
+
Для Каждого Строка Из МассивСтруктур Цикл
НоваяСтрока = ТаблицаФайлов.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка, "Путь, Размер, Версия, ДатаПомещенияВРабочийКаталог");
КонецЦикла;
// Сортировка по дате - в начале будут самые давно помещенные в рабочий каталог.
- ТаблицаФайлов.Сортировать("ДатаПомещенияВРабочийКаталог Возр");
-
+ ТаблицаФайлов.Сортировать("ДатаПомещенияВРабочийКаталог Возр");
+
МассивСтруктурВозврат = Новый Массив;
-
+
Для Каждого Строка Из ТаблицаФайлов Цикл
Запись = Новый Структура;
Запись.Вставить("Путь", Строка.Путь);
@@ -2139,9 +2153,9 @@
Запись.Вставить("ДатаПомещенияВРабочийКаталог", Строка.ДатаПомещенияВРабочийКаталог);
МассивСтруктурВозврат.Добавить(Запись);
КонецЦикла;
-
+
МассивСтруктур = МассивСтруктурВозврат;
-
+
КонецПроцедуры
// Функция меняет ВладелецФайла объектам типа Справочник.Файл, вернет Истина при успехе.
@@ -2161,7 +2175,7 @@
Если МассивСсылокНаФайлы.Количество() > 0 И (МассивСсылокНаФайлы[0].ВладелецФайла = НовыйВладелецФайла) Тогда
Возврат Ложь;
КонецЕсли;
-
+
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
@@ -2170,22 +2184,22 @@
ЭлементБлокировки.УстановитьЗначение("Ссылка", ФайлПринятый);
КонецЦикла;
Блокировка.Заблокировать();
-
+
Для Каждого ФайлПринятый Из МассивСсылокНаФайлы Цикл
ФайлОбъект = ФайлПринятый.ПолучитьОбъект();
ФайлОбъект.Заблокировать();
ФайлОбъект.ВладелецФайла = НовыйВладелецФайла;
ФайлОбъект.Записать();
КонецЦикла;
-
+
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
-
+
Возврат Истина;
-
+
КонецФункции
// Функция меняет свойство Родитель объектам типа Справочник.ПапкиФайла, вернет Истина при успехе,
@@ -2201,7 +2215,7 @@
//
Функция СменитьРодителяПапок(МассивСсылокНаФайлы, НовыйРодитель, НайденоЗацикливание) Экспорт
НайденоЗацикливание = Ложь;
-
+
Если МассивСсылокНаФайлы.Количество() = 0 Тогда
Возврат Ложь;
КонецЕсли;
@@ -2210,12 +2224,12 @@
Если МассивСсылокНаФайлы.Количество() = 1 И (МассивСсылокНаФайлы[0].Родитель = НовыйРодитель) Тогда
Возврат Ложь;
КонецЕсли;
-
+
Если ЕстьЗацикливание(МассивСсылокНаФайлы, НовыйРодитель) Тогда
НайденоЗацикливание = Истина;
Возврат Ложь;
КонецЕсли;
-
+
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
@@ -2224,22 +2238,22 @@
ЭлементБлокировки.УстановитьЗначение("Ссылка", ФайлПринятый);
КонецЦикла;
Блокировка.Заблокировать();
-
+
Для Каждого ФайлПринятый Из МассивСсылокНаФайлы Цикл
ФайлОбъект = ФайлПринятый.ПолучитьОбъект();
ФайлОбъект.Заблокировать();
ФайлОбъект.Родитель = НовыйРодитель;
ФайлОбъект.Записать();
КонецЦикла;
-
+
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
-
+
Возврат Истина;
-
+
КонецФункции
// Получает данные файла для открытия и читает из общих настроек ПапкаДляСохранитьКак.
@@ -2253,11 +2267,13 @@
// Возвращаемое значение:
// Структура - структура с данными файла.
//
-Функция ДанныеФайлаДляСохранения(ФайлСсылка, ВерсияСсылка = Неопределено, ИдентификаторФормы = Неопределено, РабочийКаталогВладельца = Неопределено) Экспорт
+Функция ДанныеФайлаДляСохранения(ФайлСсылка, ВерсияСсылка = Неопределено, ИдентификаторФормы = Неопределено,
+ РабочийКаталогВладельца = Неопределено) Экспорт
ДанныеФайла = ДанныеФайлаДляОткрытия(ФайлСсылка, ВерсияСсылка, ИдентификаторФормы, РабочийКаталогВладельца);
-
- ПапкаДляСохранитьКак = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("НастройкиПрограммы", "ПапкаДляСохранитьКак");
+
+ ПапкаДляСохранитьКак = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("НастройкиПрограммы",
+ "ПапкаДляСохранитьКак");
ДанныеФайла.Вставить("ПапкаДляСохранитьКак", ПапкаДляСохранитьКак);
Возврат ДанныеФайла;
@@ -2272,246 +2288,245 @@
// Массив - массив структур с данными файлов.
//
Функция ДанныеФайлаИНавигационнаяСсылкаВсехВерсийФайла(ФайлСсылка, ИдентификаторФормы) Экспорт
-
+
Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ РАЗРЕШЕННЫЕ
- | ВерсииФайлов.Ссылка КАК Ссылка
- |ИЗ
- | Справочник.ВерсииФайлов КАК ВерсииФайлов
- |ГДЕ
- | ВерсииФайлов.Владелец = &ФайлСсылка";
-
+ Запрос.Текст =
+ "ВЫБРАТЬ РАЗРЕШЕННЫЕ
+ | ВерсииФайлов.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.ВерсииФайлов КАК ВерсииФайлов
+ |ГДЕ
+ | ВерсииФайлов.Владелец = &ФайлСсылка";
+
Запрос.УстановитьПараметр("ФайлСсылка", ФайлСсылка);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
-
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ВызыватьИсключение = Ложь;
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
-
+
МассивВозврата = Новый Массив;
Пока Выборка.Следующий() Цикл
-
+
ВерсияСсылка = Выборка.Ссылка;
ДанныеФайла = ДанныеФайла(ФайлСсылка, ВерсияСсылка, ПараметрыДанныхФайла);
-
- Если ДанныеФайла.ПометкаУдаления = Ложь
- И Не ПрисоединенныйФайлНаходитсяНаДиске(ВерсияСсылка) Тогда
-
+
+ Если ДанныеФайла.ПометкаУдаления = Ложь И Не ПрисоединенныйФайлНаходитсяНаДиске(ВерсияСсылка) Тогда
+
Продолжить;
КонецЕсли;
-
- НавигационнаяСсылкаВерсии = РаботаСФайламиСлужебный.ПолучитьНавигационнуюСсылкуВоВременномХранилище(ВерсияСсылка, ИдентификаторФормы);
-
- СтруктураВозврата = Новый Структура("ДанныеФайла, НавигационнаяСсылкаВерсии, ВерсияСсылка",
- ДанныеФайла, НавигационнаяСсылкаВерсии, ВерсияСсылка);
+
+ НавигационнаяСсылкаВерсии = РаботаСФайламиСлужебный.ПолучитьНавигационнуюСсылкуВоВременномХранилище(
+ ВерсияСсылка, ИдентификаторФормы);
+
+ СтруктураВозврата = Новый Структура("ДанныеФайла, НавигационнаяСсылкаВерсии, ВерсияСсылка", ДанныеФайла,
+ НавигационнаяСсылкаВерсии, ВерсияСсылка);
МассивВозврата.Добавить(СтруктураВозврата);
-
+
КонецЦикла;
// Если не хранятся версии, то зашифровываем файл.
- Если Не ФайлСсылка.ХранитьВерсии Или Не ЗначениеЗаполнено(ФайлСсылка.ТекущаяВерсия) Тогда
+ ХранитьВерсии = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлСсылка, "ХранитьВерсии");
+
+ Если Не ХранитьВерсии
+ Или Не ЗначениеЗаполнено(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлСсылка, "ТекущаяВерсия")) Тогда
+
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
- ДанныеФайла = ДанныеФайла(ФайлСсылка,,ПараметрыДанныхФайла);
- НавигационнаяСсылкаВерсии = РаботаСФайламиСлужебный.ПолучитьНавигационнуюСсылкуВоВременномХранилище(ФайлСсылка, ИдентификаторФормы);
-
- СтруктураВозврата = Новый Структура("ДанныеФайла, НавигационнаяСсылкаВерсии, ВерсияСсылка",
- ДанныеФайла, НавигационнаяСсылкаВерсии, ФайлСсылка);
+ ДанныеФайла = ДанныеФайла(ФайлСсылка,, ПараметрыДанныхФайла);
+ НавигационнаяСсылкаВерсии = РаботаСФайламиСлужебный.ПолучитьНавигационнуюСсылкуВоВременномХранилище(ФайлСсылка,
+ ИдентификаторФормы);
+
+ СтруктураВозврата = Новый Структура("ДанныеФайла, НавигационнаяСсылкаВерсии, ВерсияСсылка", ДанныеФайла,
+ НавигационнаяСсылкаВерсии, ФайлСсылка);
МассивВозврата.Добавить(СтруктураВозврата);
КонецЕсли;
-
+
Возврат МассивВозврата;
КонецФункции
// Добавляет подпись к версии файла и отмечает файл, как подписанный.
Процедура ДобавитьПодписьКФайлу(ФайлСсылка, СвойстваПодписи, ИдентификаторФормы) Экспорт
-
+
СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлСсылка, "Редактирует, Зашифрован");
-
+
Редактирует = СтруктураРеквизитов.Редактирует;
Если ЗначениеЗаполнено(Редактирует) Тогда
- ВызватьИсключение РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла(ФайлСсылка);
+ ВызватьИсключение РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла(
+ ФайлСсылка);
КонецЕсли;
-
+
Зашифрован = СтруктураРеквизитов.Зашифрован;
Если Зашифрован Тогда
- СтрокаИсключения = РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла(ФайлСсылка);
+ СтрокаИсключения = РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла(
+ ФайлСсылка);
ВызватьИсключение СтрокаИсключения;
КонецЕсли;
-
+
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
Возврат;
КонецЕсли;
-
+
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
МодульЭлектроннаяПодпись.ДобавитьПодпись(ФайлСсылка, СвойстваПодписи, ИдентификаторФормы);
-
+
КонецПроцедуры
Процедура ПоказыватьПодсказкиПриРедактированииФайлов(Значение = Неопределено) Экспорт
-
+
УстановитьПривилегированныйРежим(Истина);
Если Значение <> Неопределено Тогда
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить(
"НастройкиПрограммы", "ПоказыватьПодсказкиПриРедактированииФайлов", Значение,,, Истина);
ОбновитьПовторноИспользуемыеЗначения();
КонецЕсли;
-
+
КонецПроцедуры
#Область УдалениеДанныхФайловИВерсий
-Функция РезультатУдаленияДанных(ФайлИлиВерсия, УникальныйИдентификатор) Экспорт
-
- УстановитьПривилегированныйРежим(Истина);
-
- Результат = Новый Структура("ТекстПредупреждения, Файлы", "", Новый Массив);
-
- ЭтоВерсияФайла = ТипЗнч(ФайлИлиВерсия) = Тип("СправочникСсылка.ВерсииФайлов");
- АвторизованныйПользователь = Пользователи.АвторизованныйПользователь();
- Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлИлиВерсия, "Автор") <> АвторизованныйПользователь Тогда
-
- Результат.ТекстПредупреждения = ?(ЭтоВерсияФайла,
- НСтр("ru = 'Только автор может удалить версию файла.'"),
- НСтр("ru = 'Только автор может удалить файл.'"));
-
- Возврат Результат;
-
- КонецЕсли;
-
- Если ЭтоВерсияФайла Тогда
- УдалитьДанныеВерсии(ФайлИлиВерсия, УникальныйИдентификатор, Результат);
- Иначе
- УдалитьДанныеФайла(ФайлИлиВерсия, УникальныйИдентификатор, Результат, АвторизованныйПользователь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
Функция РезультатУдаленияФайлов(ФайлыИлиВерсии, УникальныйИдентификатор) Экспорт
-
+
УстановитьПривилегированныйРежим(Истина);
-
+
+ АвторизованныйПользователь = Пользователи.АвторизованныйПользователь();
РезультатУдаления = Новый Соответствие;
-
Для Каждого ФайлИлиВерсия Из ФайлыИлиВерсии Цикл
-
+
+ ЭтоВерсияФайла = ТипЗнч(ФайлИлиВерсия) = Тип("СправочникСсылка.ВерсииФайлов");
Результат = Новый Структура("ТекстПредупреждения, Файлы", "", Новый Массив);
-
- АвторизованныйПользователь = Пользователи.АвторизованныйПользователь();
- Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлИлиВерсия, "Автор") <> АвторизованныйПользователь Тогда
-
- Результат.ТекстПредупреждения = НСтр("ru = 'Только автор может удалить версию файла.'");
-
- Продолжить;
-
+ Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлИлиВерсия, "Автор") = АвторизованныйПользователь Тогда
+ Если ЭтоВерсияФайла Тогда
+ // @skip-check query-in-loop - Порционное удаление каждой версии в своей транзакции
+ УдалитьДанныеВерсии(ФайлИлиВерсия, УникальныйИдентификатор, Результат);
+ Иначе
+ // @skip-check query-in-loop - Порционное удаление каждого файла в своей транзакции
+ УдалитьДанныеФайла(ФайлИлиВерсия, УникальныйИдентификатор, Результат, АвторизованныйПользователь);
+ КонецЕсли;
+ Иначе
+ Результат.ТекстПредупреждения = ?(ЭтоВерсияФайла, НСтр("ru = 'Только автор может удалить версию файла.'"),
+ НСтр("ru = 'Только автор может удалить файл.'"));
КонецЕсли;
-
- УдалитьДанныеФайла(ФайлИлиВерсия, УникальныйИдентификатор, Результат, АвторизованныйПользователь);
-
РезультатУдаления.Вставить(ФайлИлиВерсия, Результат);
-
+
КонецЦикла;
-
+
Возврат РезультатУдаления;
-
+
КонецФункции
-
-
Процедура УдалитьДанныеВерсии(ФайлИлиВерсия, УникальныйИдентификатор, Результат)
+
+ БлокировкаДанных = Новый БлокировкаДанных;
+ ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(ФайлИлиВерсия.Метаданные().ПолноеИмя());
+ ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ФайлИлиВерсия);
+
+ НачатьТранзакцию();
+ Попытка
+
+ БлокировкаДанных.Заблокировать();
+ ПараметрыТекущейВерсииВладельца = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлИлиВерсия, "Владелец,ТекущаяВерсия");
+ Если ПараметрыТекущейВерсииВладельца.ТекущаяВерсия = ФайлИлиВерсия Тогда
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ВерсииФайлов.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.ВерсииФайлов КАК ВерсииФайлов
+ |ГДЕ
+ | ВерсииФайлов.Владелец = &Владелец
+ | И ВерсииФайлов.Ссылка <> &Ссылка
+ | И НЕ ВерсииФайлов.ПометкаУдаления
+ |
+ |УПОРЯДОЧИТЬ ПО
+ | ВерсииФайлов.НомерВерсии УБЫВ";
+ Запрос.УстановитьПараметр("Владелец", ПараметрыТекущейВерсииВладельца.Владелец);
+ Запрос.УстановитьПараметр("Ссылка", ФайлИлиВерсия);
+ ВерсииВладельца = Запрос.Выполнить().Выбрать();
+
+ Если ВерсииВладельца.Следующий() Тогда
+ РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(ПараметрыТекущейВерсииВладельца.Владелец,
+ ВерсииВладельца.Ссылка, Неопределено, УникальныйИдентификатор);
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Результат.Файлы.Добавить(ФайлИлиВерсия);
+ УдалитьДанные(ФайлИлиВерсия, УникальныйИдентификатор);
+ ЗафиксироватьТранзакцию();
+
+ Исключение
+ ОтменитьТранзакцию();
+ ВызватьИсключение;
+ КонецПопытки;
+
+КонецПроцедуры
+
+Процедура УдалитьДанныеФайла(ФайлИлиВерсия, УникальныйИдентификатор, Результат, АвторизованныйПользователь)
+
+ БлокировкаДанных = Новый БлокировкаДанных;
+ ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(ФайлИлиВерсия.Метаданные().ПолноеИмя());
+ ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ФайлИлиВерсия);
+ Если ТипЗнч(ФайлИлиВерсия) <> Тип("СправочникСсылка.ВерсииФайлов") Тогда
+ ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.Справочники.ВерсииФайлов.ПолноеИмя());
+ ЭлементБлокировкиДанных.УстановитьЗначение("Владелец", ФайлИлиВерсия);
+ ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Разделяемый;
+ КонецЕсли;
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | ВерсииФайлов.Владелец КАК Владелец,
- | ВерсииФайлов.Владелец.ТекущаяВерсия КАК ТекущаяВерсия
- |ИЗ
- | Справочник.ВерсииФайлов КАК ВерсииФайлов
- |ГДЕ
- | ВерсииФайлов.Ссылка = &Ссылка";
- Запрос.УстановитьПараметр("Ссылка", ФайлИлиВерсия);
- ПараметрыТекущейВерсииВладельца = Запрос.Выполнить().Выбрать();
- ПараметрыТекущейВерсииВладельца.Следующий();
-
- Если ПараметрыТекущейВерсииВладельца.ТекущаяВерсия = ФайлИлиВерсия Тогда
-
+ ЕстьВерсииФайла = Ложь;
+ НачатьТранзакцию();
+ Попытка
+ БлокировкаДанных.Заблокировать();
+
Запрос = Новый Запрос;
- Запрос.Текст =
+ Запрос.Текст =
"ВЫБРАТЬ
- | ВерсииФайлов.Ссылка КАК Ссылка
+ | ВерсииФайлов.Ссылка КАК Ссылка,
+ | ВерсииФайлов.Автор КАК Автор
|ИЗ
| Справочник.ВерсииФайлов КАК ВерсииФайлов
|ГДЕ
| ВерсииФайлов.Владелец = &Владелец
- | И ВерсииФайлов.Ссылка <> &Ссылка
- | И НЕ ВерсииФайлов.ПометкаУдаления
|
|УПОРЯДОЧИТЬ ПО
| ВерсииФайлов.НомерВерсии УБЫВ";
- Запрос.УстановитьПараметр("Владелец", ПараметрыТекущейВерсииВладельца.Владелец);
- Запрос.УстановитьПараметр("Ссылка", ФайлИлиВерсия);
- ВерсииВладельца = Запрос.Выполнить().Выбрать();
-
- Если ВерсииВладельца.Следующий() Тогда
- РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(ПараметрыТекущейВерсииВладельца.Владелец,
- ВерсииВладельца.Ссылка, Неопределено, УникальныйИдентификатор);
- КонецЕсли;
-
- КонецЕсли;
-
- Результат.Файлы.Добавить(ФайлИлиВерсия);
- УдалитьДанные(ФайлИлиВерсия, УникальныйИдентификатор);
-
-КонецПроцедуры
+ Запрос.УстановитьПараметр("Владелец", ФайлИлиВерсия);
+ РезультатЗапроса = Запрос.Выполнить();
-Процедура УдалитьДанныеФайла(ФайлИлиВерсия, УникальныйИдентификатор, Результат, АвторизованныйПользователь)
-
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | ВерсииФайлов.Ссылка КАК Ссылка,
- | ВерсииФайлов.Автор КАК Автор
- |ИЗ
- | Справочник.ВерсииФайлов КАК ВерсииФайлов
- |ГДЕ
- | ВерсииФайлов.Владелец = &Владелец
- |
- |УПОРЯДОЧИТЬ ПО
- | ВерсииФайлов.НомерВерсии УБЫВ";
- Запрос.УстановитьПараметр("Владелец", ФайлИлиВерсия);
- РезультатЗапроса = Запрос.Выполнить();
-
- Если РезультатЗапроса.Пустой() Тогда
-
- Результат.Файлы.Добавить(ФайлИлиВерсия);
- УдалитьДанные(ФайлИлиВерсия, УникальныйИдентификатор);
+ ЕстьВерсииФайла = Не РезультатЗапроса.Пустой();
+ Если ЕстьВерсииФайла Тогда
+ Выборка = Запрос.Выполнить().Выбрать();
+ Иначе
+ Результат.Файлы.Добавить(ФайлИлиВерсия);
+ УдалитьДанные(ФайлИлиВерсия, УникальныйИдентификатор);
+ КонецЕсли;
+ ЗафиксироватьТранзакцию();
+
+ Исключение
+ ОтменитьТранзакцию();
+ ВызватьИсключение;
+ КонецПопытки;
+
+ Если Не ЕстьВерсииФайла Тогда
Возврат;
-
КонецЕсли;
-
- Выборка = Запрос.Выполнить().Выбрать();
-
+
ВерсияДругогоАвтора = Неопределено;
Пока Выборка.Следующий() Цикл
-
+
Если Выборка.Автор <> АвторизованныйПользователь Тогда
-
Если ВерсияДругогоАвтора = Неопределено Тогда
ВерсияДругогоАвтора = Выборка.Ссылка;
КонецЕсли;
-
Продолжить;
-
КонецЕсли;
-
+
Результат.Файлы.Добавить(Выборка.Ссылка);
УдалитьДанные(Выборка.Ссылка, УникальныйИдентификатор);
-
+
КонецЦикла;
-
+
Если ВерсияДругогоАвтора <> Неопределено Тогда
РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(
ФайлИлиВерсия, ВерсияДругогоАвтора, Неопределено, УникальныйИдентификатор);
@@ -2519,55 +2534,53 @@
Результат.Файлы.Добавить(ФайлИлиВерсия);
УдалитьДанные(ФайлИлиВерсия, УникальныйИдентификатор);
КонецЕсли;
-
+
КонецПроцедуры
Процедура УдалитьДанные(ФайлИлиВерсия, УникальныйИдентификатор)
-
+
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(ФайлИлиВерсия.Метаданные().ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ФайлИлиВерсия);
-
+
НачатьТранзакцию();
Попытка
-
+
БлокировкаДанных.Заблокировать();
- ЗаблокироватьДанныеДляРедактирования(ФайлИлиВерсия, , УникальныйИдентификатор);
-
+ ЗаблокироватьДанныеДляРедактирования(ФайлИлиВерсия,, УникальныйИдентификатор);
+
ФайлИлиВерсияОбъект = ФайлИлиВерсия.ПолучитьОбъект();
Если ФайлИлиВерсияОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
-
+
ПрисоединенныйФайлНаходитсяНаДиске = ПрисоединенныйФайлНаходитсяНаДиске(ФайлИлиВерсия);
Если ПрисоединенныйФайлНаходитсяНаДиске Тогда
-
+
СвойстваФайла = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме();
ЗаполнитьЗначенияСвойств(СвойстваФайла, ФайлИлиВерсияОбъект);
-
- // Исправить
- РаботаСФайламиВТомахСлужебный.УдалитьФайл(
- РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(СвойстваФайла));
-
+ РаботаСФайламиВТомахСлужебный.УдалитьФайл(РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(
+ СвойстваФайла));
+
КонецЕсли;
// Изменяем путь к файлу, чтобы он был уникален.
// Т.к. данные на компьютере удалены, то корректность расширения не сохраняем.
ФайлИлиВерсияОбъект.ПутьКФайлу = ФайлИлиВерсияОбъект.ПутьКФайлу + "_remove";//@Non-NLS
Иначе
РаботаСФайламиСлужебный.УдалитьЗаписьИзРегистраДвоичныеДанныеФайлов(ФайлИлиВерсия);
- КонецЕсли;
-
+ КонецЕсли;
+
ФайлИлиВерсияОбъект.ПометкаУдаления = Истина;
ФайлИлиВерсияОбъект.ДополнительныеСвойства.Вставить("УдалениеДанных", Истина);
ФайлИлиВерсияОбъект.Записать();
-
+
РазблокироватьДанныеДляРедактирования(ФайлИлиВерсия, УникальныйИдентификатор);
ЗафиксироватьТранзакцию();
-
+
Исключение
ОтменитьТранзакцию();
РазблокироватьДанныеДляРедактирования(ФайлИлиВерсия, УникальныйИдентификатор);
ВызватьИсключение;
КонецПопытки;
-
+
КонецПроцедуры
#КонецОбласти
@@ -2583,9 +2596,9 @@
// Число - количество занятых файлов.
//
Функция КоличествоФайловЗанятыхТекущимПользователем(ВладелецФайла) Экспорт
-
+
Возврат РаботаСФайламиСлужебный.КоличествоЗанятыхФайлов(ВладелецФайла);
-
+
КонецФункции
// Получает количество версий файла.
@@ -2596,9 +2609,9 @@
// Число - число версий
//
Функция ПолучитьКоличествоВерсий(ФайлСсылка)
-
+
УстановитьПривилегированныйРежим(Истина);
-
+
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
@@ -2607,13 +2620,13 @@
| Справочник.ВерсииФайлов КАК ВерсииФайлов
|ГДЕ
| ВерсииФайлов.Владелец = &ФайлСсылка";
-
+
Запрос.УстановитьПараметр("ФайлСсылка", ФайлСсылка);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
-
+
Возврат Число(Выборка.Количество);
-
+
КонецФункции
// Вернет Истина если есть зацикливание (если одну из папок переносим в ее же дочернюю папку).
@@ -2625,22 +2638,30 @@
// Булево - есть зацикливание.
//
Функция ЕстьЗацикливание(Знач МассивСсылокНаФайлы, НовыйРодитель)
-
+
Если МассивСсылокНаФайлы.Найти(НовыйРодитель) <> Неопределено Тогда
Возврат Истина; // нашли зацикливание
КонецЕсли;
-
- Родитель = НовыйРодитель.Родитель;
- Если Родитель.Пустая() Тогда // дошли до корня
- Возврат Ложь;
- КонецЕсли;
-
- Если ЕстьЗацикливание(МассивСсылокНаФайлы, Родитель) Тогда
- Возврат Истина; // нашли зацикливание
- КонецЕсли;
-
- Возврат Ложь;
-
+
+ Запрос = Новый Запрос;
+ Запрос.Текст = "ВЫБРАТЬ
+ | ПапкиФайлов.Родитель КАК Родитель
+ |ИЗ
+ | Справочник.ПапкиФайлов КАК ПапкиФайлов
+ |ГДЕ
+ | ПапкиФайлов.Ссылка = &Ссылка
+ |ИТОГИ
+ |ПО
+ | Родитель ТОЛЬКО ИЕРАРХИЯ";
+
+ Запрос.УстановитьПараметр("Ссылка", НовыйРодитель);
+
+ Родители = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Родитель");
+
+ СсылкиНаФайлыБезРодителей = ОбщегоНазначенияКлиентСервер.РазностьМассивов(МассивСсылокНаФайлы, Родители);
+
+ Возврат СсылкиНаФайлыБезРодителей.Количество() <> МассивСсылокНаФайлы.Количество();
+
КонецФункции
// Возвращает Истина, если в указанном элементе справочника ПапкиФайлов есть дочерний элемент с таким именем.
@@ -2654,18 +2675,18 @@
// Булево - есть дочерний элемент с таким именем.
//
Функция ЕстьПапкаСТакимИменем(ИмяПапки, Родитель, ПерваяПапкаСТакимЖеИменем) Экспорт
-
+
ПерваяПапкаСТакимЖеИменем = Справочники.ПапкиФайлов.ПустаяСсылка();
-
+
ВыборкаЗапроса = ЗапросВПапки(ИмяПапки, Родитель);
-
+
Если ВыборкаЗапроса.Количество() > 0 Тогда
ПерваяПапкаСТакимЖеИменем = ВыборкаЗапроса.Ссылка;
Возврат Истина;
КонецЕсли;
-
+
Возврат Ложь;
-
+
КонецФункции
// Возвращаемое значение:
@@ -2684,54 +2705,55 @@
|ГДЕ
| ПапкиФайлов.Наименование = &Наименование
| И ПапкиФайлов.Родитель = &Родитель";
-
+
Если Родитель <> Неопределено И ТипЗнч(Родитель) <> Тип("СправочникСсылка.ПапкиФайлов") Тогда
ИмяСправочникаХранилищаФайлов = РаботаСФайламиСлужебный.ИмяСправочникаХраненияФайлов(Родитель);
ЗапросВПапки.Текст = СтрЗаменить(ЗапросВПапки.Текст, ".ПапкиФайлов", "." + ИмяСправочникаХранилищаФайлов);
КонецЕсли;
-
- РезультатЗапроса = ЗапросВПапки.Выполнить();
+
+ РезультатЗапроса = ЗапросВПапки.Выполнить();
ВыборкаЗапроса = РезультатЗапроса.Выбрать();
ВыборкаЗапроса.Следующий();
Возврат ВыборкаЗапроса
КонецФункции
Функция ФайлСинхронизируетсяОблачнымСервисом(Файл)
-
+
Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ ПЕРВЫЕ 1
- | КОЛИЧЕСТВО(СтатусыСинхронизацииФайловСОблачнымСервисом.Файл) КАК Файл
- |ИЗ
- | РегистрСведений.СтатусыСинхронизацииФайловСОблачнымСервисом КАК СтатусыСинхронизацииФайловСОблачнымСервисом
- |ГДЕ
- | СтатусыСинхронизацииФайловСОблачнымСервисом.Файл = &Файл";
-
+ Запрос.Текст =
+ "ВЫБРАТЬ ПЕРВЫЕ 1
+ | КОЛИЧЕСТВО(СтатусыСинхронизацииФайловСОблачнымСервисом.Файл) КАК Файл
+ |ИЗ
+ | РегистрСведений.СтатусыСинхронизацииФайловСОблачнымСервисом КАК СтатусыСинхронизацииФайловСОблачнымСервисом
+ |ГДЕ
+ | СтатусыСинхронизацииФайловСОблачнымСервисом.Файл = &Файл";
+
Запрос.УстановитьПараметр("Файл", Файл);
-
+
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат Ложь;
КонецЕсли;
-
+
Возврат Истина;
-
+
КонецФункции
Функция ЕстьПравоДоступа(Право, Ссылка) Экспорт
-
+
Возврат ПравоДоступа(Право, Ссылка.Метаданные());
-
+
КонецФункции
Функция ПараметрыДобавленияИзображения(ВладелецФайлов, РеквизитРазмещения = Неопределено) Экспорт
-
+
ПараметрыДобавления = Новый Структура;
ПараметрыДобавления.Вставить("ПравоДобавления", ЕстьПравоДоступа("Добавление", ВладелецФайлов)); // @Access-right-2
ПараметрыДобавления.Вставить("ПравоИзменения", ЕстьПравоДоступа("Изменение", ВладелецФайлов)); // @Access-right-2
- ПараметрыДобавления.Вставить("ФайлыВладельца" , КоличествоПрисоединенныхФайлов(ВладелецФайлов, Истина, РеквизитРазмещения));
+ ПараметрыДобавления.Вставить("ФайлыВладельца", КоличествоПрисоединенныхФайлов(ВладелецФайлов, Истина,
+ РеквизитРазмещения));
Возврат ПараметрыДобавления;
-
+
КонецФункции
////////////////////////////////////////////////////////////////////////////////
@@ -2743,11 +2765,11 @@
// ВладелецНовогоФайла - ЛюбаяСсылка - владелец файла.
//
Процедура СкопироватьФайлы(МассивФайлов, ВладелецНовогоФайла) Экспорт
-
- Для каждого Файл Из МассивФайлов Цикл
+
+ Для Каждого Файл Из МассивФайлов Цикл
СкопироватьФайл(Файл, ВладелецНовогоФайла);
КонецЦикла;
-
+
КонецПроцедуры
// Записывает ХранилищеФайла в информационную базу.
@@ -2757,29 +2779,29 @@
// ХранилищеФайла - ХранилищеЗначения, с двоичными данными файла, которые требуется записать.
//
Процедура ЗаписатьФайлВИнформационнуюБазу(ВерсияСсылка, ХранилищеФайла)
-
+
УстановитьПривилегированныйРежим(Истина);
-
+
МенеджерЗаписи = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Файл = ВерсияСсылка;
МенеджерЗаписи.ДвоичныеДанныеФайла = ХранилищеФайла;
МенеджерЗаписи.Записать(Истина);
-
+
КонецПроцедуры
// Ставит файлу признак Зашифрован.
Процедура УстановитьПризнакЗашифрован(ФайлСсылка, Зашифрован, УникальныйИдентификатор = Неопределено) Экспорт
-
+
НачатьТранзакцию();
Попытка
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(ФайлСсылка)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ФайлСсылка);
БлокировкаДанных.Заблокировать();
-
+
ФайлОбъект = ФайлСсылка.ПолучитьОбъект();
- ЗаблокироватьДанныеДляРедактирования(ФайлСсылка, , УникальныйИдентификатор);
-
+ ЗаблокироватьДанныеДляРедактирования(ФайлСсылка,, УникальныйИдентификатор);
+
ФайлОбъект.Зашифрован = Зашифрован;
// Чтобы прошла запись ранее подписанного объекта.
ФайлОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
@@ -2791,7 +2813,7 @@
РазблокироватьДанныеДляРедактирования(ФайлСсылка, УникальныйИдентификатор);
ВызватьИсключение;
КонецПопытки;
-
+
КонецПроцедуры
// Обновляет размер файла и текущей версии.
@@ -2802,9 +2824,9 @@
// ИдентификаторФормы - УникальныйИдентификатор
//
Процедура ОбновитьРазмерФайлаИВерсии(ДанныеФайла, РазмерФайла, ИдентификаторФормы) Экспорт
-
+
УказанаВерсияФайла = ДанныеФайла.Версия <> ДанныеФайла.Ссылка;
-
+
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ДанныеФайла.Ссылка.Метаданные().ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ДанныеФайла.Ссылка);
@@ -2812,14 +2834,14 @@
ЭлементБлокировки = Блокировка.Добавить(ДанныеФайла.Версия.Метаданные().ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ДанныеФайла.Версия);
КонецЕсли;
-
+
НачатьТранзакцию();
Попытка
-
+
Блокировка.Заблокировать();
- ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, , ИдентификаторФормы);
+ ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка,, ИдентификаторФормы);
Если УказанаВерсияФайла Тогда
- ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, , ИдентификаторФормы);
+ ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Версия,, ИдентификаторФормы);
КонецЕсли;
ВерсияОбъект = ДанныеФайла.Версия.ПолучитьОбъект();
@@ -2827,7 +2849,7 @@
// Чтобы прошла запись подписанного объекта.
ВерсияОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
ВерсияОбъект.Записать();
-
+
Если УказанаВерсияФайла Тогда
ФайлОбъект = ДанныеФайла.Ссылка.ПолучитьОбъект();
// Чтобы прошла запись подписанного объекта.
@@ -2839,7 +2861,7 @@
Если УказанаВерсияФайла Тогда
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, ИдентификаторФормы);
КонецЕсли;
-
+
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
@@ -2849,13 +2871,13 @@
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
-
+
КонецПроцедуры
Процедура ЗаписатьКодировкуВерсииФайла(ВерсияСсылка, Кодировка) Экспорт
-
+
РегистрыСведений.КодировкиФайлов.ЗаписатьКодировкуВерсииФайла(ВерсияСсылка, Кодировка);
-
+
КонецПроцедуры
// Записывает кодировку версии файла.
@@ -2866,24 +2888,28 @@
// ИзвлеченныйТекст - текст, извлеченный из файла.
//
Процедура ЗаписатьКодировкуВерсииФайлаИИзвлеченныйТекст(ВерсияСсылка, Кодировка, ИзвлеченныйТекст) Экспорт
-
+
РегистрыСведений.КодировкиФайлов.ЗаписатьКодировкуВерсииФайла(ВерсияСсылка, Кодировка);
- ЗаписатьРезультатИзвлеченияТекстаПриРедактировании(ВерсияСсылка, Перечисления.СтатусыИзвлеченияТекстаФайлов.Извлечен,
+ ЗаписатьРезультатИзвлеченияТекстаПриРедактировании(ВерсияСсылка, Перечисления.СтатусыИзвлеченияТекстаФайлов.Извлечен,
ИзвлеченныйТекст);
-
+
КонецПроцедуры
// Записывает на сервер результат извлечения текста - извлеченный текст и СтатусИзвлеченияТекста.
-Процедура ЗаписатьРезультатИзвлеченияТекстаПриРедактировании(ВерсияСсылка, РезультатИзвлечения, АдресВременногоХранилищаТекста)
-
+Процедура ЗаписатьРезультатИзвлеченияТекстаПриРедактировании(ВерсияСсылка, РезультатИзвлечения,
+ АдресВременногоХранилищаТекста)
+
ФайлЗаблокирован = Ложь;
-
+
МетаданныеВерсии = Метаданные.НайтиПоТипу(ТипЗнч(ВерсияСсылка));
Если ОбщегоНазначения.ЕстьРеквизитОбъекта("РодительскаяВерсия", МетаданныеВерсии) Тогда
- Файл = ВерсияСсылка.Владелец;
-
- Если Файл.ТекущаяВерсия = ВерсияСсылка Тогда
-
+ ЗапрашиваемыеРеквизиты = Новый Структура;
+ ЗапрашиваемыеРеквизиты.Вставить("Владелец", "Владелец");
+ ЗапрашиваемыеРеквизиты.Вставить("ТекущаяВерсия", "Владелец.ТекущаяВерсия");
+ РеквизитыФайла = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВерсияСсылка, ЗапрашиваемыеРеквизиты);
+ Файл = РеквизитыФайла.Владелец;
+ Если РеквизитыФайла.ТекущаяВерсия = ВерсияСсылка Тогда
+
Попытка
ЗаблокироватьДанныеДляРедактирования(Файл);
ФайлЗаблокирован = Истина;
@@ -2891,55 +2917,56 @@
// Исключение, если объект уже заблокирован, в том числе и методом Заблокировать.
Возврат;
КонецПопытки;
-
+
КонецЕсли;
Иначе
Файл = ВерсияСсылка;
КонецЕсли;
-
+
ИспользованиеПолнотекстовогоПоиска = Метаданные.СвойстваОбъектов.ИспользованиеПолнотекстовогоПоиска.Использовать;
-
+
НачатьТранзакцию();
Попытка
Если ТипЗнч(Файл) = Тип("СправочникСсылка.Файлы") Тогда
- ФайлДляСравнения = Файл.ТекущаяВерсия;
+ ФайлДляСравнения = РеквизитыФайла.ТекущаяВерсия;
Иначе
ФайлДляСравнения = ВерсияСсылка;
КонецЕсли;
-
+
БлокировкаВерсии = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаВерсии.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(ВерсияСсылка)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ВерсияСсылка);
-
+
Если ФайлДляСравнения = ВерсияСсылка Тогда
БлокировкаФайла = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаФайла.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(Файл)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Файл);
БлокировкаФайла.Заблокировать();
КонецЕсли;
-
+
БлокировкаВерсии.Заблокировать();
-
+
ВерсияОбъект = ВерсияСсылка.ПолучитьОбъект();
-
+
Если МетаданныеВерсии.ПолнотекстовыйПоиск = ИспользованиеПолнотекстовогоПоиска Тогда
Если Не ПустаяСтрока(АдресВременногоХранилищаТекста) Тогда
-
+
Если Не ЭтоАдресВременногоХранилища(АдресВременногоХранилищаТекста) Тогда
- ВерсияОбъект.ТекстХранилище = Новый ХранилищеЗначения(АдресВременногоХранилищаТекста, Новый СжатиеДанных(9));
+ ВерсияОбъект.ТекстХранилище = Новый ХранилищеЗначения(АдресВременногоХранилищаТекста,
+ Новый СжатиеДанных(9));
ВерсияОбъект.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.Извлечен;
Иначе
РезультатИзвлеченияТекста = РаботаСФайламиСлужебный.ИзвлечьТекст(АдресВременногоХранилищаТекста);
ВерсияОбъект.ТекстХранилище = РезультатИзвлеченияТекста.ТекстХранилище;
ВерсияОбъект.СтатусИзвлеченияТекста = РезультатИзвлеченияТекста.СтатусИзвлеченияТекста;
КонецЕсли;
-
+
КонецЕсли;
Иначе
ВерсияОбъект.ТекстХранилище = Новый ХранилищеЗначения("");
ВерсияОбъект.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
КонецЕсли;
-
+
Если РезультатИзвлечения = "НеИзвлечен" Тогда
ВерсияОбъект.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
ИначеЕсли РезультатИзвлечения = "Извлечен" Тогда
@@ -2951,7 +2978,7 @@
// Чтобы прошла запись ранее подписанного объекта.
ВерсияОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
ВерсияОбъект.Записать();
-
+
Если ФайлДляСравнения = ВерсияСсылка Тогда
ФайлОбъект = Файл.ПолучитьОбъект();
ФайлОбъект.ТекстХранилище = ВерсияОбъект.ТекстХранилище;
@@ -2959,55 +2986,51 @@
ФайлОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
ФайлОбъект.Записать();
КонецЕсли;
-
+
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
-
+
Если ФайлЗаблокирован Тогда
РазблокироватьДанныеДляРедактирования(Файл);
КонецЕсли;
-
+
ВызватьИсключение;
КонецПопытки;
-
+
Если ФайлЗаблокирован Тогда
РазблокироватьДанныеДляРедактирования(Файл);
КонецЕсли;
-
+
КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////////////////////////
///// Общие файловые функции
// См. эту процедуру в модуле РаботаСФайламиСлужебный.
//
-Процедура ЗаписатьРезультатИзвлеченияТекста(ФайлИлиВерсияСсылка,
- РезультатИзвлечения,
- АдресВременногоХранилищаТекста) Экспорт
-
+Процедура ЗаписатьРезультатИзвлеченияТекста(ФайлИлиВерсияСсылка, РезультатИзвлечения, АдресВременногоХранилищаТекста) Экспорт
+
РаботаСФайламиСлужебный.ЗаписатьРезультатИзвлеченияТекста(
- ФайлИлиВерсияСсылка,
- РезультатИзвлечения,
- АдресВременногоХранилищаТекста);
-
+ ФайлИлиВерсияСсылка, РезультатИзвлечения, АдресВременногоХранилищаТекста);
+
КонецПроцедуры
// Только для внутреннего использования.
Процедура ПроверитьПодписи(ИсходныеДанные, ДанныеСтрок, ПодписанныйОбъект) Экспорт
-
+
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
Возврат;
КонецЕсли;
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
МодульЭлектроннаяПодписьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСервер");
-
+
Для Каждого СтрокаПодписи Из ДанныеСтрок Цикл
-
+
РезультатПроверкиПодписи = МодульЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписи();
ОписаниеОшибки = "";
- РезультатПроверки = МодульЭлектроннаяПодпись.ПроверитьПодпись(Неопределено, ИсходныеДанные, СтрокаПодписи.АдресПодписи,
- ОписаниеОшибки, СтрокаПодписи.ДатаПодписи, РезультатПроверкиПодписи);
-
+ МодульЭлектроннаяПодпись.ПроверитьПодпись(Неопределено, ИсходныеДанные,
+ СтрокаПодписи.АдресПодписи, ОписаниеОшибки, СтрокаПодписи.ДатаПодписи, РезультатПроверкиПодписи);
+
СтрокаПодписи.ДатаПроверкиПодписи = ТекущаяДатаСеанса();
СтрокаПодписи.ПодписьВерна = (РезультатПроверкиПодписи.Результат = Истина);
СтрокаПодписи.ОписаниеОшибки = ОписаниеОшибки;
@@ -3030,35 +3053,35 @@
НовыйРезультатПроверкиДоверенностей = Новый Массив;
Для Каждого Результат Из РезультатПроверкиДоверенностей Цикл
РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиПодписиПоМЧД(
- Результат.МашиночитаемаяДоверенность, ПодписанныйОбъект,
- РезультатПроверкиПодписи.Сертификат, СтрокаПодписи.ДатаПодписи);
+ Результат.МашиночитаемаяДоверенность, ПодписанныйОбъект, РезультатПроверкиПодписи.Сертификат,
+ СтрокаПодписи.ДатаПодписи);
НовыйРезультатПроверкиДоверенностей.Добавить(РезультатПроверкиПодписиПоМЧД);
СтрокаПодписи.РезультатПроверкиДоверенностей = ПоместитьВоВременноеХранилище(
НовыйРезультатПроверкиДоверенностей, СтрокаПодписи.РезультатПроверкиПодписиПоМЧД);
КонецЦикла;
КонецЕсли;
- //Конец Локализация
-
+ // Конец Локализация
+
РаботаСФайламиСлужебныйКлиентСервер.ЗаполнитьСтатусПодписи(СтрокаПодписи, ТекущаяДатаСеанса());
КонецЦикла;
-
+
КонецПроцедуры
// Локализация
Функция ПроверитьПодписиПоМЧД(Подписи, ПодписанныйОбъект) Экспорт
-
+
РезультатыПроверок = Новый Массив;
-
+
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
Возврат Новый Массив;
КонецЕсли;
-
+
МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль(
"МашиночитаемыеДоверенностиФНССлужебный");
Для Каждого Подпись Из Подписи Цикл
-
+
РезультатПроверкиДоверенностей = ПолучитьИзВременногоХранилища(Подпись.РезультатПроверкиПодписиПоМЧД);
НовыйРезультатПроверкиДоверенностей = Новый Массив;
Для Каждого Результат Из РезультатПроверкиДоверенностей Цикл
@@ -3066,18 +3089,20 @@
Результат.МашиночитаемаяДоверенность, ПодписанныйОбъект, Подпись.Сертификат, Подпись.ДатаПодписи);
НовыйРезультатПроверкиДоверенностей.Добавить(РезультатПроверкиПодписиПоМЧД);
КонецЦикла;
-
- РезультатПроверки = Новый Структура("Индекс, РезультатПроверкиПодписиПоМЧД", Подпись.Индекс, НовыйРезультатПроверкиДоверенностей);
- МодульМашиночитаемыеДоверенностиФНССлужебный.ДобавитьИнформациюМЧД(РезультатПроверки, Подпись.РезультатПроверкиПодписиПоМЧД);
+
+ РезультатПроверки = Новый Структура("Индекс, РезультатПроверкиПодписиПоМЧД", Подпись.Индекс,
+ НовыйРезультатПроверкиДоверенностей);
+ МодульМашиночитаемыеДоверенностиФНССлужебный.ДобавитьИнформациюМЧД(РезультатПроверки,
+ Подпись.РезультатПроверкиПодписиПоМЧД);
РезультатыПроверок.Добавить(РезультатПроверки);
-
+
КонецЦикла;
-
+
Возврат РезультатыПроверок;
КонецФункции
-//Конец Локализация
+// Конец Локализация
// Заносит номер в регистр сведений НомераОтсканированныхФайлов.
//
@@ -3090,7 +3115,7 @@
// Подготовить структуру отбора по измерениям.
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Владелец", Владелец);
-
+
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
@@ -3107,95 +3132,97 @@
ОтменитьТранзакцию();
Возврат;
КонецЕсли;
-
+
Номер = НовыйНомер;
УстановитьПривилегированныйРежим(Истина);
// Запишем новый номер в регистр.
НаборЗаписей = РегистрыСведений.НомераОтсканированныхФайлов.СоздатьНаборЗаписей();
-
+
НаборЗаписей.Отбор.Владелец.Установить(Владелец);
-
+
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Владелец = Владелец;
НоваяЗапись.Номер = Номер;
-
+
НаборЗаписей.Записать();
-
+
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
-
+
КонецПроцедуры
Функция ПоместитьФайлыВоВременноеХранилище(Параметры) Экспорт
-
+
Результат = Новый Массив;
Для Каждого ФайлВложение Из Параметры.МассивФайлов Цикл
- РаботаСФайламиСлужебный.СформироватьСписокФайловДляОтправкиПоПочте(Результат, ФайлВложение, Параметры.ИдентификаторФормы);
+ РаботаСФайламиСлужебный.СформироватьСписокФайловДляОтправкиПоПочте(Результат, ФайлВложение,
+ Параметры.ИдентификаторФормы);
КонецЦикла;
Возврат Результат;
-
+
КонецФункции
///////////////////////////////////////////////////////////////////////////////////
// Заполняет в табличном или офисном документе штамп электронной подписи.
Функция ДокументСоШтампом(Знач Файл) Экспорт
-
+
Расширение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Файл, "Расширение");
-
+
Если Расширение = "mxl" Тогда
ДанныеФайла = РаботаСФайлами.ДанныеФайла(Файл);
ВременныйФайл = ПолучитьИмяВременногоФайла(".mxl");
ДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла); // ДвоичныеДанные
ДвоичныеДанные.Записать(ВременныйФайл);
-
+
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ВременныйФайл);
-
+
УдалитьФайлы(ВременныйФайл);
-
+
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
-
+
ПараметрыШтампа = Новый Структура;
ПараметрыШтампа.Вставить("ТекстОтметки", "");
ПараметрыШтампа.Вставить("Логотип");
-
+
ЭлектронныеПодписи = МодульЭлектроннаяПодпись.УстановленныеПодписи(Файл);
ВладелецФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Файл, "ВладелецФайла");
-
+
СведенияОФайле = Новый Структура;
СведенияОФайле.Вставить("ВладелецФайла", ВладелецФайла);
-
+
Штампы = Новый Массив;
Для Каждого Подпись Из ЭлектронныеПодписи Цикл
Сертификат = Подпись.Сертификат;
СертификатКриптографии = Новый СертификатКриптографии(Сертификат.Получить());
РаботаСФайламиПереопределяемый.ПриПечатиФайлаСоШтампом(ПараметрыШтампа, СертификатКриптографии);
-
+
Штамп = МодульЭлектроннаяПодпись.ШтампВизуализацииЭлектроннойПодписи(СертификатКриптографии,
Подпись.ДатаПодписи, ПараметрыШтампа.ТекстОтметки, ПараметрыШтампа.Логотип);
Штампы.Добавить(Штамп);
КонецЦикла;
-
+
МодульЭлектроннаяПодпись.ДобавитьШтампыВТабличныйДокумент(ТабличныйДокумент, Штампы);
-
+
Возврат ТабличныйДокумент;
ИначеЕсли Расширение = "docx" Тогда
ДанныеФайла = РаботаСФайлами.ДанныеФайла(Файл);
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
ЭлектронныеПодписи = МодульЭлектроннаяПодпись.УстановленныеПодписи(Файл);
МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью");
- МодульУправлениеПечатью.ДобавитьШтампыВОфисныйДокумент(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла, ЭлектронныеПодписи);
-
+ МодульУправлениеПечатью.ДобавитьШтампыВОфисныйДокумент(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла,
+ ЭлектронныеПодписи);
+
Возврат ДанныеФайла.СсылкаНаДвоичныеДанныеФайла;
Иначе
Возврат Неопределено;
КонецЕсли;
-
+
КонецФункции
@@ -3208,24 +3235,24 @@
// Булево
//
Функция ПрисоединенныйФайлНаходитсяНаДиске(Знач ПрисоединенныйФайл)
-
- ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РаботаСФайлами.ДвоичныеДанныеФайла", "ПрисоединенныйФайл",
+
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РаботаСФайлами.ДвоичныеДанныеФайла", "ПрисоединенныйФайл",
ПрисоединенныйФайл, Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип);
-
+
ФайлОбъект = РаботаСФайламиСлужебный.ФайлОбъект(ПрисоединенныйФайл);
Если (ФайлОбъект = Неопределено Или ФайлОбъект.ЭтоГруппа) Тогда
Возврат Ложь;
КонецЕсли;
-
+
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
-
+
Если ФайлОбъект.ПометкаУдаления Тогда
Возврат Ложь;
КонецЕсли;
-
+
Если ФайлОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
-
+
Результат = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(ФайлОбъект.Ссылка);
Если Результат <> Неопределено Тогда
Результат = Результат.Получить();
@@ -3235,7 +3262,7 @@
КонецЕсли;
Возврат Ложь;
-
+
Иначе
Возврат РаботаСФайламиВТомахСлужебный.ПрисоединенныйФайлНаходитсяНаДиске(ПрисоединенныйФайл);
КонецЕсли;
@@ -3252,24 +3279,21 @@
КонецФункции
Функция ТехническаяИнформацияОВерсияхПодсистемИРасширениях() Экспорт
-
+
Возврат СтандартныеПодсистемыСервер.ТехническаяИнформацияОВерсияхПодсистемИРасширениях();
-
+
КонецФункции
Функция ПараметрыЛогирования(ИдентификаторКлиента) Экспорт
Результат = Новый Структура;
- Результат.Вставить("ДатаНачалаЛогированияСканирования",
- ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования", "ДатаНачалаЛогированияСканирования",
- Дата(1,1,1)));
- Результат.Вставить("ИмяЛогФайла", ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования",
+ Результат.Вставить("ДатаНачалаЛогированияСканирования", ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
+ "КомпонентаСканирования", "ДатаНачалаЛогированияСканирования", Дата(1, 1, 1)));
+ Результат.Вставить("ИмяЛогФайла", ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования",
"ИмяЛогФайла", Неопределено));
- Результат.Вставить("КаталогЖурналаСканирования",
- ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("НастройкиСканирования/КаталогЖурналаСканирования",
- ИдентификаторКлиента, Неопределено));
- Результат.Вставить("ИспользоватьКаталогЖурналаСканирования",
- ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("НастройкиСканирования/ИспользоватьКаталогЖурналаСканирования",
- ИдентификаторКлиента, Ложь));
+ Результат.Вставить("КаталогЖурналаСканирования", ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
+ "НастройкиСканирования/КаталогЖурналаСканирования", ИдентификаторКлиента, Неопределено));
+ Результат.Вставить("ИспользоватьКаталогЖурналаСканирования", ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
+ "НастройкиСканирования/ИспользоватьКаталогЖурналаСканирования", ИдентификаторКлиента, Ложь));
Возврат Результат;
КонецФункции
@@ -3280,10 +3304,10 @@
// * ИмяЛогФайла - Строка - имя логфайла, используемое компонентой сканирования
//
Функция ТехническаяИнформация() Экспорт
-
+
Результат = Новый Структура;
СобытиеЖурналаСканирования = НСтр("ru='Сканирование изображений'", ОбщегоНазначения.КодОсновногоЯзыка());
-
+
СобытияОтбора = Новый Массив;
СобытияОтбора.Добавить(СобытиеЖурналаСканирования + "." + "ПолучитьУстройства.Старт");
СобытияОтбора.Добавить(СобытиеЖурналаСканирования + "." + "ПолучитьУстройства.Результат");
@@ -3305,23 +3329,23 @@
СобытияОтбора.Добавить(СобытиеЖурналаСканирования + "." + "LogFilePath.УстановкаЗначения");
СобытияОтбора.Добавить(СобытиеЖурналаСканирования + "." + "LogFilePath.ЗначениеУстановлено");
СобытияОтбора.Добавить(СобытиеЖурналаСканирования + "." + "LogFilePath");
-
+
Отбор = Новый Структура("Событие", СобытияОтбора);
Отбор.Вставить("ДатаНачала", ТекущаяДатаСеанса() - 600);
-
+
Результат.Вставить("ЖурналРегистрации", ПолучитьИзВременногоХранилища(
ЖурналРегистрации.ЖурналДляТехподдержки(Отбор, 200, Новый УникальныйИдентификатор)));
- Результат.Вставить("ТехническаяИнформацияОВерсияхПодсистемИРасширениях",
+ Результат.Вставить("ТехническаяИнформацияОВерсияхПодсистемИРасширениях",
СтандартныеПодсистемыСервер.ТехническаяИнформацияОВерсияхПодсистемИРасширениях());
- Результат.Вставить("ИмяЛогФайла",
- ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить("КомпонентаСканирования", "ИмяЛогФайла"));
+ Результат.Вставить("ИмяЛогФайла", ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить(
+ "КомпонентаСканирования", "ИмяЛогФайла"));
Возврат Результат;
КонецФункции
Процедура УстановитьПараметрыНачалаЛогирования(ИмяЛогФайла) Экспорт
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить("КомпонентаСканирования", "ИмяЛогФайла", ИмяЛогФайла);
- ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить("КомпонентаСканирования", "ДатаНачалаЛогированияСканирования",
- ТекущаяДатаСеанса());
+ ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить("КомпонентаСканирования",
+ "ДатаНачалаЛогированияСканирования", ТекущаяДатаСеанса());
КонецПроцедуры
-
-#КонецОбласти
+
+#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl
index 13740f724..44aa39888 100644
--- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl
+++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl
@@ -214,10 +214,10 @@
Возврат Результат;
КонецЕсли;
- ПараметрыОповещения = Новый Структура;
- ПараметрыОповещения.Вставить("ВладелецФайла", ПараметрыВыполнения.ВладелецФайла);
- ПараметрыОповещения.Вставить("Файл" , Результат.ФайлСсылка);
- ПараметрыОповещения.Вставить("ЭтоНовый" , Истина);
+ ПараметрыОповещения = ПараметрыОповещенияЗаписиФайла();
+ ПараметрыОповещения.Владелец = ПараметрыВыполнения.ВладелецФайла;
+ ПараметрыОповещения.Файл = Результат.ФайлСсылка;
+ ПараметрыОповещения.ЭтоНовый = Истина;
Оповестить("Запись_Файл", ПараметрыОповещения, Результат.ФайлСсылка);
ПоказатьОповещениеПользователя(
@@ -293,10 +293,10 @@
Если ПрисоединенныеФайлыМассив.Количество() > 0 Тогда
ОповеститьОбИзменении(ПрисоединенныеФайлыМассив[0]);
ОповеститьОбИзменении(ВладелецФайла);
- ПараметрыОповещения = Новый Структура;
- ПараметрыОповещения.Вставить("ВладелецФайла", ВладелецФайла);
- ПараметрыОповещения.Вставить("Файл" , ПрисоединенныеФайлыМассив[0]);
- ПараметрыОповещения.Вставить("ЭтоНовый" , Истина);
+ ПараметрыОповещения = ПараметрыОповещенияЗаписиФайла();
+ ПараметрыОповещения.Владелец = ВладелецФайла;
+ ПараметрыОповещения.Файл = ПрисоединенныеФайлыМассив[0];
+ ПараметрыОповещения.ЭтоНовый = Истина;
Оповестить("Запись_Файл", ПараметрыОповещения, ПрисоединенныеФайлыМассив);
КонецЕсли;
@@ -494,11 +494,10 @@
КонецФункции
-// Возвращает результат подключения расширения работы с файлами.
+// Возвращает результат подключения расширения для работы с 1С:Предприятием.
//
// Возвращаемое значение:
-// Булево - в тонком клиенте всегда Истина, в браузере Google Chrome
-// всегда ложь.
+// Булево - в тонком клиенте всегда Истина, в браузере Google Chrome всегда ложь.
//
Функция РасширениеРаботыСФайламиПодключено() Экспорт
Если КлиентПоддерживаетСинхронныеВызовы() Тогда
@@ -1007,6 +1006,32 @@
КонецПроцедуры
+Функция ПараметрыОповещенияЗаписиФайла(Событие = "") Экспорт
+ ПараметрыСобытия = Новый Структура;
+ ПараметрыСобытия.Вставить("Событие", Событие);
+ ПараметрыСобытия.Вставить("ЭтоНовый", Ложь);
+ ПараметрыСобытия.Вставить("Владелец");
+ ПараметрыСобытия.Вставить("Файл");
+ Возврат ПараметрыСобытия;
+КонецФункции
+
+Процедура ОповеститьОбИзмененииФайлов(Файлы, ПараметрыОповещенияЗаписиФайла = Неопределено) Экспорт
+ Если ТипЗнч(Файлы) <> Тип("Массив") Тогда
+ ФайлыДляОповещения = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Файлы);
+ Иначе
+ ФайлыДляОповещения = Файлы;
+ КонецЕсли;
+
+ Если ПараметрыОповещенияЗаписиФайла = Неопределено Тогда
+ ПараметрыОповещенияЗаписиФайла = ПараметрыОповещенияЗаписиФайла();
+ КонецЕсли;
+
+ Для Каждого Файл Из ФайлыДляОповещения Цикл
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Файл);
+ КонецЦикла;
+
+КонецПроцедуры
+
#Область ИзвлечениеТекста
Процедура ИзвлечьТекстВерсии(ФайлИлиВерсияФайла, АдресФайла, Расширение, УникальныйИдентификатор,
@@ -1248,7 +1273,7 @@
КонецЦикла;
КонецЕсли;
- //Конец Локализация
+ // Конец Локализация
Возврат;
КонецЕсли;
@@ -1872,10 +1897,10 @@
ДанныеФайлов.КоличествоЗанятыхФайлов);
Если МассивФайлов.Количество() > 1 Тогда
ОповеститьОбИзменении(ТипЗнч(МассивФайлов[0]));
- Оповестить("Запись_Файл", Новый Структура, Неопределено);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла(), Неопределено);
Иначе
ОповеститьОбИзменении(МассивФайлов[0]);
- Оповестить("Запись_Файл", Новый Структура, МассивФайлов[0]);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла(), МассивФайлов[0]);
КонецЕсли;
КонецПроцедуры
@@ -2437,7 +2462,7 @@
// Продолжение процедуры (см. выше).
Процедура ЗакончитьРедактированиеБезРасширения(ПараметрыВыполнения)
- // Веб-клиент без расширения для работы с файлами.
+ // Веб-клиент без расширения для работы с 1С:Предприятием.
Если ПараметрыВыполнения.ДанныеФайла = Неопределено Тогда
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
@@ -3076,6 +3101,7 @@
ПараметрыЗанятияФайла = РаботаСФайламиСлужебныйКлиентСервер.ПараметрыЗанятияФайла();
ПараметрыЗанятияФайла.УникальныйИдентификатор = ПараметрыВыполнения.ИдентификаторФормы;
+ ПараметрыЗанятияФайла.ВызыватьИсключение = Ложь;
ФайлЗанят = РаботаСФайламиСлужебныйВызовСервера.ЗанятьФайл(ПараметрыВыполнения.ДанныеФайла, ТекстОшибки,
ПараметрыЗанятияФайла);
@@ -3777,7 +3803,7 @@
РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайлаИОсвободитьФайл(ПараметрыВыполнения.ОбъектСсылка,
ПараметрыВыполнения.ДанныеФайла, ПараметрыВыполнения.УникальныйИдентификатор);
ОповеститьОбИзменении(ТипЗнч(ПараметрыВыполнения.ОбъектСсылка));
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ПараметрыВыполнения.ОбъектСсылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ПараметрыВыполнения.ОбъектСсылка);
Если РасширениеРаботыСФайламиПодключено() Тогда
НаЧтение = Истина;
@@ -4454,10 +4480,10 @@
ОповеститьОбИзменении(ПрисоединенныйФайл);
ОповеститьОбИзменении(ВладелецФайла);
- ПараметрыОповещения = Новый Структура;
- ПараметрыОповещения.Вставить("ВладелецФайла", ВладелецФайла);
- ПараметрыОповещения.Вставить("Файл" , ПрисоединенныйФайл);
- ПараметрыОповещения.Вставить("ЭтоНовый" , Истина);
+ ПараметрыОповещения = ПараметрыОповещенияЗаписиФайла();
+ ПараметрыОповещения.ВладелецФайла = ВладелецФайла;
+ ПараметрыОповещения.Файл = ПрисоединенныйФайл;
+ ПараметрыОповещения.ЭтоНовый = Истина;
Оповестить("Запись_Файл", ПараметрыОповещения, ПрисоединенныйФайл);
Если ДополнительныеПараметры.Свойство("ОбработчикРезультата")
@@ -5689,10 +5715,10 @@
ОповеститьОбИзменении(ПараметрыВыполнения.ДанныеФайла.Ссылка);
ОповеститьОбИзменении(ПараметрыВыполнения.ДанныеФайла.Версия);
- ПараметрыОповещения = Новый Структура;
- ПараметрыОповещения.Вставить("Файл" , ПараметрыВыполнения.ДанныеФайла.Ссылка);
- ПараметрыОповещения.Вставить("Событие" , "ДанныеФайлаИзменены");
- ПараметрыОповещения.Вставить("ЭтоНовый" , Ложь);
+ ПараметрыОповещения = ПараметрыОповещенияЗаписиФайла();
+ ПараметрыОповещения.Файл = ПараметрыВыполнения.ДанныеФайла.Ссылка;
+ ПараметрыОповещения.Событие = "ДанныеФайлаИзменены";
+ ПараметрыОповещения.ЭтоНовый = Ложь;
Оповестить("Запись_Файл", ПараметрыОповещения, ПараметрыВыполнения.ДанныеФайла.Ссылка);
КонецЕсли;
@@ -7136,11 +7162,10 @@
Процедура ЗакончитьРедактированиеСОповещениемЗавершение(Результат, ПараметрыВыполнения) Экспорт
Если Результат = Истина Тогда
-
- Оповестить("Запись_Файл", Новый Структура("Событие", "ЗаконченоРедактирование"), ПараметрыВыполнения.ПараметрКоманды);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ЗаконченоРедактирование"), ПараметрыВыполнения.ПараметрКоманды);
ОповеститьОбИзменении(ПараметрыВыполнения.ПараметрКоманды);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ПараметрыВыполнения.ПараметрКоманды);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ВерсияСохранена"), ПараметрыВыполнения.ПараметрКоманды);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ПараметрыВыполнения.ПараметрКоманды);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ВерсияСохранена"), ПараметрыВыполнения.ПараметрКоманды);
КонецЕсли;
@@ -7215,10 +7240,10 @@
Для Каждого ФайлСсылка Из ПараметрыВыполнения.МассивФайлов Цикл
- Оповестить("Запись_Файл", Новый Структура("Событие", "ЗаконченоРедактирование"), ФайлСсылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ЗаконченоРедактирование"), ФайлСсылка);
ОповеститьОбИзменении(ФайлСсылка);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ФайлСсылка);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ВерсияСохранена"), ФайлСсылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ФайлСсылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ВерсияСохранена"), ФайлСсылка);
КонецЦикла;
@@ -7258,8 +7283,10 @@
Если ПрисоединенныеФайлыМассив.Количество() > 0 Тогда
ОповеститьОбИзменении(ПрисоединенныеФайлыМассив[0]);
ОповеститьОбИзменении(ВладелецФайла);
- Оповестить("Запись_Файл",
- Новый Структура("ЭтоНовый, ВладелецФайла", Истина, ВладелецФайла), ПрисоединенныеФайлыМассив);
+ ПараметрыОповещенияЗаписиФайла = ПараметрыОповещенияЗаписиФайла();
+ ПараметрыОповещенияЗаписиФайла.ЭтоНовый = Истина;
+ ПараметрыОповещенияЗаписиФайла.Владелец = ВладелецФайла;
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, ПрисоединенныеФайлыМассив);
КонецЕсли;
КонецПроцедуры
@@ -7289,8 +7316,8 @@
Если ФайлОтредактирован Тогда
ОповеститьОбИзменении(ПараметрыВыполнения.ОбъектСсылка);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ПараметрыВыполнения.ОбъектСсылка);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ФайлРедактировался"), ПараметрыВыполнения.ОбъектСсылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ПараметрыВыполнения.ОбъектСсылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ФайлРедактировался"), ПараметрыВыполнения.ОбъектСсылка);
КонецЕсли;
ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, Неопределено);
@@ -7333,7 +7360,7 @@
ОповеститьОбИзменении(Тип("СправочникСсылка.Файлы"));
Для Каждого ФайлСсылка Из ПараметрыВыполнения.ПараметрКоманды Цикл
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ФайлСсылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ФайлСсылка);
ОповеститьОбИзменении(ФайлСсылка);
КонецЦикла;
ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, Неопределено);
@@ -7345,7 +7372,7 @@
Если Результат = Истина Тогда
ОповеститьОбИзменении(ПараметрыВыполнения.ПараметрКоманды);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ПараметрыВыполнения.ПараметрКоманды);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ПараметрыВыполнения.ПараметрКоманды);
КонецЕсли;
ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, Неопределено);
@@ -7390,7 +7417,7 @@
ОповеститьОбИзменении(Тип("СправочникСсылка.Файлы"));
Для Каждого ФайлСсылка Из ПараметрыВыполнения.ПараметрКоманды Цикл
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ФайлСсылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ФайлСсылка);
КонецЦикла;
ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, Неопределено);
@@ -7402,7 +7429,7 @@
Если Результат = Истина Тогда
ОповеститьОбИзменении(ПараметрыВыполнения.ПараметрКоманды);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ПараметрыВыполнения.ПараметрКоманды);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ПараметрыВыполнения.ПараметрКоманды);
КонецЕсли;
@@ -7645,8 +7672,8 @@
Процедура СохранитьИзмененияФайлаСОповещениемЗавершение(Результат, ПараметрыВыполнения) Экспорт
Если Результат = Истина Тогда
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ПараметрыВыполнения.ПараметрКоманды);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ВерсияСохранена"), ПараметрыВыполнения.ПараметрКоманды);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ПараметрыВыполнения.ПараметрКоманды);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ВерсияСохранена"), ПараметрыВыполнения.ПараметрКоманды);
КонецЕсли;
ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, Результат);
@@ -7686,8 +7713,8 @@
Если Результат = Истина Тогда
ОповеститьОбИзменении(ПараметрыВыполнения.ДанныеФайла.Ссылка);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ПараметрыВыполнения.ДанныеФайла.Ссылка);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ВерсияСохранена"), ПараметрыВыполнения.ДанныеФайла.Ссылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ПараметрыВыполнения.ДанныеФайла.Ссылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ВерсияСохранена"), ПараметрыВыполнения.ДанныеФайла.Ссылка);
КонецЕсли;
ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, Неопределено);
@@ -8124,7 +8151,7 @@
// Продолжение процедуры (см. выше).
Процедура ДобавитьИзФайловойСистемыБезРасширения(ПараметрыВыполнения)
- // Загрузить из файловой системы без расширения работы с файлами (веб-клиент).
+ // Загрузить из файловой системы без расширения для работы с 1С:Предприятием (веб-клиент).
ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Если ПараметрыВыполнения.Свойство("ФильтрДиалогаВыбора") Тогда
ДиалогВыбора.Фильтр = ПараметрыВыполнения.ФильтрДиалогаВыбора;
@@ -8207,10 +8234,10 @@
Возврат;
КонецЕсли;
- ПараметрыОповещения = Новый Структура;
- ПараметрыОповещения.Вставить("Владелец", ПараметрыВыполнения.ВладелецФайла);
- ПараметрыОповещения.Вставить("Файл", Результат.ФайлСсылка);
- ПараметрыОповещения.Вставить("ЭтоНовый", Истина);
+ ПараметрыОповещения = ПараметрыОповещенияЗаписиФайла();
+ ПараметрыОповещения.Владелец = ПараметрыВыполнения.ВладелецФайла;
+ ПараметрыОповещения.Файл = Результат.ФайлСсылка;
+ ПараметрыОповещения.ЭтоНовый = Истина;
Оповестить("Запись_Файл", ПараметрыОповещения, Результат.ФайлСсылка);
ПоказатьОповещениеПользователя(
@@ -8404,8 +8431,8 @@
ФайлСсылка) Экспорт
ОповеститьОбИзменении(ФайлСсылка);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ПрисоединенныйФайлЗашифрован"), ВладелецФайла);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ФайлСсылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ПрисоединенныйФайлЗашифрован"), ВладелецФайла);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ФайлСсылка);
// Удаляем из рабочего каталога все версии файла.
Для Каждого ПолноеИмяФайла Из МассивФайловВРабочемКаталогеДляУдаления Цикл
@@ -8430,8 +8457,8 @@
Процедура ИнформироватьОРасшифровке(ВладелецФайла, ФайлСсылка) Экспорт
ОповеститьОбИзменении(ФайлСсылка);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ПрисоединенныйФайлЗашифрован"), ВладелецФайла);
- Оповестить("Запись_Файл", Новый Структура("Событие", "ДанныеФайлаИзменены"), ФайлСсылка);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ПрисоединенныйФайлЗашифрован"), ВладелецФайла);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ДанныеФайлаИзменены"), ФайлСсылка);
Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
Возврат;
@@ -8541,12 +8568,12 @@
Для Каждого Файл Из ПараметрыВыполнения.ПрисоединенныйФайл Цикл
ОповеститьОбИзменении(Файл);
- Оповестить("Запись_Файл", Новый Структура, Файл);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла(), Файл);
КонецЦикла;
Иначе
ОповеститьОбИзменении(ПараметрыВыполнения.ПрисоединенныйФайл);
- Оповестить("Запись_Файл", Новый Структура, ПараметрыВыполнения.ПрисоединенныйФайл);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла(), ПараметрыВыполнения.ПрисоединенныйФайл);
КонецЕсли;
КонецЕсли;
@@ -8634,8 +8661,7 @@
ОповеститьОбИзменении(ДанныеФайла.Ссылка);
ОповеститьОбИзменении(ДанныеФайла.ТекущаяВерсия);
- ОповещениеПараметр = Новый Структура("Событие", "ПрисоединенныйФайлПодписан");
- Оповестить("Запись_Файл", ОповещениеПараметр, ДанныеФайла.Владелец);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ПрисоединенныйФайлПодписан"), ДанныеФайла.Владелец);
КонецПроцедуры
@@ -10563,7 +10589,7 @@
КонецПроцедуры
-// Загружает файл с клиента во временное хранилище на сервере. Не работает без расширения работы с файлами.
+// Загружает файл с клиента во временное хранилище на сервере. Не работает без расширения для работы с 1С:Предприятием.
Функция ПоместитьФайлСДискаВоВременноеХранилище(ПолноеИмяФайла, АдресФайла = "", УникальныйИдентификатор = Неопределено)
Если Не РасширениеРаботыСФайламиПодключено() Тогда
Возврат Неопределено;
@@ -11045,7 +11071,7 @@
КонецФункции
-Функция ЕстьУстройства(Форма, ПодключаемыйМодуль) Экспорт
+Функция ЕстьУстройства(Форма, ПодключаемыйМодуль, ПоказыватьОшибку = Истина) Экспорт
ЗаписатьЖурналСканирования("ЕстьУстройства.Старт");
Попытка
ЕстьУстройства = ПодключаемыйМодуль.ЕстьУстройства();
@@ -11054,7 +11080,9 @@
Исключение
ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписатьЖурналСканирования("ЕстьУстройства", ПредставлениеОшибки, Истина);
- ПоказатьОшибкуСканирования(ПодключаемыйМодуль, Форма, НСтр("ru='Не удалось проверить наличие устройств'"), ПредставлениеОшибки);
+ Если ПоказыватьОшибку Тогда
+ ПоказатьОшибкуСканирования(ПодключаемыйМодуль, Форма, НСтр("ru='Не удалось проверить наличие устройств'"), ПредставлениеОшибки);
+ КонецЕсли;
ЕстьУстройства = Ложь;
КонецПопытки;
@@ -11372,16 +11400,15 @@
Возврат;
КонецЕсли;
- Результат = РаботаСФайламиСлужебныйВызовСервера.РезультатУдаленияДанных(
- Контекст.ФайлИлиВерсия, Контекст.УникальныйИдентификатор);
-
+ Результат = РаботаСФайламиСлужебныйВызовСервера.РезультатУдаленияФайлов(
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Контекст.ФайлИлиВерсия),
+ Контекст.УникальныйИдентификатор);
+ Результат = Результат[Контекст.ФайлИлиВерсия];
+
Если Результат.Файлы.Количество() > 0 Тогда
-
Результат.Вставить("ИндексУдаляемогоФайла", 0);
Результат.Вставить("ОбработчикЗавершения", Контекст.ОбработчикЗавершения);
-
НачатьУдалениеФайлаИзКеша(Результат);
-
Иначе
ОповеститьОбУдаленииДанных(Контекст.ОбработчикЗавершения, Результат.ТекстПредупреждения);
КонецЕсли;
@@ -11409,7 +11436,7 @@
Процедура ОповеститьОбУдаленииДанных(ОбработчикЗавершения, ТекстПредупреждения)
- Оповестить("Запись_Файл", Новый Структура);
+ Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла());
Если Не ПустаяСтрока(ТекстПредупреждения) Тогда
ПоказатьПредупреждение(ОбработчикЗавершения, ТекстПредупреждения);
ИначеЕсли ОбработчикЗавершения <> Неопределено Тогда
diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl
index 52fe126e9..064a84b5d 100644
--- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl
+++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl
@@ -33,7 +33,7 @@
РаботаСФайламиСлужебныйКлиент.УстановитьРабочийКаталогПользователя(ИмяКаталога);
Иначе
ПараметрыПриложения["СтандартныеПодсистемы.ПроверкаДоступаКРабочемуКаталогуВыполнена"] = Истина;
- Возврат ""; // Веб клиент без расширения работы с файлами.
+ Возврат ""; // Веб клиент без расширения для работы с 1С:Предприятием.
КонецЕсли;
КонецЕсли;
diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl
index 32212bfab..72f0e32ff 100644
--- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl
+++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl
@@ -360,6 +360,7 @@
Параметры.Вставить("УникальныйИдентификатор");
Параметры.Вставить("Пользователь");
Параметры.Вставить("ДополнительныеСвойства");
+ Параметры.Вставить("ВызыватьИсключение", Истина);
Возврат Параметры;
diff --git a/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl
index e1d2e7509..46510d538 100644
--- a/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl
+++ b/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl
@@ -436,7 +436,7 @@
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось отправить отчеты получателю ''%1'':'"), ПредставлениеПолучателя);
РасширенноеПредставлениеОшибки = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(
- ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка());
+ ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка(), Ложь);
ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения, РасширенноеПредставлениеОшибки);
Если НЕ ИспользуетсяПочтовыйКлиент() И ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов")
@@ -2291,7 +2291,7 @@
Исключение
РасширенноеПредставлениеОшибки = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(
- ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка());
+ ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка(), Ложь);
ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка,
ШаблонСообщенияОбОшибке, РасширенноеПредставлениеОшибки);
@@ -4851,7 +4851,6 @@
Разделы = МодульТекущиеДелаСервер.РазделыДляОбъекта(Метаданные.Справочники.РассылкиОтчетов.ПолноеИмя());
Для Каждого Раздел Из Разделы Цикл
- ИдентификаторРассылкаОтчетов = "РассылкаОтчетов";
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = ИмяДела + СтрЗаменить(Раздел.ПолноеИмя(), ".", "");
Дело.ЕстьДела = Истина;
diff --git a/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl
index e3fc8bc08..75ebd0919 100644
--- a/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl
+++ b/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl
@@ -5343,7 +5343,7 @@
//
// Шаги цикла:
// 1. подготовка параметров цикла
-// 2. вложенный процесс проверки установки расширения работы с файлами
+// 2. вложенный процесс проверки установки расширения для работы с 1С:Предприятием
// 3. открыть диалог выбора файла, по необходимости
// 4. подготовка данных к записи (двоичные данные)
// 5. запись файла, асинхронным методом
@@ -5369,7 +5369,7 @@
ОбъектОповещения = Новый ОписаниеОповещения("СохранитьДанныеВФайлПослеУстановкиРасширения", ЭтотОбъект);
ОповещениеСледующее = ОбработчикОповещения(ОбъектОповещения, ВходящийКонтекст);
- ТекстСообщения = НСтр("ru = 'Для продолжения работы требуется установить расширение для работы с файлами.'", КодЯзыка());
+ ТекстСообщения = НСтр("ru = 'Для продолжения работы требуется установить расширение для работы с 1С:Предприятием.'", КодЯзыка());
ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(ОповещениеСледующее, ТекстСообщения, Ложь);
@@ -5495,7 +5495,7 @@
//
// Шаги цикла:
// 1. подготовка параметров цикла
-// 2. вложенный процесс проверки установки расширения работы с файлами
+// 2. вложенный процесс проверки установки расширения для работы с 1С:Предприятием
// 3. открыть диалог выбора файла, по необходимости
// 4. получение данных файла, асинхронным методом
// 5. возврат результата операции (адрес хранилища или двоичные данные).
@@ -5520,7 +5520,7 @@
ОбъектОповещения = Новый ОписаниеОповещения("ЗагрузитьДанныеИзФайлаПослеУстановкиРасширения", ЭтотОбъект);
ОповещениеСледующее = ОбработчикОповещения(ОбъектОповещения, ВходящийКонтекст);
- ТекстСообщения = НСтр("ru = 'Для продолжения работы требуется установить расширение для работы с файлами.'", КодЯзыка());
+ ТекстСообщения = НСтр("ru = 'Для продолжения работы требуется установить расширение для работы с 1С:Предприятием.'", КодЯзыка());
ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(ОповещениеСледующее, ТекстСообщения, Ложь);
diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl
index c80928e26..35dce884a 100644
--- a/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl
+++ b/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl
@@ -411,4 +411,13 @@
КонецФункции
+Функция ВремяПерезапускаПриложенияДляПримененияИсправлений() Экспорт
+
+ Возврат ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
+ "ОбщиеНастройкиПользователя",
+ "ВремяПерезапускаПриложенияДляПримененияИсправлений",,,
+ ИмяПользователя());
+
+КонецФункции
+
#КонецОбласти
diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыГлобальный/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыГлобальный/Module.bsl
index 807a64f2e..aa82aa5f3 100644
--- a/SSL/src/CommonModules/СтандартныеПодсистемыГлобальный/Module.bsl
+++ b/SSL/src/CommonModules/СтандартныеПодсистемыГлобальный/Module.bsl
@@ -68,4 +68,27 @@
КонецПроцедуры
+Процедура ПерезапускПриложения() Экспорт
+ СтандартныеПодсистемыКлиент.ПропуститьПредупреждениеПередЗавершениемРаботыСистемы();
+ ЗавершитьРаботуСистемы(Истина, Истина);
+КонецПроцедуры
+
+Процедура ОповещениеОПредстоящемПерезапускеЗаПятьМинут() Экспорт
+
+ СтандартныеПодсистемыКлиент.ОповещениеТекущегоПользователяОПредстоящемПерезапуске(300);
+
+КонецПроцедуры
+
+Процедура ОповещениеОПредстоящемПерезапускеЗаТриМинуты() Экспорт
+
+ СтандартныеПодсистемыКлиент.ОповещениеТекущегоПользователяОПредстоящемПерезапуске(180);
+
+КонецПроцедуры
+
+Процедура ОповещениеОПредстоящемПерезапускеЗаМинуту() Экспорт
+
+ СтандартныеПодсистемыКлиент.ОповещениеТекущегоПользователяОПредстоящемПерезапуске(60);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl
index e99bb5212..305f9e514 100644
--- a/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl
+++ b/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl
@@ -801,10 +801,11 @@
КонецЕсли;
// ИзмененаКонфигурацияИлиРасширения
+ КартинкаДиалогИнформация = БиблиотекаКартинок.ДиалогИнформация;
ПоказатьОповещениеПользователя(
- НСтр("ru = 'Установлено обновление программы'"),
+ НСтр("ru = 'Установлено обновление приложения'"),
"e1cib/app/ОбщаяФорма.КонтрольДинамическогоОбновления",
- Результат, БиблиотекаКартинок.Предупреждение32,
+ Результат, КартинкаДиалогИнформация,
СтатусОповещенияПользователя.Важное,
"УстановленоОбновлениеПрограммы");
@@ -2996,4 +2997,34 @@
Текст, БиблиотекаКартинок.Предупреждение32, СтатусОповещенияПользователя.Важное);
КонецПроцедуры
+Процедура ОповещениеТекущегоПользователяОПредстоящемПерезапуске(СекундДоПерезапуска) Экспорт
+
+ ВремяПерезапуска = СтандартныеПодсистемыВызовСервера.ВремяПерезапускаПриложенияДляПримененияИсправлений();
+ ВремяПерезапуска = ?(ВремяПерезапуска <> Неопределено, Формат(ВремяПерезапуска,"ДФ=HH:mm"),
+ Формат(ОбщегоНазначенияКлиент.ДатаСеанса() + СекундДоПерезапуска, "ДФ=HH:mm"));
+ ТекстЗаголовка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Перезапуск приложения в %1'"), ВремяПерезапуска);
+ ТекстСообщения = НСтр("ru = 'Ранее был запланирован перезапуск приложения для применения исправлений. Нажмите здесь, чтобы отложить.'");
+ ПоказатьОповещениеПользователя(
+ ТекстЗаголовка,
+ "e1cib/app/ОбщаяФорма.КонтрольДинамическогоОбновления",
+ ТекстСообщения, БиблиотекаКартинок.Предупреждение32,
+ СтатусОповещенияПользователя.Важное,
+ "ПерезапускПриложенияСегодня");
+
+КонецПроцедуры
+
+Процедура ПодключениеОбработчиковОжиданияПоказаОповещенийИПерезапуска(СекундДоПерезапуска) Экспорт
+ ПодключитьОбработчикОжидания("ОповещениеОПредстоящемПерезапускеЗаПятьМинут", СекундДоПерезапуска - 300, Истина);
+ ПодключитьОбработчикОжидания("ОповещениеОПредстоящемПерезапускеЗаТриМинуты", СекундДоПерезапуска - 180, Истина);
+ ПодключитьОбработчикОжидания("ОповещениеОПредстоящемПерезапускеЗаМинуту", СекундДоПерезапуска - 60, Истина);
+ ПодключитьОбработчикОжидания("ПерезапускПриложения", СекундДоПерезапуска, Истина);
+КонецПроцедуры
+
+Процедура ОтключитьЗапланированныйПерезапуск() Экспорт
+ ОтключитьОбработчикОжидания("ОповещениеОПредстоящемПерезапускеЗаПятьМинут");
+ ОтключитьОбработчикОжидания("ОповещениеОПредстоящемПерезапускеЗаТриМинуты");
+ ОтключитьОбработчикОжидания("ОповещениеОПредстоящемПерезапускеЗаМинуту");
+ ОтключитьОбработчикОжидания("ПерезапускПриложения");
+КонецПроцедуры
+
#КонецОбласти
diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl
index bc9a0e4a1..99551a389 100644
--- a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl
+++ b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl
@@ -2090,9 +2090,9 @@
Дело.ЕстьДела = КонфигурацияБазыДанныхИзмененаДинамически()
Или Справочники.ВерсииРасширений.РасширенияИзмененыДинамически();
Дело.Важное = Ложь;
- Дело.Представление = НСтр("ru = 'Установлено обновление программы'");
+ Дело.Представление = НСтр("ru = 'Установлено обновление приложения'");
Дело.Форма = "ОбщаяФорма.КонтрольДинамическогоОбновления";
- Дело.Владелец = НСтр("ru = 'Работа программы'");
+ Дело.Владелец = НСтр("ru = 'Работа приложения'");
МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер");
Если МодульТекущиеДелаСервер.ДелоОтключено("РекомендацияПоПовышениюСкоростиРаботы") Тогда
@@ -2106,7 +2106,7 @@
Дело.Важное = Истина;
Дело.Представление = НСтр("ru = 'Скорость работы снижена'");
Дело.Форма = "Обработка.РекомендацияПоПовышениюСкоростиРаботы.Форма";
- Дело.Владелец = НСтр("ru = 'Работа программы'");
+ Дело.Владелец = НСтр("ru = 'Работа приложения'");
КонецПроцедуры
@@ -2293,28 +2293,27 @@
//
// Параметры:
// ДинамическиеИзмененияКонфигурации - см. Справочники.ВерсииРасширений.ДинамическиИзмененныеРасширения
-// УточняющаяСсылка - Строка
//
// Возвращаемое значение:
// Строка
//
-Функция ТекстСообщенияПриДинамическомОбновлении(ДинамическиеИзмененияКонфигурации, УточняющаяСсылка = "") Экспорт
+Функция ТекстСообщенияПриДинамическомОбновлении(ДинамическиеИзмененияКонфигурации) Экспорт
Сообщения = Новый Массив;
Если ДинамическиеИзмененияКонфигурации.КонфигурацияБазыДанныхИзмененаДинамически Тогда
- ТекстСообщенияКонфигурация = НСтр("ru = 'Версия программы обновлена (внесены изменения в конфигурацию информационной базы).'");
+ ТекстСообщенияКонфигурация = НСтр("ru = 'Версия приложения обновлена (внесены изменения в конфигурацию информационной базы).'");
Сообщения.Добавить(ТекстСообщенияКонфигурация);
КонецЕсли;
Если ДинамическиеИзмененияКонфигурации.Исправления <> Неопределено Тогда
Если ДинамическиеИзмененияКонфигурации.Исправления.Добавлено > 0
И ДинамическиеИзмененияКонфигурации.Исправления.Удалено > 0 Тогда
- ТекстСообщенияПатчи = НСтр("ru = 'Установлены новые исправления (патчи): %1, удалены: %2.'") + УточняющаяСсылка;
+ ТекстСообщенияПатчи = НСтр("ru = 'Новые исправления (патчи): %1, удалены: %2.'");
ИначеЕсли ДинамическиеИзмененияКонфигурации.Исправления.Добавлено = 1 Тогда
- ТекстСообщенияПатчи = НСтр("ru = 'Установлено новое исправление (патч).'") + УточняющаяСсылка;
+ ТекстСообщенияПатчи = НСтр("ru = 'Новое исправление (патч).'");
ИначеЕсли ДинамическиеИзмененияКонфигурации.Исправления.Добавлено > 0 Тогда
- ТекстСообщенияПатчи = НСтр("ru = 'Установлены новые исправления (патчи): %1.'") + УточняющаяСсылка;
+ ТекстСообщенияПатчи = НСтр("ru = 'Новые исправления (патчи): %1.'");
ИначеЕсли ДинамическиеИзмененияКонфигурации.Исправления.Удалено > 0 Тогда
ТекстСообщенияПатчи = НСтр("ru = 'Удалены исправления (патчи): %2.'");
КонецЕсли;
@@ -2326,7 +2325,7 @@
Если ДинамическиеИзмененияКонфигурации.Расширения <> Неопределено Тогда
Если ДинамическиеИзмененияКонфигурации.Расширения.Добавлено > 0 Тогда
- ТекстСообщенияРасширения = НСтр("ru = 'Установлены новые расширения: %1.'");
+ ТекстСообщенияРасширения = НСтр("ru = 'Новые расширения: %1.'");
ТекстСообщенияРасширения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщенияРасширения,
ДинамическиеИзмененияКонфигурации.Расширения.Добавлено);
Сообщения.Добавить(ТекстСообщенияРасширения);
@@ -2346,10 +2345,7 @@
Сообщения.Добавить(ТекстСообщенияРасширения);
КонецЕсли;
КонецЕсли;
-
- Сообщения.Добавить(НСтр("ru = 'Для того чтобы применить, рекомендуется перезапустить программу и продолжить работу.'"));
- Сообщения.Добавить(" ");
-
+
Возврат СтрСоединить(Сообщения, Символы.ПС);
КонецФункции
@@ -3420,7 +3416,7 @@
Или Не ЗначениеЗаполнено(Строка.ИмяРодителя) Тогда
Продолжить;
КонецЕсли;
- СтрокаРодителя = ОписаниеСохраненных.ТаблицаИмен.Найти(Строка.ИмяРодителя, "Имя"); // СправочникСсылка, ПланВидовХарактеристикСсылка, ПланСчетовСсылка, ПланВидовРасчетаСсылка
+ СтрокаРодителя = ОписаниеСохраненногоОбъекта(ОписаниеСохраненных.ТаблицаИмен, Строка.ИмяРодителя);
Если СтрокаРодителя <> Неопределено Тогда
НовыйОбъект = Строка.Ссылка.ПолучитьОбъект();
НовыйОбъект.Родитель = СтрокаРодителя.Ссылка;
@@ -3440,6 +3436,26 @@
КонецПроцедуры
+// Возвращаемое значение:
+// СтрокаТаблицыЗначений:
+// * Ссылка - СправочникСсылка,
+// - ПланВидовХарактеристикСсылка
+// - ПланСчетовСсылка
+// - ПланВидовРасчетаСсылка
+// * Имя - Строка
+// * ВерсияДанных- Строка
+// * ИмяРодителя - Строка
+// * Объект - СправочникОбъект
+// - ПланВидовХарактеристикОбъект
+// - ПланСчетовОбъект
+// - ПланВидовРасчетаОбъект
+// * ОбъектСуществует - Булево
+// Неопределено
+//
+Функция ОписаниеСохраненногоОбъекта(ТаблицаИмен, ИмяРодителя)
+ Возврат ТаблицаИмен.Найти(ИмяРодителя, "Имя");
+КонецФункции
+
// Параметры:
// СтарыйОбъект - ПланСчетовОбъект
//
@@ -4310,6 +4326,10 @@
ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить("КонтрольДинамическогоОбновления",
"РасписаниеПроверкиПатчей", РасписаниеОповещения,, ИмяПользователя);
КонецЕсли;
+ Иначе
+ ОдинРазВДень = Новый РасписаниеРегламентногоЗадания;
+ ОдинРазВДень.ПериодПовтораДней = 1;
+ ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить("КонтрольДинамическогоОбновления", "РасписаниеПроверкиПатчей", ОдинРазВДень);
КонецЕсли;
КонецЕсли;
@@ -4319,8 +4339,11 @@
ДинамическиеИзменения.Вставить("КонфигурацияБазыДанныхИзмененаДинамически",
КонфигурацияБазыДанныхИзмененаДинамически);
-
- СообщениеПользователю = ТекстСообщенияПриДинамическомОбновлении(ДинамическиеИзменения);
+
+ Сообщения = Новый Массив;
+ Сообщения.Добавить(ТекстСообщенияПриДинамическомОбновлении(ДинамическиеИзменения));
+ Сообщения.Добавить(НСтр("ru = 'Нажмите здесь, чтобы применить или отложить применение исправлений.'"));
+ СообщениеПользователю = СтрСоединить(Сообщения, Символы.ПС);
КонецПроцедуры
diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl
index c0237fddc..e97a35ed4 100644
--- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl
+++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl
@@ -1070,7 +1070,7 @@
XDTOКонтактная.Состав.Страна = Строка(Параметры.Страна);
КонецЕсли;
Иначе
- XDTOКонтактная.Состав.Страна = ОсновнаяСтрана.Наименование;
+ XDTOКонтактная.Состав.Страна = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОсновнаяСтрана, "Наименование");
КонецЕсли;
КонецЕсли;
Если Параметры.Комментарий <> Неопределено Тогда
diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl
index 5a7da268e..98b97d796 100644
--- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl
@@ -508,10 +508,6 @@
СтрокаДанных.Значение.Представление = МодульРаботаСАдресамиКлиентСервер.ПредставлениеАдреса(Адрес, Ложь);
КонецЕсли;
- Если ВыделятьУстаревшиеАдреса Тогда
- УстаревшийАдрес = Не СтрокаДанных.Значение.Муниципальный;
- КонецЕсли;
-
КонецЕсли;
Представление = СтрокаДанных.Представление;
diff --git a/SSL/src/CommonModules/УправлениеПечатью/Module.bsl b/SSL/src/CommonModules/УправлениеПечатью/Module.bsl
index 966ce29e1..4706b4b56 100644
--- a/SSL/src/CommonModules/УправлениеПечатью/Module.bsl
+++ b/SSL/src/CommonModules/УправлениеПечатью/Module.bsl
@@ -473,9 +473,9 @@
// параметр не указан, производится запись объекта в случае, если в форме
// объекта установлен признак модифицированности.
//
-// * ТребуетсяРасширениеРаботыСФайлами - Булево - (необязательный) Признак необходимости подключения расширения работы
-// с файлами перед выполнением команды. Если параметр не указан, подключение
-// расширения работы с файлами выполняться не будет.
+// * ТребуетсяРасширениеРаботыСФайлами - Булево - (необязательный) Признак необходимости подключения расширения для работы
+// с 1С:Предприятием перед выполнением команды. Если параметр не указан, расширение
+// подключаться не будет.
//
Функция СоздатьКоллекциюКомандПечати() Экспорт
@@ -7183,8 +7183,14 @@
Если ТипПараметров = Тип("Строка") И ЭтоАдресВременногоХранилища(СтруктураПараметров) Тогда
СтруктураПараметров = ПоместитьВоВременноеХранилище(СодержимоеХранилищ[СтруктураПараметров], УникальныйИдентификаторХранилища);
Возврат Истина;
- ИначеЕсли ТипПараметров = Тип("Массив") Или ТипПараметров = Тип("ТаблицаЗначений")
- Или ТипПараметров = Тип("СтрокаТаблицыЗначений") Или ТипПараметров = Тип("СтрокаДереваЗначений") Тогда
+ ИначеЕсли ТипПараметров = Тип("Массив") Тогда
+ Для Индекс = 0 По СтруктураПараметров.ВГраница() Цикл
+ Элемент = СтруктураПараметров[Индекс];
+ ПоместитьВХранилища(Элемент, СодержимоеХранилищ, УникальныйИдентификаторХранилища);
+ СтруктураПараметров[Индекс] = Элемент;
+ КонецЦикла;
+ ИначеЕсли ТипПараметров = Тип("ТаблицаЗначений") Или ТипПараметров = Тип("СтрокаТаблицыЗначений")
+ Или ТипПараметров = Тип("СтрокаДереваЗначений") Тогда
Для Каждого Элемент Из СтруктураПараметров Цикл
ПоместитьВХранилища(Элемент, СодержимоеХранилищ, УникальныйИдентификаторХранилища);
diff --git a/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl
index d5491dee3..561d8b6e9 100644
--- a/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl
+++ b/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl
@@ -1586,10 +1586,13 @@
ТаблицаДопРеквизитов.Колонки.Добавить("Значение");
ТаблицаДопРеквизитов.Колонки.Добавить("ТекстоваяСтрока");
+ Свойства = ТаблицаСвойствИЗначений.ВыгрузитьКолонку("Свойство");
+ ТипСвойстваСведение = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Свойства, "ЭтоДополнительноеСведение");
+
ТаблицаДопСведений = ТаблицаДопРеквизитов.СкопироватьКолонки();
Для Каждого СтрокаТаблицыСвойств Из ТаблицаСвойствИЗначений Цикл
- Если СтрокаТаблицыСвойств.Свойство.ЭтоДополнительноеСведение Тогда
+ Если ТипСвойстваСведение[СтрокаТаблицыСвойств.Свойство] = Истина Тогда
НоваяСтрока = ТаблицаДопСведений.Добавить();
Иначе
НоваяСтрока = ТаблицаДопРеквизитов.Добавить();
diff --git a/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl
index 80856d71b..9fc33f518 100644
--- a/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl
@@ -507,7 +507,7 @@
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Поиск и замена ссылок'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,
- НеобработанныйДубль.ЗаменяемоеЗначение.Метаданные,,
+ НеобработанныйДубль.ЗаменяемоеЗначение.Метаданные(),,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl
index 2e5cc0c1f..35c4b6f84 100644
--- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl
+++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl
@@ -142,11 +142,17 @@
Прервать;
КонецЦикла;
- Ключи = СтрокиСписка.ПолучитьКлючи(); // Массив из ДокументСсылка -
+ Ключи = СтрокиСписка.ПолучитьКлючи(); // Массив из ДокументСсылка, Массив из РегистрСведенийКлючЗаписи
Ссылки = Новый Массив;
- Для Каждого Ключ Из Ключи Цикл
- Ссылки.Добавить(Ключ);
- КонецЦикла;
+ ИмяКлючевогоПоля = "Ссылка";
+ Для Каждого Ключ Из Ключи Цикл
+ ЭтоСсылка = ОбщегоНазначения.ЭтоСсылка(ТипЗнч(Ключ));
+ Если ЭтоСсылка Тогда
+ Ссылки.Добавить(Ключ);
+ Иначе
+ Ссылки.Добавить(Ключ[ИмяКлючевогоПоля]);
+ КонецЕсли;
+ КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
@@ -329,26 +335,29 @@
ПодменюУстановитьНастроитьСостояниеОригинала.Отображение = ОтображениеКнопки.Картинка;
ПодменюУстановитьНастроитьСостояниеОригинала.Картинка = БиблиотекаКартинок.УстановитьСостояниеОригиналаПервичногоДокумента;
ПодменюУстановитьНастроитьСостояниеОригинала.Заголовок = НСтр("ru='Установить состояние оригинала'");
- ПодменюУстановитьНастроитьСостояниеОригинала.Подсказка = НСтр("ru='Подменю команд предназначенных для установки и изменения состояния оригиналов первичных документов.'");
+ ПодменюУстановитьНастроитьСостояниеОригинала.Подсказка = НСтр("ru='Подменю команд для установки и изменения состояния оригиналов первичных документов.'");
КонецЕсли;
ПодменюУстановитьНастроитьСостояниеОригинала = Элементы.Найти("ПодменюУстановитьНастроитьСостояниеОригинала");
Если Элементы.Найти("ГруппаУстановитьСостояниеОригинала") = Неопределено Тогда
- ГруппаУстановитьСостояниеОригинала = Элементы.Добавить("ГруппаУстановитьСостояниеОригинала",Тип("ГруппаФормы"),ПодменюУстановитьНастроитьСостояниеОригинала);
+ ГруппаУстановитьСостояниеОригинала = Элементы.Добавить("ГруппаУстановитьСостояниеОригинала", Тип("ГруппаФормы"),
+ ПодменюУстановитьНастроитьСостояниеОригинала);
ГруппаУстановитьСостояниеОригинала.Вид = ВидГруппыФормы.ГруппаКнопок;
КонецЕсли;
ГруппаУстановитьСостояниеОригинала = Элементы.Найти("ГруппаУстановитьСостояниеОригинала");
Если Элементы.Найти("ГруппаНастроитьСостоянияОригинала") = Неопределено Тогда
- ГруппаНастроитьСостоянияОригинала = Элементы.Добавить("ГруппаНастроитьСостоянияОригинала",Тип("ГруппаФормы"),ПодменюУстановитьНастроитьСостояниеОригинала);
+ ГруппаНастроитьСостоянияОригинала = Элементы.Добавить("ГруппаНастроитьСостоянияОригинала", Тип("ГруппаФормы"),
+ ПодменюУстановитьНастроитьСостояниеОригинала);
ГруппаНастроитьСостоянияОригинала.Вид = ВидГруппыФормы.ГруппаКнопок;
КонецЕсли;
ГруппаНастроитьСостоянияОригинала = Элементы.Найти("ГруппаНастроитьСостоянияОригинала");
Если Элементы.Найти("ГруппаУстановитьОригиналПолучен") = Неопределено Тогда
- ГруппаУстановитьОригиналПолучен = Элементы.Добавить("ГруппаУстановитьОригиналПолучен",Тип("ГруппаФормы"),Список.КоманднаяПанель);
+ ГруппаУстановитьОригиналПолучен = Элементы.Добавить("ГруппаУстановитьОригиналПолучен", Тип("ГруппаФормы"),
+ Список.КоманднаяПанель);
ГруппаУстановитьОригиналПолучен.Вид = ВидГруппыФормы.ГруппаКнопок;
- ГруппаУстановитьОригиналПолучен.Подсказка = НСтр("ru='Команда предназначена для установки конечного состояния оригинала первичного документа ""Оригинал получен"".'");
+ ГруппаУстановитьОригиналПолучен.Подсказка = НСтр("ru='Установить конечное состояние оригинала первичного документа ""Оригинал получен"".'");
КонецЕсли;
ГруппаУстановитьОригиналПолучен = Элементы.Найти("ГруппаУстановитьОригиналПолучен");
@@ -419,14 +428,13 @@
// Добавляет кнопку "Установить оригинал получен" на командой панели списка
ИмяКоманды = "УстановитьОригиналПолучен";
- ИмяКнопки = НСтр("ru='Установить ""Оригинал получен""'");
-
Если Форма.Команды.Найти(ИмяКоманды) = Неопределено Тогда
КомандаФормы = Форма.Команды.Добавить(ИмяКоманды);
КомандаФормы.Действие = "Подключаемый_УстановитьСостояниеОригинала";
- КомандаФормы.Заголовок = ИмяКнопки;
+ КомандаФормы.Заголовок = НСтр("ru='Установить ""Оригинал получен""'");
+ КомандаФормы.Подсказка = НСтр("ru='Установить ""Оригинал получен""'");
- НоваяКнопка = Форма.Элементы.Добавить("Кнопка" + ИмяКоманды , Тип("КнопкаФормы"),ГруппаУстановитьОригиналПолучен);
+ НоваяКнопка = Форма.Элементы.Добавить("Кнопка" + ИмяКоманды , Тип("КнопкаФормы"), ГруппаУстановитьОригиналПолучен);
НоваяКнопка.Картинка = БиблиотекаКартинок.СостояниеОригиналаПервичногоДокументаОригиналПолучен;
НоваяКнопка.ИмяКоманды = ИмяКоманды;
КонецЕсли;
@@ -612,6 +620,36 @@
КонецПроцедуры
+Процедура ПередПеремещениемЭлемента(ПеремещаемыйЭлемент, СоседнийЭлемент, Направление, ТекстОшибки, СтандартнаяОбработка) Экспорт
+
+ Если ТипЗнч(ПеремещаемыйЭлемент) <> Тип("СправочникСсылка.СостоянияОригиналовПервичныхДокументов") Тогда
+ Возврат;
+ КонецЕсли;
+
+ ЭлементФормаНапечатана = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ФормаНапечатана");
+ ЭлементОригиналПолучен = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен");
+
+ ПеремещениеВниз = Направление = НастройкаПорядкаЭлементов.НаправлениеПеремещенияЭлементаВниз();
+ ПеремещениеВверх = Направление = НастройкаПорядкаЭлементов.НаправлениеПеремещенияЭлементаВверх();
+
+ Если СоседнийЭлемент = ЭлементФормаНапечатана И ПеремещениеВверх
+ Или (ПеремещаемыйЭлемент = ЭлементФормаНапечатана И ПеремещениеВниз) Тогда
+ СтандартнаяОбработка = Ложь;
+ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Состояние ""%1"" является начальным, размещение перед ним других состояний не предусмотрено.'"),
+ ЭлементФормаНапечатана);
+ КонецЕсли;
+
+ Если СоседнийЭлемент = ЭлементОригиналПолучен И ПеремещениеВниз
+ Или (ПеремещаемыйЭлемент = ЭлементОригиналПолучен И ПеремещениеВверх) Тогда
+ СтандартнаяОбработка = Ложь;
+ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Состояние ""%1"" является конечным, размещение после него других состояний не предусмотрено.'"),
+ ЭлементОригиналПолучен);
+ КонецЕсли;
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -623,40 +661,69 @@
КонецФункции
// Параметры:
-// ДанныеЗаписи - Массив из см. УстановитьНовоеСостояниеОригиналаМассив.ДанныеЗаписи.
+// ДанныеЗаписи - Массив из см. УстановитьНовоеСостояниеОригиналаМассив.ДанныеЗаписи
+// - ДокументСсылка - документ, для которого необходимо изменить состояние оригинала.
// ИмяСостояния - Строка - устанавливаемое состояние.
-// Изменено - Булево - Истина, если состояние оригинала документа не повторяется и было записано.
//
-Процедура УстановитьНовоеСостояниеОригинала(ДанныеЗаписи, ИмяСостояния, Изменено = Ложь) Экспорт
+// Возвращаемое значение:
+// Строка - "Изменено", если состояние оригинала документа не повторяется и было записано;
+// "НеИзменено"
+// "НеПроведено"
+//
+Функция УстановитьНовоеСостояниеОригинала(Знач ДанныеЗаписи, Знач ИмяСостояния) Экспорт
- Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетОригиналовПервичныхДокументов") = Ложь Тогда
- Возврат;
+ Если Не ПолучитьФункциональнуюОпцию("ИспользоватьУчетОригиналовПервичныхДокументов") Тогда
+ Возврат "НеИзменено";
КонецЕсли;
ВыполнитьПроверкуПравДоступа("Редактирование", Метаданные.РегистрыСведений.СостоянияОригиналовПервичныхДокументов);
- УстановитьПривилегированныйРежим(Истина);
+ ОбъектыЗаписи = Новый Массив;
+ ДокументыДляПроверки = Новый Массив;
Если ТипЗнч(ДанныеЗаписи) = Тип("Массив") Тогда
- УстановитьНовоеСостояниеОригиналаМассив(ДанныеЗаписи, ИмяСостояния, Изменено);
+ Для Каждого Строка Из ДанныеЗаписи Цикл
+ Ссылка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Строка, "Ссылка");
+ Если ЭтоОбъектУчета(Ссылка) Тогда
+ ДокументыДляПроверки.Добавить(Ссылка);
+ ОбъектыЗаписи.Добавить(Строка);
+ КонецЕсли;
+ КонецЦикла;
Иначе
- УстановитьНовоеСостояниеОригиналаСтруктура(ДанныеЗаписи, ИмяСостояния, Изменено);
+ ДокументыДляПроверки.Добавить(ДанныеЗаписи);
+ ОбъектыЗаписи.Добавить(ДанныеЗаписи);
+ КонецЕсли;
+
+ НепроведенныеДокументы = ОбщегоНазначенияВызовСервера.ПроверитьПроведенностьДокументов(ДокументыДляПроверки);
+ Если НепроведенныеДокументы.Количество() > 0 Тогда
+ Возврат "НеПроведено";
КонецЕсли;
-КонецПроцедуры
+ УстановитьПривилегированныйРежим(Истина);
+ Если ТипЗнч(ДанныеЗаписи) = Тип("Массив") Тогда
+ Результат = УстановитьНовоеСостояниеОригиналаМассив(ДанныеЗаписи, ИмяСостояния);
+ Иначе
+ Результат = УстановитьНовоеСостояниеОригиналаДокумента(ДанныеЗаписи, ИмяСостояния);
+ КонецЕсли;
+ Возврат ?(Результат, "Изменено", "НеИзменено");
+
+КонецФункции
// Параметры:
// ДанныеЗаписи - Массив из Структура - данные об изменяемом состоянии оригинала:
// * ОбщееСостояние - Булево - Истина, если текущее состояние является общим;
-// * Ссылка - ДокументСсылка - ссылка на документ, для которого необходимо изменить состояние оригинала;
+// * Ссылка - ДокументСсылка - документ, для которого необходимо изменить состояние оригинала;
// * СостояниеОригиналаПервичногоДокумента - СправочникСсылка.СостоянияОригиналовПервичныхДокументов -
// текущие состояние оригинала первичного документа;
// * ПервичныйДокумент - Строка - идентификатор первичного документа. Задается, если данное состояние не является общим;
// * Извне - Булево - Истина, если первичный документ был добавлен пользователем вручную. Задается, если данное состояние не является общим.
// ИмяСостояния - Строка - устанавливаемое состояние.
-// Изменено - Булево - Истина, если состояние оригинала документа не повторяется и было записано.
//
-Процедура УстановитьНовоеСостояниеОригиналаМассив(ДанныеЗаписи, ИмяСостояния, Изменено = Ложь)
+// Возвращаемое значение:
+// Булево - Истина, если состояние оригинала документа не повторяется и было записано.
+//
+Функция УстановитьНовоеСостояниеОригиналаМассив(Знач ДанныеЗаписи, Знач ИмяСостояния)
+ Изменено = Ложь;
Для Каждого Запись Из ДанныеЗаписи Цикл
Если СокрЛП(Запись.СостояниеОригиналаПервичногоДокумента) <> СокрЛП(ИмяСостояния) Тогда
@@ -721,40 +788,44 @@
КонецЕсли;
КонецЦикла;
+ Возврат Изменено;
-КонецПроцедуры
+КонецФункции
-// Записывает новое состояние оригинала документа.
-//
// Параметры:
-// ДанныеЗаписи - Структура - структура содержащие данные об изменяемом состоянии оригинала:
-// * Ссылка - ДокументСсылка - ссылка на документ, для которого необходимо изменить состояние оригинала.
+// Документ - ДокументСсылка - документ, для которого необходимо изменить состояние оригинала.
// ИмяСостояния - Строка - устанавливаемое состояние.
-// Изменено - Булево - Истина, если состояние оригинала документа не повторяется и было записано.
//
-Процедура УстановитьНовоеСостояниеОригиналаСтруктура(ДанныеЗаписи, ИмяСостояния, Изменено = Ложь)
+// Возвращаемое значение:
+// Булево - Истина, если состояние оригинала документа не повторяется и было записано.
+//
+Функция УстановитьНовоеСостояниеОригиналаДокумента(Знач Документ, Знач ИмяСостояния)
+ Изменено = Ложь;
+
ПроверкаЗаписьСостоянияОригинала = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьНаборЗаписей();
- ПроверкаЗаписьСостоянияОригинала.Отбор.Владелец.Установить(ДанныеЗаписи.Ссылка);
+ ПроверкаЗаписьСостоянияОригинала.Отбор.Владелец.Установить(Документ);
ПроверкаЗаписьСостоянияОригинала.Отбор.ОбщееСостояние.Установить(Истина);
ПроверкаЗаписьСостоянияОригинала.Прочитать();
+
Если ПроверкаЗаписьСостоянияОригинала.Количество()> 0 Тогда
Если СокрЛП(ПроверкаЗаписьСостоянияОригинала[0].Состояние) <> ИмяСостояния Тогда
ПроверкаЗаписьСостоянияОригинала.Отбор.ОбщееСостояние.Установить(Ложь);
ПроверкаЗаписьСостоянияОригинала.Прочитать();
- Если ПроверкаЗаписьСостоянияОригинала.Количество()>0 Тогда
+ Если ПроверкаЗаписьСостоянияОригинала.Количество()>0 Тогда
- ТЧ = ТабличнаяЧастьССотрудниками(ДанныеЗаписи.Ссылка);
- Если ТЧ <> "" Тогда
- Для Каждого Сотрудник Из ДанныеЗаписи.Ссылка[ТЧ] Цикл
+ ТабличнаяЧасть = ТабличнаяЧастьССотрудниками(Документ);
+ Если ТабличнаяЧасть <> "" Тогда
+ Для Каждого Сотрудник Из Документ[ТабличнаяЧасть] Цикл
ПроверкаЗаписьСостоянияОригинала.Отбор.Сотрудник.Установить(Сотрудник.Сотрудник);
ПроверкаЗаписьСостоянияОригинала.Прочитать();
Если ПроверкаЗаписьСостоянияОригинала.Количество()>0 Тогда
Для Каждого ПрошлаяЗапись Из ПроверкаЗаписьСостоянияОригинала Цикл
Если СокрЛП(ПрошлаяЗапись.Состояние) <> ИмяСостояния Тогда
Изменено = Истина;
- РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(ДанныеЗаписи.Ссылка,
- ПрошлаяЗапись.ПервичныйДокумент,ПрошлаяЗапись.ПервичныйДокументПредставление,ИмяСостояния,ПрошлаяЗапись.ФормаИзвне,Сотрудник.Сотрудник);
+ РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Документ,
+ ПрошлаяЗапись.ПервичныйДокумент, ПрошлаяЗапись.ПервичныйДокументПредставление,
+ ИмяСостояния, ПрошлаяЗапись.ФормаИзвне, Сотрудник.Сотрудник);
КонецЕсли;
КонецЦикла;
КонецЕсли;
@@ -763,18 +834,20 @@
Для Каждого ПрошлаяЗапись Из ПроверкаЗаписьСостоянияОригинала Цикл
Если СокрЛП(ПрошлаяЗапись.Состояние) <> ИмяСостояния Тогда
Изменено = Истина;
- РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(ДанныеЗаписи.Ссылка,
- ПрошлаяЗапись.ПервичныйДокумент,ПрошлаяЗапись.ПервичныйДокументПредставление,ИмяСостояния,ПрошлаяЗапись.ФормаИзвне);
+ РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Документ,
+ ПрошлаяЗапись.ПервичныйДокумент, ПрошлаяЗапись.ПервичныйДокументПредставление,
+ ИмяСостояния, ПрошлаяЗапись.ФормаИзвне);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
- Изменено = Истина;
- РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(ДанныеЗаписи.Ссылка,ИмяСостояния);
-КонецПроцедуры
+ РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Документ, ИмяСостояния);
+ Возврат Изменено;
+
+КонецФункции
// Заполняет выпадающий список выбора состояний на форме.
//
@@ -922,51 +995,20 @@
Функция СведенияОПодключенныхОбъектах() Экспорт
ДоступныеТипы = Метаданные.ОпределяемыеТипы.ОбъектСУчетомОригиналовПервичныхДокументов.Тип.Типы();
-
Возврат ДоступныеТипы;
КонецФункции
-// Проверяет и возвращает признак того, является ли документ по ссылке документом с учетом оригиналов.
-//
-// Параметры:
-// МассивСтрок - Массив из ДокументСсылка - массив с ссылками на документ, который необходимо проверить.
-//
-// Возвращаемое значение:
-// Булево - Истина, если документ является объектом учетом оригиналов.
-//
-Функция ВозможностьЗаписиОбъектов(МассивСтрок) Экспорт
-
- МассивСсылокДляПроверки = Новый Массив;
- ОбъектыЗаписи = Новый Массив;
- Для Каждого Строка Из МассивСтрок Цикл
- Ссылка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Строка,"Ссылка");
- Если ЭтоОбъектУчета(Ссылка) Тогда
- МассивСсылокДляПроверки.Добавить(Ссылка);
- ОбъектыЗаписи.Добавить(Строка);
- КонецЕсли;
- КонецЦикла;
-
- НепроведенныеДокументы = ОбщегоНазначенияВызовСервера.ПроверитьПроведенностьДокументов(МассивСсылокДляПроверки);
-
- Если НепроведенныеДокументы.Количество() > 0 Тогда
- Возврат Ложь;
- Иначе
- Возврат ОбъектыЗаписи;
- КонецЕсли
-
-КонецФункции
-
// Возвращает ссылку на документ по штрихкоду табличного документа.
//
-// Параметры:
-// Штрихкод - Строка - штрихкод.
+// Параметры:
+// Штрихкод - Строка
// Менеджеры - Массив из СправочникСсылка
// - ДокументСсылка
-// - ЗадачаСсылка - менеджеры документов.
+// - ЗадачаСсылка
//
-// Возвращаемое значение:
-// Массив из ДокументСсылка - ссылки на документы.
+// Возвращаемое значение:
+// Массив из ДокументСсылка
//
Функция СсылкаПоШтрихкодуТабличногоДокумента(Штрихкод, Менеджеры = Неопределено)
@@ -1081,7 +1123,7 @@
Процедура ОбработатьШтрихкод(Штрихкод) Экспорт
СсылкаПоШтрихкоду = СсылкаПоШтрихкодуТабличногоДокумента(Штрихкод);
- УстановитьНовоеСостояниеОригинала(СсылкаПоШтрихкоду[0],Справочники.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен);
+ УстановитьНовоеСостояниеОригинала(СсылкаПоШтрихкоду[0], Справочники.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен);
КонецПроцедуры
diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl
index 91185a5c6..c27feff3e 100644
--- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl
+++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl
@@ -31,31 +31,33 @@
#Область СлужебныеПроцедурыИФункции
-// Записывает новое состояние оригинала документа
+// Записывает новое состояние оригинала документа.
//
-// Параметры:
-// ДанныеЗаписи - Массив из Структура - массив содержащий данные об изменяемом состоянии оригинала:
+// Параметры:
+// ДанныеЗаписи - Массив из Структура - данные об изменяемом состоянии оригинала:
// * ОбщееСостояние - Булево - Истина, если текущее состояние является общим;
// * Ссылка - ДокументСсылка - ссылка на документ, для которого необходимо изменить состояние оригинала;
// * СостояниеОригиналаПервичногоДокумента - СправочникСсылка.СостоянияОригиналовПервичныхДокументов -
// текущие состояние оригинала первичного документа;
// * ПервичныйДокумент - Строка - идентификатор первичного документа. Задается, если данное состояние не является общим;
// * Извне - Булево - Истина, если первичный документ был добавлен пользователем вручную. Задается, если данное состояние не является общим.
-// - Структура - структура содержащие данные об изменяемом состоянии оригинала:
-// * Ссылка - ДокументСсылка - ссылка на документ, для которого необходимо изменить состояние оригинала.
+// - ДокументСсылка - ссылка на документ, для которого необходимо изменить состояние оригинала.
// ИмяСостояния - Строка - устанавливаемое состояние.
-// Изменено - Булево - Истина, если состояние оригинала документа не повторяется и было записано. Значение по умолчанию
-// Ложь.
+//
+// Возвращаемое значениие:
+// Строка - "Изменено", если состояние оригинала документа не повторяется и было записано;
+// "НеИзменено"
+// "НеПроведено"
//
-Процедура УстановитьНовоеСостояниеОригинала(ДанныеЗаписи, ИмяСостояния, Изменено = Ложь) Экспорт
+Функция УстановитьНовоеСостояниеОригинала(Знач ДанныеЗаписи, Знач ИмяСостояния) Экспорт
- УчетОригиналовПервичныхДокументов.УстановитьНовоеСостояниеОригинала(ДанныеЗаписи, ИмяСостояния, Изменено);
+ Возврат УчетОригиналовПервичныхДокументов.УстановитьНовоеСостояниеОригинала(ДанныеЗаписи, ИмяСостояния);
-КонецПроцедуры
+КонецФункции
// Возвращает ссылку на документ по штрихкоду табличного документа
//
-// Параметры:
+// Параметры:
// Штрихкод - Строка - отсканированный штрихкод документа.
//
Процедура ОбработатьШтрихкод(Штрихкод) Экспорт
@@ -105,17 +107,6 @@
КонецЦикла;
КонецПроцедуры
-// Проверяет и возвращает признак того, является ли документ по ссылке документом с учетом оригиналов
-//
-// Возвращаемое значение:
-// см. УчетОригиналовПервичныхДокументов.ВозможностьЗаписиОбъектов
-//
-Функция ВозможностьЗаписиОбъектов(МассивСсылок) Экспорт
-
- Возврат УчетОригиналовПервичныхДокументов.ВозможностьЗаписиОбъектов(МассивСсылок);
-
-КонецФункции
-
// Проверяет и возвращает признак того, является ли документ по ссылке документом с учетом оригиналов.
//
// Параметры:
diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl
index d08cbcb39..1a48763b8 100644
--- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl
+++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl
@@ -335,14 +335,13 @@
КлючЗаписиРегистра = УчетОригиналовПервичныхДокументовВызовСервера.КлючЗаписиОбщегоСостояния(ДокументСсылка);
ПередаваемыеПараметры = Новый Структура;
-
Если КлючЗаписиРегистра = Неопределено Тогда
- ПередаваемыеПараметры.Вставить("ДокументСсылка",ДокументСсылка);
- ОткрытьФорму("РегистрСведений.СостоянияОригиналовПервичныхДокументов.Форма.ИзменениеСостоянийОригиналовПервичныхДокументов",ПередаваемыеПараметры);
+ ПередаваемыеПараметры.Вставить("ДокументСсылка", ДокументСсылка);
Иначе
ПередаваемыеПараметры.Вставить("Ключ", КлючЗаписиРегистра);
- ОткрытьФорму("РегистрСведений.СостоянияОригиналовПервичныхДокументов.Форма.ИзменениеСостоянийОригиналовПервичныхДокументов",ПередаваемыеПараметры);
КонецЕсли;
+ ОткрытьФорму("РегистрСведений.СостоянияОригиналовПервичныхДокументов.Форма.ИзменениеСостоянийОригиналовПервичныхДокументов",
+ ПередаваемыеПараметры);
КонецПроцедуры
@@ -407,30 +406,29 @@
Возврат;
КонецЕсли;
- МассивСтрок = Новый Массив;
+ ОбъектыЗаписи = Новый Массив; // см. УчетОригиналовПервичныхДокументовВызовСервера.УстановитьНовоеСостояниеОригинала.ОбъектыЗаписи
Для Каждого СтрокаСписка Из Список.ВыделенныеСтроки Цикл
ДанныеСтроки = Список.ДанныеСтроки(СтрокаСписка);
- МассивСтрок.Добавить(ДанныеСтроки);
+ Ссылка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеСтроки, "Ссылка");
+ Если ЗначениеЗаполнено(Ссылка) Тогда
+ ОбъектыЗаписи.Добавить(ДанныеСтроки);
+ КонецЕсли;
КонецЦикла;
- ОбъектыЗаписи = УчетОригиналовПервичныхДокументовВызовСервера.ВозможностьЗаписиОбъектов(МассивСтрок); // Массив из ДокументСсылка-
- Если Не ТипЗнч(ОбъектыЗаписи) = Тип("Массив") Тогда
- ПоказатьПредупреждение(, НСтр("ru = 'Для выполнения команды предварительно проведите все выделенные документы.'"));
+ Изменено = УчетОригиналовПервичныхДокументовВызовСервера.УстановитьНовоеСостояниеОригинала(ОбъектыЗаписи, ИмяСостояния);
+ Если Изменено = "НеПроведено" Тогда
+ ПоказатьПредупреждение(, НСтр("ru = 'Для установки состояния оригиналов предварительно проведите выделенные документы.'"));
+ Возврат;
+ ИначеЕсли Изменено = "НеИзменено" Тогда
Возврат;
КонецЕсли;
- Изменено = Ложь;
- УчетОригиналовПервичныхДокументовВызовСервера.УстановитьНовоеСостояниеОригинала(ОбъектыЗаписи, ИмяСостояния, Изменено);
-
- Если ОбъектыЗаписи.Количество() = 1 И Изменено Тогда
- ОповеститьПользователяОбУстановкеСостояний(1,ОбъектыЗаписи[0].Ссылка);
- ИначеЕсли Изменено Тогда
- ОповеститьПользователяОбУстановкеСостояний(ОбъектыЗаписи.Количество(),,ИмяСостояния);
- КонецЕсли;
-
- Если Изменено Тогда
- Оповестить("ИзменениеСостоянияОригиналаПервичногоДокумента");
- КонецЕсли;
+ Если ОбъектыЗаписи.Количество() = 1 Тогда
+ ОповеститьПользователяОбУстановкеСостояний(1, ОбъектыЗаписи[0].Ссылка);
+ Иначе
+ ОповеститьПользователяОбУстановкеСостояний(ОбъектыЗаписи.Количество(),, ИмяСостояния);
+ КонецЕсли;
+ Оповестить("ИзменениеСостоянияОригиналаПервичногоДокумента");
КонецПроцедуры
@@ -466,17 +464,18 @@
//
Процедура ОткрытьМенюВыбораСостоянияЗавершениеМассив(ВыбранноеСостояниеИзСписка, ДополнительныеПараметры)
- Изменено = Ложь;
Ссылка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры[0], "Ссылка");
-
Если ВыбранноеСостояниеИзСписка.Значение = "УточнитьПоПечатнымФормам" Тогда
ОткрытьФормуИзмененияСостоянийПечатныхФорм(Ссылка);
- Иначе
- УчетОригиналовПервичныхДокументовВызовСервера.УстановитьНовоеСостояниеОригинала(ДополнительныеПараметры, ВыбранноеСостояниеИзСписка.Значение, Изменено);
- Если Изменено Тогда
- ОповеститьПользователяОбУстановкеСостояний(1, Ссылка, ВыбранноеСостояниеИзСписка.Значение);
- Оповестить("ИзменениеСостоянияОригиналаПервичногоДокумента");
- КонецЕсли;
+ Возврат;
+ КонецЕсли;
+
+ Изменено = УчетОригиналовПервичныхДокументовВызовСервера.УстановитьНовоеСостояниеОригинала(Ссылка, ВыбранноеСостояниеИзСписка.Значение);
+ Если Изменено = "Изменено" Тогда
+ ОповеститьПользователяОбУстановкеСостояний(1, Ссылка, ВыбранноеСостояниеИзСписка.Значение);
+ Оповестить("ИзменениеСостоянияОригиналаПервичногоДокумента");
+ ИначеЕсли Изменено = "НеПроведено" Тогда
+ ПоказатьПредупреждение(, НСтр("ru = 'Для установки состояния оригиналов предварительно проведите выделенные документы.'"));
КонецЕсли;
КонецПроцедуры
@@ -490,16 +489,18 @@
//
Процедура ОткрытьМенюВыбораСостоянияЗавершениеСтруктура(ВыбранноеСостояниеИзСписка, ДополнительныеПараметры)
- Изменено = Ложь;
-
Если ВыбранноеСостояниеИзСписка.Значение = "УточнитьПоПечатнымФормам" Тогда
ОткрытьФормуИзмененияСостоянийПечатныхФорм(ДополнительныеПараметры.Ссылка);
- Иначе
- УчетОригиналовПервичныхДокументовВызовСервера.УстановитьНовоеСостояниеОригинала(ДополнительныеПараметры.Ссылка,ВыбранноеСостояниеИзСписка.Значение, Изменено);
- Если Изменено Тогда
- ОповеститьПользователяОбУстановкеСостояний(1,ДополнительныеПараметры.Ссылка,ВыбранноеСостояниеИзСписка.Значение);
- Оповестить("ИзменениеСостоянияОригиналаПервичногоДокумента");
- КонецЕсли;
+ Возврат;
+ КонецЕсли;
+
+ Изменено = УчетОригиналовПервичныхДокументовВызовСервера.УстановитьНовоеСостояниеОригинала(ДополнительныеПараметры.Ссылка,
+ ВыбранноеСостояниеИзСписка.Значение);
+ Если Изменено = "Изменено" Тогда
+ ОповеститьПользователяОбУстановкеСостояний(1,ДополнительныеПараметры.Ссылка,ВыбранноеСостояниеИзСписка.Значение);
+ Оповестить("ИзменениеСостоянияОригиналаПервичногоДокумента");
+ ИначеЕсли Изменено = "НеПроведено" Тогда
+ ПоказатьПредупреждение(, НСтр("ru = 'Для установки состояния оригиналов предварительно проведите выделенные документы.'"));
КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl b/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl
index 84c747a71..767dff424 100644
--- a/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl
+++ b/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl
@@ -24,8 +24,8 @@
// ** Хранение - Строка - расположение данных во временном хранилище.
// ** Имя - Строка - в тонком клиенте и в веб-клиенте с установленным
// расширением работы с файлами - локальный путь, по которому
-// был получен файл. В веб-клиенте без расширения работы с
-// файлами - имя файла с расширением.
+// был получен файл. В веб-клиенте без расширения для работы с 1С:Предприятием
+// передается имя файла с расширением.
// * ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта
// ОписаниеОповещения.
// ПараметрыЗагрузки - см. ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла.
@@ -81,11 +81,11 @@
// ** Хранение - Строка - расположение данных во временном хранилище.
// ** Имя - Строка - в тонком клиенте и в веб-клиенте с установленным
// расширением работы с файлами - локальный путь, по которому
-// был получен файл. В веб-клиенте без расширения работы с
-// файлами - имя файла с расширением.
+// был получен файл. В веб-клиенте без расширения для работы с 1С:Предприятием
+// передается имя файла с расширением.
// ** ПолноеИмя - Строка - в тонком клиенте и в веб-клиенте с установленным
// расширением работы с файлами - локальный путь, по которому
-// был получен файл. В веб-клиенте без расширения работы с файлами
+// был получен файл. В веб-клиенте без расширения для работы с 1С:Предприятием
// принимает значение "".
// ** ИмяФайла - Строка - имя файла с расширением.
// * ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта ОписаниеОповещения.
diff --git a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl
index 7b4f9058e..104f190a7 100644
--- a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl
+++ b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl
@@ -17,7 +17,7 @@
Если Не РасширениеПодключено
И Не Интерактивно Тогда
- ВызватьИсключение НСтр("ru = 'Невозможно загрузить файл без установленного расширения работы с файлами.'");
+ ВызватьИсключение НСтр("ru = 'Невозможно загрузить файл без установленного расширения для работы с 1С:Предприятием.'");
КонецЕсли;
Попытка
@@ -616,7 +616,7 @@
Иначе
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Расширение для работы с файлами не установлено, переход по ссылке ""%1"" невозможен.'"),
+ НСтр("ru = 'Расширение для работы с 1С:Предприятием не установлено, переход по ссылке ""%1"" невозможен.'"),
НавигационнаяСсылка);
ОткрытьНавигационнуюСсылкуОповеститьОбОшибке(ОписаниеОшибки, Контекст);
КонецЕсли;
diff --git a/SSL/src/CommonModules/ФизическиеЛицаКлиентСерверЛокализация/Module.bsl b/SSL/src/CommonModules/ФизическиеЛицаКлиентСерверЛокализация/Module.bsl
index 26ec076a9..e5df363fd 100644
--- a/SSL/src/CommonModules/ФизическиеЛицаКлиентСерверЛокализация/Module.bsl
+++ b/SSL/src/CommonModules/ФизическиеЛицаКлиентСерверЛокализация/Module.bsl
@@ -21,7 +21,7 @@
ДопустимыеСимволы = "-";
- Результат = (Не ТолькоНациональныеСимволы И СтроковыеФункцииКлиентСервер.ТолькоЛатиницаВСтроке(ФИО, Ложь, ДопустимыеСимволы))
+ РезультатПроверки = (Не ТолькоНациональныеСимволы И СтроковыеФункцииКлиентСервер.ТолькоЛатиницаВСтроке(ФИО, Ложь, ДопустимыеСимволы))
Или СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(ФИО, Ложь, ДопустимыеСимволы);
// Конец Локализация
diff --git a/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl
index fa7cdd81c..c8a34d484 100644
--- a/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl
+++ b/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl
@@ -563,8 +563,8 @@
// * Шаблон - СправочникСсылка.ШаблоныСообщений
//
Функция СформироватьПараметрыОтправки(Шаблон, Предмет, УникальныйИдентификатор, ДополнительныеПараметры = Неопределено) Экспорт
-
- ПараметрыОтправки = ШаблоныСообщенийКлиентСервер.КонструкторПараметровОтправки(Шаблон.Ссылка, Предмет,
+
+ ПараметрыОтправки = ШаблоныСообщенийКлиентСервер.КонструкторПараметровОтправки(Шаблон, Предмет,
УникальныйИдентификатор);
Если ТипЗнч(ПараметрыОтправки.Предмет) = Тип("Строка") И ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени(
diff --git a/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl
index 644e32a16..6fcf031e4 100644
--- a/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl
+++ b/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl
@@ -147,6 +147,7 @@
// Шаблон - СправочникСсылка.ШаблоныСообщений
// Предмет - ЛюбаяСсылка
// УникальныйИдентификатор - УникальныйИдентификатор
+//
// Возвращаемое значение:
// Структура:
// * ДополнительныеПараметры - Структура:
diff --git a/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl
index b5c2a3453..e56ae08ce 100644
--- a/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl
@@ -49,10 +49,11 @@
ПараметрыШаблона.ТипШаблона = ПараметрыОтправки.ДополнительныеПараметры.ВидСообщения;
КонецЕсли;
Иначе
- Если ПараметрыОтправки.Шаблон.ПредназначенДляSMS Тогда
- ПараметрыОтправки.ДополнительныеПараметры.Вставить("ВидСообщения", "СообщениеSMS");
- Иначе
+ ПредназначенДляSMS = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПараметрыОтправки.Шаблон, "ПредназначенДляSMS");
+ Если ПредназначенДляSMS <> Истина Тогда
ПараметрыОтправки.ДополнительныеПараметры.Вставить("ВидСообщения", "ЭлектроннаяПочта");
+ Иначе
+ ПараметрыОтправки.ДополнительныеПараметры.Вставить("ВидСообщения", "СообщениеSMS");
КонецЕсли;
КонецЕсли;
diff --git a/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl
index d2676c3d7..464466eaa 100644
--- a/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl
+++ b/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl
@@ -327,7 +327,7 @@
Или ДвоичныеДанныеПодписи = СвойстваПодписи.Подпись Тогда
НаборЗаписей = РегистрыСведений.ЭлектронныеПодписи.СоздатьНаборЗаписей();
- НаборЗаписей.Отбор.ПорядковыйНомер.Установить(ПодписьОбъекта.ПорядковыйНомер);
+ НаборЗаписей.Отбор.ПорядковыйНомер.Установить(СвойстваПодписи.ПорядковыйНомер);
НаборЗаписей.Отбор.ПодписанныйОбъект.Установить(Объект);
НаборЗаписей.ДополнительныеСвойства.Вставить("ОбновлениеПодписи");
НаборЗаписей.Прочитать();
diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl
index 9aa3c2217..0e346863b 100644
--- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl
+++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl
@@ -403,7 +403,7 @@
// * Данные - ОписаниеОповещения - обработчик сохранения данных и получения полного имени
// файла с путем (после его сохранения), возвращаемое в свойстве ПолноеИмяФайла
// типа Строка для сохранения электронных подписей (смотри выше общий подход).
-// Если расширение для работы с файлами не подключено, то нужно вернуть
+// Если расширение для работы с 1С:Предприятием не подключено, то нужно вернуть
// имя файла без пути.
// Если свойство не будет вставлено или заполнено - это считается отказом
// от продолжения и будет вызвана ОбработкаРезультата с результатом Ложь.
diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl
index 7de840a20..fd2d7613b 100644
--- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl
+++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl
@@ -716,8 +716,8 @@
КонецЕсли;
- ИначеЕсли ДатаПрекращенияДействия <> Неопределено И НаДату >= ДатаПрекращенияДействия
- Или НаДату + 30*24*60*60 >= ДатаПрекращенияДействия И Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
+ ИначеЕсли ДатаПрекращенияДействия <> Неопределено И (НаДату >= ДатаПрекращенияДействия
+ Или НаДату + 30*24*60*60 >= ДатаПрекращенияДействия И Не КонтекстПроверки.ЭтоПроверкаПодписи) Тогда
РезультатПроверкиУдостоверяющегоЦентра.Действует = (НаДату < ДатаПрекращенияДействия);
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = Истина;
diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl
index fe76b8f98..3bb742d03 100644
--- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl
+++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl
@@ -6510,7 +6510,7 @@
Если ТипЗнч(ДанныеКлассификатора) = Тип("Структура") Тогда
Попытка
- Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ДанныеКлассификатора.Версия, "3.0.1.12") < 0 Тогда
+ Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ДанныеКлассификатора.Версия, "3.0.1.13") < 0 Тогда
Версия = Неопределено;
Иначе
Версия = ДанныеКлассификатора.Версия;
diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl
index 5a08a2434..db092eb57 100644
--- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl
+++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl
@@ -484,7 +484,7 @@
КонецЕсли;
КонецЕсли;
- //Конец Локализация
+ // Конец Локализация
ПредставлениеОшибки = ДобавитьПодпись(Параметры.ЭлементДанныхДляСервера.Объект,
СвойстваПодписи, Параметры.ИдентификаторФормы, ВерсияОбъекта);
diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl
index a616e0b64..da935f58b 100644
--- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl
+++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl
@@ -3607,7 +3607,7 @@
Оповещение = Новый ОписаниеОповещения("ДобавитьСертификатТолькоДляШифрованияИзКаталогаПослеПодключенияРасширения",
ЭтотОбъект, ПараметрыСоздания);
- ТекстПредложения = НСтр("ru = 'Для загрузки сертификатов из каталога требуется расширение для работы с файлами'");
+ ТекстПредложения = НСтр("ru = 'Для загрузки сертификатов из каталога требуется установить расширение для работы с 1С:Предприятием.'");
ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(Оповещение, ТекстПредложения, Ложь);
КонецПроцедуры
@@ -3985,7 +3985,7 @@
// * Данные - ОписаниеОповещения - обработчик сохранения данных и получения полного имени
// файла с путем (после его сохранения), возвращаемое в свойстве ПолноеИмяФайла
// типа Строка для сохранения электронных подписей (смотри выше общий подход).
-// Если расширение для работы с файлами не подключено, то нужно вернуть
+// Если расширение для работы с 1С:Предприятием не подключено, то нужно вернуть
// имя файла без пути.
// Если свойство не будет вставлено или заполнено - это считается отказом
// от продолжения и будет вызвана ОбработкаРезультата с результатом Ложь.
@@ -6550,7 +6550,7 @@
Иначе
НетПодписейДляОбработки = Истина;
Для Каждого ЭлементДанных Из Контекст.ЭлементыДанных Цикл
- Если Не Контекст.ЭлементДанных.Свойство("НеТребуетсяПродление") Тогда
+ Если Не ЭлементДанных.Свойство("НеТребуетсяПродление") Тогда
НетПодписейДляОбработки = Ложь;
Прервать;
КонецЕсли;
diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl
index 8dfa912d4..b49426b4c 100644
--- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl
+++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl
@@ -660,7 +660,7 @@
// когда операций несколько (не заполнен, когда операция одна).
// * Описание - Строка - краткое представление ошибки.
// * ИзИсключения - Булево - описание ошибки содержит краткое представление информации об ошибке.
-// * НетРасширения - Булево - не подключилось расширение для работы с ЭП (требуется установить).
+// * НетРасширения - Булево - не подключилось расширение для работы с криптографией (требуется установить).
// * КАдминистратору - Булево - для исправления ошибки требуются права администратора.
// * Инструкция - Булево - для исправления требуется инструкция по работе с программами ЭП.
// * НастройкаПрограмм - Булево - для исправления ошибки требуется настройка программ.
@@ -1710,8 +1710,9 @@
КонецЕсли;
ДатаПодписиИзМетки = Дата(3999, 12, 31);
- Если ЗначениеЗаполнено(Подпись.НеподтвержденнаяДатаПодписи) Тогда
- ПараметрыПодписи.НеподтвержденнаяДатаПодписи = Подпись.НеподтвержденнаяДатаПодписи + ДобавкаВремени;
+
+ Если ЗначениеЗаполнено(Подпись.НеподтвержденноеВремяПодписи) Тогда
+ ПараметрыПодписи.НеподтвержденнаяДатаПодписи = Подпись.НеподтвержденноеВремяПодписи + ДобавкаВремени;
КонецЕсли;
ПараметрыПодписи.ТипПодписи = ТипПодписиКриптографии(Подпись.ТипПодписи);
diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйЛокализация/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйЛокализация/Module.bsl
index b7aa32c46..c0cc1e9ce 100644
--- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйЛокализация/Module.bsl
+++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйЛокализация/Module.bsl
@@ -118,7 +118,8 @@
ДанныеУдостоверяющихЦентров = Константы.АккредитованныеУдостоверяющиеЦентры.Получить().Получить();
Если ДанныеУдостоверяющихЦентров = Неопределено
- Или Не ДанныеУдостоверяющихЦентров.Свойство("ДругиеНастройки") Тогда
+ Или Не ДанныеУдостоверяющихЦентров.Свойство("ДругиеНастройки")
+ Или ДанныеУдостоверяющихЦентров.ДатыОкончанияДействия.Версия < 11 Тогда
ДанныеУдостоверяющихЦентров = ДанныеУдостоверяющихЦентровИзМакета();
Если ДанныеУдостоверяющихЦентров = Неопределено Тогда
diff --git a/SSL/src/CommonPictures/ВнешняяКомпонентаНеДоступна/Picture.zip b/SSL/src/CommonPictures/ВнешняяКомпонентаНеДоступна/Picture.zip
deleted file mode 100644
index b5d556346..000000000
Binary files a/SSL/src/CommonPictures/ВнешняяКомпонентаНеДоступна/Picture.zip and /dev/null differ
diff --git a/SSL/src/CommonPictures/ВнешняяКомпонентаНеДоступна/ВнешняяКомпонентаНеДоступна.mdo b/SSL/src/CommonPictures/ВнешняяКомпонентаНеДоступна/ВнешняяКомпонентаНеДоступна.mdo
deleted file mode 100644
index 3a45e62dc..000000000
--- a/SSL/src/CommonPictures/ВнешняяКомпонентаНеДоступна/ВнешняяКомпонентаНеДоступна.mdo
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- ВнешняяКомпонентаНеДоступна
-
- ru
- Внешняя компонента не доступна
-
-
diff --git a/SSL/src/CommonPictures/МЧДАктивна/Picture.svg b/SSL/src/CommonPictures/МЧДАктивна/Picture.svg
index 83f6f1831..686d3ae48 100644
--- a/SSL/src/CommonPictures/МЧДАктивна/Picture.svg
+++ b/SSL/src/CommonPictures/МЧДАктивна/Picture.svg
@@ -1,12 +1,11 @@
-ru
- Наборы записей
+ Наборов записей контекстное меню группа 3СписокНаборовЗаписейКонтекстноеМенюГруппа3ExtendedTooltip
diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl
index 913dbafc5..1f54a541f 100644
--- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl
+++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl
@@ -146,7 +146,7 @@
КонецЕсли;
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.Основная;
// Список запретных объектов метаданных из параметров.
- Параметры.Свойство("ИменаСкрываемыхМетаданных", ИменаСкрываемыхМетаданных);
+ Параметры.Свойство("ИменаСкрываемыхМетаданных", Объект.ИменаСкрываемыхМетаданных);
ДополнитьИменаСкрываемыхМетаданных();
Элементы.ВариантыСпискаОбъектов.ТекущаяСтраница = Элементы.СтраницаПустая;
@@ -1909,7 +1909,7 @@
// Удаляем строки, которые нельзя редактировать.
МетаДерево = Данные.Дерево;
- Для Каждого ЭлементСписка Из ИменаСкрываемыхМетаданных Цикл
+ Для Каждого ЭлементСписка Из Объект.ИменаСкрываемыхМетаданных Цикл
УдалитьСтрокиДереваЗначенийМетаданных(ЭлементСписка.Значение, МетаДерево.Строки);
КонецЦикла;
@@ -2048,15 +2048,25 @@
&НаСервере
Процедура НастроитьРедактированиеИзмененийСервер(ТекущаяСтрока)
- Данные = ДеревоМетаданных.НайтиПоИдентификатору(ТекущаяСтрока);
- Если Данные = Неопределено Тогда
- Возврат;
+ Если ТекущаяСтрока = Неопределено Тогда
+
+ ИмяТаблицы = "";
+ Наименование = ДеревоМетаданных.ПолучитьЭлементы()[0].Наименование;
+ ТекущийОбъект = Неопределено;
+
+ Иначе
+
+ Данные = ДеревоМетаданных.НайтиПоИдентификатору(ТекущаяСтрока);
+ Если Данные = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ИмяТаблицы = Данные.МетаПолноеИмя;
+ Наименование = Данные.Наименование;
+ ТекущийОбъект = ЭтотОбъект();
+
КонецЕсли;
- ИмяТаблицы = Данные.МетаПолноеИмя;
- Наименование = Данные.Наименование;
- ТекущийОбъект = ЭтотОбъект();
-
Если ПустаяСтрока(ИмяТаблицы) Тогда
Мета = Неопределено;
Иначе
@@ -2812,7 +2822,7 @@
Для Каждого РегистрСведенийМетаданные Из Метаданные.РегистрыСведений Цикл
Для Каждого ИзмерениеРегистра Из РегистрСведенийМетаданные.Измерения Цикл
Если НРег(ИзмерениеРегистра.Имя) = "узел" Тогда
- ИменаСкрываемыхМетаданных.Добавить("РегистрСведений." + РегистрСведенийМетаданные.Имя);
+ Объект.ИменаСкрываемыхМетаданных.Добавить("РегистрСведений." + РегистрСведенийМетаданные.Имя);
Прервать;
КонецЕсли;
КонецЦикла;
diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl
index 11621d37c..928da88ef 100644
--- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl
+++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl
@@ -1361,6 +1361,7 @@
// - Строка
// - Структура - данные или массив таких данных.
// ИмяТаблицы - Строка - если Данные является структурой, то содержит имя таблицы.
+// ИменаМетаданных - Структура, Массив
//
// Возвращаемое значение:
// Структура:
@@ -1368,7 +1369,7 @@
// * Успешно - Число - числом успешно обработанных объектов.
// * Команда - значение входящего параметра Команда для упрощения обработки результатов.
//
-Функция ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, Данные, ИмяТаблицы = Неопределено, СтруктураИменМетаданных = Неопределено) Экспорт
+Функция ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, Данные, ИмяТаблицы = Неопределено, ИменаМетаданных = Неопределено) Экспорт
ПрочитатьНастройки();
Результат = Новый Структура("Всего, Успешно", 0, 0);
@@ -1437,20 +1438,16 @@
// Вся конфигурация
Если ТипЗнч(Команда) = Тип("Булево") И Команда Тогда
+
+ Если ИменаМетаданных = Неопределено Тогда
+ ИменаМетаданных = СформироватьСтруктуруМетаданных(Узел).СтруктураИмен;
+ КонецЕсли;
+
// Добавляем регистрацию по частям.
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Константы", ИмяТаблицы, СтруктураИменМетаданных));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Справочники", ИмяТаблицы));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Документы", ИмяТаблицы));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Последовательности", ИмяТаблицы));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "ПланыВидовХарактеристик", ИмяТаблицы));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "ПланыСчетов", ИмяТаблицы));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "ПланыВидовРасчета", ИмяТаблицы));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыСведений", ИмяТаблицы));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыНакопления", ИмяТаблицы));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыБухгалтерии", ИмяТаблицы));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "РегистрыРасчета", ИмяТаблицы));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "БизнесПроцессы", ИмяТаблицы));
- ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, "Задачи", ИмяТаблицы));
+ Для Каждого МД Из ИменаМетаданных Цикл
+ ДобавитьРезультаты(Результат, ИзменитьРегистрациюНаСервере(Команда, БезУчетаАвторегистрации, Узел, МД.Ключ, ИмяТаблицы, МД.Значение));
+ КонецЦикла;
+
Продолжить;
КонецЕсли;
@@ -1461,7 +1458,17 @@
// Метаданные, возможно как коллекция, так и конкретный вид, на авторегистрацию смотрим.
Описание = ХарактеристикиПоМетаданным(Элемент);
Если НадоФильтрБСП Тогда
- ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийМетаданных(Узел, Описание, БезУчетаАвторегистрации, СтруктураИменМетаданных));
+
+ Если ТипЗнч(ИменаМетаданных) = Тип("Массив") Тогда
+ ИменаМетаданныхРегистрация = ИменаМетаданных;
+ ИначеЕсли ТипЗнч(ИменаМетаданных) = Тип("Структура") И Описание.ЭтоКоллекция Тогда
+ ИменаМетаданныхРегистрация = ИменаМетаданных[Описание.ИмяТаблицы];
+ Иначе
+ ИменаМетаданныхРегистрация = Неопределено;
+ КонецЕсли;
+
+ ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийМетаданных(Узел, Описание, БезУчетаАвторегистрации, ИменаМетаданныхРегистрация));
+
Продолжить;
ИначеЕсли БезУчетаАвторегистрации Тогда
@@ -1781,6 +1788,10 @@
Если Элемент <> Неопределено И ПравоДоступа("Чтение", Мета) Тогда
+ Если ИменаСкрываемыхМетаданных.НайтиПоЗначению(Мета.ПолноеИмя()) <> Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+
Если КонфигурацияПоддерживаетБСП
И ПроверятьСоставПодписокМРО
И СоставПодписокМРО.Найти(Мета) = Неопределено Тогда
@@ -2311,32 +2322,22 @@
// Проверяет набор метаданных на возможность регистрации изменения в БСП.
// Возвращает структуру с полями "Всего" и "Успешно", описывающей количества регистраций.
//
-Функция БСП_РегистрацияИзмененийМетаданных(Узел, Описание, БезУчетаАвторегистрации, СтруктураИменМетаданных)
+Функция БСП_РегистрацияИзмененийМетаданных(Узел, Описание, БезУчетаАвторегистрации, ИменаМетаданных = Неопределено)
Результат = Новый Структура("Всего, Успешно", 0, 0);
- Если ТипЗнч(СтруктураИменМетаданных) = Тип("Структура")
- И Описание.ЭтоКонстанта
- И НЕ СтруктураИменМетаданных.Свойство("Константы") Тогда
-
- // Если нужно зарегистрировать все изменения, при этом в составе плана обмена нет констант.
- Возврат Результат;
-
- КонецЕсли;
-
- Если СтруктураИменМетаданных <> Неопределено
- И Описание.ЭтоКонстанта
+ Если ИменаМетаданных <> Неопределено
И Не Описание.ЭтоКоллекция
- И СтруктураИменМетаданных.Константы.Найти(Описание.Имятаблицы) = Неопределено Тогда
+ И ИменаМетаданных.Найти(Описание.ИмяТаблицы) = Неопределено Тогда
Возврат Результат;
-
+
КонецЕсли;
Если Описание.ЭтоКоллекция Тогда
Для Каждого МетаВид Из Описание.Метаданные Цикл
ТекОписание = ХарактеристикиПоМетаданным(МетаВид);
- ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийМетаданных(Узел, ТекОписание, БезУчетаАвторегистрации, СтруктураИменМетаданных));
+ ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийМетаданных(Узел, ТекОписание, БезУчетаАвторегистрации, ИменаМетаданных));
КонецЦикла;
Иначе;
ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийОбъектаМетаданных(Узел, Описание, БезУчетаАвторегистрации) );
diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/РегистрацияИзмененийДляОбменаДанными.mdo b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/РегистрацияИзмененийДляОбменаДанными.mdo
index 5cf9e7014..bbda0d380 100644
--- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/РегистрацияИзмененийДляОбменаДанными.mdo
+++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/РегистрацияИзмененийДляОбменаДанными.mdo
@@ -179,6 +179,18 @@
+
+ ИменаСкрываемыхМетаданных
+
+ ru
+ Имена скрываемых метаданных
+
+
+ ValueList
+
+
+
+ ВыборУзлаПланаОбмена
diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form
index 4b529f3c8..6251deb04 100644
--- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form
+++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form
@@ -401,9 +401,14 @@
ДвустороннееСканированиеRight
+ ButtonДвустороннееСканированиеExtendedTooltip76
+
+ ru
+ Это функция сканеров и многофункциональных устройств (МФУ), позволяющая производить автоматическое сканирование документа с двух сторон. Доступна не во всех моделях устройств.
+ Labeltruetrue
diff --git a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl
index e20f057ad..7cd20e674 100644
--- a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl
+++ b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl
@@ -488,15 +488,15 @@
Возврат; // Не открывать форму.
КонецЕсли;
- Поворот = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль,
+ ПоворотЧисло = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль,
ПараметрыОткрытия.ВыбранноеУстройство, "ROTATION");
- РазмерБумаги = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль,
+ РазмерБумагиЧисло = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль,
ПараметрыОткрытия.ВыбранноеУстройство, "SUPPORTEDSIZES");
ДвустороннееСканированиеЧисло = РаботаСФайламиСлужебныйКлиент.НастройкаСканера(ЭтотОбъект, ПодключаемыйМодуль,
ПараметрыОткрытия.ВыбранноеУстройство, "DUPLEX");
- ДоступностьПоворот = (Поворот <> -1);
- ДоступностьРазмерБумаги = (РазмерБумаги <> -1);
+ ДоступностьПоворот = (ПоворотЧисло <> -1);
+ ДоступностьРазмерБумаги = (РазмерБумагиЧисло <> -1);
ДоступностьДвустороннееСканирование = (ДвустороннееСканированиеЧисло <> -1);
Элементы.Сохранить.Доступность = Ложь;
diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl
index 90554ec71..ac04ee840 100644
--- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl
+++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl
@@ -139,6 +139,10 @@
// Возвращаемое значение функции.
Результат = Истина;
+ Если ОбщегоНазначения.РазделениеВключено() Тогда
+ Возврат Результат;
+ КонецЕсли;
+
ИнициализацияСообщений();
Если ПустаяСтрока(FTPСоединениеПуть) Тогда
@@ -629,6 +633,10 @@
Возврат Ложь;
КонецПопытки;
+ Если ОбщегоНазначения.РазделениеВключено() Тогда
+ Возврат Истина;
+ КонецЕсли;
+
Попытка
МассивФайлов = FTPСоединение.НайтиФайлы(КаталогНаСервере, ИмяФайлаПриемника, Ложь);
Исключение
@@ -648,18 +656,33 @@
Возврат;
КонецЕсли;
- МассивИмен = СтрРазделить(КаталогНаСервере, "/", Ложь);
- ИмяКаталога = "";
+ Если ОбщегоНазначения.РазделениеВключено() Тогда
+
+ // При работе в сервисе, проверка наличия каталога - очень затратная операция.
+ // Поэтому каждый раз используется СоздатьКаталог.
+ // Если каталог уже существует, то переходим в Исключение и ничего не делаем
+ Попытка
+ FTPСоединение.СоздатьКаталог(КаталогНаСервере);
+ Исключение
+ // Действий не требуется
+ КонецПопытки;
+
+ Иначе
+
+ МассивИмен = СтрРазделить(КаталогНаСервере, "/", Ложь);
+ ИмяКаталога = "";
+
+ Для Каждого Имя Из МассивИмен Цикл
+
+ ИмяКаталога = ИмяКаталога + "/" + Имя;
+
+ Если FTPСоединение.НайтиФайлы(ИмяКаталога).Количество() = 0 Тогда
+ FTPСоединение.СоздатьКаталог(ИмяКаталога);
+ КонецЕсли;
+
+ КонецЦикла;
- Для Каждого Имя Из МассивИмен Цикл
-
- ИмяКаталога = ИмяКаталога + "/" + Имя;
-
- Если FTPСоединение.НайтиФайлы(ИмяКаталога).Количество() = 0 Тогда
- FTPСоединение.СоздатьКаталог(ИмяКаталога);
- КонецЕсли;
-
- КонецЦикла;
+ КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl
index 821fa6a97..78089edc9 100644
--- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl
+++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl
@@ -935,7 +935,7 @@
&НаСервере
Функция ВерсияОбъектаСтрокойНаСервере()
- Возврат РеквизитФормыВЗначение("Объект").ВерсияОбъектаСтрокой();
+ Возврат РеквизитФормыВЗначение("Объект").ВерсияОбъекта();
КонецФункции
diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Form.form b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Form.form
index f3947a8d2..e56f2fbbe 100644
--- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Form.form
+++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Form.form
@@ -545,216 +545,122 @@
Группа_Шаг_44
- СтраницыШаг4
- 50
-
- СтраницаЗеленый
- 52
-
- Декорация1
- 56
-
- ru
- Имя файла внешней обработки с модулем отладки на сервере
-
- true
- true
-
- true
-
-
- Декорация1РасширеннаяПодсказка
- 58
- Label
- true
- true
-
- Left
-
-
-
- Декорация1КонтекстноеМеню
- 57
- true
-
- Label
- true
- true
-
- Left
-
-
+ Группа1
+ 62
+
+ ИмяФайлаВнешнейОбработкиОбработчиковСобытий
+ 15
+
+ ru
+ Имя файла внешней обработки с модулем отладки на сервере
+ truetruetrue
-
+
+ Объект.ИмяФайлаВнешнейОбработкиОбработчиковСобытий
+
+ None
+ ru
- Страница зеленый
-
-
- СтраницаЗеленыйРасширеннаяПодсказка
- 53
- Label
- true
- true
-
- Left
-
-
- Page
-
- Vertical
- auto
- false
-
-
-
- СтраницаКрасный
- 54
-
- Декорация2
- 59
-
- ru
- Имя файла внешней обработки с модулем отладки на сервере
-
- true
- true
-
- true
-
-
- Декорация2РасширеннаяПодсказка
- 61
- Label
- true
- true
-
- Left
-
-
-
- Декорация2КонтекстноеМеню
- 60
- true
-
- Label
- true
- true
-
- Style.SpecialTextColor
-
-
- Style.NormalTextFont
-
-
- Left
-
-
- true
- true
-
- true
-
-
- ru
- Страница красный
-
-
- СтраницаКрасныйРасширеннаяПодсказка
- 55
- Label
- true
- true
-
- Left
-
-
- Page
-
- Vertical
- auto
- false
-
-
- true
- true
-
- true
-
-
- ru
- Страницы шаг 4
-
-
- СтраницыШаг4РасширеннаяПодсказка
- 51
- Label
- true
- true
-
- Left
-
-
- Pages
-
- Auto
-
-
-
- ИмяФайлаВнешнейОбработкиОбработчиковСобытий
- 15
-
- ru
- Имя файла внешней обработки с модулем отладки на сервере
-
- true
- true
-
- true
-
-
- Объект.ИмяФайлаВнешнейОбработкиОбработчиковСобытий
-
- None
-
- OnChange
- ИмяФайлаВнешнейОбработкиОбработчиковСобытийПриИзменении
-
-
- ИмяФайлаВнешнейОбработкиОбработчиковСобытийExtendedTooltip
- 46
- Label
- true
- true
-
- Left
-
-
-
- ИмяФайлаВнешнейОбработкиОбработчиковСобытийКонтекстноеМеню
- 16
- true
-
- InputField
- Enter
- true
- Left
- true
-
+ 123
+
+ ShowBottom
- StartChoice
- ИмяФайлаВнешнейОбработкиОбработчиковСобытийНачалоВыбора
+ OnChange
+ ИмяФайлаВнешнейОбработкиОбработчиковСобытийПриИзменении
+
+ ИмяФайлаВнешнейОбработкиОбработчиковСобытийExtendedTooltip
+ 46
+
+ ru
+ Путь к внешней обработке с модулем отладки на сервере или в общей сетевой папке. Или имя обработки конфигурации с модулем отладки
+
+ Label
+ 48
+ true
+ true
+
+ Left
+
+
+
+ ИмяФайлаВнешнейОбработкиОбработчиковСобытийКонтекстноеМеню
+ 16
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+
+ StartChoice
+ ИмяФайлаВнешнейОбработкиОбработчиковСобытийНачалоВыбора
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ПроверитьДоступность
+ 64
+ true
+ true
+
+ true
+
+
+ ПроверитьДоступностьРасширеннаяПодсказка
+ 65
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualButton
+ Form.Command.ПроверитьДоступность
+ Normal
+ Auto
+ truetrue
- true
- true
- true
- true
- true
- Normal
+ UserCmds
+ Auto
+
+ true
+ true
+
+ true
+
+
+ Группа1РасширеннаяПодсказка
+ 63
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ true
+ true
+ Auto
+ Autotrue
@@ -985,6 +891,28 @@
DontUseAuto
+
+ ПроверитьДоступность
+
+ ru
+ Проверить доступность
+
+ 4
+
+ ru
+ Проверить доступность
+
+
+
+
+ ПроверитьДоступность
+
+
+ Auto
+ Auto
+ ИмяОбработки
diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl
index 57f7ee62b..4a8bd322d 100644
--- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl
+++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl
@@ -100,6 +100,30 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ПроверитьДоступность(Команда)
+ ПроверитьДоступностьНаСервере();
+КонецПроцедуры
+
+&НаСервере
+Процедура ПроверитьДоступностьНаСервере()
+
+ Файл = Новый Файл(Объект.ИмяФайлаВнешнейОбработкиОбработчиковСобытий);
+
+ Если Файл.Существует() Тогда
+
+ ТекстСообщения = НСтр("ru = 'Обработка доступна'");
+
+ Иначе
+
+ ТекстСообщения = НСтр("ru = 'Обработка не доступна'");
+
+ КонецЕсли;
+
+ СообщитьПользователю(ТекстСообщения);
+
+КонецПроцедуры
+
#КонецОбласти
#Область ОбработчикиКомандФормы
@@ -158,20 +182,10 @@
ПриИзмененииРежимаОтладкиИзменений();
- // Выделение красным цветом шагов мастера, которые выполнены неправильно.
- УстановитьВыделениеИмениФайлаВнешнейОбработки(ПустаяСтрока(Объект.ИмяФайлаВнешнейОбработкиОбработчиковСобытий));
-
Элементы.ОткрытьФайл.Доступность = Не ПустаяСтрока(Объект.ИмяВременногоФайлаОбработчиковСобытий);
КонецПроцедуры
-&НаКлиенте
-Процедура УстановитьВыделениеИмениФайлаВнешнейОбработки(НадоВыделить = Ложь)
-
- Элементы.СтраницыШаг4.ТекущаяСтраница = ?(НадоВыделить, Элементы.СтраницаКрасный, Элементы.СтраницаЗеленый);
-
-КонецПроцедуры
-
&НаКлиенте
Процедура ВыгрузитьКодОбработчиков(Команда)
diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl
index b69fa8d84..c2bc4d057 100644
--- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl
+++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl
@@ -2599,7 +2599,8 @@
Если Не ПустаяСтрока(ИмяФайла) Тогда
- Возврат ИмяКаталога + ?(Прав(ИмяКаталога, 1) = "\", "", "\") + ИмяФайла;
+ Разделитель = ПолучитьРазделительПути();
+ Возврат ИмяКаталога + ?(Прав(ИмяКаталога, 1) = Разделитель, "", Разделитель) + ИмяФайла;
Иначе
@@ -2711,11 +2712,12 @@
// Возвращает текущее значение версии обработки.
//
// Возвращаемое значение:
-// Число - текущее значение версии обработки.
+// Строка - текущее значение версии обработки.
//
Функция ВерсияОбъекта() Экспорт
- Возврат 218;
+ Версия = "1.0.3.376";
+ Возврат Версия;
КонецФункции
@@ -2807,16 +2809,21 @@
Попытка
- Если ЭтоВнешняяОбработка() Тогда
+ Попытка
+
+ Файл = Новый Файл(ИмяФайлаВнешнейОбработкиОбработчиковСобытий);
+ Если Файл.Существует() Тогда
+ ВнешняяОбработкаОбработчиковСобытий = ВнешниеОбработки.Создать(ИмяФайлаВнешнейОбработкиОбработчиковСобытий);
+ Иначе
+ ВнешняяОбработкаОбработчиковСобытий = Обработки[ИмяФайлаВнешнейОбработкиОбработчиковСобытий].Создать();
+ КонецЕсли;
+
+ Исключение
ВызватьИсключение
- НСтр("ru = 'Внешняя обработка отладки, загружаемая из файла на диске, не поддерживается.'");
+ НСтр("ru = 'Ошибка при подключении внешней обработки отладки.'");
- Иначе
-
- ВнешняяОбработкаОбработчиковСобытий = Обработки[ИмяФайлаВнешнейОбработкиОбработчиковСобытий].Создать();
-
- КонецЕсли;
+ КонецПопытки;
ВнешняяОбработкаОбработчиковСобытий.Конструктор(ОбъектВладелец);
@@ -11963,9 +11970,8 @@
КонецЕсли;
- ИмяФайлаЗагрузкиДанных = ИмяФайлаОбмена;
-
-
+ ИмяФайлаЗагрузкиДанных = ИмяФайлаОбмена;
+
// Архивные файлы будем идентифицировать по расширению ".zip".
Если СтрНайти(ИмяФайлаОбмена, ".zip") > 0 Тогда
@@ -13576,20 +13582,6 @@
КонецПроцедуры
-// Возвращает текущее значение версии обработки.
-//
-// Параметры:
-// Нет.
-//
-// Возвращаемое значение:
-// Текущее значение версии обработки.
-//
-Функция ВерсияОбъектаСтрокой() Экспорт
-
- Возврат "2.1.8";
-
-КонецФункции
-
#КонецОбласти
#Область ИнициализацияТаблицПравилОбмена
@@ -14742,12 +14734,6 @@
КонецФункции
-Функция ЭтоВнешняяОбработка()
-
- Возврат ?(СтрНайти(ИмяФайлаВнешнейОбработкиОбработчиковСобытий, ".") <> 0, Истина, Ложь);
-
-КонецФункции
-
Функция ИмяПредопределенного(Ссылка)
ТекстЗапроса =
diff --git a/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписиБСД/КонтрольНеразделенныхОбъектовПриЗаписиБСД.mdo b/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписиБСД/КонтрольНеразделенныхОбъектовПриЗаписиБСД.mdo
index e3f73ed2f..aa47ca708 100644
--- a/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписиБСД/КонтрольНеразделенныхОбъектовПриЗаписиБСД.mdo
+++ b/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписиБСД/КонтрольНеразделенныхОбъектовПриЗаписиБСД.mdo
@@ -22,7 +22,6 @@
ConstantValueManager.ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМестаConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммойConstantValueManager.НастройкаПодчиненногоУзлаРИБЗавершена
- CatalogObject.СеансыОбменовДаннымиConstantValueManager.ЗагрузитьРасширенияИзменяющиеСтруктуруДанныхConstantValueManager.ЗагрузитьСообщениеОбменаДанными
diff --git a/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервиса/ИспользоватьСинхронизациюДанныхВМоделиСервиса.mdo b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервиса/ИспользоватьСинхронизациюДанныхВМоделиСервиса.mdo
index b279854b2..c7f1bfd5d 100644
--- a/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервиса/ИспользоватьСинхронизациюДанныхВМоделиСервиса.mdo
+++ b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервиса/ИспользоватьСинхронизациюДанныхВМоделиСервиса.mdo
@@ -9,4 +9,5 @@
trueCommonForm.МониторСинхронизацииДанныхВМоделиСервисаCatalog.СценарииОбменовДанными
+ CommonCommand.ПомощникПереходаНаИнтернетВнутренняяПубликация
diff --git a/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете.mdo b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете.mdo
index f2feaf430..2b2a6fdc8 100644
--- a/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете.mdo
+++ b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете.mdo
@@ -8,5 +8,4 @@
Constant.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернетеtrueCommonCommand.НастройкиСинхронизацииДанныхВМоделиСервиса
- CommonCommand.ПомощникПереходаНаИнтернетВнутренняяПубликация
diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl
index 16106a225..2a0d48d5c 100644
--- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl
+++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl
@@ -573,8 +573,6 @@
КонецПроцедуры
-// Завершение диалога предложения расширения для работы с файлами.
-//
&НаКлиенте
Процедура КонтрольРасширенияРаботыСФайламиЗавершение(Знач Результат, Знач ДополнительныеПараметры) Экспорт
diff --git a/SSL/src/InformationRegisters/КлассификаторыМЧД/ManagerModule.bsl b/SSL/src/InformationRegisters/КлассификаторыМЧД/ManagerModule.bsl
index 87e9236cf..87a465e7e 100644
--- a/SSL/src/InformationRegisters/КлассификаторыМЧД/ManagerModule.bsl
+++ b/SSL/src/InformationRegisters/КлассификаторыМЧД/ManagerModule.bsl
@@ -232,19 +232,34 @@
КонецЕсли;
Если РезультатЗагрузки.Статус Тогда
- ЗагруженныйФайл = ПолучитьИзВременногоХранилища(РезультатЗагрузки.Путь);
+ ЗагруженныйФайл = ПолучитьИзВременногоХранилища(РезультатЗагрузки.Путь); // ДвоичныеДанные
Если РаспаковатьИзАрхива Тогда
- Данные = РаспаковатьФайлИзАрхива(ЗагруженныйФайл);
+ Данные = Неопределено;
+ РазмерФайла = ЗагруженныйФайл.Размер();
+
+ Если РазмерФайла > 0 Тогда
+ Данные = РаспаковатьФайлИзАрхива(ЗагруженныйФайл);
+ КонецЕсли;
+
Если Данные = Неопределено Тогда
РезультатЗагрузки.Статус = Ложь;
+
+ Если РазмерФайла > 0 Тогда
+ ОписаниеСодержимогоФайла = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Содержимое файла:
+ |%1'"), Base64Строка(ЗагруженныйФайл));
+ Иначе
+ ОписаниеСодержимогоФайла = НСтр("ru = 'Файл пустой.'");
+ КонецЕсли;
+
СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось распаковать загруженный файл
|%1
|
- |Содержимое файла:
|%2'"),
АдресФайла,
- Base64Строка(ЗагруженныйФайл));
+ ОписаниеСодержимогоФайла);
+
РезультатЗагрузки.Вставить("СообщениеОбОшибке", СообщениеОбОшибке);
КонецЕсли;
Иначе
@@ -567,8 +582,8 @@
НаименованиеГруппы = "Федеральная таможенная служба";
ПолномочияФТС = Новый СписокЗначений;
- ПолномочияФТС.Добавить("FTS_10001", "Подписание таможенных документов для предоставления заинтересованными лицами в ФТС в рамках таможенного декларирования и таможенных операций, связанных с подачей, регистрацией, отзывом и изменением сведений, заявленных в таможенной декларации");
- ПолномочияФТС.Добавить("FTS_10002", "Подписание иных электронных документов для предоставления заинтересованными лицами в таможенные органы, не связанных с таможенным декларированием товаров, транспортных средств и выпуском товаров");
+ ПолномочияФТС.Добавить("FTS_10001", "Подписание таможенных документов, предоставляемых в ФТС России заинтересованными лицами в рамках таможенного декларирования и таможенных операций, связанных с подачей, регистрацией, отзывом и изменением сведений, заявленных в таможенной декларации");
+ ПолномочияФТС.Добавить("FTS_10002", "Подписание иных электронных документов, предоставляемых заинтересованными лицами в таможенные органы, несвязанных с таможенным декларированием товаров, транспортных средств и выпуском товаров");
// АПК:1297-вкл
diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Form.form b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Form.form
index a80141670..0a667191c 100644
--- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Form.form
+++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Form.form
@@ -328,7 +328,8 @@
41ru
- Нажмите <b>П</><b>родолжить,</> чтобы повторить попытку обновления программы.
+ Нажмите <b>Продолжить</>, чтобы повторить попытку обновления программы.
+truetrue
diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl
index 9be9fed4b..3877cf2f9 100644
--- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl
+++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl
@@ -790,7 +790,8 @@
&НаСервереБезКонтекста
Функция ПолучитьНавигационнуюСсылкуНаФормуСписка(ИдентификаторОбъектаМетаданных)
- Возврат "e1cib/list/" + ИдентификаторОбъектаМетаданных.ПолноеИмя;
+ Возврат "e1cib/list/"
+ + ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ИдентификаторОбъектаМетаданных).ПолноеИмя();
КонецФункции
&НаКлиенте
diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Help/ru.html b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Help/ru.html
index cb817b02f..61f1d012c 100644
--- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Help/ru.html
+++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Help/ru.html
@@ -16,8 +16,8 @@
разрешите сценарии;
разрешите использовать элементы Axtivex.
На вкладке Конфиденциальность выберите уровень безопасности не выше среднего.
Подробнее о настройках браузера см. Руководство пользователя, глава 13 "Работа с веб-клиентом" и Руководство администратора, глава 8 "Настройка веб-браузеров для работы в веб-клиенте".
-
При первой попытке печати без установки расширения работы с файлами выводится предложение установить его. Нажмите Установить, затем Продолжить для начала установки.
-
Для начала установки расширения работы с файлами нажмите Продолжить.
+
При первой попытке печати без установки расширения для работы с 1С:Предприятием выводится предложение установить его. Нажмите Установить, затем Продолжить для начала установки.
+
Для начала установки расширения для работы с 1С:Предприятием нажмите Продолжить.
В зависимости от настроек системы безопасности компьютера может потребоваться подтвердить установку программы на компьютер. Проверьте издателя программы (1С) и нажмите Установить для подтверждения.
После успешного окончания установки нажмите ОК. В следующий раз это сообщение выводиться уже не будет.
При первой попытке печати документа программа предлагает создать рабочий каталог для хранения временных файлов печати. Выберите папку, нажмите ОК. Это сообщение программа также выводит однократно. Также для изменения рабочего каталога печати можно воспользоваться командой в персональных настройках программы (вкладка Печать). На вкладке Печать нажмите Настройка рабочего каталога печати, выберите папку на компьютере.
Затем программа предлагает получить файл макета, необходимый для формирования печатной формы. Нажмите ОК для продолжения. Через некоторое время сформированная печатная форма будет открыта в программе Microsoft Word.
diff --git a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаЗаписи/Module.bsl
index 9aa8d9d0b..c38f5b7e0 100644
--- a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаЗаписи/Module.bsl
+++ b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/Forms/ФормаЗаписи/Module.bsl
@@ -11,9 +11,8 @@
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
- НовыйУникальныйИдентификатор = Новый УникальныйИдентификатор(ИдентификаторСтрокой);
- Если Запись.Идентификатор <> НовыйУникальныйИдентификатор Тогда
- Запись.Идентификатор = НовыйУникальныйИдентификатор;
+ Если Запись.Идентификатор <> ИдентификаторСтрокой Тогда
+ Запись.Идентификатор = ИдентификаторСтрокой;
КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/RecordSetModule.bsl b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/RecordSetModule.bsl
new file mode 100644
index 000000000..d279c83d5
--- /dev/null
+++ b/SSL/src/InformationRegisters/ПубличныеИдентификаторыСинхронизируемыхОбъектов/RecordSetModule.bsl
@@ -0,0 +1,34 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2023, ООО 1С-Софт
+// Все права защищены. Эта программа и сопроводительные материалы предоставляются
+// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
+// Текст лицензии доступен по ссылке:
+// https://creativecommons.org/licenses/by/4.0/legalcode
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+
+#Область ОбработчикиСобытий
+
+//@skip-check data-exchange-load
+Процедура ПередЗаписью(Отказ, Замещение)
+
+ КоличествоЗаписей = Количество();
+
+ Для Сч = 1 По КоличествоЗаписей Цикл
+
+ Индекс = КоличествоЗаписей - Сч;
+
+ Если Не ЗначениеЗаполнено(ЭтотОбъект[Индекс].Ссылка) Тогда
+ Удалить(Индекс);
+ КонецЕсли;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Иначе
+ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
+#КонецЕсли
\ No newline at end of file
diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl
index ef00bb2e7..5b11748ec 100644
--- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl
+++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl
@@ -34,6 +34,11 @@
Возврат;
КонецЕсли;
+ ТипыИсключения = ОбменДаннымиСервер.ТипыИсключаемыеИзПроверкиУстраненияПроблемы();
+ Если ТипыИсключения.Найти(Источник.Метаданные()) <> Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
УстановитьПривилегированныйРежим(Истина);
Если ОбменДаннымиПовтИсп.ИспользуемыеПланыОбмена().Количество() > 0
diff --git a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/RecordSetModule.bsl b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/RecordSetModule.bsl
index 471e7c520..222cc0eaf 100644
--- a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/RecordSetModule.bsl
+++ b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/RecordSetModule.bsl
@@ -21,7 +21,8 @@
// Заполняем свойство УникальныйИдентификаторИсточникаСтрокой из ссылки источника.
Если Количество() > 0 Тогда
- Если ЭтотОбъект[0].ОбъектВыгруженПоСсылке = Истина Тогда
+ Если ЭтотОбъект[0].ОбъектВыгруженПоСсылке = Истина
+ ИЛИ НЕ ЗначениеЗаполнено(ЭтотОбъект[0]["УникальныйИдентификаторИсточника"]) Тогда
Возврат;
КонецЕсли;
diff --git a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Form.form b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Form.form
index 740e03df4..e7636c1a1 100644
--- a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Form.form
+++ b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Form.form
@@ -845,78 +845,128 @@
true
-
- ОригиналПолученКартинка
- 138
+
+ КомплектПечатныхФормГруппаСостояние
+ 166
+
+ ОригиналПолученКартинка
+ 138
+ true
+ true
+
+ true
+
+
+ КомплектПечатныхФорм.ОригиналПолученКартинка
+
+ None
+
+ ОригиналПолученКартинкаРасширеннаяПодсказка
+ 140
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ОригиналПолученКартинкаКонтекстноеМеню
+ 139
+ true
+
+ PictureField
+ Auto
+ true
+
+ CommonPicture.СостояниеОригиналаПервичногоДокументаОригиналПолучен
+
+ Left
+ true
+
+ true
+ true
+ true
+ true
+
+ CommonPicture.КоллекцияПиктограммНаличиеОригиналаПервичногоДокумента
+
+
+
+ 1
+
+ AsFileRef
+
+
+
+ КомплектПечатныхФормСостояние
+ 64
+
+ ru
+ Состояние оригинала
+
+ true
+ true
+
+ true
+
+
+ КомплектПечатныхФорм.Состояние
+
+
+ OnChange
+ КомплектПечатныхФормСостояниеПриИзменении
+
+
+ КомплектПечатныхФормСостояниеРасширеннаяПодсказка
+ 66
+ Label
+ true
+ true
+
+ Left
+
+
+
+ КомплектПечатныхФормСостояниеКонтекстноеМеню
+ 65
+ true
+
+ InputField
+ Auto
+ true
+
+ CommonPicture.СостояниеОригиналаПервичногоДокументаОригиналПолучен
+
+ Left
+ true
+
+
+ ChoiceProcessing
+ КомплектПечатныхФормСостояниеОбработкаВыбора
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+ 5
+
+ truetruetrue
-
- КомплектПечатныхФорм.ОригиналПолученКартинка
-
- None
-
- ОригиналПолученКартинкаРасширеннаяПодсказка
- 140
- Label
- true
- true
-
- Left
-
-
-
- ОригиналПолученКартинкаКонтекстноеМеню
- 139
- true
-
- PictureField
- Auto
- true
-
- CommonPicture.СостояниеОригиналаПервичногоДокументаОригиналПолучен
-
- Left
- true
-
- true
- true
- true
- true
-
- CommonPicture.КоллекцияПиктограммНаличиеОригиналаПервичногоДокумента
-
-
-
- 1
-
- AsFileRef
-
-
-
- КомплектПечатныхФормСостояние
- 64ru
- Состояние оригинала
+ Состояние
- true
- true
-
- true
-
-
- КомплектПечатныхФорм.Состояние
-
-
- OnChange
- КомплектПечатныхФормСостояниеПриИзменении
-
- КомплектПечатныхФормСостояниеРасширеннаяПодсказка
- 66
+ КомплектПечатныхФормГруппаСостояниеРасширеннаяПодсказка
+ 167Labeltruetrue
@@ -924,29 +974,11 @@
Left
-
- КомплектПечатныхФормСостояниеКонтекстноеМеню
- 65
- true
-
- InputField
- Auto
- true
- Left
- true
-
-
- ChoiceProcessing
- КомплектПечатныхФормСостояниеОбработкаВыбора
-
- true
- true
- true
- true
- true
- true
- Normal
- 5
+ ColumnGroup
+
+ InCell
+ auto
+ true
@@ -1729,6 +1761,12 @@
AutoAuto
+
+ ДокументСсылка
+
+ AnyRef
+
+
diff --git a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl
index 58e29b181..69d506952 100644
--- a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl
+++ b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl
@@ -16,30 +16,24 @@
ЗаполнитьСписокПечатныхФормПоСсылке();
- Если Параметры.Свойство("ДокументСсылка") Тогда
+ Если ЗначениеЗаполнено(Параметры.ДокументСсылка) И Не Параметры.ДокументСсылка.Пустая() Тогда
Запись.Владелец = Параметры.ДокументСсылка;
ФильтрПечатныхФорм = "Все";
- Элементы.НадписьПредупреждение.Заголовок = НСтр("ru='Состояние оригинала документа будет установлено по печатным формам'");
- ИначеЕсли КомплектПечатныхФорм.Количество()= 0 Тогда
+ Элементы.НадписьПредупреждение.Заголовок = НСтр("ru='Состояние оригинала документа будет установлено по печатным формам.'");
+ ИначеЕсли КомплектПечатныхФорм.Количество() = 0 Тогда
ЗаполнитьВсеПечатныеФормы();
ФильтрПечатныхФорм = "Все";
- Элементы.НадписьПредупреждение.Заголовок = НСтр("ru='Состояние оригинала документа будет установлено по печатным формам'");
+ Элементы.НадписьПредупреждение.Заголовок = НСтр("ru='Состояние оригинала документа будет установлено по печатным формам.'");
Иначе
ФильтрПечатныхФорм = "Отслеживаемые";
КонецЕсли;
УстановитьСсылкуНаОригинал();
- Если КомплектПечатныхФорм.Количество()= 0 Тогда
- ВосстанавливатьФильтр = Ложь;
- Иначе
- ВосстанавливатьФильтр = Истина;
- КонецЕсли;
+ ВосстанавливатьФильтр = КомплектПечатныхФорм.Количество() > 0;
ВосстановитьНастройки(ВосстанавливатьФильтр);
-
УстановитьСсылкуНаОригинал();
-
УстановитьФильтрПечатныхФорм();
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
@@ -521,7 +515,7 @@
&НаСервере
Процедура ОчиститьНеОтслеживаемые()
- Отбор = Новый Структура("Состояние",ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ПустаяСсылка"));
+ Отбор = Новый Структура("Состояние", ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ПустаяСсылка"));
НайденныеСтроки = КомплектПечатныхФорм.НайтиСтроки(Отбор);
Для Каждого Строка Из НайденныеСтроки Цикл
КомплектПечатныхФорм.Удалить(Строка);
@@ -593,19 +587,16 @@
&НаСервере
Процедура УстановитьСсылкуНаОригинал()
- // Для отключения проверки конфигурации.
- СвойстваЗаписи = Новый Структура("Ссылка", Запись.Владелец);
-
- Документ = СвойстваЗаписи.Ссылка.ПолучитьОбъект();
- ТипДокумента = СвойстваЗаписи.Ссылка.Метаданные();
+ Документ = Запись.Владелец.ПолучитьОбъект();
+ ТипДокумента = Запись.Владелец.Метаданные();
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрефиксацияОбъектов") Тогда
- Значения = Новый Структура("Документ,Номер,Дата",СокрЛП(ТипДокумента),
- ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Документ.Номер, Истина, Истина),Формат(Документ.Дата,НСтр("ru='ДЛФ=DD'")));
+ Значения = Новый Структура("Документ,Номер,Дата", СокрЛП(ТипДокумента),
+ ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Документ.Номер, Истина, Истина), Формат(Документ.Дата,НСтр("ru='ДЛФ=DD'")));
СсылкаНаДокумент = НСтр("ru='[Документ] № [Номер] от [Дата]'");
- СсылкаНаДокумент = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(СсылкаНаДокумент,Значения);
+ СсылкаНаДокумент = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(СсылкаНаДокумент, Значения);
Иначе
- СсылкаНаДокумент = Запись.Владелец;
+ СсылкаНаДокумент = Строка(Запись.Владелец);
КонецЕсли;
КонецПроцедуры
@@ -657,41 +648,43 @@
РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Владелец,Запись.Состояние);
КонецЕсли;
- Если КомплектПечатныхФорм.Количество()<> 0 Тогда
- Для Каждого ПечатнаяФорма Из КомплектПечатныхФорм Цикл
-
- Если ЗначениеЗаполнено(ПечатнаяФорма.Состояние) Тогда
- ТЧ = УчетОригиналовПервичныхДокументов.ТабличнаяЧастьССотрудниками(Запись.Владелец);
- Если ТЧ = "" Тогда
- ПроверкаЗаписьСостоянияОригинала.Отбор.ПервичныйДокумент.Установить(ПечатнаяФорма.ИмяМакета);
- ПроверкаЗаписьСостоянияОригинала.Прочитать();
- Иначе
- ПроверкаЗаписьСостоянияОригинала.Отбор.ПервичныйДокумент.Установить(ПечатнаяФорма.ИмяМакета);
- ПроверкаЗаписьСостоянияОригинала.Отбор.Сотрудник.Установить(ПечатнаяФорма.Сотрудник);
- ПроверкаЗаписьСостоянияОригинала.Прочитать();
- КонецЕсли;
- Если ПроверкаЗаписьСостоянияОригинала.Количество() > 0 Тогда
-
- Если ПроверкаЗаписьСостоянияОригинала[0].Состояние <> ПечатнаяФорма.Состояние Тогда
- РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Владелец,
- ПечатнаяФорма.ИмяМакета,ПечатнаяФорма.Представление,ПечатнаяФорма.Состояние,ПечатнаяФорма.Извне, ПечатнаяФорма.Сотрудник);
- КонецЕсли;
- Иначе
- РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Владелец,
- ПечатнаяФорма.ИмяМакета,ПечатнаяФорма.Представление,ПечатнаяФорма.Состояние,ПечатнаяФорма.Извне,ПечатнаяФорма.Сотрудник);
-
- КонецЕсли;
+ Для Каждого ПечатнаяФорма Из КомплектПечатныхФорм Цикл
+
+ Если ЗначениеЗаполнено(ПечатнаяФорма.Состояние) Тогда
+ ТЧ = УчетОригиналовПервичныхДокументов.ТабличнаяЧастьССотрудниками(Запись.Владелец);
+ Если ТЧ = "" Тогда
+ ПроверкаЗаписьСостоянияОригинала.Отбор.ПервичныйДокумент.Установить(ПечатнаяФорма.ИмяМакета);
+ ПроверкаЗаписьСостоянияОригинала.Прочитать();
+ Иначе
+ ПроверкаЗаписьСостоянияОригинала.Отбор.ПервичныйДокумент.Установить(ПечатнаяФорма.ИмяМакета);
+ ПроверкаЗаписьСостоянияОригинала.Отбор.Сотрудник.Установить(ПечатнаяФорма.Сотрудник);
+ ПроверкаЗаписьСостоянияОригинала.Прочитать();
КонецЕсли;
+ Если ПроверкаЗаписьСостоянияОригинала.Количество() > 0 Тогда
- КонецЦикла;
- КонецЕсли;
- РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Владелец,Запись.Состояние);
+ Если ПроверкаЗаписьСостоянияОригинала[0].Состояние <> ПечатнаяФорма.Состояние Тогда
+ РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Владелец,
+ ПечатнаяФорма.ИмяМакета,ПечатнаяФорма.Представление,ПечатнаяФорма.Состояние,ПечатнаяФорма.Извне, ПечатнаяФорма.Сотрудник);
+ КонецЕсли;
+ Иначе
+ РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Владелец,
+ ПечатнаяФорма.ИмяМакета,ПечатнаяФорма.Представление,ПечатнаяФорма.Состояние,ПечатнаяФорма.Извне,ПечатнаяФорма.Сотрудник);
+
+ КонецЕсли;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Владелец,
+ Запись.Состояние);
КонецПроцедуры
&НаСервере
Процедура ВосстановитьНастройки(ВосстанавливатьФильтр)
- Настройки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("РегистрСведений.СостоянияОригиналовПервичныхДокументов.Форма.ИзменениеСостоянийОригиналовПервичныхДокументов","ФильтрПечатныхФорм");
+ Настройки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
+ "РегистрСведений.СостоянияОригиналовПервичныхДокументов.Форма.ИзменениеСостоянийОригиналовПервичныхДокументов",
+ "ФильтрПечатныхФорм");
Если ВосстанавливатьФильтр Тогда
Если ТипЗнч(Настройки) = Тип("Структура") Тогда
diff --git a/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl b/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl
index 490133efa..37ef3afce 100644
--- a/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl
+++ b/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl
@@ -221,8 +221,9 @@
КонецЕсли;
ОтборИсточника = "";
- Если ПараметрыОтчета.ИмяТаблицы = "ОстаткиИОбороты"
- Или ПараметрыОтчета.ИмяТаблицы = "Обороты" Тогда
+ Если ПараметрыОтчета.ИмяТаблицы = "ОстаткиИОбороты" Тогда
+ ОтборИсточника = "({&НачалоПериода}, {&КонецПериода}, Авто, Движения)";
+ ИначеЕсли ПараметрыОтчета.ИмяТаблицы = "Обороты" Тогда
ОтборИсточника = "({&НачалоПериода}, {&КонецПериода}, Авто)";
ИначеЕсли ПараметрыОтчета.ИмяТаблицы = "Остатки"
Или ПараметрыОтчета.ИмяТаблицы = "СрезПоследних" Тогда
@@ -490,7 +491,8 @@
// Добавляем измерения
Для каждого Измерение Из ОбъектМетаданных.Измерения Цикл
Если ОбщегоНазначения.ОбъектМетаданныхДоступенПоФункциональнымОпциям(Измерение) Тогда
- ДобавитьПолеНабораДанных(СхемаКомпоновкиДанных.НаборыДанных[0], Измерение.Имя, Измерение.Синоним);
+ ПолеНабора = ДобавитьПолеНабораДанных(СхемаКомпоновкиДанных.НаборыДанных[0], Измерение.Имя, Измерение.Синоним);
+ ПолеНабора.Роль.Измерение = Истина;
КонецЕсли;
КонецЦикла;
@@ -510,6 +512,26 @@
ДобавитьПоляПериодаВНаборДанных(СхемаКомпоновкиДанных.НаборыДанных[0]);
КонецЕсли;
+ Если ПараметрыОтчета.ИмяТаблицы = "ОстаткиИОбороты" Тогда
+
+ ПолеНабораДанных = СхемаКомпоновкиДанных.НаборыДанных[0].Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
+ ПолеНабораДанных.Поле = "Регистратор";
+ ПолеНабораДанных.Заголовок = НСтр("ru = 'Регистратор'");
+ ПолеНабораДанных.ПутьКДанным = "Регистратор";
+ ПолеНабораДанных.Роль.ТипПериода = ТипПериодаКомпоновкиДанных.Основной;
+ ПолеНабораДанных.Роль.НомерПериода = 1;
+ ПолеНабораДанных.Роль.ИгнорироватьЗначенияNULL = Истина;
+
+ ПорядокПериод = ПолеНабораДанных.ВыраженияУпорядочивания.Добавить();
+ ПорядокПериод.Выражение = "Периоды.ПериодСекунда";
+ ПорядокПериод.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
+
+ ПорядокРегистратор = ПолеНабораДанных.ВыраженияУпорядочивания.Добавить();
+ ПорядокРегистратор.Выражение = "Регистратор";
+ ПорядокРегистратор.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
+
+ КонецЕсли;
+
// Для регистров бухгалтерии важна настройка ролей.
Если ПараметрыОтчета.ТипОбъектаМетаданных = "РегистрыБухгалтерии" Тогда
@@ -622,6 +644,13 @@
ПолеНабора.Роль.ТипБухгалтерскогоОстатка = ТипБухгалтерскогоОстаткаКомпоновкиДанных.Нет;
ПолеНабора.Роль.ГруппаОстатка = "РазвОст" + Ресурс.Имя + "Кт";
ДобавитьПолеИтога(СхемаКомпоновкиДанных, Ресурс.Имя + "НачальныйРазвернутыйОстатокКт");
+
+ ИначеЕсли ПараметрыОтчета.ТипОбъектаМетаданных = "РегистрыНакопления" Тогда
+
+ ПолеНабора.Роль.Остаток = Истина;
+ ПолеНабора.Роль.ТипОстатка = ТипОстаткаКомпоновкиДанных.НачальныйОстаток;
+ ПолеНабора.Роль.ГруппаОстатка = "Ост" + Ресурс.Имя;
+
КонецЕсли;
ДобавитьПолеНабораДанных(СхемаКомпоновкиДанных.НаборыДанных[0], Ресурс.Имя + "Оборот", Ресурс.Синоним + " " + НСтр("ru = 'оборот'"), Ресурс.Имя + "Оборот");
@@ -680,6 +709,11 @@
ПолеНабора.Роль.ТипБухгалтерскогоОстатка = ТипБухгалтерскогоОстаткаКомпоновкиДанных.Нет;
ПолеНабора.Роль.ГруппаОстатка = "РазвОст" + Ресурс.Имя + "Кт";
ДобавитьПолеИтога(СхемаКомпоновкиДанных, Ресурс.Имя + "КонечныйРазвернутыйОстатокКт");
+
+ ИначеЕсли ПараметрыОтчета.ТипОбъектаМетаданных = "РегистрыНакопления" Тогда
+ ПолеНабора.Роль.Остаток = Истина;
+ ПолеНабора.Роль.ТипОстатка = ТипОстаткаКомпоновкиДанных.КонечныйОстаток;
+ ПолеНабора.Роль.ГруппаОстатка = "Ост" + Ресурс.Имя;
КонецЕсли;
ИначеЕсли ПараметрыОтчета.ИмяТаблицы = "Остатки" Тогда
@@ -781,9 +815,15 @@
ПолеНабораДанных.Заголовок = Период.Представление;
ПолеНабораДанных.ПутьКДанным = ИмяПапки + "." + Период.Значение;
ПолеНабораДанных.Роль.ТипПериода = ТипПериода;
- ПолеНабораДанных.Роль.НомерПериода = СписокПериодов.Индекс(Период);
+ ПолеНабораДанных.Роль.НомерПериода = СписокПериодов.Количество() - СписокПериодов.Индекс(Период) + 1;
СписокПолейНабораДанных.Добавить(ПолеНабораДанных);
ТипПериода = ТипПериодаКомпоновкиДанных.Дополнительный;
+
+ Если Период.Значение = "ПериодСекунда" Тогда
+ ПолеНабораДанных.Роль.ТипПериода = ТипПериодаКомпоновкиДанных.Основной;
+ ПолеНабораДанных.Роль.ИгнорироватьЗначенияNULL = Истина;
+ КонецЕсли;
+
КонецЦикла;
Возврат СписокПолейНабораДанных;
diff --git a/SSL/src/Roles/АдминистраторСистемы/Rights.rights b/SSL/src/Roles/АдминистраторСистемы/Rights.rights
index 485f7b2af..94576a971 100644
--- a/SSL/src/Roles/АдминистраторСистемы/Rights.rights
+++ b/SSL/src/Roles/АдминистраторСистемы/Rights.rights
@@ -1589,89 +1589,6 @@
true
-
-
+
-
+
+
-
-
+
+
-
diff --git a/SSL/src/Roles/ПолныеПрава/Rights.rights b/SSL/src/Roles/ПолныеПрава/Rights.rights
index 3d77fb7d3..51802e56a 100644
--- a/SSL/src/Roles/ПолныеПрава/Rights.rights
+++ b/SSL/src/Roles/ПолныеПрава/Rights.rights
@@ -2291,42 +2291,10 @@
-
+