3_1_2_326

This commit is contained in:
Компания 1С committed 2020-03-27 12:32:00 +03:00
1 parent 5b228c805d
commit 4fd2a0fabc
25 files changed
+1315 -727

No files matched your search

@@ -304,199 +304,13 @@
ОписаниеОшибки = Null, ОписаниеОшибки = Null,
УзелПроверкиЗапретаЗагрузки = Неопределено) Экспорт УзелПроверкиЗапретаЗагрузки = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина); Если ДатыЗапретаИзмененияСлужебный.ПроверкаДатЗапретаОтключена(
УзелПроверкиЗапретаЗагрузки = Неопределено, УзелПроверкиЗапретаЗагрузки) Тогда
Если ТипЗнч(ДанныеДляПроверки) = Тип("Структура") Тогда
ДействующиеДаты = ДанныеДляПроверки.ДействующиеДаты;
ДанныеДляПроверки = ДанныеДляПроверки.ДанныеДляПроверки;
Иначе
ДействующиеДаты = ДатыЗапретаИзмененияСлужебный.ДействующиеДатыЗапрета();
КонецЕсли;
ЗапретИспользуется = ?(УзелПроверкиЗапретаЗагрузки = Неопределено,
ДействующиеДаты.ЗапретИзмененияИспользуется,
ДействующиеДаты.ЗапретЗагрузкиИспользуется);
Если Не ЗапретИспользуется Тогда
Возврат Ложь; Возврат Ложь;
КонецЕсли; КонецЕсли;
СвойстваРазделов = ДействующиеДаты.СвойстваРазделов; Возврат ДатыЗапретаИзмененияСлужебный.НайденЗапретИзмененияДанных(ДанныеДляПроверки,
ПустойРаздел = ДатыЗапретаИзмененияСлужебный.ПустаяСсылка( ОписаниеДанных, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки);
Тип("ПланВидовХарактеристикСсылка.РазделыДатЗапретаИзменения"));
ЗаголовокОшибки =
НСтр("ru = 'Ошибка в функции НайденЗапретИзмененияДанных общего модуля ДатыЗапретаИзменения.'")
+ Символы.ПС
+ Символы.ПС;
// Приведение данных в соответствие варианту встраивания.
Для Каждого Строка Из ДанныеДляПроверки Цикл
Если Строка.Раздел = Неопределено Тогда
Строка.Раздел = ПустойРаздел;
КонецЕсли;
СвойстваРаздела = СвойстваРазделов.Разделы.Получить(Строка.Раздел); // см. ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.СвойстваРаздела
Если СвойстваРаздела = Неопределено Тогда
ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В параметре ДанныеДляПроверки указан несуществующий раздел ""%1"".'"),
Строка.Раздел);
КонецЕсли;
Если СвойстваРазделов.БезРазделовИОбъектов Тогда
Строка.Раздел = ПустойРаздел;
Строка.Объект = ПустойРаздел;
Иначе
Если ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Строка.Раздел = СвойстваРазделов.ЕдинственныйРаздел;
Иначе
Строка.Раздел = СвойстваРаздела.Ссылка;
КонецЕсли;
Если СвойстваРазделов.ВсеРазделыБезОбъектов
Или Не ЗначениеЗаполнено(Строка.Объект) Тогда
Строка.Объект = Строка.Раздел;
КонецЕсли;
КонецЕсли;
КонецЦикла;
// Свертка лишних строк, чтобы сократить число проверок и сообщений.
РазделыИОбъекты = ДанныеДляПроверки.Скопировать();
РазделыИОбъекты.Свернуть("Раздел, Объект");
Отбор = Новый Структура("Раздел, Объект");
РазделыИОбъекты.Колонки.Добавить("Дата",
Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Для Каждого РазделИОбъект Из РазделыИОбъекты Цикл
ЗаполнитьЗначенияСвойств(Отбор, РазделИОбъект);
Строки = ДанныеДляПроверки.НайтиСтроки(Отбор);
МинимальнаяДата = Неопределено;
Для Каждого Строка Из Строки Цикл
ТекущаяДата = НачалоДня(Строка.Дата);
Если МинимальнаяДата = Неопределено Тогда
МинимальнаяДата = ТекущаяДата;
КонецЕсли;
Если ТекущаяДата < МинимальнаяДата Тогда
МинимальнаяДата = ТекущаяДата;
КонецЕсли;
КонецЦикла;
РазделИОбъект.Дата = МинимальнаяДата;
КонецЦикла;
ДанныеДляПроверки = РазделыИОбъекты;
// Приоритеты дат запрета изменения.
// 1. Для раздела, объекта и пользователя.
// 2. Для раздела, объекта и группы пользователей.
// 3. Для раздела, объекта и любого пользователя.
// 4. Для раздела, любого объекта (объект = раздел) и пользователя.
// 5. Для раздела, любого объекта (объект = раздел) и группы пользователей.
// 6. Для раздела, любого объекта (объект = раздел) и любого пользователя.
// 7. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и пользователя.
// 8. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и группы пользователей.
// 9. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и любого пользователя.
// Приоритеты дат запрета загрузки.
// 1. Для раздела, объекта и узла.
// 2. Для раздела, объекта и любого узла.
// 3. Для раздела, любого объекта (объект = раздел) и узла.
// 4. Для раздела, любого объекта (объект = раздел) и любого узла.
// 5. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и узла.
// 6. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и любого узла.
ЗапретыИзменения = ДанныеДляПроверки.Скопировать(Новый Массив);
ЗапретыИзменения.Колонки.Добавить("Адресат");
ЗапретыИзменения.Колонки.Добавить("Данные");
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("УзелПроверкиЗапретаЗагрузки", УзелПроверкиЗапретаЗагрузки);
// Поиск запретов изменения данных.
Если УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Разделы = ДействующиеДаты.ДляПользователей.Разделы;
Пользователь = Пользователи.АвторизованныйПользователь();
ГруппыПользователя = ДействующиеДаты.ГруппыПользователей.Получить(Пользователь);
Если ГруппыПользователя = Неопределено Тогда
ГруппыПользователя = Новый Массив;
КонецЕсли;
ДополнительныеПараметры.Вставить("Пользователь", Пользователь);
ДополнительныеПараметры.Вставить("ГруппыПользователя", ГруппыПользователя);
Иначе
Разделы = ДействующиеДаты.ДляИнформационныхБаз.Разделы;
ДополнительныеПараметры.Вставить("ПустойУзелПланаОбмена",
ОбщегоНазначения.МенеджерОбъектаПоСсылке(УзелПроверкиЗапретаЗагрузки).ПустаяСсылка());
КонецЕсли;
Для Каждого Данные Из ДанныеДляПроверки Цикл
РазделЗапрета = Данные.Раздел;
ОбъектЗапрета = Данные.Объект;
Объекты = Разделы.Получить(РазделЗапрета);
Адресаты = Неопределено;
ДатаЗапрета = Неопределено;
Если Объекты <> Неопределено Тогда
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты <> Неопределено Тогда
// Поиск для раздела и объекта.
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
ОбъектЗапрета = РазделЗапрета;
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты <> Неопределено Тогда
// Поиск для раздела и любого объекта.
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
РазделЗапрета = ПустойРаздел;
ОбъектЗапрета = РазделЗапрета;
Объекты = Разделы.Получить(РазделЗапрета);
Если Объекты = Неопределено Тогда
Продолжить;
КонецЕсли;
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты = Неопределено Тогда
Продолжить;
КонецЕсли;
// Поиск для любого раздела и любого объекта (общая дата).
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
Если ДатаЗапрета = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Если ДатаЗапрета < Данные.Дата Тогда
Продолжить;
КонецЕсли;
Если УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Адресат = Пользователь;
Иначе
Адресат = УзелПроверкиЗапретаЗагрузки;
КонецЕсли;
Строка = ЗапретыИзменения.Добавить();
Строка.Данные = Данные;
Строка.Раздел = РазделЗапрета;
Строка.Объект = ОбъектЗапрета;
Строка.Адресат = Адресат;
Строка.Дата = ДатаЗапрета;
КонецЦикла;
Если ТипЗнч(ОписаниеДанных) = Тип("Структура")
И ТипЗнч(ОписаниеОшибки) <> Тип("Null")
И ЗапретыИзменения.Количество() > 0 Тогда
ОписаниеОшибки = СообщениеОЗапретах(ЗапретыИзменения, ОписаниеДанных, СвойстваРазделов,
УзелПроверкиЗапретаЗагрузки <> Неопределено, ТипЗнч(ОписаниеОшибки) = Тип("Структура"));
КонецЕсли;
Возврат ЗапретыИзменения.Количество() > 0;
КонецФункции КонецФункции
@@ -696,233 +510,4 @@
КонецПроцедуры КонецПроцедуры
// Для функции НайденЗапретИзмененияДанных.
Функция НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры)
ДатаЗапрета = Неопределено;
Если ДополнительныеПараметры.УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Адресат = ДополнительныеПараметры.Пользователь;
ДатаЗапрета = Адресаты.Получить(Адресат);
Если ДатаЗапрета = Неопределено Тогда
Для Каждого Группа Из ДополнительныеПараметры.ГруппыПользователя Цикл
Дата = Адресаты.Получить(Группа);
Если ДатаЗапрета = Неопределено Тогда
ДатаЗапрета = Дата;
Адресат = Группа;
ИначеЕсли Дата <> Неопределено И ДатаЗапрета < Дата Тогда
ДатаЗапрета = Дата;
Адресат = Группа;
КонецЕсли;
КонецЦикла;
Если ДатаЗапрета = Неопределено Тогда
Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
КонецЕсли;
Иначе
Адресат = ДополнительныеПараметры.УзелПроверкиЗапретаЗагрузки;
ДатаЗапрета = Адресаты.Получить(Адресат);
Если ДатаЗапрета = Неопределено Тогда
Адресат = ДополнительныеПараметры.ПустойУзелПланаОбмена;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехИнформационныхБаз;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
КонецЕсли;
Возврат ДатаЗапрета;
КонецФункции
// Для функции НайденЗапретИзмененияДанных.
Функция СообщениеОЗапретах(Запреты,
ОписаниеДанных,
СвойстваРазделов,
ПоискЗапретовЗагрузки,
СтруктурноеОписание)
НоваяВерсия = ОписаниеДанных.НоваяВерсия;
Текст = ПредставлениеДанных(ОписаниеДанных.Данные);
Если СтруктурноеОписание Тогда
ОписаниеОшибки = Новый Структура;
ОписаниеОшибки.Вставить("ПредставлениеДанных", Текст);
ОписаниеОшибки.Вставить("Запреты", Новый ТаблицаЗначений);
Колонки = ОписаниеОшибки.Запреты.Колонки;
Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата",,,,,Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Колонки.Добавить("Раздел", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(100, ДопустимаяДлина.Переменная)));
Колонки.Добавить("Объект", Метаданные.ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.Тип);
Колонки.Добавить("ДатаЗапрета", Новый ОписаниеТипов("Дата",,,,,Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Колонки.Добавить("ОбщаяДата", Новый ОписаниеТипов("Булево"));
Колонки.Добавить("ДляВсехОбъектов", Новый ОписаниеТипов("Булево"));
Колонки.Добавить("Адресат", Метаданные.ОпределяемыеТипы.АдресатЗапретаИзменения.Тип);
Колонки.Добавить("Описание", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(1000,ДопустимаяДлина.Переменная)));
КонецЕсли;
Если ЗначениеЗаполнено(Текст) Тогда
Если ПоискЗапретовЗагрузки Тогда
Если НоваяВерсия Тогда
Шаблон = НСтр("ru = '%1 невозможно загрузить в запрещенный период.'");
Иначе
Шаблон = НСтр("ru = '%1 в запрещенном периоде невозможно заменить загружаемыми данными.'");
КонецЕсли;
Иначе
Если НоваяВерсия Тогда
Шаблон = НСтр("ru = '%1 невозможно поместить в запрещенный период.'");
Иначе
Шаблон = НСтр("ru = '%1 в запрещенном периоде невозможно изменить.'");
КонецЕсли;
КонецЕсли;
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Текст) + Символы.ПС + Символы.ПС;
КонецЕсли;
ПустойРаздел = ДатыЗапретаИзмененияСлужебный.ПустаяСсылка(
Тип("ПланВидовХарактеристикСсылка.РазделыДатЗапретаИзменения"));
Если СтруктурноеОписание Тогда
ОписаниеОшибки.Вставить("ЗаголовокОшибки", СокрЛП(Текст));
КонецЕсли;
ТекстОшибки = Текст;
Для Каждого Запрет Из Запреты Цикл
Текст = "";
Проверка = Запрет.Данные;
Если Запрет.Раздел = Запрет.Объект Тогда
Если Запрет.Раздел = ПустойРаздел Тогда
Текст = Текст + НСтр("ru = 'Дате %1'");
Иначе
Текст = Текст + НСтр("ru = 'Дате %1 по разделу ""%2""'");
КонецЕсли;
ИначеЕсли ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Текст = Текст + НСтр("ru = 'Дате %1 по объекту ""%3""'");
Иначе
Текст = Текст + НСтр("ru = 'Дате %1 по объекту ""%3"" раздела ""%2""'");
КонецЕсли;
Если ПоискЗапретовЗагрузки Тогда
Текст = Текст + " " + НСтр("ru = 'соответствует запрет загрузки данных'") + " ";
Иначе
Текст = Текст + " " + НСтр("ru = 'соответствует запрет изменения данных'") + " ";
КонецЕсли;
Если Запрет.Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей Тогда
Текст = Текст + НСтр("ru = 'для всех пользователей'");
ИначеЕсли Запрет.Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехИнформационныхБаз Тогда
Текст = Текст + НСтр("ru = 'для всех информационных баз'");
ИначеЕсли ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ГруппыПользователей")
ИЛИ ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ГруппыВнешнихПользователей") Тогда
Текст = Текст + НСтр("ru = 'для группы пользователей ""%4""'");
ИначеЕсли ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.Пользователи")
ИЛИ ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
Текст = Текст + НСтр("ru = 'для пользователя ""%4""'");
ИначеЕсли ЗначениеЗаполнено(Запрет.Адресат) Тогда
Текст = Текст + НСтр("ru = 'для информационной базы ""%4""'");
Иначе
Текст = Текст + НСтр("ru = 'для всех информационных баз ""%6""'");
КонецЕсли;
Текст = Текст + " " + НСтр("ru = 'по %5'");
Если Не СвойстваРазделов.БезРазделовИОбъектов Тогда
Если ЗначениеЗаполнено(Запрет.Раздел) Тогда
Если Запрет.Объект = Запрет.Раздел Тогда
Текст = Текст + " " + НСтр("ru = '(запрет установлен на раздел ""%2"")'");
ИначеЕсли ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Текст = Текст + " " + НСтр("ru = '(запрет установлен на объект ""%3"")'");
Иначе
Текст = Текст + " " + НСтр("ru = '(запрет установлен на объект ""%3"" раздела ""%2"")'");
КонецЕсли;
Иначе
Текст = Текст + " " + НСтр("ru = '(установлена общая дата запрета)'");
КонецЕсли;
КонецЕсли;
Текст = СтрЗаменить(Текст, "%1", Формат(Проверка.Дата, "ДЛФ=Д"));
Текст = СтрЗаменить(Текст, "%2", Проверка.Раздел);
Текст = СтрЗаменить(Текст, "%3", Проверка.Объект);
Текст = СтрЗаменить(Текст, "%4", Запрет.Адресат);
Текст = СтрЗаменить(Текст, "%5", Формат(Запрет.Дата, "ДЛФ=Д"));
Текст = СтрЗаменить(Текст, "%6", Запрет.Адресат.Метаданные().Представление());
ТекстОшибки = ТекстОшибки + Текст + Символы.ПС + Символы.ПС;
Если СтруктурноеОписание Тогда
СтрокаОписанияОшибки = ОписаниеОшибки.Запреты.Добавить();
СтрокаОписанияОшибки.Дата = Проверка.Дата;
СвойстваРаздела = СвойстваРазделов.Разделы.Получить(Проверка.Раздел); // см. ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.СвойстваРаздела
СтрокаОписанияОшибки.Раздел = СвойстваРаздела.Имя;
СтрокаОписанияОшибки.Объект = ?(Проверка.Объект = Проверка.Раздел, Неопределено, Проверка.Объект);
СтрокаОписанияОшибки.ДатаЗапрета = Запрет.Дата;
СтрокаОписанияОшибки.ОбщаяДата = ?(ЗначениеЗаполнено(Запрет.Раздел), Ложь, Истина);
Если Запрет.Раздел = Запрет.Объект Тогда
СтрокаОписанияОшибки.ДляВсехОбъектов = Истина;
Иначе
СтрокаОписанияОшибки.ДляВсехОбъектов = Ложь;
КонецЕсли;
СтрокаОписанияОшибки.Адресат = Запрет.Адресат;
СтрокаОписанияОшибки.Описание = Текст;
КонецЕсли;
КонецЦикла;
Если Не СтруктурноеОписание Тогда
ОписаниеОшибки = СокрП(ТекстОшибки);
КонецЕсли;
Возврат ОписаниеОшибки;
КонецФункции
// Для функции СообщениеОЗапретах.
Функция ПредставлениеДанных(Данные)
Если ТипЗнч(Данные) = Тип("Строка") Тогда
Возврат СокрЛП(Данные);
КонецЕсли;
Если ТипЗнч(Данные) = Тип("Структура") Тогда
ЭтоРегистр = Истина;
Если ТипЗнч(Данные.Регистр) = Тип("Строка") Тогда
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Данные.Регистр);
Иначе
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(Данные.Регистр));
КонецЕсли;
Иначе
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(Данные));
ЭтоРегистр = ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных);
КонецЕсли;
Если ОбъектМетаданных = Неопределено Тогда
Возврат "";
КонецЕсли;
Если ЭтоРегистр Тогда
ПредставлениеДанных = ОбъектМетаданных.Представление();
КоличествоПолей = 0;
Для каждого ЭлементОтбора Из Данные.Отбор Цикл
Если ЭлементОтбора.Использование Тогда
КоличествоПолей = КоличествоПолей + 1;
КонецЕсли;
КонецЦикла;
Если КоличествоПолей = 1 Тогда
ПредставлениеДанных = ПредставлениеДанных
+ " " + НСтр("ru = 'с полем'") + " " + Строка(Данные.Отбор);
ИначеЕсли КоличествоПолей > 1 Тогда
ПредставлениеДанных = ПредставлениеДанных
+ " " + НСтр("ru = 'с полями'") + " " + Строка(Данные.Отбор);
КонецЕсли;
ИначеЕсли Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
ПредставлениеДанных = Строка(Данные);
Иначе
ПредставлениеДанных = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 (%2)", Строка(Данные), ОбъектМетаданных.Представление());
КонецЕсли;
Возврат ПредставлениеДанных;
КонецФункции
#КонецОбласти #КонецОбласти
@@ -476,6 +476,20 @@
Возврат Истина; Возврат Истина;
КонецЕсли; КонецЕсли;
Если ПроверкаДатЗапретаОтключена(ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки) Тогда
Возврат Истина;
КонецЕсли;
ДатыЗапретаИзмененияПереопределяемый.ПередПроверкойЗапретаИзменения(
Объект, ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки, ВерсияОбъекта);
Возврат ПроверкаЗапретаИзменения = Ложь // НЕ проверять запрет изменения.
И УзелПроверкиЗапретаЗагрузки = Неопределено; // НЕ проверять запрет загрузки.
КонецФункции
Функция ПроверкаДатЗапретаОтключена(ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки) Экспорт
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Если ПараметрыСеанса.ПропуститьПроверкуЗапретаИзменения Тогда Если ПараметрыСеанса.ПропуститьПроверкуЗапретаИзменения Тогда
Возврат Истина; Возврат Истина;
@@ -492,11 +506,7 @@
Возврат Истина; Возврат Истина;
КонецЕсли; КонецЕсли;
ДатыЗапретаИзмененияПереопределяемый.ПередПроверкойЗапретаИзменения( Возврат Ложь;
Объект, ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки, ВерсияОбъекта);
Возврат ПроверкаЗапретаИзменения = Ложь // НЕ проверять запрет изменения.
И УзелПроверкиЗапретаЗагрузки = Неопределено; // НЕ проверять запрет загрузки.
КонецФункции КонецФункции
@@ -531,7 +541,7 @@
ДанныеИДаты.Вставить("ДействующиеДаты", ДействующиеДаты); ДанныеИДаты.Вставить("ДействующиеДаты", ДействующиеДаты);
ДанныеИДаты.Вставить("ДанныеДляПроверки", ДанныеДляПроверки); ДанныеИДаты.Вставить("ДанныеДляПроверки", ДанныеДляПроверки);
ЗапретНайден = ДатыЗапретаИзменения.НайденЗапретИзмененияДанных(ДанныеИДаты, ЗапретНайден = НайденЗапретИзмененияДанных(ДанныеИДаты,
ОписаниеДанных, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки); ОписаниеДанных, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки);
КонецЕсли; КонецЕсли;
@@ -549,7 +559,7 @@
ДанныеИДаты.Вставить("ДействующиеДаты", ДействующиеДаты); ДанныеИДаты.Вставить("ДействующиеДаты", ДействующиеДаты);
ДанныеИДаты.Вставить("ДанныеДляПроверки", ДанныеДляПроверки); ДанныеИДаты.Вставить("ДанныеДляПроверки", ДанныеДляПроверки);
ЗапретНайден = ДатыЗапретаИзменения.НайденЗапретИзмененияДанных(ДанныеИДаты, ЗапретНайден = НайденЗапретИзмененияДанных(ДанныеИДаты,
ОписаниеДанных, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки); ОписаниеДанных, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки);
КонецЕсли; КонецЕсли;
@@ -557,6 +567,207 @@
КонецФункции КонецФункции
// См. ДатыЗапретаИзменения.НайденЗапретИзмененияДанных.
Функция НайденЗапретИзмененияДанных(Знач ДанныеДляПроверки,
ОписаниеДанных = Неопределено,
ОписаниеОшибки = Null,
УзелПроверкиЗапретаЗагрузки = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
Если ТипЗнч(ДанныеДляПроверки) = Тип("Структура") Тогда
ДействующиеДаты = ДанныеДляПроверки.ДействующиеДаты;
ДанныеДляПроверки = ДанныеДляПроверки.ДанныеДляПроверки;
Иначе
ДействующиеДаты = ДействующиеДатыЗапрета();
КонецЕсли;
ЗапретИспользуется = ?(УзелПроверкиЗапретаЗагрузки = Неопределено,
ДействующиеДаты.ЗапретИзмененияИспользуется,
ДействующиеДаты.ЗапретЗагрузкиИспользуется);
Если Не ЗапретИспользуется Тогда
Возврат Ложь;
КонецЕсли;
СвойстваРазделов = ДействующиеДаты.СвойстваРазделов;
ПустойРаздел = ПустаяСсылка(Тип("ПланВидовХарактеристикСсылка.РазделыДатЗапретаИзменения"));
ЗаголовокОшибки =
НСтр("ru = 'Ошибка в функции НайденЗапретИзмененияДанных общего модуля ДатыЗапретаИзменения.'")
+ Символы.ПС
+ Символы.ПС;
// Приведение данных в соответствие варианту встраивания.
Для Каждого Строка Из ДанныеДляПроверки Цикл
Если Строка.Раздел = Неопределено Тогда
Строка.Раздел = ПустойРаздел;
КонецЕсли;
СвойстваРаздела = СвойстваРазделов.Разделы.Получить(Строка.Раздел); // см. ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.СвойстваРаздела
Если СвойстваРаздела = Неопределено Тогда
ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В параметре ДанныеДляПроверки указан несуществующий раздел ""%1"".'"),
Строка.Раздел);
КонецЕсли;
Если СвойстваРазделов.БезРазделовИОбъектов Тогда
Строка.Раздел = ПустойРаздел;
Строка.Объект = ПустойРаздел;
Иначе
Если ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Строка.Раздел = СвойстваРазделов.ЕдинственныйРаздел;
Иначе
Строка.Раздел = СвойстваРаздела.Ссылка;
КонецЕсли;
Если СвойстваРазделов.ВсеРазделыБезОбъектов
Или Не ЗначениеЗаполнено(Строка.Объект) Тогда
Строка.Объект = Строка.Раздел;
КонецЕсли;
КонецЕсли;
КонецЦикла;
// Свертка лишних строк, чтобы сократить число проверок и сообщений.
РазделыИОбъекты = ДанныеДляПроверки.Скопировать();
РазделыИОбъекты.Свернуть("Раздел, Объект");
Отбор = Новый Структура("Раздел, Объект");
РазделыИОбъекты.Колонки.Добавить("Дата",
Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Для Каждого РазделИОбъект Из РазделыИОбъекты Цикл
ЗаполнитьЗначенияСвойств(Отбор, РазделИОбъект);
Строки = ДанныеДляПроверки.НайтиСтроки(Отбор);
МинимальнаяДата = Неопределено;
Для Каждого Строка Из Строки Цикл
ТекущаяДата = НачалоДня(Строка.Дата);
Если МинимальнаяДата = Неопределено Тогда
МинимальнаяДата = ТекущаяДата;
КонецЕсли;
Если ТекущаяДата < МинимальнаяДата Тогда
МинимальнаяДата = ТекущаяДата;
КонецЕсли;
КонецЦикла;
РазделИОбъект.Дата = МинимальнаяДата;
КонецЦикла;
ДанныеДляПроверки = РазделыИОбъекты;
// Приоритеты дат запрета изменения.
// 1. Для раздела, объекта и пользователя.
// 2. Для раздела, объекта и группы пользователей.
// 3. Для раздела, объекта и любого пользователя.
// 4. Для раздела, любого объекта (объект = раздел) и пользователя.
// 5. Для раздела, любого объекта (объект = раздел) и группы пользователей.
// 6. Для раздела, любого объекта (объект = раздел) и любого пользователя.
// 7. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и пользователя.
// 8. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и группы пользователей.
// 9. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и любого пользователя.
// Приоритеты дат запрета загрузки.
// 1. Для раздела, объекта и узла.
// 2. Для раздела, объекта и любого узла.
// 3. Для раздела, любого объекта (объект = раздел) и узла.
// 4. Для раздела, любого объекта (объект = раздел) и любого узла.
// 5. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и узла.
// 6. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и любого узла.
ЗапретыИзменения = ДанныеДляПроверки.Скопировать(Новый Массив);
ЗапретыИзменения.Колонки.Добавить("Адресат");
ЗапретыИзменения.Колонки.Добавить("Данные");
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("УзелПроверкиЗапретаЗагрузки", УзелПроверкиЗапретаЗагрузки);
// Поиск запретов изменения данных.
Если УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Разделы = ДействующиеДаты.ДляПользователей.Разделы;
Пользователь = Пользователи.АвторизованныйПользователь();
ГруппыПользователя = ДействующиеДаты.ГруппыПользователей.Получить(Пользователь);
Если ГруппыПользователя = Неопределено Тогда
ГруппыПользователя = Новый Массив;
КонецЕсли;
ДополнительныеПараметры.Вставить("Пользователь", Пользователь);
ДополнительныеПараметры.Вставить("ГруппыПользователя", ГруппыПользователя);
Иначе
Разделы = ДействующиеДаты.ДляИнформационныхБаз.Разделы;
ДополнительныеПараметры.Вставить("ПустойУзелПланаОбмена",
ОбщегоНазначения.МенеджерОбъектаПоСсылке(УзелПроверкиЗапретаЗагрузки).ПустаяСсылка());
КонецЕсли;
Для Каждого Данные Из ДанныеДляПроверки Цикл
РазделЗапрета = Данные.Раздел;
ОбъектЗапрета = Данные.Объект;
Объекты = Разделы.Получить(РазделЗапрета);
Адресаты = Неопределено;
ДатаЗапрета = Неопределено;
Если Объекты <> Неопределено Тогда
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты <> Неопределено Тогда
// Поиск для раздела и объекта.
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
ОбъектЗапрета = РазделЗапрета;
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты <> Неопределено Тогда
// Поиск для раздела и любого объекта.
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
РазделЗапрета = ПустойРаздел;
ОбъектЗапрета = РазделЗапрета;
Объекты = Разделы.Получить(РазделЗапрета);
Если Объекты = Неопределено Тогда
Продолжить;
КонецЕсли;
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты = Неопределено Тогда
Продолжить;
КонецЕсли;
// Поиск для любого раздела и любого объекта (общая дата).
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
Если ДатаЗапрета = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Если ДатаЗапрета < Данные.Дата Тогда
Продолжить;
КонецЕсли;
Если УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Адресат = Пользователь;
Иначе
Адресат = УзелПроверкиЗапретаЗагрузки;
КонецЕсли;
Строка = ЗапретыИзменения.Добавить();
Строка.Данные = Данные;
Строка.Раздел = РазделЗапрета;
Строка.Объект = ОбъектЗапрета;
Строка.Адресат = Адресат;
Строка.Дата = ДатаЗапрета;
КонецЦикла;
Если ТипЗнч(ОписаниеДанных) = Тип("Структура")
И ТипЗнч(ОписаниеОшибки) <> Тип("Null")
И ЗапретыИзменения.Количество() > 0 Тогда
ОписаниеОшибки = СообщениеОЗапретах(ЗапретыИзменения, ОписаниеДанных, СвойстваРазделов,
УзелПроверкиЗапретаЗагрузки <> Неопределено, ТипЗнч(ОписаниеОшибки) = Тип("Структура"));
КонецЕсли;
Возврат ЗапретыИзменения.Количество() > 0;
КонецФункции
// Возвращает действующие даты запрета с учетом последней версии после изменений. // Возвращает действующие даты запрета с учетом последней версии после изменений.
Функция ДействующиеДатыЗапрета() Экспорт Функция ДействующиеДатыЗапрета() Экспорт
@@ -597,7 +808,7 @@
КонецФункции КонецФункции
// Возвращает пустую ссылку указанного типа. // Возвращает пустую ссылку указанного типа.
Функция ПустаяСсылка(ТипСсылки) Экспорт Функция ПустаяСсылка(ТипСсылки)
Типы = Новый Массив; Типы = Новый Массив;
Типы.Добавить(ТипСсылки); Типы.Добавить(ТипСсылки);
@@ -900,7 +1111,7 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Вспомогательные процедуры и функции. // Вспомогательные процедуры и функции.
// Для процедуры ПропуститьПроверкуДатЗапрета. // Для функции ПроверкаДатЗапретаОтключена.
Функция ЗапретИзмененияДанныхНеИспользуется(ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки) Функция ЗапретИзмененияДанныхНеИспользуется(ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки)
Если ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы() Тогда Если ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы() Тогда
@@ -1334,6 +1545,234 @@
КонецФункции КонецФункции
// Для функции НайденЗапретИзмененияДанных.
Функция НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры)
ДатаЗапрета = Неопределено;
Если ДополнительныеПараметры.УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Адресат = ДополнительныеПараметры.Пользователь;
ДатаЗапрета = Адресаты.Получить(Адресат);
Если ДатаЗапрета = Неопределено Тогда
Для Каждого Группа Из ДополнительныеПараметры.ГруппыПользователя Цикл
Дата = Адресаты.Получить(Группа);
Если ДатаЗапрета = Неопределено Тогда
ДатаЗапрета = Дата;
Адресат = Группа;
ИначеЕсли Дата <> Неопределено И ДатаЗапрета < Дата Тогда
ДатаЗапрета = Дата;
Адресат = Группа;
КонецЕсли;
КонецЦикла;
Если ДатаЗапрета = Неопределено Тогда
Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
КонецЕсли;
Иначе
Адресат = ДополнительныеПараметры.УзелПроверкиЗапретаЗагрузки;
ДатаЗапрета = Адресаты.Получить(Адресат);
Если ДатаЗапрета = Неопределено Тогда
Адресат = ДополнительныеПараметры.ПустойУзелПланаОбмена;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехИнформационныхБаз;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
КонецЕсли;
Возврат ДатаЗапрета;
КонецФункции
Функция СообщениеОЗапретах(Запреты,
ОписаниеДанных,
СвойстваРазделов,
ПоискЗапретовЗагрузки,
СтруктурноеОписание)
НоваяВерсия = ОписаниеДанных.НоваяВерсия;
Текст = ПредставлениеДанных(ОписаниеДанных.Данные);
Если СтруктурноеОписание Тогда
ОписаниеОшибки = Новый Структура;
ОписаниеОшибки.Вставить("ПредставлениеДанных", Текст);
ОписаниеОшибки.Вставить("Запреты", Новый ТаблицаЗначений);
Колонки = ОписаниеОшибки.Запреты.Колонки;
Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата",,,,,Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Колонки.Добавить("Раздел", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(100, ДопустимаяДлина.Переменная)));
Колонки.Добавить("Объект", Метаданные.ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.Тип);
Колонки.Добавить("ДатаЗапрета", Новый ОписаниеТипов("Дата",,,,,Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Колонки.Добавить("ОбщаяДата", Новый ОписаниеТипов("Булево"));
Колонки.Добавить("ДляВсехОбъектов", Новый ОписаниеТипов("Булево"));
Колонки.Добавить("Адресат", Метаданные.ОпределяемыеТипы.АдресатЗапретаИзменения.Тип);
Колонки.Добавить("Описание", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(1000,ДопустимаяДлина.Переменная)));
КонецЕсли;
Если ЗначениеЗаполнено(Текст) Тогда
Если ПоискЗапретовЗагрузки Тогда
Если НоваяВерсия Тогда
Шаблон = НСтр("ru = '%1 невозможно загрузить в запрещенный период.'");
Иначе
Шаблон = НСтр("ru = '%1 в запрещенном периоде невозможно заменить загружаемыми данными.'");
КонецЕсли;
Иначе
Если НоваяВерсия Тогда
Шаблон = НСтр("ru = '%1 невозможно поместить в запрещенный период.'");
Иначе
Шаблон = НСтр("ru = '%1 в запрещенном периоде невозможно изменить.'");
КонецЕсли;
КонецЕсли;
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Текст) + Символы.ПС + Символы.ПС;
КонецЕсли;
ПустойРаздел = ПустаяСсылка(Тип("ПланВидовХарактеристикСсылка.РазделыДатЗапретаИзменения"));
Если СтруктурноеОписание Тогда
ОписаниеОшибки.Вставить("ЗаголовокОшибки", СокрЛП(Текст));
КонецЕсли;
ТекстОшибки = Текст;
Для Каждого Запрет Из Запреты Цикл
Текст = "";
Проверка = Запрет.Данные;
Если Запрет.Раздел = Запрет.Объект Тогда
Если Запрет.Раздел = ПустойРаздел Тогда
Текст = Текст + НСтр("ru = 'Дате %1'");
Иначе
Текст = Текст + НСтр("ru = 'Дате %1 по разделу ""%2""'");
КонецЕсли;
ИначеЕсли ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Текст = Текст + НСтр("ru = 'Дате %1 по объекту ""%3""'");
Иначе
Текст = Текст + НСтр("ru = 'Дате %1 по объекту ""%3"" раздела ""%2""'");
КонецЕсли;
Если ПоискЗапретовЗагрузки Тогда
Текст = Текст + " " + НСтр("ru = 'соответствует запрет загрузки данных'") + " ";
Иначе
Текст = Текст + " " + НСтр("ru = 'соответствует запрет изменения данных'") + " ";
КонецЕсли;
Если Запрет.Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей Тогда
Текст = Текст + НСтр("ru = 'для всех пользователей'");
ИначеЕсли Запрет.Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехИнформационныхБаз Тогда
Текст = Текст + НСтр("ru = 'для всех информационных баз'");
ИначеЕсли ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ГруппыПользователей")
ИЛИ ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ГруппыВнешнихПользователей") Тогда
Текст = Текст + НСтр("ru = 'для группы пользователей ""%4""'");
ИначеЕсли ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.Пользователи")
ИЛИ ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
Текст = Текст + НСтр("ru = 'для пользователя ""%4""'");
ИначеЕсли ЗначениеЗаполнено(Запрет.Адресат) Тогда
Текст = Текст + НСтр("ru = 'для информационной базы ""%4""'");
Иначе
Текст = Текст + НСтр("ru = 'для всех информационных баз ""%6""'");
КонецЕсли;
Текст = Текст + " " + НСтр("ru = 'по %5'");
Если Не СвойстваРазделов.БезРазделовИОбъектов Тогда
Если ЗначениеЗаполнено(Запрет.Раздел) Тогда
Если Запрет.Объект = Запрет.Раздел Тогда
Текст = Текст + " " + НСтр("ru = '(запрет установлен на раздел ""%2"")'");
ИначеЕсли ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Текст = Текст + " " + НСтр("ru = '(запрет установлен на объект ""%3"")'");
Иначе
Текст = Текст + " " + НСтр("ru = '(запрет установлен на объект ""%3"" раздела ""%2"")'");
КонецЕсли;
Иначе
Текст = Текст + " " + НСтр("ru = '(установлена общая дата запрета)'");
КонецЕсли;
КонецЕсли;
Текст = СтрЗаменить(Текст, "%1", Формат(Проверка.Дата, "ДЛФ=Д"));
Текст = СтрЗаменить(Текст, "%2", Проверка.Раздел);
Текст = СтрЗаменить(Текст, "%3", Проверка.Объект);
Текст = СтрЗаменить(Текст, "%4", Запрет.Адресат);
Текст = СтрЗаменить(Текст, "%5", Формат(Запрет.Дата, "ДЛФ=Д"));
Текст = СтрЗаменить(Текст, "%6", Запрет.Адресат.Метаданные().Представление());
ТекстОшибки = ТекстОшибки + Текст + Символы.ПС + Символы.ПС;
Если СтруктурноеОписание Тогда
СтрокаОписанияОшибки = ОписаниеОшибки.Запреты.Добавить();
СтрокаОписанияОшибки.Дата = Проверка.Дата;
СвойстваРаздела = СвойстваРазделов.Разделы.Получить(Проверка.Раздел); // см. ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.СвойстваРаздела
СтрокаОписанияОшибки.Раздел = СвойстваРаздела.Имя;
СтрокаОписанияОшибки.Объект = ?(Проверка.Объект = Проверка.Раздел, Неопределено, Проверка.Объект);
СтрокаОписанияОшибки.ДатаЗапрета = Запрет.Дата;
СтрокаОписанияОшибки.ОбщаяДата = ?(ЗначениеЗаполнено(Запрет.Раздел), Ложь, Истина);
Если Запрет.Раздел = Запрет.Объект Тогда
СтрокаОписанияОшибки.ДляВсехОбъектов = Истина;
Иначе
СтрокаОписанияОшибки.ДляВсехОбъектов = Ложь;
КонецЕсли;
СтрокаОписанияОшибки.Адресат = Запрет.Адресат;
СтрокаОписанияОшибки.Описание = Текст;
КонецЕсли;
КонецЦикла;
Если Не СтруктурноеОписание Тогда
ОписаниеОшибки = СокрП(ТекстОшибки);
КонецЕсли;
Возврат ОписаниеОшибки;
КонецФункции
// Для функции СообщениеОЗапретах.
Функция ПредставлениеДанных(Данные)
Если ТипЗнч(Данные) = Тип("Строка") Тогда
Возврат СокрЛП(Данные);
КонецЕсли;
Если ТипЗнч(Данные) = Тип("Структура") Тогда
ЭтоРегистр = Истина;
Если ТипЗнч(Данные.Регистр) = Тип("Строка") Тогда
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Данные.Регистр);
Иначе
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(Данные.Регистр));
КонецЕсли;
Иначе
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(Данные));
ЭтоРегистр = ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных);
КонецЕсли;
Если ОбъектМетаданных = Неопределено Тогда
Возврат "";
КонецЕсли;
Если ЭтоРегистр Тогда
ПредставлениеДанных = ОбъектМетаданных.Представление();
КоличествоПолей = 0;
Для каждого ЭлементОтбора Из Данные.Отбор Цикл
Если ЭлементОтбора.Использование Тогда
КоличествоПолей = КоличествоПолей + 1;
КонецЕсли;
КонецЦикла;
Если КоличествоПолей = 1 Тогда
ПредставлениеДанных = ПредставлениеДанных
+ " " + НСтр("ru = 'с полем'") + " " + Строка(Данные.Отбор);
ИначеЕсли КоличествоПолей > 1 Тогда
ПредставлениеДанных = ПредставлениеДанных
+ " " + НСтр("ru = 'с полями'") + " " + Строка(Данные.Отбор);
КонецЕсли;
ИначеЕсли Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
ПредставлениеДанных = Строка(Данные);
Иначе
ПредставлениеДанных = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 (%2)", Строка(Данные), ОбъектМетаданных.Представление());
КонецЕсли;
Возврат ПредставлениеДанных;
КонецФункции
// Для процедуры ЗначениеПараметраСеансаДействующиеДатыЗапретаИзменения. // Для процедуры ЗначениеПараметраСеансаДействующиеДатыЗапретаИзменения.
Функция ЗапросДатЗапретаИзменения() Функция ЗапросДатЗапретаИзменения()
@@ -764,15 +764,15 @@
// Выполняет преобразование структуры с данными в объект XDTO указанного типа в соответствии с правилами. // Выполняет преобразование структуры с данными в объект XDTO указанного типа в соответствии с правилами.
// //
// Параметры: // Параметры:
// КомпонентыОбмена - Структура - содержит все правила и параметры обмена. // КомпонентыОбмена - Структура - содержит все правила и параметры обмена.
// Источник - Структура - источник данных, которые необходимо преобразовать в объект XDTO. // Источник - Структура - источник данных, которые необходимо преобразовать в объект XDTO.
// ТипXDTO - Строка - тип объекта или тип значения XDTO, к которому надо преобразовать данные. // ТипXDTO - Строка - тип объекта или тип значения XDTO, к которому надо преобразовать данные.
// Приемник - ОбъектXDTO - объект, в который будет помещен результат. // Приемник - ОбъектXDTO - объект, в который будет помещен результат.
// СсылкиИзОбъекта - Массив - содержит общий список выгруженных по ссылкам объектов. // СсылкиИзОбъекта - Массив из ЛюбаяСсылка - содержит общий список выгруженных по ссылкам объектов.
// ПроведеноЗаполнениеСвойств - Булево - параметр для определения заполненности общих составных свойств. // ПроведеноЗаполнениеСвойств - Булево - параметр для определения заполненности общих составных свойств.
// //
// Возвращаемое значение: // Возвращаемое значение:
// ОбъектXDTO - результат преобразования. // ОбъектXDTO - результат преобразования.
// //
Функция ОбъектXDTOИзДанныхXDTO( Функция ОбъектXDTOИзДанныхXDTO(
КомпонентыОбмена, КомпонентыОбмена,
@@ -989,14 +989,14 @@
// Выполняет преобразование данных информационной базы в структуру с данными в соответствии с правилами. // Выполняет преобразование данных информационной базы в структуру с данными в соответствии с правилами.
// //
// Параметры: // Параметры:
// КомпонентыОбмена - см. ИнициализироватьКомпонентыОбмена // КомпонентыОбмена - см. ИнициализироватьКомпонентыОбмена
// Источник - ЛюбаяСсылка - Ссылка на выгружаемый объект информационной базы. // Источник - ЛюбаяСсылка - Ссылка на выгружаемый объект информационной базы.
// ПравилоКонвертации - СтрокаТаблицыЗначений - Строка таблицы правил конвертации объектов, // ПравилоКонвертации - СтрокаТаблицыЗначений - Строка таблицы правил конвертации объектов,
// в соответствии с которой выполняется преобразование. // в соответствии с которой выполняется преобразование.
// СтекВыгрузки - массив - ссылки на выгружаемые объекты с учетом вложенности. // СтекВыгрузки - Массив из ЛюбаяСсылка - ссылки на выгружаемые объекты с учетом вложенности.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура - результат преобразования. // Структура - результат преобразования.
// //
Функция ДанныеXDTOИзДанныхИБ(КомпонентыОбмена, Источник, Знач ПравилоКонвертации, СтекВыгрузки = Неопределено) Экспорт Функция ДанныеXDTOИзДанныхИБ(КомпонентыОбмена, Источник, Знач ПравилоКонвертации, СтекВыгрузки = Неопределено) Экспорт
@@ -1042,9 +1042,11 @@
Если ПравилоКонвертации.ЭтоКонстанта Тогда Если ПравилоКонвертации.ЭтоКонстанта Тогда
Если ПравилоКонвертации.ТипXDTO.Свойства.Количество() = 1 Тогда ТипОбъекта = ПравилоКонвертации.ТипXDTO; // ТипОбъектаXDTO
Приемник.Вставить(ПравилоКонвертации.ТипXDTO.Свойства[0].Имя, Источник.Значение); Если ТипОбъекта.Свойства.Количество() = 1 Тогда
Приемник.Вставить(ТипОбъекта.Свойства[0].Имя, Источник.Значение);
Иначе Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
@@ -1284,8 +1286,8 @@
// ПолучательСвойства - Структура - Получатель данных типа Структура, в которой должно храниться значение выгруженного свойства. // ПолучательСвойства - Структура - Получатель данных типа Структура, в которой должно храниться значение выгруженного свойства.
// ПКС - СтрокаТаблицыЗначений - Строка таблицы правил конвертации свойств, в соответствии с которой // ПКС - СтрокаТаблицыЗначений - Строка таблицы правил конвертации свойств, в соответствии с которой
// выполняется преобразование. // выполняется преобразование.
// СтекВыгрузки - Массив - ссылки на выгружаемые объекты с учетом вложенности. // СтекВыгрузки - Массив из ЛюбаяСсылка - ссылки на выгружаемые объекты с учетом вложенности.
// ЭтапВыгрузки - Число - содержит информацию об этапе выгрузки // ЭтапВыгрузки - Число - содержит информацию об этапе выгрузки:
// 1 - выгрузка до выполнения алгоритма ПриОтправкеДанных, // 1 - выгрузка до выполнения алгоритма ПриОтправкеДанных,
// 2 - выгрузка после выполнения алгоритма ПриОтправкеДанных. // 2 - выгрузка после выполнения алгоритма ПриОтправкеДанных.
// //
@@ -2271,7 +2273,7 @@
// выполнения обмена (ПКО, ПКПД, ПОД и т.д.). // выполнения обмена (ПКО, ПКПД, ПОД и т.д.).
// //
// Возвращаемое значение: // Возвращаемое значение:
// СправочникСсылка, ДокументСсылка и т.п. - ссылка на объект информационной базы. // ЛюбаяСсылка - ссылка на объект информационной базы.
// //
Функция СсылкаОбъектаПоУИДОбъектаXDTO(УИДОбъектаXDTO, ТипЗначенияОбъектаИБ, КомпонентыОбмена) Экспорт Функция СсылкаОбъектаПоУИДОбъектаXDTO(УИДОбъектаXDTO, ТипЗначенияОбъектаИБ, КомпонентыОбмена) Экспорт
@@ -5364,7 +5366,7 @@
КлючТаблицыДанных = ОбменДаннымиСервер.КлючТаблицыДанных( КлючТаблицыДанных = ОбменДаннымиСервер.КлючТаблицыДанных(
ТипОбъектаXDTO.Имя, ПравилоКонвертации.ТипПолученныхДанныхСтрокой, Ложь); ТипОбъектаXDTO.Имя, ПравилоКонвертации.ТипПолученныхДанныхСтрокой, Ложь);
ТаблицаДанныхСообщенияОбмена = КомпонентыОбмена.ТаблицыДанныхСообщенияОбмена.Получить(КлючТаблицыДанных); ТаблицаДанныхСообщенияОбмена = КомпонентыОбмена.ТаблицыДанныхСообщенияОбмена.Получить(КлючТаблицыДанных); // ТаблицаЗначений
УникальныйИдентификаторСтрокой = ""; УникальныйИдентификаторСтрокой = "";
СтрокаТаблицы = Неопределено; СтрокаТаблицы = Неопределено;
@@ -5383,12 +5385,14 @@
// Заполняем значения свойств объекта. // Заполняем значения свойств объекта.
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, ДанныеДляЗаписиВИБ); ЗаполнитьЗначенияСвойств(СтрокаТаблицы, ДанныеДляЗаписиВИБ);
СсылкаНаОбъект = Неопределено;
Если СинхронизироватьПоИдентификатору Тогда Если СинхронизироватьПоИдентификатору Тогда
СтрокаТаблицы.Ссылка = СсылкаОбъектаПоУИДОбъектаXDTO(ДанныеXDTO.Ссылка.Значение, СсылкаНаОбъект = СсылкаОбъектаПоУИДОбъектаXDTO(ДанныеXDTO.Ссылка.Значение,
ПравилоКонвертации.ТипДанных, КомпонентыОбмена); ПравилоКонвертации.ТипДанных, КомпонентыОбмена);
Иначе Иначе
СтрокаТаблицы.Ссылка = Неопределено; СсылкаНаОбъект = Неопределено;
КонецЕсли; КонецЕсли;
СтрокаТаблицы["Ссылка"] = СсылкаНаОбъект;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -7049,9 +7053,11 @@
Для Каждого ПравилоКонвертации Из КомпонентыОбмена.ПравилаКонвертацииОбъектов Цикл Для Каждого ПравилоКонвертации Из КомпонентыОбмена.ПравилаКонвертацииОбъектов Цикл
ТипОбъекта = ПравилоКонвертации.ТипXDTO; // ТипОбъектаXDTO
Отбор = Новый Структура; Отбор = Новый Структура;
Отбор.Вставить("Версия", КомпонентыОбмена.ВерсияФорматаОбмена); Отбор.Вставить("Версия", КомпонентыОбмена.ВерсияФорматаОбмена);
Отбор.Вставить("Объект", ПравилоКонвертации.ТипXDTO.Имя); Отбор.Вставить("Объект", ТипОбъекта.Имя);
СтрокиОбъекты = ТаблицаОбъекты.НайтиСтроки(Отбор); СтрокиОбъекты = ТаблицаОбъекты.НайтиСтроки(Отбор);
Если СтрокиОбъекты.Количество() = 0 Тогда Если СтрокиОбъекты.Количество() = 0 Тогда
@@ -14378,8 +14378,8 @@
Функция ОписаниеСтандартногоВариантаДополнительно() Функция ОписаниеСтандартногоВариантаДополнительно()
Результат = Новый Структура; Результат = Новый Структура;
Результат.Вставить("Использование", Истина); Результат.Вставить("Использование", Ложь);
Результат.Вставить("Порядок", 3); Результат.Вставить("Порядок", 4);
Результат.Вставить("Заголовок", ""); Результат.Вставить("Заголовок", "");
Результат.Вставить("Пояснение", НСтр("ru = 'Дополнительно будут отправлены данные согласно отбору.'")); Результат.Вставить("Пояснение", НСтр("ru = 'Дополнительно будут отправлены данные согласно отбору.'"));
@@ -123,8 +123,8 @@
// Процедура дополняет список узлов-получателей объекта переданными значениями. // Процедура дополняет список узлов-получателей объекта переданными значениями.
// //
// Параметры: // Параметры:
// Объект - Произвольный - объект, для которого выполняется правило регистрации. // Объект - СправочникОбъект, ДокументОбъект - объект, для которого выполняется правило регистрации.
// Узлы - Массив - узлы плана обмена, которые необходимо добавить в список узлов-получателей объекта. // Узлы - Массив из ПланОбменаСсылка - узлы плана обмена, которые необходимо добавить в список узлов-получателей объекта.
// //
Процедура ДополнитьПолучателей(Объект, Узлы) Экспорт Процедура ДополнитьПолучателей(Объект, Узлы) Экспорт
@@ -148,8 +148,8 @@
// Процедура вычитает из списка узлов-получателей объекта переданные значения. // Процедура вычитает из списка узлов-получателей объекта переданные значения.
// //
// Параметры: // Параметры:
// Объект - Произвольный - объект, для которого выполняется правило регистрации. // Объект - СправочникОбъект, ДокументОбъект - объект, для которого выполняется правило регистрации.
// Узлы - Массив - узлы плана обмена, которые необходимо вычесть из списка узлов-получателей объекта. // Узлы - Массив из ПланОбменаСсылка - узлы плана обмена, которые необходимо вычесть из списка узлов-получателей объекта.
// //
Процедура СократитьПолучателей(Объект, Узлы) Экспорт Процедура СократитьПолучателей(Объект, Узлы) Экспорт
@@ -190,11 +190,11 @@
// Вычитает один массив элементов из другого массива. Возвращает результат вычитания. // Вычитает один массив элементов из другого массива. Возвращает результат вычитания.
// //
// Параметры: // Параметры:
// Массив - Массив - Исходный массив. // Массив - Массив из Произвольный - Исходный массив.
// МассивВычитания - Массив - Массив, вычитаемый из исходного массива. // МассивВычитания - Массив из Произвольный - Массив, вычитаемый из исходного массива.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Массив - результат вычитания. // Массив из Произвольный - результат вычитания.
// //
Функция СократитьМассив(Массив, МассивВычитания) Экспорт Функция СократитьМассив(Массив, МассивВычитания) Экспорт
@@ -205,11 +205,11 @@
// Функция возвращает список всех узлов заданного плана обмена кроме предопределенного узла. // Функция возвращает список всех узлов заданного плана обмена кроме предопределенного узла.
// //
// Параметры: // Параметры:
// ИмяПланаОбмена - Строка - имя плана обмена, как оно задано в конфигураторе, список узлов для которого необходимо // ИмяПланаОбмена - Строка - имя плана обмена, как оно задано в конфигураторе,
// получить. // список узлов для которого необходимо получить.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Массив - список всех узлов заданного плана обмена. // Массив из ПланОбменаСсылка - список всех узлов заданного плана обмена.
// //
Функция ВсеУзлыПланаОбмена(ИмяПланаОбмена) Экспорт Функция ВсеУзлыПланаОбмена(ИмяПланаОбмена) Экспорт
@@ -222,12 +222,12 @@
// Функция определяет массив узлов-получателей для объекта при заданном плане обмена. // Функция определяет массив узлов-получателей для объекта при заданном плане обмена.
// //
// Параметры: // Параметры:
// Объект - Произвольный - СправочникОбъект, ДокументОбъект и т.п. объект, для которого необходимо выполнить // Объект - Произвольный - СправочникОбъект, ДокументОбъект и т.п. объект, для которого необходимо выполнить
// правила регистрации, и определить список узлов-получателей. // правила регистрации, и определить список узлов-получателей.
// ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе. // ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе.
// //
// Возвращаемое значение: // Возвращаемое значение:
// МассивУзловРезультат - Массив - массив узлов-получателей для объекта. // Массив из ПланОбменаСсылка - массив узлов-получателей для объекта.
// //
Функция ОпределитьПолучателей(Объект, ИмяПланаОбмена) Экспорт Функция ОпределитьПолучателей(Объект, ИмяПланаОбмена) Экспорт
@@ -310,8 +310,13 @@
// Вызывается из обработчиков планов обмена: ПриОтправкеДанныхГлавному(), ПриОтправкеДанныхПодчиненному(). // Вызывается из обработчиков планов обмена: ПриОтправкеДанныхГлавному(), ПриОтправкеДанныхПодчиненному().
// //
// Параметры: // Параметры:
// ЭлементДанных, ОтправкаЭлемента - см. описание параметров в синтаксис помощнике // ЭлементДанных - КонстантаМенеджерЗначения, СправочникОбъект, ДокументОбъект, РегистрСведенийНаборЗаписей, и т.п. -
// для методов ПриОтправкеДанныхГлавному() и ПриОтправкеДанныхПодчиненному(). // элемент данных.
// ОтправкаЭлемента - ОтправкаЭлементаДанных - см. описание параметра "ОтправкаЭлемента" в синтаксис помощнике
// для методов ПриОтправкеДанныхГлавному() и ПриОтправкеДанныхПодчиненному().
// СозданиеНачальногоОбраза - Булево - признак вызова процедуры при создании начального образа РИБ.
// Получатель - ПланОбменаСсылка, Неопределено - узел получателя.
// Анализ - Булево - признак вызова процедуры при анализе.
// //
Процедура ПриОтправкеДанныхКорреспонденту(ЭлементДанных, Процедура ПриОтправкеДанныхКорреспонденту(ЭлементДанных,
ОтправкаЭлемента, ОтправкаЭлемента,
@@ -627,11 +632,13 @@
МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ЭлементНабор.Ключ.ПолноеИмя()); МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ЭлементНабор.Ключ.ПолноеИмя());
Пока ЭлементНабор.Значение.Количество() > 0 Цикл ТаблицаОтборы = ЭлементНабор.Значение; // ТаблицаЗначений
Пока ТаблицаОтборы.Количество() > 0 Цикл
Объект = МенеджерОбъекта.СоздатьНаборЗаписей(); Объект = МенеджерОбъекта.СоздатьНаборЗаписей();
Для Каждого ЭлементОтбора Из ЭлементНабор.Значение.Колонки Цикл Для Каждого ЭлементОтбора Из ТаблицаОтборы.Колонки Цикл
Объект.Отбор[ЭлементОтбора.Имя].Установить(ЭлементНабор.Значение[0][ЭлементОтбора.Имя]); ОбменДаннымиСлужебный.УстановитьЗначениеЭлементаОтбора(
Объект.Отбор, ЭлементОтбора.Имя, ТаблицаОтборы[0][ЭлементОтбора.Имя]);
КонецЦикла; КонецЦикла;
Объект.Прочитать(); Объект.Прочитать();
@@ -639,7 +646,7 @@
ПланыОбмена.УдалитьРегистрациюИзменений(Источник.Ссылка, Объект); ПланыОбмена.УдалитьРегистрациюИзменений(Источник.Ссылка, Объект);
КонецЕсли; КонецЕсли;
Объект = Неопределено; Объект = Неопределено;
ЭлементНабор.Значение.Удалить(0); ТаблицаОтборы.Удалить(0);
КонецЦикла; КонецЦикла;
@@ -801,6 +808,10 @@
КонецФункции КонецФункции
// Возвращаемое значение:
// ТаблицаЗначений:
// * Ссылка - ЛюбаяСсылка - ссылка на зарегистрированный объект.
//
Функция ЗарегистрированныеДанныеОдногоСсылочногоТипа(УзелСсылка, ПолноеИмяОбъектаМетаданных) Функция ЗарегистрированныеДанныеОдногоСсылочногоТипа(УзелСсылка, ПолноеИмяОбъектаМетаданных)
Запрос = Новый Запрос( Запрос = Новый Запрос(
@@ -840,7 +851,7 @@
Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеЭлемента) Тогда Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеЭлемента) Тогда
ЗарегистрированныеДанные[МетаданныеЭлемента] = Новый Массив; КоллекцияСсылок = Новый Массив;
НаборДанных = ЗарегистрированныеДанныеОдногоСсылочногоТипа(УзелОбъект.Ссылка, ПолноеИмяОбъектаМетаданных); НаборДанных = ЗарегистрированныеДанныеОдногоСсылочногоТипа(УзелОбъект.Ссылка, ПолноеИмяОбъектаМетаданных);
@@ -849,11 +860,13 @@
СсылкаНаОбъект = СтрокаДанные.Ссылка; СсылкаНаОбъект = СтрокаДанные.Ссылка;
Если ВыгрузкаОбъектаРазрешена(УзелОбъект.Ссылка, СсылкаНаОбъект.ПолучитьОбъект()) Тогда Если ВыгрузкаОбъектаРазрешена(УзелОбъект.Ссылка, СсылкаНаОбъект.ПолучитьОбъект()) Тогда
ЗарегистрированныеДанные[МетаданныеЭлемента].Добавить(СсылкаНаОбъект); КоллекцияСсылок.Добавить(СсылкаНаОбъект);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
ЗарегистрированныеДанные[МетаданныеЭлемента] = КоллекцияСсылок;
ИначеЕсли ОбщегоНазначения.ЭтоКонстанта(МетаданныеЭлемента) Тогда ИначеЕсли ОбщегоНазначения.ЭтоКонстанта(МетаданныеЭлемента) Тогда
МенеджерЗначенияКонстанты = Константы[МетаданныеЭлемента.Имя].СоздатьМенеджерЗначения(); МенеджерЗначенияКонстанты = Константы[МетаданныеЭлемента.Имя].СоздатьМенеджерЗначения();
@@ -863,35 +876,38 @@
Иначе // Регистр или последовательность. Иначе // Регистр или последовательность.
ЗарегистрированныеДанные[МетаданныеЭлемента] = Новый ТаблицаЗначений; ТаблицаОтборы = Новый ТаблицаЗначений;
МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмяОбъектаМетаданных); МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмяОбъектаМетаданных);
НаборДанных = ЗарегистрированныеДанныеОдногоТипа(УзелОбъект.Ссылка, ПолноеИмяОбъектаМетаданных); НаборДанных = ЗарегистрированныеДанныеОдногоТипа(УзелОбъект.Ссылка, ПолноеИмяОбъектаМетаданных);
НаборЗаписей = МенеджерОбъекта.СоздатьНаборЗаписей(); НаборЗаписей = МенеджерОбъекта.СоздатьНаборЗаписей(); // РегистрСведенийНаборЗаписей, и т.п.
Для Каждого ЭлементОтбора Из НаборЗаписей.Отбор Цикл Для Каждого ЭлементОтбора Из НаборЗаписей.Отбор Цикл
Если НаборДанных.Колонки.Найти(ЭлементОтбора.Имя) <> Неопределено Тогда Если НаборДанных.Колонки.Найти(ЭлементОтбора.Имя) <> Неопределено Тогда
ЗарегистрированныеДанные[МетаданныеЭлемента].Колонки.Добавить(ЭлементОтбора.Имя); ТаблицаОтборы.Колонки.Добавить(ЭлементОтбора.Имя);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Для Каждого СтрокаДанные Из НаборДанных Цикл Для Каждого СтрокаДанные Из НаборДанных Цикл
НаборЗаписей = МенеджерОбъекта.СоздатьНаборЗаписей(); НаборЗаписей = МенеджерОбъекта.СоздатьНаборЗаписей(); // РегистрСведенийНаборЗаписей, и т.п.
Для Каждого ЭлементОтбора Из ЗарегистрированныеДанные[МетаданныеЭлемента].Колонки Цикл Для Каждого ЭлементОтбора Из ТаблицаОтборы.Колонки Цикл
НаборЗаписей.Отбор[ЭлементОтбора.Имя].Установить(СтрокаДанные[ЭлементОтбора.Имя]); ОбменДаннымиСлужебный.УстановитьЗначениеЭлементаОтбора(
НаборЗаписей.Отбор, ЭлементОтбора.Имя, СтрокаДанные[ЭлементОтбора.Имя]);
КонецЦикла; КонецЦикла;
НаборЗаписей.Прочитать(); НаборЗаписей.Прочитать();
Если ВыгрузкаОбъектаРазрешена(УзелОбъект.Ссылка, НаборЗаписей) Тогда Если ВыгрузкаОбъектаРазрешена(УзелОбъект.Ссылка, НаборЗаписей) Тогда
СтруктураОтбора = ЗарегистрированныеДанные[МетаданныеЭлемента].Добавить(); СтруктураОтбора = ТаблицаОтборы.Добавить();
ЗаполнитьЗначенияСвойств(СтруктураОтбора, СтрокаДанные); ЗаполнитьЗначенияСвойств(СтруктураОтбора, СтрокаДанные);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
ЗарегистрированныеДанные[МетаданныеЭлемента] = ТаблицаОтборы;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.2.319"; Описание.Версия = "3.1.2.326";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -106,6 +106,31 @@
КонецПроцедуры КонецПроцедуры
// Вызывается после загрузки данных в область.
// Обновляет курсы валют из поставляемых данных.
//
Процедура ОбновитьКурсыВалют() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Валюты.Код
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| Валюты.СпособУстановкиКурса = ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета)";
Выборка = Запрос.Выполнить().Выбрать();
// Копируем курсы. Это необходимо делать синхронно, т.к. за вызовом ОбновитьКурсыВалют
// следует обновление ИБ, которое пытается заблокировать базу. Копирование курсов -
// длительный процесс, который в асинхронном режиме может начаться в произвольный момент
// и помешать блокировке.
Пока Выборка.Следующий() Цикл
КопироватьКурсыВалюты(Выборка.Код);
КонецЦикла;
КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Обработчики событий подсистем конфигурации. // Обработчики событий подсистем конфигурации.
@@ -172,6 +197,7 @@
Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт
СоответствиеИменПсевдонимам.Вставить("РаботаСКурсамиВалютСлужебный.КопироватьКурсыВалюты"); СоответствиеИменПсевдонимам.Вставить("РаботаСКурсамиВалютСлужебный.КопироватьКурсыВалюты");
СоответствиеИменПсевдонимам.Вставить("РаботаСКурсамиВалютСлужебный.ОбновитьКурсыВалют");
КонецПроцедуры КонецПроцедуры
@@ -196,31 +222,6 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
// Вызывается после загрузки данных в область.
// Обновляет курсы валют из поставляемых данных.
//
Процедура ОбновитьКурсыВалют()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Валюты.Код
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| Валюты.СпособУстановкиКурса = ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета)";
Выборка = Запрос.Выполнить().Выбрать();
// Копируем курсы. Это необходимо делать синхронно, т.к. за вызовом ОбновитьКурсыВалют
// следует обновление ИБ, которое пытается заблокировать базу. Копирование курсов -
// длительный процесс, который в асинхронном режиме может начаться в произвольный момент
// и помешать блокировке.
Пока Выборка.Следующий() Цикл
КопироватьКурсыВалюты(Выборка.Код);
КонецЦикла;
КонецПроцедуры
// Регистрирует обработчики поставляемых данных за день и за все время. // Регистрирует обработчики поставляемых данных за день и за все время.
// //
// Параметры: // Параметры:
@@ -498,6 +499,8 @@
УровеньЖурналаРегистрации.Ошибка,,, УровеньЖурналаРегистрации.Ошибка,,,
ТекстОшибки); ТекстОшибки);
ЗапланироватьОбновлениеКурсовВалют(ОбластьДанных);
Продолжить; Продолжить;
КонецПопытки; КонецПопытки;
@@ -535,6 +538,23 @@
КонецПроцедуры КонецПроцедуры
Процедура ЗапланироватьОбновлениеКурсовВалют(ОбластьДанных)
Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда
Возврат;
КонецЕсли;
ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("ИмяМетода", "РаботаСКурсамиВалютСлужебный.ОбновитьКурсыВалют");
ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных);
МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий");
УстановитьПривилегированныйРежим(Истина);
МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания);
КонецПроцедуры
Функция СвойстваПоставляемойВалюты(ВалютыОбластей, КодВалюты, ТаблицаКурсов, ЗапросОбщий) Функция СвойстваПоставляемойВалюты(ВалютыОбластей, КодВалюты, ТаблицаКурсов, ЗапросОбщий)
СвойстваВалюты = ВалютыОбластей.Получить(КодВалюты); СвойстваВалюты = ВалютыОбластей.Получить(КодВалюты);
@@ -4626,13 +4626,17 @@
ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры = Новый Структура;
КонецЕсли; КонецЕсли;
ДополнительныеПараметрыПоУмолчанию = Новый Структура;
ДополнительныеПараметрыПоУмолчанию.Вставить("ДляРедактирования", Ложь);
ДополнительныеПараметрыПоУмолчанию.Вставить("ДанныеФайла", Неопределено);
ЗаполнитьЗначенияСвойств(ДополнительныеПараметрыПоУмолчанию, ДополнительныеПараметры);
Контекст = Новый Структура; Контекст = Новый Структура;
Контекст.Вставить("Оповещение", Оповещение); Контекст.Вставить("Оповещение", Оповещение);
Контекст.Вставить("ПрисоединенныйФайл", ПрисоединенныйФайл); Контекст.Вставить("ПрисоединенныйФайл", ПрисоединенныйФайл);
Контекст.Вставить("ИдентификаторФормы", ИдентификаторФормы); Контекст.Вставить("ИдентификаторФормы", ИдентификаторФормы);
Контекст.Вставить("ДляРедактирования", Ложь);
Контекст.Вставить("ДанныеФайла", Неопределено); ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Контекст, ДополнительныеПараметрыПоУмолчанию);
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, Контекст);
Если ТипЗнч(Контекст.ДанныеФайла) <> Тип("Структура") Если ТипЗнч(Контекст.ДанныеФайла) <> Тип("Структура")
Или Не ЗначениеЗаполнено(Контекст.ДанныеФайла.СсылкаНаДвоичныеДанныеФайла) Тогда Или Не ЗначениеЗаполнено(Контекст.ДанныеФайла.СсылкаНаДвоичныеДанныеФайла) Тогда
@@ -4036,8 +4036,7 @@
ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета( ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета(
Новый ОписаниеОповещения("ПослеПодключенияКомпоненты", ЭтотОбъект, Контекст), Новый ОписаниеОповещения("ПослеПодключенияКомпоненты", ЭтотОбъект, Контекст),
"XMLDSignAddIn", "XMLDSignAddIn", "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Макет.КомпонентаXMLDSig",
"Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Макет.КомпонентаXMLDSig",
ПараметрыПодключения); ПараметрыПодключения);
КонецПроцедуры КонецПроцедуры
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="42bb8a6d-4bda-4141-85ea-1292873183c9"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="3b792f47-5119-4a29-8cb6-3f41c1177a6c">
<name>БиблиотекаСтандартныхПодсистем</name> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="22ad013c-a356-4c32-b8dd-d6df6de55f0c"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="256225fb-5d46-42fb-b0f2-1a3bd24a5be9"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="3003176d-0890-4724-a65f-d43d2ad5a508"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="24ca5fbb-69ef-419a-a81b-9637e8a1cc56"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="5f6d4691-c721-4fff-9d52-869a6a41cec7"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="38afaeca-28a2-44e9-8431-e5cc40828960"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="cb4cc508-e17e-4c8f-aa1b-9dea7f374a55"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="17f10f9c-5201-4218-acef-e1b9b7830ecd"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="f02c1aaf-1a0d-4bf9-8986-1cadb23618ad"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="252d7806-79d1-4d92-94d5-bf3fa766e62c"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="0a6c0abe-2dc1-444f-a3fa-552126a2dd11"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="4d4fc278-864d-42a1-a70a-0706e9d7cb85"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="25d20c1f-1f14-48d3-ae02-b486b1d4c9a2"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="eebdb160-f5f6-4e68-93dc-a659df72df9f"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.2.319</version> <version>3.1.2.326</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,3ae625a5-3960-4f63-996f-4a2330a90bfe,1,cad20791-03e0-4c9a-9947-e51c55ac084f,"3.1.2.319","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5923,1,0,42bb8a6d-4bda-4141-85ea-1292873183c9,42bb8a6d-4bda-4141-85ea-1292873183c9,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated {6,1,1,586e540a-4177-474b-a890-102fd0b1ccc3,1,6d99b33e-8272-4e00-8b24-571d868da3e7,"3.1.2.326","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5923,1,0,3b792f47-5119-4a29-8cb6-3f41c1177a6c,3b792f47-5119-4a29-8cb6-3f41c1177a6c,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт Функция ВерсияКалендарей() Экспорт
Возврат 39; Возврат 41;
КонецФункции КонецФункции
@@ -57,7 +57,7 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.1.2.318"; Возврат "3.1.2.325";
КонецФункции КонецФункции
@@ -17,6 +17,10 @@
<Item Calendar="01" Year="2019" DayType="Предпраздничный" Date="20191004" SwapDate=""/> <Item Calendar="01" Year="2019" DayType="Предпраздничный" Date="20191004" SwapDate=""/>
<Item Calendar="01" Year="2019" DayType="Праздник" Date="20191005" SwapDate="20191007"/> <Item Calendar="01" Year="2019" DayType="Праздник" Date="20191005" SwapDate="20191007"/>
<Item Calendar="01" Year="2019" DayType="Суббота" Date="20191007" SwapDate="20191005"/> <Item Calendar="01" Year="2019" DayType="Суббота" Date="20191007" SwapDate="20191005"/>
<Item Calendar="01" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="01" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="01" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="01" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="01" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/> <Item Calendar="01" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/>
<Item Calendar="01" Year="2020" DayType="Праздник" Date="20201005" SwapDate=""/> <Item Calendar="01" Year="2020" DayType="Праздник" Date="20201005" SwapDate=""/>
<Item Calendar="02" Year="2014" DayType="Праздник" Date="20140728" SwapDate=""/> <Item Calendar="02" Year="2014" DayType="Праздник" Date="20140728" SwapDate=""/>
@@ -55,6 +59,10 @@
<Item Calendar="02" Year="2019" DayType="Воскресенье" Date="20190812" SwapDate="20190811"/> <Item Calendar="02" Year="2019" DayType="Воскресенье" Date="20190812" SwapDate="20190811"/>
<Item Calendar="02" Year="2019" DayType="Предпраздничный" Date="20191010" SwapDate=""/> <Item Calendar="02" Year="2019" DayType="Предпраздничный" Date="20191010" SwapDate=""/>
<Item Calendar="02" Year="2019" DayType="Праздник" Date="20191011" SwapDate=""/> <Item Calendar="02" Year="2019" DayType="Праздник" Date="20191011" SwapDate=""/>
<Item Calendar="02" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="02" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="02" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="02" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="02" Year="2020" DayType="Праздник" Date="20200524" SwapDate="20200525"/> <Item Calendar="02" Year="2020" DayType="Праздник" Date="20200524" SwapDate="20200525"/>
<Item Calendar="02" Year="2020" DayType="Воскресенье" Date="20200525" SwapDate="20200524"/> <Item Calendar="02" Year="2020" DayType="Воскресенье" Date="20200525" SwapDate="20200524"/>
<Item Calendar="02" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/> <Item Calendar="02" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/>
@@ -70,6 +78,10 @@
<Item Calendar="03" Year="2019" DayType="Праздник" Date="20190205" SwapDate=""/> <Item Calendar="03" Year="2019" DayType="Праздник" Date="20190205" SwapDate=""/>
<Item Calendar="03" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/> <Item Calendar="03" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/>
<Item Calendar="03" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/> <Item Calendar="03" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/>
<Item Calendar="03" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="03" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="03" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="03" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="04" Year="2016" DayType="Праздник" Date="20160214" SwapDate="20160215"/> <Item Calendar="04" Year="2016" DayType="Праздник" Date="20160214" SwapDate="20160215"/>
<Item Calendar="04" Year="2016" DayType="Воскресенье" Date="20160215" SwapDate="20160214"/> <Item Calendar="04" Year="2016" DayType="Воскресенье" Date="20160215" SwapDate="20160214"/>
<Item Calendar="04" Year="2017" DayType="Предпраздничный" Date="20170203" SwapDate=""/> <Item Calendar="04" Year="2017" DayType="Предпраздничный" Date="20170203" SwapDate=""/>
@@ -83,6 +95,10 @@
<Item Calendar="04" Year="2019" DayType="Суббота" Date="20190211" SwapDate="20190209"/> <Item Calendar="04" Year="2019" DayType="Суббота" Date="20190211" SwapDate="20190209"/>
<Item Calendar="04" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/> <Item Calendar="04" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/>
<Item Calendar="04" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200223"/> <Item Calendar="04" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200223"/>
<Item Calendar="04" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="04" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="04" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="04" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="05" Year="2016" DayType="Предпраздничный" Date="20160705" SwapDate=""/> <Item Calendar="05" Year="2016" DayType="Предпраздничный" Date="20160705" SwapDate=""/>
<Item Calendar="05" Year="2016" DayType="Праздник" Date="20160706" SwapDate=""/> <Item Calendar="05" Year="2016" DayType="Праздник" Date="20160706" SwapDate=""/>
<Item Calendar="05" Year="2016" DayType="Праздник" Date="20160707" SwapDate=""/> <Item Calendar="05" Year="2016" DayType="Праздник" Date="20160707" SwapDate=""/>
@@ -117,6 +133,10 @@
<Item Calendar="05" Year="2019" DayType="Праздник" Date="20190812" SwapDate=""/> <Item Calendar="05" Year="2019" DayType="Праздник" Date="20190812" SwapDate=""/>
<Item Calendar="05" Year="2019" DayType="Праздник" Date="20190915" SwapDate="20190916"/> <Item Calendar="05" Year="2019" DayType="Праздник" Date="20190915" SwapDate="20190916"/>
<Item Calendar="05" Year="2019" DayType="Воскресенье" Date="20190916" SwapDate="20190915"/> <Item Calendar="05" Year="2019" DayType="Воскресенье" Date="20190916" SwapDate="20190915"/>
<Item Calendar="05" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="05" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="05" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="05" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="05" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/> <Item Calendar="05" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/>
<Item Calendar="05" Year="2020" DayType="Праздник" Date="20200726" SwapDate="20200727"/> <Item Calendar="05" Year="2020" DayType="Праздник" Date="20200726" SwapDate="20200727"/>
<Item Calendar="05" Year="2020" DayType="Воскресенье" Date="20200727" SwapDate="20200726"/> <Item Calendar="05" Year="2020" DayType="Воскресенье" Date="20200727" SwapDate="20200726"/>
@@ -144,6 +164,10 @@
<Item Calendar="06" Year="2019" DayType="Праздник" Date="20190605" SwapDate=""/> <Item Calendar="06" Year="2019" DayType="Праздник" Date="20190605" SwapDate=""/>
<Item Calendar="06" Year="2019" DayType="Праздник" Date="20190606" SwapDate=""/> <Item Calendar="06" Year="2019" DayType="Праздник" Date="20190606" SwapDate=""/>
<Item Calendar="06" Year="2019" DayType="Праздник" Date="20190812" SwapDate=""/> <Item Calendar="06" Year="2019" DayType="Праздник" Date="20190812" SwapDate=""/>
<Item Calendar="06" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="06" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="06" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="06" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="06" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/> <Item Calendar="06" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/>
<Item Calendar="06" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/> <Item Calendar="06" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/>
<Item Calendar="06" Year="2020" DayType="Праздник" Date="20200731" SwapDate=""/> <Item Calendar="06" Year="2020" DayType="Праздник" Date="20200731" SwapDate=""/>
@@ -176,6 +200,9 @@
<Item Calendar="07" Year="2019" DayType="Праздник" Date="20190901" SwapDate=""/> <Item Calendar="07" Year="2019" DayType="Праздник" Date="20190901" SwapDate=""/>
<Item Calendar="07" Year="2019" DayType="Праздник" Date="20190920" SwapDate=""/> <Item Calendar="07" Year="2019" DayType="Праздник" Date="20190920" SwapDate=""/>
<Item Calendar="07" Year="2020" DayType="Праздник" Date="20200328" SwapDate=""/> <Item Calendar="07" Year="2020" DayType="Праздник" Date="20200328" SwapDate=""/>
<Item Calendar="07" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="07" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="07" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="07" Year="2020" DayType="Праздник" Date="20200521" SwapDate=""/> <Item Calendar="07" Year="2020" DayType="Праздник" Date="20200521" SwapDate=""/>
<Item Calendar="07" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/> <Item Calendar="07" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/>
<Item Calendar="07" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/> <Item Calendar="07" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/>
@@ -220,6 +247,9 @@
<Item Calendar="08" Year="2019" DayType="Нерабочий" Date="20191228" SwapDate=""/> <Item Calendar="08" Year="2019" DayType="Нерабочий" Date="20191228" SwapDate=""/>
<Item Calendar="08" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/> <Item Calendar="08" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/>
<Item Calendar="08" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/> <Item Calendar="08" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/>
<Item Calendar="08" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="08" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="08" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="08" Year="2020" DayType="Праздник" Date="20200405" SwapDate="20200406"/> <Item Calendar="08" Year="2020" DayType="Праздник" Date="20200405" SwapDate="20200406"/>
<Item Calendar="08" Year="2020" DayType="Воскресенье" Date="20200406" SwapDate="20200405"/> <Item Calendar="08" Year="2020" DayType="Воскресенье" Date="20200406" SwapDate="20200405"/>
<Item Calendar="08" Year="2020" DayType="Предпраздничный" Date="20200604" SwapDate=""/> <Item Calendar="08" Year="2020" DayType="Предпраздничный" Date="20200604" SwapDate=""/>
@@ -255,6 +285,10 @@
<Item Calendar="09" Year="2019" DayType="Праздник" Date="20190906" SwapDate=""/> <Item Calendar="09" Year="2019" DayType="Праздник" Date="20190906" SwapDate=""/>
<Item Calendar="09" Year="2019" DayType="Суббота" Date="20190907" SwapDate="20190909"/> <Item Calendar="09" Year="2019" DayType="Суббота" Date="20190907" SwapDate="20190909"/>
<Item Calendar="09" Year="2019" DayType="Суббота" Date="20190909" SwapDate="20190907"/> <Item Calendar="09" Year="2019" DayType="Суббота" Date="20190909" SwapDate="20190907"/>
<Item Calendar="09" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="09" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="09" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="09" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="09" Year="2020" DayType="Нерабочий" Date="20200428" SwapDate=""/> <Item Calendar="09" Year="2020" DayType="Нерабочий" Date="20200428" SwapDate=""/>
<Item Calendar="09" Year="2020" DayType="Праздник" Date="20200503" SwapDate="20200505"/> <Item Calendar="09" Year="2020" DayType="Праздник" Date="20200503" SwapDate="20200505"/>
<Item Calendar="09" Year="2020" DayType="Воскресенье" Date="20200505" SwapDate="20200503"/> <Item Calendar="09" Year="2020" DayType="Воскресенье" Date="20200505" SwapDate="20200503"/>
@@ -267,6 +301,10 @@
<Item Calendar="11" Year="2018" DayType="Праздник" Date="20180822" SwapDate=""/> <Item Calendar="11" Year="2018" DayType="Праздник" Date="20180822" SwapDate=""/>
<Item Calendar="11" Year="2019" DayType="Предпраздничный" Date="20190821" SwapDate=""/> <Item Calendar="11" Year="2019" DayType="Предпраздничный" Date="20190821" SwapDate=""/>
<Item Calendar="11" Year="2019" DayType="Праздник" Date="20190822" SwapDate=""/> <Item Calendar="11" Year="2019" DayType="Праздник" Date="20190822" SwapDate=""/>
<Item Calendar="11" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="11" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="11" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="11" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="11" Year="2020" DayType="Предпраздничный" Date="20200821" SwapDate=""/> <Item Calendar="11" Year="2020" DayType="Предпраздничный" Date="20200821" SwapDate=""/>
<Item Calendar="11" Year="2020" DayType="Праздник" Date="20200822" SwapDate=""/> <Item Calendar="11" Year="2020" DayType="Праздник" Date="20200822" SwapDate=""/>
<Item Calendar="14" Year="2016" DayType="Предпраздничный" Date="20160426" SwapDate=""/> <Item Calendar="14" Year="2016" DayType="Предпраздничный" Date="20160426" SwapDate=""/>
@@ -286,6 +324,10 @@
<Item Calendar="14" Year="2019" DayType="Суббота" Date="20190429" SwapDate="20190427"/> <Item Calendar="14" Year="2019" DayType="Суббота" Date="20190429" SwapDate="20190427"/>
<Item Calendar="14" Year="2019" DayType="Предпраздничный" Date="20190620" SwapDate=""/> <Item Calendar="14" Year="2019" DayType="Предпраздничный" Date="20190620" SwapDate=""/>
<Item Calendar="14" Year="2019" DayType="Праздник" Date="20190621" SwapDate=""/> <Item Calendar="14" Year="2019" DayType="Праздник" Date="20190621" SwapDate=""/>
<Item Calendar="14" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="14" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="14" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="14" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="14" Year="2020" DayType="Праздник" Date="20200427" SwapDate=""/> <Item Calendar="14" Year="2020" DayType="Праздник" Date="20200427" SwapDate=""/>
<Item Calendar="14" Year="2020" DayType="Праздник" Date="20200621" SwapDate="20200622"/> <Item Calendar="14" Year="2020" DayType="Праздник" Date="20200621" SwapDate="20200622"/>
<Item Calendar="14" Year="2020" DayType="Воскресенье" Date="20200622" SwapDate="20200621"/> <Item Calendar="14" Year="2020" DayType="Воскресенье" Date="20200622" SwapDate="20200621"/>
@@ -317,6 +359,10 @@
<Item Calendar="16" Year="2019" DayType="Праздник" Date="20190830" SwapDate=""/> <Item Calendar="16" Year="2019" DayType="Праздник" Date="20190830" SwapDate=""/>
<Item Calendar="16" Year="2019" DayType="Предпраздничный" Date="20191105" SwapDate=""/> <Item Calendar="16" Year="2019" DayType="Предпраздничный" Date="20191105" SwapDate=""/>
<Item Calendar="16" Year="2019" DayType="Праздник" Date="20191106" SwapDate=""/> <Item Calendar="16" Year="2019" DayType="Праздник" Date="20191106" SwapDate=""/>
<Item Calendar="16" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="16" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="16" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="16" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="16" Year="2020" DayType="Праздник" Date="20200524" SwapDate=""/> <Item Calendar="16" Year="2020" DayType="Праздник" Date="20200524" SwapDate=""/>
<Item Calendar="16" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/> <Item Calendar="16" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/>
<Item Calendar="16" Year="2020" DayType="Праздник" Date="20200731" SwapDate=""/> <Item Calendar="16" Year="2020" DayType="Праздник" Date="20200731" SwapDate=""/>
@@ -361,6 +407,10 @@
<Item Calendar="17" Year="2019" DayType="Праздник" Date="20190815" SwapDate=""/> <Item Calendar="17" Year="2019" DayType="Праздник" Date="20190815" SwapDate=""/>
<Item Calendar="17" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/> <Item Calendar="17" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/>
<Item Calendar="17" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/> <Item Calendar="17" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/>
<Item Calendar="17" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="17" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="17" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="17" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="17" Year="2020" DayType="Предпраздничный" Date="20200505" SwapDate=""/> <Item Calendar="17" Year="2020" DayType="Предпраздничный" Date="20200505" SwapDate=""/>
<Item Calendar="17" Year="2020" DayType="Праздник" Date="20200506" SwapDate=""/> <Item Calendar="17" Year="2020" DayType="Праздник" Date="20200506" SwapDate=""/>
<Item Calendar="17" Year="2020" DayType="Предпраздничный" Date="20200814" SwapDate=""/> <Item Calendar="17" Year="2020" DayType="Предпраздничный" Date="20200814" SwapDate=""/>
@@ -416,6 +466,10 @@
<Item Calendar="20" Year="2019" DayType="Праздник" Date="20190812" SwapDate=""/> <Item Calendar="20" Year="2019" DayType="Праздник" Date="20190812" SwapDate=""/>
<Item Calendar="20" Year="2019" DayType="Праздник" Date="20190813" SwapDate=""/> <Item Calendar="20" Year="2019" DayType="Праздник" Date="20190813" SwapDate=""/>
<Item Calendar="20" Year="2020" DayType="Праздник" Date="20200323" SwapDate=""/> <Item Calendar="20" Year="2020" DayType="Праздник" Date="20200323" SwapDate=""/>
<Item Calendar="20" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="20" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="20" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="20" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="20" Year="2020" DayType="Предпраздничный" Date="20200415" SwapDate=""/> <Item Calendar="20" Year="2020" DayType="Предпраздничный" Date="20200415" SwapDate=""/>
<Item Calendar="20" Year="2020" DayType="Праздник" Date="20200416" SwapDate=""/> <Item Calendar="20" Year="2020" DayType="Праздник" Date="20200416" SwapDate=""/>
<Item Calendar="20" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/> <Item Calendar="20" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/>
@@ -429,6 +483,10 @@
<Item Calendar="21" Year="2018" DayType="Праздник" Date="20180624" SwapDate="20180625"/> <Item Calendar="21" Year="2018" DayType="Праздник" Date="20180624" SwapDate="20180625"/>
<Item Calendar="21" Year="2018" DayType="Воскресенье" Date="20180625" SwapDate="20180624"/> <Item Calendar="21" Year="2018" DayType="Воскресенье" Date="20180625" SwapDate="20180624"/>
<Item Calendar="21" Year="2019" DayType="Праздник" Date="20190624" SwapDate=""/> <Item Calendar="21" Year="2019" DayType="Праздник" Date="20190624" SwapDate=""/>
<Item Calendar="21" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="21" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="21" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="21" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="21" Year="2020" DayType="Предпраздничный" Date="20200623" SwapDate=""/> <Item Calendar="21" Year="2020" DayType="Предпраздничный" Date="20200623" SwapDate=""/>
<Item Calendar="21" Year="2020" DayType="Праздник" Date="20200624" SwapDate=""/> <Item Calendar="21" Year="2020" DayType="Праздник" Date="20200624" SwapDate=""/>
<Item Calendar="26" Year="2016" DayType="Праздник" Date="20160510" SwapDate=""/> <Item Calendar="26" Year="2016" DayType="Праздник" Date="20160510" SwapDate=""/>
@@ -438,6 +496,10 @@
<Item Calendar="26" Year="2018" DayType="Праздник" Date="20180417" SwapDate=""/> <Item Calendar="26" Year="2018" DayType="Праздник" Date="20180417" SwapDate=""/>
<Item Calendar="26" Year="2019" DayType="Предпраздничный" Date="20190506" SwapDate=""/> <Item Calendar="26" Year="2019" DayType="Предпраздничный" Date="20190506" SwapDate=""/>
<Item Calendar="26" Year="2019" DayType="Праздник" Date="20190507" SwapDate=""/> <Item Calendar="26" Year="2019" DayType="Праздник" Date="20190507" SwapDate=""/>
<Item Calendar="26" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="26" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="26" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="26" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="26" Year="2020" DayType="Предпраздничный" Date="20200427" SwapDate=""/> <Item Calendar="26" Year="2020" DayType="Предпраздничный" Date="20200427" SwapDate=""/>
<Item Calendar="26" Year="2020" DayType="Праздник" Date="20200428" SwapDate=""/> <Item Calendar="26" Year="2020" DayType="Праздник" Date="20200428" SwapDate=""/>
<Item Calendar="58" Year="2016" DayType="Праздник" Date="20160510" SwapDate=""/> <Item Calendar="58" Year="2016" DayType="Праздник" Date="20160510" SwapDate=""/>
@@ -447,6 +509,10 @@
<Item Calendar="58" Year="2018" DayType="Праздник" Date="20180417" SwapDate=""/> <Item Calendar="58" Year="2018" DayType="Праздник" Date="20180417" SwapDate=""/>
<Item Calendar="58" Year="2019" DayType="Предпраздничный" Date="20190506" SwapDate=""/> <Item Calendar="58" Year="2019" DayType="Предпраздничный" Date="20190506" SwapDate=""/>
<Item Calendar="58" Year="2019" DayType="Праздник" Date="20190507" SwapDate=""/> <Item Calendar="58" Year="2019" DayType="Праздник" Date="20190507" SwapDate=""/>
<Item Calendar="58" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="58" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="58" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="58" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="58" Year="2020" DayType="Предпраздничный" Date="20200427" SwapDate=""/> <Item Calendar="58" Year="2020" DayType="Предпраздничный" Date="20200427" SwapDate=""/>
<Item Calendar="58" Year="2020" DayType="Праздник" Date="20200428" SwapDate=""/> <Item Calendar="58" Year="2020" DayType="Праздник" Date="20200428" SwapDate=""/>
<Item Calendar="64" Year="2016" DayType="Праздник" Date="20160510" SwapDate=""/> <Item Calendar="64" Year="2016" DayType="Праздник" Date="20160510" SwapDate=""/>
@@ -456,6 +522,10 @@
<Item Calendar="64" Year="2018" DayType="Праздник" Date="20180417" SwapDate=""/> <Item Calendar="64" Year="2018" DayType="Праздник" Date="20180417" SwapDate=""/>
<Item Calendar="64" Year="2019" DayType="Предпраздничный" Date="20190506" SwapDate=""/> <Item Calendar="64" Year="2019" DayType="Предпраздничный" Date="20190506" SwapDate=""/>
<Item Calendar="64" Year="2019" DayType="Праздник" Date="20190507" SwapDate=""/> <Item Calendar="64" Year="2019" DayType="Праздник" Date="20190507" SwapDate=""/>
<Item Calendar="64" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="64" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="64" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="64" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="64" Year="2020" DayType="Предпраздничный" Date="20200427" SwapDate=""/> <Item Calendar="64" Year="2020" DayType="Предпраздничный" Date="20200427" SwapDate=""/>
<Item Calendar="64" Year="2020" DayType="Праздник" Date="20200428" SwapDate=""/> <Item Calendar="64" Year="2020" DayType="Праздник" Date="20200428" SwapDate=""/>
<Item Calendar="75" Year="2016" DayType="Предпраздничный" Date="20160208" SwapDate=""/> <Item Calendar="75" Year="2016" DayType="Предпраздничный" Date="20160208" SwapDate=""/>
@@ -467,6 +537,10 @@
<Item Calendar="75" Year="2019" DayType="Праздник" Date="20190205" SwapDate=""/> <Item Calendar="75" Year="2019" DayType="Праздник" Date="20190205" SwapDate=""/>
<Item Calendar="75" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/> <Item Calendar="75" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/>
<Item Calendar="75" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/> <Item Calendar="75" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/>
<Item Calendar="75" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="75" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="75" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="75" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="85" Year="2016" DayType="Предпраздничный" Date="20160208" SwapDate=""/> <Item Calendar="85" Year="2016" DayType="Предпраздничный" Date="20160208" SwapDate=""/>
<Item Calendar="85" Year="2016" DayType="Праздник" Date="20160209" SwapDate=""/> <Item Calendar="85" Year="2016" DayType="Праздник" Date="20160209" SwapDate=""/>
<Item Calendar="85" Year="2017" DayType="Праздник" Date="20170227" SwapDate=""/> <Item Calendar="85" Year="2017" DayType="Праздник" Date="20170227" SwapDate=""/>
@@ -476,6 +550,10 @@
<Item Calendar="85" Year="2019" DayType="Праздник" Date="20190205" SwapDate=""/> <Item Calendar="85" Year="2019" DayType="Праздник" Date="20190205" SwapDate=""/>
<Item Calendar="85" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/> <Item Calendar="85" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/>
<Item Calendar="85" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/> <Item Calendar="85" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/>
<Item Calendar="85" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="85" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="85" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="85" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="91" Year="2016" DayType="Предпраздничный" Date="20160317" SwapDate=""/> <Item Calendar="91" Year="2016" DayType="Предпраздничный" Date="20160317" SwapDate=""/>
<Item Calendar="91" Year="2016" DayType="Праздник" Date="20160318" SwapDate=""/> <Item Calendar="91" Year="2016" DayType="Праздник" Date="20160318" SwapDate=""/>
<Item Calendar="91" Year="2016" DayType="Праздник" Date="20160620" SwapDate=""/> <Item Calendar="91" Year="2016" DayType="Праздник" Date="20160620" SwapDate=""/>
@@ -506,6 +584,10 @@
<Item Calendar="91" Year="2019" DayType="Праздник" Date="20190812" SwapDate=""/> <Item Calendar="91" Year="2019" DayType="Праздник" Date="20190812" SwapDate=""/>
<Item Calendar="91" Year="2020" DayType="Предпраздничный" Date="20200317" SwapDate=""/> <Item Calendar="91" Year="2020" DayType="Предпраздничный" Date="20200317" SwapDate=""/>
<Item Calendar="91" Year="2020" DayType="Праздник" Date="20200318" SwapDate=""/> <Item Calendar="91" Year="2020" DayType="Праздник" Date="20200318" SwapDate=""/>
<Item Calendar="91" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="91" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="91" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="91" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="91" Year="2020" DayType="Праздник" Date="20200420" SwapDate=""/> <Item Calendar="91" Year="2020" DayType="Праздник" Date="20200420" SwapDate=""/>
<Item Calendar="91" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/> <Item Calendar="91" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/>
<Item Calendar="91" Year="2020" DayType="Праздник" Date="20200608" SwapDate=""/> <Item Calendar="91" Year="2020" DayType="Праздник" Date="20200608" SwapDate=""/>
@@ -978,7 +1060,11 @@
<Item Calendar="РФ" Year="2020" DayType="Воскресенье" Date="20200224" SwapDate="20200223"/> <Item Calendar="РФ" Year="2020" DayType="Воскресенье" Date="20200224" SwapDate="20200223"/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200308" SwapDate="20200309"/> <Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200308" SwapDate="20200309"/>
<Item Calendar="РФ" Year="2020" DayType="Воскресенье" Date="20200309" SwapDate="20200308"/> <Item Calendar="РФ" Year="2020" DayType="Воскресенье" Date="20200309" SwapDate="20200308"/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200422" SwapDate=""/> <Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200330" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200331" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200401" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200402" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200403" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Предпраздничный" Date="20200430" SwapDate=""/> <Item Calendar="РФ" Year="2020" DayType="Предпраздничный" Date="20200430" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200501" SwapDate=""/> <Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200501" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Суббота" Date="20200504" SwapDate="20200104"/> <Item Calendar="РФ" Year="2020" DayType="Суббота" Date="20200504" SwapDate="20200104"/>
@@ -259,18 +259,18 @@
// ИсходящиеДанные - Произвольный - произвольные вспомогательные данные, передаваемые правилам // ИсходящиеДанные - Произвольный - произвольные вспомогательные данные, передаваемые правилам
// конвертации свойств. // конвертации свойств.
// ИмяПКО - Строка - имя правила конвертации, согласно которому осуществляется выгрузка. // ИмяПКО - Строка - имя правила конвертации, согласно которому осуществляется выгрузка.
// УзелСсылки - xml-узел ссылки объекта приемника. // УзелСсылки - ЗаписьXML - xml-узел ссылки объекта приемника.
// ТолькоПолучитьУзелСсылки - Булево - Если Истина, то выгрузка объекта не производится, только формируется // ТолькоПолучитьУзелСсылки - Булево - Если Истина, то выгрузка объекта не производится, только формируется
// xml-узел ссылки. // xml-узел ссылки.
// ПКО - СтрокаТаблицыЗначений - строка таблицы правил конвертации. // ПКО - СтрокаТаблицыЗначений - строка таблицы правил конвертации.
// ВыгружатьСсылкиУПодчиненныхОбъектов - булево - если Истина то выгружаются ссылки у подчиненных объектов. // ВыгружатьСсылкиУПодчиненныхОбъектов - Булево - если Истина то выгружаются ссылки у подчиненных объектов.
// ВыгрузкаСтрокиНабораЗаписейРегистра - булево - если Истина то происходит выгрузка строки набора записей. // ВыгрузкаСтрокиНабораЗаписейРегистра - Булево - если Истина то происходит выгрузка строки набора записей.
// УзелПредка - xml-узел предка объекта приемника. // УзелПредка - ЗаписьXML - xml-узел предка объекта приемника.
// ИмяКонстантыДляВыгрузки - строка - значение, которое следует записать в атрибут ИмяКонстанты. // ИмяКонстантыДляВыгрузки - Строка - значение, которое следует записать в атрибут ИмяКонстанты.
// ЭтоВыгружаетсяОбъект - булево - признак того что выгружается объект. // ЭтоВыгружаетсяОбъект - Булево - признак того что выгружается объект.
// ЭтоПравилоСГлобальнойВыгрузкойОбъектов - булево - признак глобальной выгрузки объектов. // ЭтоПравилоСГлобальнойВыгрузкойОбъектов - булево - признак глобальной выгрузки объектов.
// НеИспользоватьПравилоСГлобальнойВыгрузкойИНеЗапоминатьВыгруженные - булево - не используется. // НеИспользоватьПравилоСГлобальнойВыгрузкойИНеЗапоминатьВыгруженные - булево - не используется.
// СтекВыгрузкиОбъекта - массив - содержит сведения о вышестоящих объектах выгрузки. // СтекВыгрузкиОбъекта - Массив из ЛюбаяСсылка - содержит сведения о вышестоящих объектах выгрузки.
// //
// Возвращаемое значение: // Возвращаемое значение:
// ЗаписьXML - xml-узел ссылки или значение приемника. // ЗаписьXML - xml-узел ссылки или значение приемника.
@@ -1594,7 +1594,7 @@
// //
// Параметры: // Параметры:
// Приемник - ЗаписьXML - xml-узел объекта приемника. // Приемник - ЗаписьXML - xml-узел объекта приемника.
// Тип - Строка, Массив - выгружаемый одиночный тип, или список выгружаемых строковых типов. // Тип - Строка, Массив из Строка - выгружаемый одиночный тип, или список выгружаемых строковых типов.
// СписокАтрибутов - Структура - ключ содержит имя атрибута. // СписокАтрибутов - Структура - ключ содержит имя атрибута.
// //
Процедура ВыгрузитьИнформациюОТипах(Приемник, Тип, СписокАтрибутов = Неопределено) Экспорт Процедура ВыгрузитьИнформациюОТипах(Приемник, Тип, СписокАтрибутов = Неопределено) Экспорт
@@ -3477,8 +3477,8 @@
// не является ошибкой проверки конфигурации. // не является ошибкой проверки конфигурации.
// //
// Параметры: // Параметры:
// Стр - преобразовываемая строка; // Стр - Строка- преобразовываемая строка;
// Длина - требуемая длина строки. // Длина - Число - требуемая длина строки.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Строка - код или номер, приведенная к требуемой длине. // Строка - код или номер, приведенная к требуемой длине.
@@ -3516,9 +3516,9 @@
// Дополняет строку указанным символом до указанной длины. // Дополняет строку указанным символом до указанной длины.
// //
// Параметры: // Параметры:
// Стр - дополняемая строка; // Стр - Строка - дополняемая строка;
// Длина - требуемая длина результирующей строки; // Длина - Число - требуемая длина результирующей строки;
// Чем - символ, которым дополняется строка. // Чем - Строка - символ, которым дополняется строка.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Строка - , дополненная указанным символом до указанной длины. // Строка - , дополненная указанным символом до указанной длины.
@@ -12977,6 +12977,13 @@
КонецПроцедуры КонецПроцедуры
// Параметры:
// * МетаданныеТекущегоОбъекта - ОбъектМетаданных - метаданные объекта.
// * ИмяИскомойТабличнойЧасти - Строка - имя табличной части.
//
// Возвращаемое значение:
// ОбъектМетаданныхТабличнаяЧасть, ОписаниеСтандартнойТабличнойЧасти - метаданные табличной части объекта.
//
Функция МетаТабличнаяЧастьРеквизитовРегистрацииОбъектов(МетаданныеТекущегоОбъекта, ИмяИскомойТабличнойЧасти) Функция МетаТабличнаяЧастьРеквизитовРегистрацииОбъектов(МетаданныеТекущегоОбъекта, ИмяИскомойТабличнойЧасти)
МетаТест = Новый Структура("ТабличныеЧасти, СтандартныеТабличныеЧасти, Движения"); МетаТест = Новый Структура("ТабличныеЧасти, СтандартныеТабличныеЧасти, Движения");
@@ -221,6 +221,238 @@
<scrollOnCompress>false</scrollOnCompress> <scrollOnCompress>false</scrollOnCompress>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormGroup">
<name>СтраницаНастройкиПодключения</name>
<id>236</id>
<items xsi:type="form:FormGroup">
<name>ГруппаОшибкаПроверкиПодключения</name>
<id>248</id>
<items xsi:type="form:Decoration">
<name>Декорация9</name>
<id>250</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Декорация9РасширеннаяПодсказка</name>
<id>252</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Декорация9КонтекстноеМеню</name>
<id>251</id>
<autoFill>true</autoFill>
</contextMenu>
<width>6</width>
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Предупреждение32</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаСообщениеПроверкаПодключения</name>
<id>253</id>
<items xsi:type="form:Decoration">
<name>Декорация22</name>
<id>255</id>
<title>
<key>ru</key>
<value>При проверке параметров подключения возникла ошибка.
Выгрузка данных не выполнена.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Декорация22РасширеннаяПодсказка</name>
<id>257</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Декорация22КонтекстноеМеню</name>
<id>256</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СообщениеОбОшибке3</name>
<id>258</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>СообщениеОбОшибке</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>СообщениеОбОшибке3РасширеннаяПодсказка</name>
<id>260</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СообщениеОбОшибке3КонтекстноеМеню</name>
<id>259</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>50</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:Button">
<name>НастройкиПодключения</name>
<id>261</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>НастройкиПодключенияРасширеннаяПодсказка</name>
<id>262</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.НастройкиПодключения</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Сообщение проверка подключения</value>
</title>
<extendedTooltip>
<name>ГруппаСообщениеПроверкаПодключенияРасширеннаяПодсказка</name>
<id>254</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Ошибка проверки подключения</value>
</title>
<extendedTooltip>
<name>ГруппаОшибкаПроверкиПодключенияРасширеннаяПодсказка</name>
<id>249</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Страница настройки подключения</value>
</title>
<extendedTooltip>
<name>СтраницаНастройкиПодключенияРасширеннаяПодсказка</name>
<id>237</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>Vertical</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>СтраницаЗапросПароля</name> <name>СтраницаЗапросПароля</name>
<id>99</id> <id>99</id>
@@ -1119,13 +1351,13 @@
</items> </items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>СтраницаЗавершениеОшибкаПроверкаПодключения</name> <name>СтраницаЗавершениеОшибкаПроверкаПодключения</name>
<id>161</id> <id>263</id>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаЗавершениеОшибкаПроверкаПодключения</name> <name>ГруппаЗавершениеОшибкаПроверкаПодключения</name>
<id>185</id> <id>265</id>
<items xsi:type="form:Decoration"> <items xsi:type="form:Decoration">
<name>Декорация8</name> <name>Декорация8</name>
<id>187</id> <id>267</id>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -1133,7 +1365,7 @@
</userVisible> </userVisible>
<extendedTooltip> <extendedTooltip>
<name>Декорация8РасширеннаяПодсказка</name> <name>Декорация8РасширеннаяПодсказка</name>
<id>189</id> <id>269</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -1143,7 +1375,7 @@
</extendedTooltip> </extendedTooltip>
<contextMenu> <contextMenu>
<name>Декорация8КонтекстноеМеню</name> <name>Декорация8КонтекстноеМеню</name>
<id>188</id> <id>268</id>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</contextMenu> </contextMenu>
<width>6</width> <width>6</width>
@@ -1157,11 +1389,11 @@
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаСообщениеПроверкаПодключения</name> <name>ГруппаСообщениеПроверкаПодключения1</name>
<id>193</id> <id>270</id>
<items xsi:type="form:Decoration"> <items xsi:type="form:Decoration">
<name>Декорация16</name> <name>Декорация16</name>
<id>190</id> <id>272</id>
<title> <title>
<key>ru</key> <key>ru</key>
<value>При проверке параметров подключения возникла ошибка. <value>При проверке параметров подключения возникла ошибка.
@@ -1174,7 +1406,7 @@
</userVisible> </userVisible>
<extendedTooltip> <extendedTooltip>
<name>Декорация16РасширеннаяПодсказка</name> <name>Декорация16РасширеннаяПодсказка</name>
<id>192</id> <id>274</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -1184,7 +1416,7 @@
</extendedTooltip> </extendedTooltip>
<contextMenu> <contextMenu>
<name>Декорация16КонтекстноеМеню</name> <name>Декорация16КонтекстноеМеню</name>
<id>191</id> <id>273</id>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</contextMenu> </contextMenu>
<type>Label</type> <type>Label</type>
@@ -1196,7 +1428,7 @@
</items> </items>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>СообщениеОбОшибке</name> <name>СообщениеОбОшибке</name>
<id>195</id> <id>275</id>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -1208,7 +1440,7 @@
<titleLocation>None</titleLocation> <titleLocation>None</titleLocation>
<extendedTooltip> <extendedTooltip>
<name>СообщениеОбОшибкеРасширеннаяПодсказка</name> <name>СообщениеОбОшибкеРасширеннаяПодсказка</name>
<id>197</id> <id>277</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -1218,7 +1450,7 @@
</extendedTooltip> </extendedTooltip>
<contextMenu> <contextMenu>
<name>СообщениеОбОшибкеКонтекстноеМеню</name> <name>СообщениеОбОшибкеКонтекстноеМеню</name>
<id>196</id> <id>276</id>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</contextMenu> </contextMenu>
<type>InputField</type> <type>InputField</type>
@@ -1248,8 +1480,8 @@
<value>Сообщение проверка подключения</value> <value>Сообщение проверка подключения</value>
</title> </title>
<extendedTooltip> <extendedTooltip>
<name>ГруппаСообщениеПроверкаПодключенияРасширеннаяПодсказка</name> <name>ГруппаСообщениеПроверкаПодключения1РасширеннаяПодсказка</name>
<id>194</id> <id>271</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -1278,7 +1510,7 @@
</title> </title>
<extendedTooltip> <extendedTooltip>
<name>ГруппаЗавершениеОшибкаПроверкаПодключенияРасширеннаяПодсказка</name> <name>ГруппаЗавершениеОшибкаПроверкаПодключенияРасширеннаяПодсказка</name>
<id>186</id> <id>266</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -1307,7 +1539,7 @@
</title> </title>
<extendedTooltip> <extendedTooltip>
<name>СтраницаЗавершениеОшибкаПроверкаПодключенияРасширеннаяПодсказка</name> <name>СтраницаЗавершениеОшибкаПроверкаПодключенияРасширеннаяПодсказка</name>
<id>162</id> <id>264</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -2773,6 +3005,23 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>ДоступнаНастройкаТранспорта</name>
<title>
<key>ru</key>
<value>Доступна настройка транспорта</value>
</title>
<id>6</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>КомандаГотово</name> <name>КомандаГотово</name>
<title> <title>
@@ -2861,6 +3110,28 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
<formCommands>
<name>НастройкиПодключения</name>
<title>
<key>ru</key>
<value>Настройки подключения</value>
</title>
<id>5</id>
<toolTip>
<key>ru</key>
<value>Настройки подключения</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>НастройкиПодключения</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -91,6 +91,25 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура НастройкиПодключения(Команда)
Отбор = Новый Структура("Корреспондент", УзелОбмена);
ЗначенияЗаполнения = Новый Структура("Корреспондент", УзелОбмена);
ОповещениеОЗакрытии = Новый ОписаниеОповещения("НастройкиПодключенияЗавершение", ЭтотОбъект);
ОбменДаннымиКлиент.ОткрытьФормуЗаписиРегистраСведенийПоОтбору(
Отбор,
ЗначенияЗаполнения,
"НастройкиТранспортаОбменаДанными",
ЭтотОбъект,
,
,
ОповещениеОЗакрытии);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -145,7 +164,12 @@
ПриЗавершенииПроверкиПодключенияНаСервере(); ПриЗавершенииПроверкиПодключенияНаСервере();
ИзменитьПорядковыйНомерПерехода(+1); Если ДоступнаНастройкаТранспорта
И Не ПроверкаПодключенияВыполнена Тогда
УстановитьПорядковыйНомерПерехода(2); // Настройка подключения
Иначе
ИзменитьПорядковыйНомерПерехода(+1);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -203,6 +227,13 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура НастройкиПодключенияЗавершение(Результат, ДополнительныеПараметры) Экспорт
ИнициализироватьПараметрыТранспорта();
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область РегистрацияИзменений #Область РегистрацияИзменений
@@ -508,6 +539,15 @@
Параметры.Свойство("ЭтоОбменСПриложениемВСервисе", ЭтоОбменСПриложениемВСервисе); Параметры.Свойство("ЭтоОбменСПриложениемВСервисе", ЭтоОбменСПриложениемВСервисе);
Параметры.Свойство("ОбластьДанныхКорреспондента", ОбластьДанныхКорреспондента); Параметры.Свойство("ОбластьДанныхКорреспондента", ОбластьДанныхКорреспондента);
ИнициализироватьПараметрыТранспорта();
УстановитьНаименованиеПриложенияВНадписяхФормы();
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьПараметрыТранспорта()
ВидТранспорта = РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию(УзелОбмена); ВидТранспорта = РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию(УзелОбмена);
Если Не ЗначениеЗаполнено(ВидТранспорта) Тогда Если Не ЗначениеЗаполнено(ВидТранспорта) Тогда
@@ -520,6 +560,13 @@
И Не ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.WS И Не ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.WS
И Не ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.WSПассивныйРежим; И Не ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.WSПассивныйРежим;
ЗапроситьПароль = Ложь;
ПроверкаПодключенияВыполнена = Ложь;
ВыгрузкаДанныхВыполнена = Ложь;
ДоступнаНастройкаТранспорта = Не (ЭтоОбменСПриложениемВСервисе
Или ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.WSПассивныйРежим);
Если ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.WS Тогда Если ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.WS Тогда
НастройкиТранспорта = РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспортаWS(УзелОбмена); НастройкиТранспорта = РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспортаWS(УзелОбмена);
@@ -536,8 +583,6 @@
ЗаполнитьТаблицуПереходов(); ЗаполнитьТаблицуПереходов();
УстановитьНаименованиеПриложенияВНадписяхФормы();
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -582,6 +627,11 @@
НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаНачало", "СтраницаНавигацияНачало"); НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаНачало", "СтраницаНавигацияНачало");
НовыйПереход.ИмяОбработчикаПриОткрытии = "СтраницаНачало_ПриОткрытии"; НовыйПереход.ИмяОбработчикаПриОткрытии = "СтраницаНачало_ПриОткрытии";
Если ДоступнаНастройкаТранспорта Тогда
НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаНастройкиПодключения", "СтраницаНавигацияПродолжение");
НовыйПереход.ИмяОбработчикаПриОткрытии = "СтраницаНастройкиПодключения_ПриОткрытии";
КонецЕсли;
Если ЗапроситьПароль Тогда Если ЗапроситьПароль Тогда
НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаЗапросПароля", "СтраницаНавигацияПродолжение"); НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаЗапросПароля", "СтраницаНавигацияПродолжение");
НовыйПереход.ИмяОбработчикаПриПереходеДалее = "СтраницаЗапросПароля_ПриПереходеДалее"; НовыйПереход.ИмяОбработчикаПриПереходеДалее = "СтраницаЗапросПароля_ПриПереходеДалее";
@@ -627,6 +677,15 @@
КонецФункции КонецФункции
&НаКлиенте
Функция Подключаемый_СтраницаНастройкиПодключения_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее)
ПропуститьСтраницу = ЭтоПереходДалее;
Возврат Неопределено;
КонецФункции
&НаКлиенте &НаКлиенте
Функция Подключаемый_СтраницаЗапросПароля_ПриПереходеДалее(Отказ) Функция Подключаемый_СтраницаЗапросПароля_ПриПереходеДалее(Отказ)
@@ -135,11 +135,13 @@
Исключение Исключение
ОтменитьТранзакцию(); ОтменитьТранзакцию();
Информация = ИнформацияОбОшибке();
ПараметрыОбработчикаСессии.Отказ = Истина; ПараметрыОбработчикаСессии.Отказ = Истина;
ПараметрыОбработчикаСессии.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ПараметрыОбработчикаСессии.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация);
ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(),
УровеньЖурналаРегистрации.Ошибка, , , ПараметрыОбработчикаСессии.СообщениеОбОшибке); УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация));
КонецПопытки; КонецПопытки;
Если Не ПараметрыОбработчикаСессии.Отказ Тогда Если Не ПараметрыОбработчикаСессии.Отказ Тогда
@@ -184,6 +186,11 @@
Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение(
СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс.СообщениеПолучитьНастройкиСинхронизацииДанных()); СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс.СообщениеПолучитьНастройкиСинхронизацииДанных());
ДополнительныеСвойства = Новый Структура("Режим, ФорматОбмена");
ЗаполнитьЗначенияСвойств(ДополнительныеСвойства, Настройки);
Сообщение.AdditionalInfo = СериализаторXDTO.ЗаписатьXDTO(ДополнительныеСвойства);
ПараметрыОбработчика.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); ПараметрыОбработчика.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение);
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
@@ -272,12 +279,14 @@
НастройкиСинхронизацииИзМенеджераСервиса = РегистрыСведений.СессииОбменаСообщениямиСистемы.ПолучитьДанныеСессии( НастройкиСинхронизацииИзМенеджераСервиса = РегистрыСведений.СессииОбменаСообщениямиСистемы.ПолучитьДанныеСессии(
ПараметрыОбработчика.ИдентификаторОперации).Получить(); ПараметрыОбработчика.ИдентификаторОперации).Получить();
Исключение Исключение
Информация = ИнформацияОбОшибке();
ПараметрыОбработчика.Отказ = Истина; ПараметрыОбработчика.Отказ = Истина;
ПараметрыОбработчика.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ПараметрыОбработчика.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация);
ПараметрыОбработчика.ИдентификаторОперации = Неопределено; ПараметрыОбработчика.ИдентификаторОперации = Неопределено;
ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииМониторСинхронизацииДанных(), ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииМониторСинхронизацииДанных(),
УровеньЖурналаРегистрации.Ошибка, , , ПараметрыОбработчика.СообщениеОбОшибке); УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация));
Возврат; Возврат;
КонецПопытки; КонецПопытки;
@@ -395,11 +404,13 @@
Попытка Попытка
СтатусЗавершения.Результат = ТаблицаПриложенийСинхронизацииДанных(ПараметрыОбработчика.ДополнительныеПараметры); СтатусЗавершения.Результат = ТаблицаПриложенийСинхронизацииДанных(ПараметрыОбработчика.ДополнительныеПараметры);
Исключение Исключение
Информация = ИнформацияОбОшибке();
СтатусЗавершения.Отказ = Истина; СтатусЗавершения.Отказ = Истина;
СтатусЗавершения.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); СтатусЗавершения.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация);
ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииМониторСинхронизацииДанных(), ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииМониторСинхронизацииДанных(),
УровеньЖурналаРегистрации.Ошибка, , , СтатусЗавершения.СообщениеОбОшибке); УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация));
КонецПопытки; КонецПопытки;
КонецЕсли; КонецЕсли;
@@ -1075,11 +1086,11 @@
ТаблицаПриложений.Колонки.Добавить("КонечнаяТочкаКорреспондента", Новый ОписаниеТипов("ПланОбменаСсылка.ОбменСообщениями")); ТаблицаПриложений.Колонки.Добавить("КонечнаяТочкаКорреспондента", Новый ОписаниеТипов("ПланОбменаСсылка.ОбменСообщениями"));
ТаблицаПриложений.Колонки.Добавить("НастройкаСинхронизацииВМенеджереСервиса", Новый ОписаниеТипов("Булево"));
ТаблицаПриложений.Колонки.Добавить("СинхронизацияОтключенаВМенеджереСервиса", Новый ОписаниеТипов("Булево"));
ТаблицаПриложений.Колонки.Добавить("Корреспондент"); ТаблицаПриложений.Колонки.Добавить("Корреспондент");
ТаблицаПриложений.Колонки.Добавить("НастройкаСинхронизацииНедоступна", Новый ОписаниеТипов("Булево"));
ТаблицаПриложений.Колонки.Добавить("СообщениеОбОшибке", Новый ОписаниеТипов("Строка"));
Если НастройкиСинхронизацииИзМенеджераСервиса.Количество() = 0 Тогда Если НастройкиСинхронизацииИзМенеджераСервиса.Количество() = 0 Тогда
Возврат ТаблицаПриложений; Возврат ТаблицаПриложений;
КонецЕсли; КонецЕсли;
@@ -1097,8 +1108,7 @@
|ВерсияКорреспондента, |ВерсияКорреспондента,
|РольКорреспондента, |РольКорреспондента,
|ФорматОбмена, |ФорматОбмена,
|ОбластьДанных, |ОбластьДанных");
|НастройкаСинхронизацииВМенеджереСервиса");
СтрокаПриложение.ИмяПланаОбмена = НастройкаИзМенеджераСервиса.ПланОбмена; СтрокаПриложение.ИмяПланаОбмена = НастройкаИзМенеджераСервиса.ПланОбмена;
@@ -1106,9 +1116,35 @@
НастройкаИзМенеджераСервиса.КонечнаяТочкаКорреспондента); НастройкаИзМенеджераСервиса.КонечнаяТочкаКорреспондента);
Если СтрокаПриложение.КонечнаяТочкаКорреспондента.Пустая() Тогда Если СтрокаПриложение.КонечнаяТочкаКорреспондента.Пустая() Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( СтрокаПриложение.НастройкаСинхронизацииНедоступна = Истина;
НСтр("ru = 'Не найдена конечная точка корреспондента с идентификатором ""%1"".'"), СтрокаПриложение.СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Для приложения ""%1"" не найдена конечная точка с идентификатором ""%2"".'"),
НастройкаИзМенеджераСервиса.НаименованиеПриложения,
НастройкаИзМенеджераСервиса.КонечнаяТочкаКорреспондента); НастройкаИзМенеджераСервиса.КонечнаяТочкаКорреспондента);
ИначеЕсли НастройкаИзМенеджераСервиса.НастройкаСинхронизацииВМенеджереСервиса Тогда
СтрокаПриложение.НастройкаСинхронизацииНедоступна = Истина;
СтрокаПриложение.СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Конечная точка ""%1"" временно недоступна.
|Повторите попытку позднее.'"),
СтрокаПриложение.КонечнаяТочкаКорреспондента);
Иначе
Попытка
НастройкиТранспорта = РегистрыСведений.НастройкиТранспортаОбменаОбластейДанных.НастройкиТранспорта(
СтрокаПриложение.КонечнаяТочкаКорреспондента);
Исключение
Информация = ИнформацияОбОшибке();
ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(),
УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация));
СтрокаПриложение.НастройкаСинхронизацииНедоступна = Истина;
СтрокаПриложение.СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось получить настройки подключения для приложения ""%1"" по причине:
|%2
|Повторите попытку позднее.'"),
НастройкаИзМенеджераСервиса.НаименованиеПриложения,
КраткоеПредставлениеОшибки(Информация));
КонецПопытки;
КонецЕсли; КонецЕсли;
Если Не ЗначениеЗаполнено(НастройкаИзМенеджераСервиса.КодПредопределенногоУзла) Если Не ЗначениеЗаполнено(НастройкаИзМенеджераСервиса.КодПредопределенногоУзла)
@@ -1153,11 +1189,6 @@
КонецЕсли; КонецЕсли;
Если ЗначениеЗаполнено(СтрокаПриложение.Корреспондент)
И Не НастройкаИзМенеджераСервиса.СинхронизацияНастроена Тогда
СтрокаПриложение.СинхронизацияОтключенаВМенеджереСервиса = Истина;
КонецЕсли;
Если Параметры.Режим = "НеНастроенныеОбмены" Если Параметры.Режим = "НеНастроенныеОбмены"
И ЗначениеЗаполнено(СтрокаПриложение.Корреспондент) Тогда И ЗначениеЗаполнено(СтрокаПриложение.Корреспондент) Тогда
ТаблицаПриложений.Удалить(СтрокаПриложение); ТаблицаПриложений.Удалить(СтрокаПриложение);
@@ -5632,7 +5632,11 @@
</edit> </edit>
</columns> </columns>
<columns> <columns>
<name>НастройкаСинхронизацииВМенеджереСервиса</name> <name>НастройкаСинхронизацииНедоступна</name>
<title>
<key>ru</key>
<value>Настройка синхронизации недоступна</value>
</title>
<id>10</id> <id>10</id>
<valueType> <valueType>
<types>Boolean</types> <types>Boolean</types>
@@ -5672,6 +5676,24 @@
<common>true</common> <common>true</common>
</edit> </edit>
</columns> </columns>
<columns>
<name>СообщениеОбОшибке</name>
<title>
<key>ru</key>
<value>Сообщение об ошибке</value>
</title>
<id>14</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes> </attributes>
<attributes> <attributes>
<name>ТаблицаПереходов</name> <name>ТаблицаПереходов</name>
@@ -11,6 +11,8 @@
&НаСервере &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
ПроверитьВозможностьИспользованияФормы(Отказ); ПроверитьВозможностьИспользованияФормы(Отказ);
Если Отказ Тогда Если Отказ Тогда
@@ -367,8 +369,13 @@
КонецЕсли; КонецЕсли;
ПараметрыПомощника = Новый Структура; ПараметрыПомощника = Новый Структура;
ПараметрыПомощника.Вставить("Режим", "НеНастроенныеОбмены"); ПараметрыПомощника.Вставить("Режим", "НеНастроенныеОбмены");
ПараметрыПомощника.Вставить("ИмяПланаОбмена", ИмяПланаОбмена); ПараметрыПомощника.Вставить("ИмяПланаОбмена", ИмяПланаОбмена);
Если ЗначениеЗаполнено(ФорматОбмена) Тогда
ПараметрыПомощника.Вставить("ФорматОбмена", ФорматОбмена);
Иначе
ПараметрыПомощника.Вставить("ФорматОбмена", ИмяПланаОбмена);
КонецЕсли;
ПараметрыПомощника.Вставить("ИдентификаторНастройки", ИдентификаторНастройки); ПараметрыПомощника.Вставить("ИдентификаторНастройки", ИдентификаторНастройки);
МодульПомощникНастройки.ПриНачалеПолученияСпискаПриложений(ПараметрыПомощника, МодульПомощникНастройки.ПриНачалеПолученияСпискаПриложений(ПараметрыПомощника,
@@ -834,7 +841,10 @@
ПолучаемыеФайлы.Добавить( ПолучаемыеФайлы.Добавить(
Новый ОписаниеПередаваемогоФайла(ИмяФайлаНастроекПодключенияДляВыгрузки, АдресВХранилищеНастройкиПодключения)); Новый ОписаниеПередаваемогоФайла(ИмяФайлаНастроекПодключенияДляВыгрузки, АдресВХранилищеНастройкиПодключения));
НачатьПолучениеФайлов(ОповещениеПолученияФайла, ПолучаемыеФайлы, , Ложь); ПараметрыСохранения = ФайловаяСистемаКлиент.ПараметрыСохраненияФайлов();
ПараметрыСохранения.Интерактивно = Ложь;
ФайловаяСистемаКлиент.СохранитьФайлы(ОповещениеПолученияФайла, ПолучаемыеФайлы, ПараметрыСохранения);
Иначе Иначе
@@ -1021,6 +1031,25 @@
#КонецОбласти #КонецОбласти
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
// Тусклый цвет шрифта недоступной для настройки синхронизации.
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПриложенияВСервисе.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПриложенияВСервисе.НастройкаСинхронизацииНедоступна");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
КонецПроцедуры
&НаСервере &НаСервере
Процедура ЗаполнитьСтруктуруПараметровПодключенияПомощника(СтруктураНастроекПомощника, БезКорреспондента = Ложь) Процедура ЗаполнитьСтруктуруПараметровПодключенияПомощника(СтруктураНастроекПомощника, БезКорреспондента = Ложь)
@@ -1430,16 +1459,16 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПриЗавершенииПомещенияФайлаНастроекПодключенияДляЗагрузки(РезультатВыбора, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт Процедура ПриЗавершенииПомещенияФайлаНастроекПодключенияДляЗагрузки(ПомещенныйФайл, ДополнительныеПараметры) Экспорт
Результат = Новый Структура; Результат = Новый Структура;
Результат.Вставить("Отказ", Ложь); Результат.Вставить("Отказ", Ложь);
Результат.Вставить("СообщениеОбОшибке", ""); Результат.Вставить("СообщениеОбОшибке", "");
Если Не РезультатВыбора Тогда Если ПомещенныйФайл = Неопределено Тогда
Результат.Отказ = Истина; Результат.Отказ = Истина;
Иначе Иначе
ЗаполнитьНастройкиПодключенияИзXMLНаСервере(Адрес, Результат.Отказ, Результат.СообщениеОбОшибке); ЗаполнитьНастройкиПодключенияИзXMLНаСервере(ПомещенныйФайл.Хранение, Результат.Отказ, Результат.СообщениеОбОшибке);
КонецЕсли; КонецЕсли;
Если Результат.Отказ Тогда Если Результат.Отказ Тогда
@@ -2015,9 +2044,8 @@
НСтр("ru = 'Выберите приложение из списка для продолжения настройки подключения.'"), НСтр("ru = 'Выберите приложение из списка для продолжения настройки подключения.'"),
, "ПриложенияВСервисе", , Отказ); , "ПриложенияВСервисе", , Отказ);
Возврат Неопределено; Возврат Неопределено;
ИначеЕсли ТекущиеДанные.НастройкаСинхронизацииВМенеджереСервиса Тогда ИначеЕсли ТекущиеДанные.НастройкаСинхронизацииНедоступна Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Для настройки синхронизации данных с выбранным приложением перейдите в менеджер сервиса. ПоказатьПредупреждение(, ТекущиеДанные.СообщениеОбОшибке);
|В менеджере сервиса воспользуйтесь командой ""Синхронизация данных"".'"));
Отказ = Истина; Отказ = Истина;
Возврат Неопределено; Возврат Неопределено;
Иначе Иначе
@@ -2165,7 +2193,12 @@
ДополнительныеПараметры.Вставить("Оповещение", ОповещениеПродолжениеНастройки); ДополнительныеПараметры.Вставить("Оповещение", ОповещениеПродолжениеНастройки);
ОповещениеОЗавершении = Новый ОписаниеОповещения("ПриЗавершенииПомещенияФайлаНастроекПодключенияДляЗагрузки", ЭтотОбъект, ДополнительныеПараметры); ОповещениеОЗавершении = Новый ОписаниеОповещения("ПриЗавершенииПомещенияФайлаНастроекПодключенияДляЗагрузки", ЭтотОбъект, ДополнительныеПараметры);
НачатьПомещениеФайла(ОповещениеОЗавершении, , ИмяФайлаНастроекПодключенияДляЗагрузки, Ложь, УникальныйИдентификатор);
ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;
ПараметрыЗагрузки.Интерактивно = Ложь;
ФайловаяСистемаКлиент.ЗагрузитьФайл(ОповещениеОЗавершении, ПараметрыЗагрузки, ИмяФайлаНастроекПодключенияДляЗагрузки);
Иначе Иначе
Результат = Новый Структура; Результат = Новый Структура;
Результат.Вставить("Отказ", Ложь); Результат.Вставить("Отказ", Ложь);
@@ -2328,7 +2361,12 @@
ДополнительныеПараметры.Вставить("Оповещение", ОповещениеПродолжениеНастройки); ДополнительныеПараметры.Вставить("Оповещение", ОповещениеПродолжениеНастройки);
ОповещениеОЗавершении = Новый ОписаниеОповещения("ПриЗавершенииПомещенияФайлаНастроекXDTOКорреспондента", ЭтотОбъект, ДополнительныеПараметры); ОповещениеОЗавершении = Новый ОписаниеОповещения("ПриЗавершенииПомещенияФайлаНастроекXDTOКорреспондента", ЭтотОбъект, ДополнительныеПараметры);
НачатьПомещениеФайла(ОповещениеОЗавершении, , ИмяФайлаНастроекXDTOКорреспондента, Ложь, УникальныйИдентификатор);
ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;
ПараметрыЗагрузки.Интерактивно = Ложь;
ФайловаяСистемаКлиент.ЗагрузитьФайл(ОповещениеОЗавершении, ПараметрыЗагрузки, ИмяФайлаНастроекXDTOКорреспондента);
Иначе Иначе
Результат = Новый Структура; Результат = Новый Структура;
@@ -837,11 +837,12 @@
Попытка Попытка
РезультатПроверки.ВерсииИнтерфейса = ОбменДаннымиПовтИсп.ВерсииКорреспондента(Корреспондент); РезультатПроверки.ВерсииИнтерфейса = ОбменДаннымиПовтИсп.ВерсииКорреспондента(Корреспондент);
Исключение Исключение
РезультатПроверки.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); Информация = ИнформацияОбОшибке();
РезультатПроверки.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация);
РезультатПроверки.ПодключениеУстановлено = Ложь; РезультатПроверки.ПодключениеУстановлено = Ложь;
ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(),
УровеньЖурналаРегистрации.Ошибка, , , РезультатПроверки.СообщениеОбОшибке); УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация));
ПоместитьВоВременноеХранилище(РезультатПроверки, АдресРезультата); ПоместитьВоВременноеХранилище(РезультатПроверки, АдресРезультата);
Возврат; Возврат;
@@ -2210,14 +2211,14 @@
ЧтениеXML.Прочитать(); // Message ЧтениеXML.Прочитать(); // Message
ЧтениеXML.Прочитать(); // Header ЧтениеXML.Прочитать(); // Header
Header = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ЗаголовокСообщенияXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,
ФабрикаXDTO.Тип("http://www.1c.ru/SSL/Exchange/Message", ЧтениеXML.ЛокальноеИмя)); ФабрикаXDTO.Тип("http://www.1c.ru/SSL/Exchange/Message", ЧтениеXML.ЛокальноеИмя));
СтруктураНастроек = Новый Структура; СтруктураНастроек = Новый Структура;
ОбменДаннымиXDTOСервер.ЗаполнитьСтруктуруНастроекXDTOКорреспондента(СтруктураНастроек, Header, , УзелОбмена); ОбменДаннымиXDTOСервер.ЗаполнитьСтруктуруНастроекXDTOКорреспондента(СтруктураНастроек, ЗаголовокСообщенияXDTO, , УзелОбмена);
// Проверка UID отправителя на соответствие формату. // Проверка UID отправителя на соответствие формату.
УИД = Header.Confirmation.From; УИД = ЗаголовокСообщенияXDTO.Confirmation.From;
Попытка Попытка
УИД = Новый УникальныйИдентификатор(УИД); УИД = Новый УникальныйИдентификатор(УИД);
Исключение Исключение
@@ -2226,7 +2227,7 @@
УИД); УИД);
КонецПопытки; КонецПопытки;
СтруктураНастроек.Вставить("ИдентификаторОтправителя", Header.Confirmation.From); СтруктураНастроек.Вставить("ИдентификаторОтправителя", ЗаголовокСообщенияXDTO.Confirmation.From);
ЧтениеXML.Закрыть(); ЧтениеXML.Закрыть();
@@ -15,6 +15,10 @@
// //
Процедура ОбновитьСоставСубъектовРФПоКлассификатору(НачальноеЗаполнениеИОбновлениеДанных = Ложь) Экспорт Процедура ОбновитьСоставСубъектовРФПоКлассификатору(НачальноеЗаполнениеИОбновлениеДанных = Ложь) Экспорт
Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат;
КонецЕсли;
Классификатор = КлассификаторСубъектовРФ(); Классификатор = КлассификаторСубъектовРФ();
// Выбираем те, которые есть в макете, но отсутствующие в регистре. // Выбираем те, которые есть в макете, но отсутствующие в регистре.
@@ -1135,6 +1135,93 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.СценарииОбменовДанными</name> <name>Catalog.СценарииОбменовДанными</name>
<right> <right>
@@ -1308,93 +1395,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonForm.ПараметрыПроксиСервера</name> <name>CommonForm.ПараметрыПроксиСервера</name>
<right> <right>
@@ -14,13 +14,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -52,6 +45,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name> <name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name>
<right> <right>
@@ -1665,6 +1665,45 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>Catalog.ПредопределенныеВариантыОтчетовРасширений</name> <name>Catalog.ПредопределенныеВариантыОтчетовРасширений</name>
<right> <right>
@@ -1891,45 +1930,6 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>CommonForm.ПараметрыПроксиСервера</name> <name>CommonForm.ПараметрыПроксиСервера</name>
<right> <right>