3_1_5_146

This commit is contained in:
Компания 1С committed 2021-08-06 11:21:00 +03:00
1 parent fddd4cf787
commit 0f840632ce
97 files changed
+4003 -2413

No files matched your search

@@ -91,7 +91,7 @@
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Имя ""%1"", используемое отчетом (обработкой) ""%2"", уже занято другим опубликованным дополнительным отчетом (обработкой).'"), НСтр("ru = 'Имя ""%1"", используемое отчетом (обработкой) ""%2"", уже занято другим опубликованным дополнительным отчетом (обработкой).'"),
ИмяОбъекта, ИмяОбъекта,
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Наименование")); Строка(Ссылка));
КонецЕсли; КонецЕсли;
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "Объект.Публикация"); ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "Объект.Публикация");
КонецЕсли; КонецЕсли;
@@ -947,7 +947,21 @@
КонецФункции КонецФункции
// Только для внутреннего использования. // Параметры:
// ОбъектыРасширений - Булево
//
// Возвращаемое значение:
// ТаблицаЗначений:
// * Имя - Строка
// * ИмяВЕдЧисле - Строка
// * Синоним - Строка
// * СинонимВЕдЧисле - Строка
// * ПорядокКоллекции - Строка
// * БезДанных - Булево
// * БезКлючаОбъектаМетаданных - Булево
// * Идентификатор - УникальныйИдентификатор
// * ОбъектыРасширений - Булево
//
Функция СвойстваКоллекцийОбъектовМетаданных(ОбъектыРасширений = Ложь) Экспорт Функция СвойстваКоллекцийОбъектовМетаданных(ОбъектыРасширений = Ложь) Экспорт
СвойстваКоллекцийОбъектовМетаданных = Новый ТаблицаЗначений; СвойстваКоллекцийОбъектовМетаданных = Новый ТаблицаЗначений;
@@ -2096,6 +2110,29 @@
КонецФункции КонецФункции
// Параметры:
// ОбъектыРасширений - Булево
// СвойстваКоллекций - см. СвойстваКоллекцийОбъектовМетаданных
//
// Возвращаемое значение:
// ТаблицаЗначений:
// * Наименование - Строка
// * ПолноеИмя - Строка
// * ПолноеИмяРодителя - Строка
// * ПорядокКоллекции - Число
// * Родитель - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// - СправочникСсылка.ИдентификаторыОбъектовРасширений
// * Имя - Строка
// * ИмяПредопределенныхДанных - Строка
// * Синоним - Строка
// * ПолныйСиноним - Строка
// * БезДанных - Булево
// * БезКлючаОбъектаМетаданных - Булево
// * ИмяРасширения - Строка
// * ХешСуммаРасширения - Строка
// * ЗначениеПустойСсылки - ЛюбаяСсылка
// * ОбъектМетаданных - ОбъектМетаданных
//
Функция СвойстваОбъектовМетаданных(ОбъектыРасширений, СвойстваКоллекций = Неопределено) Функция СвойстваОбъектовМетаданных(ОбъектыРасширений, СвойстваКоллекций = Неопределено)
МассивТиповРодителя = Новый Массив; МассивТиповРодителя = Новый Массив;
@@ -2132,7 +2169,7 @@
КонецЦикла; КонецЦикла;
Если Не ОбъектыРасширений Или ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения) Тогда Если Не ОбъектыРасширений Или ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения) Тогда
Для каждого СвойстваКоллекции Из СвойстваКоллекций Цикл Для Каждого СвойстваКоллекции Из СвойстваКоллекций Цикл
ДобавитьСвойстваОбъектовМетаданных(Метаданные[СвойстваКоллекции.Имя], СвойстваКоллекции, ДобавитьСвойстваОбъектовМетаданных(Метаданные[СвойстваКоллекции.Имя], СвойстваКоллекции,
СвойстваОбъектовМетаданных, ОбъектыРасширений, ИменаПредопределенных); СвойстваОбъектовМетаданных, ОбъектыРасширений, ИменаПредопределенных);
КонецЦикла; КонецЦикла;
@@ -3407,6 +3444,15 @@
КонецФункции КонецФункции
// Для вызова из СтандартныеПодсистемыПовтИсп.КэшИдентификаторовОбъектовМетаданных. // Для вызова из СтандартныеПодсистемыПовтИсп.КэшИдентификаторовОбъектовМетаданных.
//
// Параметры:
// КлючДанныхПовторногоИспользования - УникальныйИдентификатор
//
// Возвращаемое значение:
// Структура:
// * ИдентификаторыПоПолнымИменам - Соответствие
// * ОписаниеОбъектовМетаданныхПоИдентификаторам - Соответствие
//
Функция КэшИдентификаторовОбъектовМетаданных(КлючДанныхПовторногоИспользования) Экспорт Функция КэшИдентификаторовОбъектовМетаданных(КлючДанныхПовторногоИспользования) Экспорт
Хранилище = Новый Структура; Хранилище = Новый Структура;
@@ -3417,7 +3463,16 @@
КонецФункции КонецФункции
// Для процедуры ОбработкаПолученияПредставления. // Для вызова из СтандартныеПодсистемыПовтИсп.ПредставлениеИдентификатораОбъектаМетаданных.
// Используется из процедуры ОбработкаПолученияПредставления.
//
// Параметры:
// Ссылка - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// - СправочникСсылка.ИдентификаторыОбъектовРасширений
//
// Возвращаемое значение:
// Строка
//
Функция ПредставлениеИдентификатора(Ссылка) Экспорт Функция ПредставлениеИдентификатора(Ссылка) Экспорт
ОбъектыРасширений = ТипЗнч(Ссылка) <> Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных"); ОбъектыРасширений = ТипЗнч(Ссылка) <> Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных");
@@ -863,7 +863,7 @@
Процедура ОбновитьКонтактнуюИнформациюПользователя(ЭлементСписок) Процедура ОбновитьКонтактнуюИнформациюПользователя(ЭлементСписок)
ТекущиеДанные = ЭлементСписок.ТекущиеДанные; ТекущиеДанные = ЭлементСписок.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда Если НЕ СтандартныеПодсистемыКлиент.ЭтоЭлементДинамическогоСписка(ЭлементСписок) Тогда
ЗаполнитьКонтактнуюИнформацию(ЭтотОбъект, Неопределено); ЗаполнитьКонтактнуюИнформацию(ЭтотОбъект, Неопределено);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -544,7 +544,8 @@
&НаСервереБезКонтекста &НаСервереБезКонтекста
Функция ЗаполнитьСписокПрограмм(Знач ВыбраннаяПрограмма) Функция ЗаполнитьСписокПрограмм(Знач ВыбраннаяПрограмма)
ДобавитьКартинку = ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() ИЛИ ЭлектроннаяПодписьСлужебный.ИспользоватьЭлектроннуюПодписьВМоделиСервиса(); ИспользоватьЭлектроннуюПодписьВМоделиСервиса = ЭлектроннаяПодписьСлужебный.ИспользоватьЭлектроннуюПодписьВМоделиСервиса();
ДобавитьКартинку = ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() ИЛИ ИспользоватьЭлектроннуюПодписьВМоделиСервиса;
КартинкаКомпьютера = Новый Картинка; КартинкаКомпьютера = Новый Картинка;
КартинкаСервиса = Новый Картинка; КартинкаСервиса = Новый Картинка;
КартинкаОблака = Новый Картинка; КартинкаОблака = Новый Картинка;
@@ -570,6 +571,9 @@
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
Если НЕ ИспользоватьЭлектроннуюПодписьВМоделиСервиса И Выборка.ЭтоПрограммаОблачногоСервиса Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = Результат.Добавить(Выборка.Ссылка); НоваяСтрока = Результат.Добавить(Выборка.Ссылка);
Если Выборка.ЭтоПрограммаОблачногоСервиса И ДобавитьКартинку Тогда Если Выборка.ЭтоПрограммаОблачногоСервиса И ДобавитьКартинку Тогда
НоваяСтрока.Картинка = КартинкаСервиса; НоваяСтрока.Картинка = КартинкаСервиса;
@@ -45,7 +45,7 @@
Наименование = НСтр("ru = 'Автоматическая синхронизация данных с %1'"); Наименование = НСтр("ru = 'Автоматическая синхронизация данных с %1'");
Наименование = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Наименование, Наименование = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Наименование,
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелИнформационнойБазы, "Наименование")); Строка(УзелИнформационнойБазы));
ВидТранспортаОбмена = РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию(УзелИнформационнойБазы); ВидТранспортаОбмена = РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию(УзелИнформационнойБазы);
@@ -75,7 +75,7 @@
Если Справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоРеквизиту("АдресЭлектроннойПочты", Адрес).Пустая() Тогда Если Справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоРеквизиту("АдресЭлектроннойПочты", Адрес).Пустая() Тогда
АдресЭлектроннойПочты = Адрес; АдресЭлектроннойПочты = Адрес;
ТекущийЭлемент = Элементы.Пароль; ТекущийЭлемент = Элементы.Пароль;
ИмяОтправителяПисем = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователи.ТекущийПользователь(), "Наименование"); ИмяОтправителяПисем = Строка(Пользователи.ТекущийПользователь());
Прервать; Прервать;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -589,6 +589,10 @@
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>СертификатыПользователь</name> <name>СертификатыПользователь</name>
<id>260</id> <id>260</id>
<title>
<key>ru</key>
<value>Пользователь</value>
</title>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -2595,7 +2599,15 @@
СертификатыПереопределяемый.Отозван КАК Отозван, СертификатыПереопределяемый.Отозван КАК Отозван,
СертификатыПереопределяемый.УсиленнаяЗащитаЗакрытогоКлюча КАК УсиленнаяЗащитаЗакрытогоКлюча, СертификатыПереопределяемый.УсиленнаяЗащитаЗакрытогоКлюча КАК УсиленнаяЗащитаЗакрытогоКлюча,
СертификатыПереопределяемый.Организация КАК Организация, СертификатыПереопределяемый.Организация КАК Организация,
СертификатыПереопределяемый.Пользователь КАК Пользователь, ВЫБОР
КОГДА ЕСТЬNULL(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.ВсегоПользователей, 0) = 0
ТОГДА СертификатыПереопределяемый.Пользователь
КОГДА ЕСТЬNULL(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.ВсегоПользователей, 0) = 1
ТОГДА СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Пользователь
КОГДА ЕСТЬNULL(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.ВсегоПользователей, 0) > 1
ТОГДА &amp;НесколькоПользователей
ИНАЧЕ &quot; &quot;
КОНЕЦ КАК Пользователь,
СертификатыПереопределяемый.ПользовательОповещенОСрокеДействия КАК ПользовательОповещенОСрокеДействия, СертификатыПереопределяемый.ПользовательОповещенОСрокеДействия КАК ПользовательОповещенОСрокеДействия,
СертификатыПереопределяемый.Добавил КАК Добавил, СертификатыПереопределяемый.Добавил КАК Добавил,
&amp;ДополнительноеПоле КАК СостояниеЗаявления, &amp;ДополнительноеПоле КАК СостояниеЗаявления,
@@ -2618,6 +2630,16 @@
Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК СертификатыПереопределяемый Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК СертификатыПереопределяемый
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК ПрограммыПереопределяемый ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК ПрограммыПереопределяемый
ПО СертификатыПереопределяемый.Программа = ПрограммыПереопределяемый.Ссылка ПО СертификатыПереопределяемый.Программа = ПрограммыПереопределяемый.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Ссылка КАК Ссылка,
МАКСИМУМ(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Пользователь) КАК Пользователь,
КОЛИЧЕСТВО(*) КАК ВсегоПользователей
ИЗ
Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый
СГРУППИРОВАТЬ ПО
СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Ссылка) КАК СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый
ПО (СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Ссылка = СертификатыПереопределяемый.Ссылка)
ГДЕ ГДЕ
(&amp;ПользовательСертификата = НЕОПРЕДЕЛЕНО (&amp;ПользовательСертификата = НЕОПРЕДЕЛЕНО
ИЛИ СертификатыПереопределяемый.Пользователь = &amp;ПользовательСертификата ИЛИ СертификатыПереопределяемый.Пользователь = &amp;ПользовательСертификата
@@ -2628,9 +2650,7 @@
Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК
СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый
ГДЕ ГДЕ
(СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Пользователь = &amp;ПользовательСертификата СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Пользователь = &amp;ПользовательСертификата))</queryText>
ИЛИ
СертификатыКлючейЭлектроннойПодписиИШифрованияПользователиПереопределяемый.Ссылка.Пользователь = &amp;ПользовательСертификата)))</queryText>
<mainTable>Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования</mainTable> <mainTable>Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования</mainTable>
<dynamicDataRead>true</dynamicDataRead> <dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields> <autoFillAvailableFields>true</autoFillAvailableFields>
@@ -532,8 +532,10 @@
// Отбор сертификатов Все/Мои. // Отбор сертификатов Все/Мои.
ПоказатьСвои = Форма.СертификатыПоказать <> "ВсеСертификаты"; ПоказатьСвои = Форма.СертификатыПоказать <> "ВсеСертификаты";
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Форма.Сертификаты, "ПользовательСертификата",
Форма.Сертификаты, "Пользователь", ТекущийПользователь,,, ПоказатьСвои); ?(ПоказатьСвои, ТекущийПользователь, Неопределено));
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Форма.Сертификаты, "НесколькоПользователей",
НСтр("ru = '<Несколько>'"));
Форма.Сертификаты.Параметры.УстановитьЗначениеПараметра("ПользовательСертификата", Форма.Сертификаты.Параметры.УстановитьЗначениеПараметра("ПользовательСертификата",
?(ПоказатьСвои, ТекущийПользователь, Неопределено)); ?(ПоказатьСвои, ТекущийПользователь, Неопределено));
@@ -86,7 +86,9 @@
ГлобальныеНастройки = ВариантыОтчетов.ГлобальныеНастройки(); ГлобальныеНастройки = ВариантыОтчетов.ГлобальныеНастройки();
Элементы.ОформлениеНастроитьКолонтитулы.Видимость = Элементы.ОформлениеНастроитьКолонтитулы.Видимость =
ГлобальныеНастройки.ВыводитьИндивидуальныеНастройкиКолонтитулов И Не РежимИзмененияЭлементаСтруктурыНастроек; ГлобальныеНастройки.ВыводитьИндивидуальныеНастройкиКолонтитулов
И Не РежимИзмененияЭлементаСтруктурыНастроек
И (Не ОбщегоНазначения.РазделениеВключено() Или ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных());
Если РежимИзмененияЭлементаСтруктурыНастроек Тогда Если РежимИзмененияЭлементаСтруктурыНастроек Тогда
ИмяСтраницы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ИмяСтраницы", "СтраницаСоставГруппировки"); ИмяСтраницы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ИмяСтраницы", "СтраницаСоставГруппировки");
@@ -3871,16 +3873,21 @@
&НаКлиенте &НаКлиенте
Процедура СдвинутьОформление(ВНачало = Истина) Процедура СдвинутьОформление(ВНачало = Истина)
ИдентификаторыСтрок = Элементы.Оформление.ВыделенныеСтроки; ИдентификаторыСтрок = Элементы.Оформление.ВыделенныеСтроки;
Строки = Оформление.ПолучитьЭлементы();
Раздел = КорневаяСтрокаПоУмолчанию("Оформление"); ГраницаНачалаЭлементовОформления = 2;
Если Раздел <> Неопределено Тогда ГраницаИдентификаторовСтрок = ИдентификаторыСтрок.ВГраница();
ИдентификаторРаздела = Раздел.ПолучитьИдентификатор();
ИндексРаздела = ИдентификаторыСтрок.Найти(ИдентификаторРаздела); Пока ГраницаИдентификаторовСтрок >= 0 Цикл
Если ИндексРаздела <> Неопределено Тогда Строка = Оформление.НайтиПоИдентификатору(ИдентификаторыСтрок[ГраницаИдентификаторовСтрок]);
ИдентификаторыСтрок.Удалить(ИндексРаздела);
КонецЕсли; Если Строки.Индекс(Строка) < ГраницаНачалаЭлементовОформления Тогда
ИдентификаторыСтрок.Удалить(ГраницаИдентификаторовСтрок);
КонецЕсли; КонецЕсли;
ГраницаИдентификаторовСтрок = ГраницаИдентификаторовСтрок - 1;
КонецЦикла;
Если ИдентификаторыСтрок.Количество() = 0 Тогда Если ИдентификаторыСтрок.Количество() = 0 Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -3892,8 +3899,11 @@
Строка = Оформление.НайтиПоИдентификатору(ИдентификаторСтроки); Строка = Оформление.НайтиПоИдентификатору(ИдентификаторСтроки);
ЭлементНастройки = ЭлементНастройки(СвойствоЭлементаСтруктуры, Строка); ЭлементНастройки = ЭлементНастройки(СвойствоЭлементаСтруктуры, Строка);
Если ТипЗнч(ЭлементНастройки) <> Тип("ЭлементУсловногоОформленияКомпоновкиДанных") Тогда
Продолжить;
КонецЕсли;
ЭлементыНастроек = СвойствоЭлементаСтруктуры.Элементы; ЭлементыНастроек = СвойствоЭлементаСтруктуры.Элементы;
Строки = Строка.ПолучитьРодителя().ПолучитьЭлементы();
Индекс = ЭлементыНастроек.Индекс(ЭлементНастройки); Индекс = ЭлементыНастроек.Индекс(ЭлементНастройки);
Граница = ЭлементыНастроек.Количество() - 1; Граница = ЭлементыНастроек.Количество() - 1;
@@ -3901,18 +3911,18 @@
Если ВНачало Тогда // Сдвиг в начало коллекции. Если ВНачало Тогда // Сдвиг в начало коллекции.
Если Индекс = 0 Тогда Если Индекс = 0 Тогда
ЭлементыНастроек.Сдвинуть(ЭлементНастройки, Граница); ЭлементыНастроек.Сдвинуть(ЭлементНастройки, Граница);
Строки.Сдвинуть(Индекс, Граница); Строки.Сдвинуть(Индекс + ГраницаНачалаЭлементовОформления, Граница);
Иначе Иначе
ЭлементыНастроек.Сдвинуть(ЭлементНастройки, -1); ЭлементыНастроек.Сдвинуть(ЭлементНастройки, -1);
Строки.Сдвинуть(Индекс, -1); Строки.Сдвинуть(Индекс + ГраницаНачалаЭлементовОформления, -1);
КонецЕсли; КонецЕсли;
Иначе // Сдвиг в конец коллекции. Иначе // Сдвиг в конец коллекции.
Если Индекс = Граница Тогда Если Индекс = Граница Тогда
ЭлементыНастроек.Сдвинуть(ЭлементНастройки, -Граница); ЭлементыНастроек.Сдвинуть(ЭлементНастройки, -Граница);
Строки.Сдвинуть(Индекс, -Граница); Строки.Сдвинуть(Индекс + ГраницаНачалаЭлементовОформления, -Граница);
Иначе Иначе
ЭлементыНастроек.Сдвинуть(ЭлементНастройки, 1); ЭлементыНастроек.Сдвинуть(ЭлементНастройки, 1);
Строки.Сдвинуть(Индекс, 1); Строки.Сдвинуть(Индекс + ГраницаНачалаЭлементовОформления, 1);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -3402,6 +3402,32 @@
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>КонтекстноеМенюОбластиЗаголовкаМенюОформить</name> <name>КонтекстноеМенюОбластиЗаголовкаМенюОформить</name>
<id>866</id> <id>866</id>
<items xsi:type="form:Button">
<name>КонтекстноеМенюОбластиЗаголовкаОчиститьОформление</name>
<id>1091</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>КонтекстноеМенюОбластиЗаголовкаОчиститьОформлениеРасширеннаяПодсказка</name>
<id>1092</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ОчиститьОформление</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>КонтекстноеМенюОбластиЗаголовкаОформитьОтрицательныеПоложительные</name> <name>КонтекстноеМенюОбластиЗаголовкаОформитьОтрицательныеПоложительные</name>
<id>868</id> <id>868</id>
@@ -4550,6 +4576,32 @@
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>КонтекстноеМенюОбластиДанныхМенюОформить</name> <name>КонтекстноеМенюОбластиДанныхМенюОформить</name>
<id>954</id> <id>954</id>
<items xsi:type="form:Button">
<name>КонтекстноеМенюОбластиДанныхОчиститьОформление</name>
<id>1093</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>КонтекстноеМенюОбластиДанныхОчиститьОформлениеРасширеннаяПодсказка</name>
<id>1094</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ОчиститьОформление</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>КонтекстноеМенюОбластиДанныхОформитьКраснымЖелтымЗеленым</name> <name>КонтекстноеМенюОбластиДанныхОформитьКраснымЖелтымЗеленым</name>
<id>956</id> <id>956</id>
@@ -4882,6 +4934,82 @@
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<items xsi:type="form:FormGroup">
<name>КонтекстноеМенюОбластиДанныхБуферОбмена</name>
<id>1095</id>
<items xsi:type="form:Button">
<name>КонтекстноеМенюОбластиДанныхКопироватьВБуферОбмена</name>
<id>1097</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>КонтекстноеМенюОбластиДанныхКопироватьВБуферОбменаРасширеннаяПодсказка</name>
<id>1098</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Item.ОтчетТабличныйДокумент.StandardCommand.CopyToClipboard</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>КонтекстноеМенюОбластиДанныхВставитьИзБуфераОбмена</name>
<id>1099</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>КонтекстноеМенюОбластиДанныхВставитьИзБуфераОбменаРасширеннаяПодсказка</name>
<id>1100</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Item.ОтчетТабличныйДокумент.StandardCommand.PasteFromClipboard</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>1096</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
@@ -8514,6 +8642,24 @@
<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>55</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ОчиститьОформление</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters> <parameters>
<name>Ссылка</name> <name>Ссылка</name>
<valueType> <valueType>
@@ -392,6 +392,10 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если ПутьКДаннымЭлементов = Неопределено Тогда
Возврат;
КонецЕсли;
ЭлементыНастроек = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; ЭлементыНастроек = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
Для Каждого ЭлементНастройки Из ЭлементыНастроек Цикл Для Каждого ЭлементНастройки Из ЭлементыНастроек Цикл
Если ТипЗнч(ЭлементНастройки) <> Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Если ТипЗнч(ЭлементНастройки) <> Тип("ЗначениеПараметраНастроекКомпоновкиДанных")
@@ -948,9 +952,7 @@
&НаКлиенте &НаКлиенте
Процедура СнятьФильтр(Команда) Процедура СнятьФильтр(Команда)
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета ВариантыОтчетовСлужебныйКлиент.СнятьФильтр(ЭтотОбъект, СвойстваЗаголовка());
СвойстваЗаголовка = СвойстваРезультата.Заголовки[ИмяТекущейОбластиЯчеек()];
ВариантыОтчетовСлужебныйКлиент.СнятьФильтр(ЭтотОбъект, СвойстваЗаголовка);
КонецПроцедуры КонецПроцедуры
@@ -977,6 +979,13 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ОчиститьОформление(Команда)
ВариантыОтчетовСлужебныйКлиент.ОчиститьОформление(ЭтотОбъект, СвойстваЗаголовка());
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ОформитьОтрицательные(Команда) Процедура ОформитьОтрицательные(Команда)
@@ -3179,6 +3188,8 @@
Элементы.ВсеНастройки.Видимость = ПоказыватьКомандыИзмененияВарианта Или КоличествоДоступныхНастроек.Обычных > 0; Элементы.ВсеНастройки.Видимость = ПоказыватьКомандыИзмененияВарианта Или КоличествоДоступныхНастроек.Обычных > 0;
Элементы.ВсеНастройкиЕще.Видимость = Элементы.ВсеНастройки.Видимость; Элементы.ВсеНастройкиЕще.Видимость = Элементы.ВсеНастройки.Видимость;
Элементы.ГруппаВариантыОтчета.Видимость = ПоказыватьКомандыВыбораВариантов; Элементы.ГруппаВариантыОтчета.Видимость = ПоказыватьКомандыВыбораВариантов;
Элементы.ГруппаСохранениеВыборВариантаОтчета.Видимость = Не ОбщегоНазначения.РазделениеВключено()
Или ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
ЭтоПредопределенныйВариант = Не НастройкиОтчета.Пользовательский ЭтоПредопределенныйВариант = Не НастройкиОтчета.Пользовательский
И ЗначениеЗаполнено(НастройкиОтчета.ПредопределенныйСсылка); И ЗначениеЗаполнено(НастройкиОтчета.ПредопределенныйСсылка);
@@ -3766,6 +3777,11 @@
&НаСервере &НаСервере
Процедура ОбновитьКомандыВыбораВариантов() Процедура ОбновитьКомандыВыбораВариантов()
Если ОбщегоНазначения.РазделениеВключено()
И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат;
КонецЕсли;
ВариантыФормы = РеквизитФормыВЗначение("ДобавленныеВарианты"); ВариантыФормы = РеквизитФормыВЗначение("ДобавленныеВарианты");
ВариантыФормы.Колонки.Добавить("Найден", Новый ОписаниеТипов("Булево")); ВариантыФормы.Колонки.Добавить("Найден", Новый ОписаниеТипов("Булево"));
АвторизованныйПользователь = Пользователи.АвторизованныйПользователь(); АвторизованныйПользователь = Пользователи.АвторизованныйПользователь();
@@ -3869,6 +3885,11 @@
НастройкиОтчета.Вставить("Пользовательский", Ложь); НастройкиОтчета.Вставить("Пользовательский", Ложь);
НастройкиОтчета.Вставить("ТипОтчета", Неопределено); НастройкиОтчета.Вставить("ТипОтчета", Неопределено);
Если ОбщегоНазначения.РазделениеВключено()
И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос( Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| ВариантыОтчетов.Ссылка КАК ВариантСсылка, | ВариантыОтчетов.Ссылка КАК ВариантСсылка,
@@ -3994,6 +4015,14 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Функция СвойстваЗаголовка()
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета
Возврат СвойстваРезультата.Заголовки[ИмяТекущейОбластиЯчеек()];
КонецФункции
// Возвращаемое значение: // Возвращаемое значение:
// Строка // Строка
// //
@@ -6131,8 +6131,10 @@
Если Муниципальный Тогда Если Муниципальный Тогда
Результат.addressType = МуниципальныйАдрес(); Результат.addressType = МуниципальныйАдрес();
Результат.value = Адрес.munValueWithPostalCode;
Иначе Иначе
Результат.addressType = АдминистративноТерриториальныйАдрес(); Результат.addressType = АдминистративноТерриториальныйАдрес();
Результат.value = Адрес.valueWithPostalCode;
КонецЕсли; КонецЕсли;
Результат.houseType = ТРег(Результат.houseType); Результат.houseType = ТРег(Результат.houseType);
@@ -1793,13 +1793,17 @@
НазваниеОтчета = ""; НазваниеОтчета = "";
Если ЗначениеЗаполнено(Результат.СсылкаВарианта) Тогда Если ЗначениеЗаполнено(Результат.СсылкаВарианта) Тогда
НазваниеОтчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Результат.СсылкаВарианта, "Наименование"); НазваниеОтчета = Строка(Результат.СсылкаВарианта);
ИначеЕсли Результат.Метаданные <> Неопределено Тогда ИначеЕсли Результат.Метаданные <> Неопределено Тогда
НазваниеОтчета = Результат.Метаданные.Синоним; НазваниеОтчета = Результат.Метаданные.Синоним;
КонецЕсли; КонецЕсли;
Если Не ОбщегоНазначения.РазделениеВключено()
Или ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
УправлениеКолонтитулами.УстановитьКолонтитулы( УправлениеКолонтитулами.УстановитьКолонтитулы(
Результат.ТабличныйДокумент, НазваниеОтчета,, НастройкиКолонтитулов); Результат.ТабличныйДокумент, НазваниеОтчета,, НастройкиКолонтитулов);
КонецЕсли;
Результат.Успех = Истина; Результат.Успех = Истина;
@@ -2030,6 +2034,13 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Для отчета по внедрению. // Для отчета по внедрению.
// Параметры:
// ТипОтчетов - Строка
// ПодключенныеКХранилищу - Булево
//
// Возвращаемое значение:
// см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки.
//
Функция ПредопределенныеВариантыОтчетов(ТипОтчетов = "Внутренний", ПодключенныеКХранилищу = Истина) Экспорт Функция ПредопределенныеВариантыОтчетов(ТипОтчетов = "Внутренний", ПодключенныеКХранилищу = Истина) Экспорт
Результат = КоллекцияПредопределенныхВариантовОтчетов(); Результат = КоллекцияПредопределенныхВариантовОтчетов();
@@ -2087,9 +2098,22 @@
Попытка Попытка
ВариантыНастроек = СхемаКД.ВариантыНастроек; ВариантыНастроек = СхемаКД.ВариантыНастроек;
Исключение Исключение
Если ОбщегоНазначения.РазделениеВключено() Тогда
ШаблонТекстаОшибки = НСтр("ru = 'Не удалось прочитать список вариантов отчета %1.
|Возможно настройки содержат ссылки на разделенные предопределенные объекты.
|См. подробнее на ИТС: https://its.1c.ru/bmk/bsp_reports_service_model
|%2'");
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось прочитать список вариантов отчета %1: ШаблонТекстаОшибки, ОтчетМетаданные.Имя, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|%2'"), ОтчетМетаданные.Имя, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Иначе
ШаблонТекстаОшибки = НСтр("ru = 'Не удалось прочитать список вариантов отчета %1:
|%2'");
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонТекстаОшибки, ОтчетМетаданные.Имя, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецЕсли;
ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Предупреждение, ТекстОшибки, ОтчетМетаданные); ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Предупреждение, ТекстОшибки, ОтчетМетаданные);
КонецПопытки; КонецПопытки;
КонецЕсли; КонецЕсли;
@@ -4432,12 +4456,23 @@
// Параметры: // Параметры:
// Режим - Строка - режим обновления: "ОбщиеДанныеКонфигурации" или "ОбщиеДанныеРасширений" // Режим - Строка - режим обновления: "ОбщиеДанныеКонфигурации" или "ОбщиеДанныеРасширений"
// Результат - Структура: // Результат - Структура:
// * ВариантыОтчетов - см. ПредопределенныеВариантыОтчетов
// * ЕстьВажныеИзменения - Булево - признак наличия важных изменений в вариантах отчетов.
// * ЕстьИзменения - Булево - признак наличия изменений в вариантах отчетов.
// * МодельСервиса - Булево - признак работы в модели сервиса.
// * ОбновлятьЗамеры - Булево - признак наличия подсистемы ОценкаПроизводительности.
// * ОбновлятьКонфигурацию - Булево - признак необходимости обновления данных конфигурации.
// * ОбновлятьРасширения - Булево - признак необходимости обновления данных расширений.
// * ОтчетыСНастройкамиСписок - СписокЗначений:
// ** Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных - отчеты, в модуле объекта которых размещены
// процедуры интеграции с общей формой отчета.
// * РазделенныеОбработчики - Неопределено
// - Структура
// * ТаблицаЗамеров - см. ТаблицаЗамеров
// * ТаблицаФункциональныхОпций - ТаблицаЗначений - связь функциональных опций и предопределенных вариантов отчетов: // * ТаблицаФункциональныхОпций - ТаблицаЗначений - связь функциональных опций и предопределенных вариантов отчетов:
// ** Отчет - СправочникСсылка.ИдентификаторыОбъектовМетаданных // ** Отчет - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// ** ПредопределенныйВариант - СправочникСсылка.ПредопределенныеВариантыОтчетов // ** ПредопределенныйВариант - СправочникСсылка.ПредопределенныеВариантыОтчетов
// ** ИмяФункциональнойОпции - Строка // ** ИмяФункциональнойОпции - Строка
// * ОтчетыСНастройками - Массив из СправочникСсылка.ИдентификаторыОбъектовМетаданных - отчеты,
// в модуле объекта которых размещены процедуры интеграции с общей формой отчета.
// //
Процедура ЗаписатьТаблицуФункциональныхОпций(Режим, Результат) Процедура ЗаписатьТаблицуФункциональныхОпций(Режим, Результат)
Если Режим = "ОбщиеДанныеРасширений" И Не ЗначениеЗаполнено(ПараметрыСеанса.ВерсияРасширений) Тогда Если Режим = "ОбщиеДанныеРасширений" И Не ЗначениеЗаполнено(ПараметрыСеанса.ВерсияРасширений) Тогда
@@ -5654,7 +5689,6 @@
// ** ПослеЗаполненияПанелиБыстрыхНастроек - Булево // ** ПослеЗаполненияПанелиБыстрыхНастроек - Булево
// ** ПриОпределенииПараметровВыбора - Булево // ** ПриОпределенииПараметровВыбора - Булево
// ** ПриОпределенииИспользуемыхТаблиц - Булево // ** ПриОпределенииИспользуемыхТаблиц - Булево
// ** ДополнитьСвязиОбъектовМетаданных - Булево
// * ПредопределенныеВарианты - СписокЗначений: // * ПредопределенныеВарианты - СписокЗначений:
// ** Значение - Строка // ** Значение - Строка
// * ПараметрыРасположенияЭлементовУправления - Структура: // * ПараметрыРасположенияЭлементовУправления - Структура:
@@ -8878,31 +8912,27 @@
// * БыстрыйДоступ - Структура: // * БыстрыйДоступ - Структура:
// ** Отбор - Структура: // ** Отбор - Структура:
// *** БыстрыйДоступ - Булево // *** БыстрыйДоступ - Булево
// ** Варианты - см. ВариантыОтчетовДляВывода.Варианты // ** Варианты - Массив из СтрокаТаблицыЗначений
// - Массив из СтрокаТаблицыЗначений
// ** Количество - Число // ** Количество - Число
// * БезГруппы - Структура: // * БезГруппы - Структура:
// ** Отбор - Структура: // ** Отбор - Структура:
// *** БыстрыйДоступ - Булево // *** БыстрыйДоступ - Булево
// *** БезГруппы - Булево // *** БезГруппы - Булево
// ** Варианты - см. ВариантыОтчетовДляВывода.Варианты // ** Варианты - Массив из СтрокаТаблицыЗначений
// - Массив из СтрокаТаблицыЗначений
// ** Количество - Число // ** Количество - Число
// * СГруппой - Структура: // * СГруппой - Структура:
// ** Отбор - Структура: // ** Отбор - Структура:
// *** БыстрыйДоступ - Булево // *** БыстрыйДоступ - Булево
// *** БезГруппы - Булево // *** БезГруппы - Булево
// *** СмТакже - Булево // *** СмТакже - Булево
// ** Варианты - см. ВариантыОтчетовДляВывода.Варианты // ** Варианты - Массив из СтрокаТаблицыЗначений
// - Массив из СтрокаТаблицыЗначений
// ** Количество - Число // ** Количество - Число
// * СмТакже - Структура: // * СмТакже - Структура:
// ** Отбор - Структура: // ** Отбор - Структура:
// *** БыстрыйДоступ - Булево // *** БыстрыйДоступ - Булево
// *** БезГруппы - Булево // *** БезГруппы - Булево
// *** СмТакже - Булево // *** СмТакже - Булево
// ** Варианты - см. ВариантыОтчетовДляВывода.Варианты // ** Варианты - Массив из СтрокаТаблицыЗначений
// - Массив из СтрокаТаблицыЗначений
// ** Количество - Число // ** Количество - Число
// * ВыводятсяВариантыТекущегоРаздела - Булево // * ВыводятсяВариантыТекущегоРаздела - Булево
// * ВариантыКоличество - Число // * ВариантыКоличество - Число
@@ -307,7 +307,7 @@
КонецФункции КонецФункции
// Параметры подсистемы, закэшированные при обновлении (см. ВариантыОтчетов.ЗаписатьПараметрыВариантовОтчетов). // Параметры подсистемы, закэшированные при обновлении (см. ВариантыОтчетов.ЗаписатьТаблицуФункциональныхОпций).
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура: // Структура:
@@ -1756,6 +1756,9 @@
Если ДанныеЭлементаРасшифровки.Значение = Неопределено Тогда Если ДанныеЭлементаРасшифровки.Значение = Неопределено Тогда
Область = ПолеДокумента.ТекущаяОбласть; Область = ПолеДокумента.ТекущаяОбласть;
Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") Тогда
ДанныеЭлементаРасшифровки.Значение = ДоступноеПоле.ТипЗначения.ПривестиЗначение(Область.Текст); ДанныеЭлементаРасшифровки.Значение = ДоступноеПоле.ТипЗначения.ПривестиЗначение(Область.Текст);
ДанныеЭлементаРасшифровки.Значения = ПриведенныеЗначенияВыделенныхОбластей( ДанныеЭлементаРасшифровки.Значения = ПриведенныеЗначенияВыделенныхОбластей(
Документ, ВыделенныеОбластиДокумента, ДоступноеПоле.ТипЗначения); Документ, ВыделенныеОбластиДокумента, ДоступноеПоле.ТипЗначения);
@@ -1764,6 +1767,8 @@
КонецЕсли; КонецЕсли;
КонецЕсли;
ДоступноеПолеОтбора = Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле( ДоступноеПолеОтбора = Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(
Новый ПолеКомпоновкиДанных(ДанныеЭлементаРасшифровки.Поле)); Новый ПолеКомпоновкиДанных(ДанныеЭлементаРасшифровки.Поле));
@@ -131,8 +131,10 @@
ДополнительныеПараметры.Вставить("СвойстваОбласти", СвойстваОбласти); ДополнительныеПараметры.Вставить("СвойстваОбласти", СвойстваОбласти);
ДополнительныеПараметры.Вставить("Меню", ДополнительноеМеню); ДополнительныеПараметры.Вставить("Меню", ДополнительноеМеню);
ПолеОтчета = Форма.Элементы.ОтчетТабличныйДокумент; // ПолеТабличногоДокумента
Обработчик = Новый ОписаниеОповещения("ВыполнитьРасшифровку", ЭтотОбъект, ДополнительныеПараметры); Обработчик = Новый ОписаниеОповещения("ВыполнитьРасшифровку", ЭтотОбъект, ДополнительныеПараметры);
ОбработкаРасшифровки.ПоказатьВыборДействия(Обработчик, Расшифровка, ОсновноеМеню, ДополнительноеМеню); ОбработкаРасшифровки.ПоказатьВыборДействия(Обработчик, Расшифровка, ОсновноеМеню, ДополнительноеМеню,, ПолеОтчета);
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
@@ -154,6 +156,7 @@
НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета
Элементы = Форма.Элементы; Элементы = Форма.Элементы;
ПолеОтчета = Элементы.ОтчетТабличныйДокумент; // ПолеТабличногоДокумента
СвойстваЗаголовка = СвойстваРезультата.Заголовки[Область.Имя]; СвойстваЗаголовка = СвойстваРезультата.Заголовки[Область.Имя];
ЭтоРасшифровка = Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник ЭтоРасшифровка = Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник
@@ -166,8 +169,10 @@
И ЭтоРасшифровка; И ЭтоРасшифровка;
Элементы.ГруппаУровниГруппировокКонтекстноеМеню.Видимость = Не ЭтоРасшифровка; Элементы.ГруппаУровниГруппировокКонтекстноеМеню.Видимость = Не ЭтоРасшифровка;
Элементы.КонтекстноеМенюОбластиОбщееРедактирование.Видимость = Не ЭтоРасшифровка;
ОпределитьВариантОтображениеКомандРедактированияТаблицы(Элементы, ЭтоРасшифровка); Элементы.КонтекстноеМенюОбластиДанныхВставитьИзБуфераОбмена.Доступность = ПолеОтчета.Редактирование;
Элементы.КонтекстноеМенюОбластиОбщееВставитьИзБуфераОбмена.Доступность = ПолеОтчета.Редактирование;
ВариантыОтчетовСлужебныйКлиентСервер.ОпределитьДоступностьДействийКонтекстногоМеню(Форма, СвойстваЗаголовка); ВариантыОтчетовСлужебныйКлиентСервер.ОпределитьДоступностьДействийКонтекстногоМеню(Форма, СвойстваЗаголовка);
@@ -310,6 +315,30 @@
#Область Оформление #Область Оформление
Процедура ОчиститьОформление(Форма, СвойстваЗаголовка) Экспорт
Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек);
Если СвойстваЗаголовка.КоличествоРазделов = 1 Тогда
ОчиститьОформлениеГруппировкиОтчета(Настройки, СвойстваЗаголовка);
Иначе
Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела);
Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда
ОчиститьОформлениеГруппировокРазделаОтчета(Раздел.Строки, СвойстваЗаголовка);
Иначе
ОчиститьОформлениеГруппировкиРазделаОтчета(Раздел, СвойстваЗаголовка);
КонецЕсли;
КонецЕсли;
ОповеститьОЗавершенииКонтекстнойНастройки(Форма, "ОчиститьОформление");
КонецПроцедуры
Процедура ОформитьКрасным(Форма, Команда, СвойстваЗаголовка = Неопределено, Значение = Неопределено) Экспорт Процедура ОформитьКрасным(Форма, Команда, СвойстваЗаголовка = Неопределено, Значение = Неопределено) Экспорт
Если СвойстваЗаголовка = Неопределено Тогда Если СвойстваЗаголовка = Неопределено Тогда
@@ -1174,6 +1203,30 @@
КонецПроцедуры КонецПроцедуры
Функция КоличествоИспользуемыхПолей(Поля, Количество = Неопределено)
Если Количество = Неопределено Тогда
Количество = 0;
КонецЕсли;
Для Каждого Элемент Из Поля.Элементы Цикл
Если ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
КоличествоИспользуемыхПолей(Элемент, Количество);
ИначеЕсли Элемент.Использование Тогда
Количество = Количество + 1;
КонецЕсли;
КонецЦикла;
Возврат Количество;
КонецФункции
#КонецОбласти #КонецОбласти
#Область ПереименованиеПоля #Область ПереименованиеПоля
@@ -1423,6 +1476,74 @@
#Область Оформление #Область Оформление
#Область ОчисткаОформления
Процедура ОчиститьОформлениеГруппировокРазделаОтчета(Группировки, СвойстваЗаголовка)
Для Каждого Группировка Из Группировки Цикл
ОчиститьОформлениеГруппировкиРазделаОтчета(Группировка, СвойстваЗаголовка);
КонецЦикла;
КонецПроцедуры
Процедура ОчиститьОформлениеГруппировкиРазделаОтчета(Группировка, СвойстваЗаголовка)
Если ТипЗнч(Группировка) = Тип("ТаблицаКомпоновкиДанных") Тогда
ОчиститьОформлениеГруппировокРазделаОтчета(Группировка.Строки, СвойстваЗаголовка);
Иначе
ОчиститьОформлениеГруппировкиОтчета(Группировка, СвойстваЗаголовка);
ОчиститьОформлениеГруппировокРазделаОтчета(Группировка.Структура, СвойстваЗаголовка)
КонецЕсли;
КонецПроцедуры
Процедура ОчиститьОформлениеГруппировкиОтчета(Группировка, СвойстваЗаголовка)
Для Каждого ЭлементОформления Из Группировка.УсловноеОформление.Элементы Цикл
ОформляемыеПоля = ЭлементОформления.Поля.Элементы;
ОформляемыеПоляПодходящие = Новый Массив;
ОформляемыеПоляИспользуемые = Новый Массив;
Для Каждого ОформляемоеПоле Из ОформляемыеПоля Цикл
Если ОформляемоеПоле.Поле = СвойстваЗаголовка.Поле Тогда
ОформляемыеПоляПодходящие.Добавить(ОформляемоеПоле);
КонецЕсли;
Если ОформляемоеПоле.Использование Тогда
ОформляемыеПоляИспользуемые.Добавить(ОформляемоеПоле);
КонецЕсли;
КонецЦикла;
Если ОформляемыеПоляИспользуемые.Количество() = 1
И ОформляемыеПоляИспользуемые[0].Поле = СвойстваЗаголовка.Поле Тогда
ОформляемыеПоляИспользуемые.Очистить();
ИначеЕсли ОформляемыеПоляПодходящие.Количество() > 0 Тогда
ОформляемыеПоляПодходящие[0].Использование = Ложь;
КонецЕсли;
Если ОформляемыеПоляИспользуемые.Количество() = 0 Тогда
ЭлементОформления.Использование = Ложь;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
Процедура ОформитьЖелтым(Форма, Команда, СвойстваЗаголовка = Неопределено, Значение = Неопределено) Процедура ОформитьЖелтым(Форма, Команда, СвойстваЗаголовка = Неопределено, Значение = Неопределено)
Если СвойстваЗаголовка = Неопределено Тогда Если СвойстваЗаголовка = Неопределено Тогда
@@ -2537,8 +2658,11 @@
КомпоновщикНастроек.РазвернутьАвтоПоля(); КомпоновщикНастроек.РазвернутьАвтоПоля();
ПолеГруппировки = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(Группировка.ПоляГруппировки, СвойстваЗаголовка.Поле); ПолеГруппировки = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(
ВыбранноеПоле = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(Группировка.Выбор, СвойстваЗаголовка.Поле); Группировка.ПоляГруппировки, СвойстваЗаголовка.Поле);
ВыбранноеПоле = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(
Группировка.Выбор, СвойстваЗаголовка.Поле,, СвойстваЗаголовка.Текст);
СоседняяГруппировка = СоседняяГруппировка(Форма, Команда, Настройки, СвойстваЗаголовка.ПорядокГруппировки); СоседняяГруппировка = СоседняяГруппировка(Форма, Команда, Настройки, СвойстваЗаголовка.ПорядокГруппировки);
@@ -2582,7 +2706,10 @@
Если Группировка.ПоляГруппировки.Элементы.Количество() = 0 Тогда Если Группировка.ПоляГруппировки.Элементы.Количество() = 0 Тогда
ВыбранноеПоле.Использование = Ложь; ВыбранноеПоле.Использование = Ложь;
Если КоличествоИспользуемыхПолей(Группировка.Выбор) = 0 Тогда
СкрытьГруппировку(Настройки, Группировка, СвойстваЗаголовка.Поле); СкрытьГруппировку(Настройки, Группировка, СвойстваЗаголовка.Поле);
КонецЕсли;
Иначе Иначе
Группировка.Выбор.Элементы.Удалить(ВыбранноеПоле); Группировка.Выбор.Элементы.Удалить(ВыбранноеПоле);
@@ -2756,23 +2883,6 @@
#Область КонтекстноеМеню #Область КонтекстноеМеню
Процедура ОпределитьВариантОтображениеКомандРедактированияТаблицы(Элементы, ЭтоРасшифровка)
#Если Не ВебКлиент Тогда
Если Не ЭтоРасшифровка
И (Элементы.КонтекстноеМенюОбластиЗаголовка.Видимость
Или Элементы.КонтекстноеМенюОбластиДанных.Видимость) Тогда
Элементы.КонтекстноеМенюОбластиОбщееРедактирование.Вид = ВидГруппыФормы.Подменю;
Иначе
Элементы.КонтекстноеМенюОбластиОбщееРедактирование.Вид = ВидГруппыФормы.ГруппаКнопок;
КонецЕсли;
#КонецЕсли
КонецПроцедуры
Функция КонтекстноеМенюОбластиЗаголовка() Функция КонтекстноеМенюОбластиЗаголовка()
КонтекстноеМеню = Новый СписокЗначений; КонтекстноеМеню = Новый СписокЗначений;
@@ -2836,6 +2946,8 @@
// Оформить // Оформить
ПодменюОформления = Новый СписокЗначений; ПодменюОформления = Новый СписокЗначений;
ПодменюОформления.Добавить("ОчиститьОформление", НСтр("ru = 'Очистить оформление'"));
ПодменюОформления.Добавить("ОформитьКрасным", НСтр("ru = 'Красным'"),, КартинкиОформления.ОформитьКрасным); ПодменюОформления.Добавить("ОформитьКрасным", НСтр("ru = 'Красным'"),, КартинкиОформления.ОформитьКрасным);
ПодменюОформления.Добавить("ОформитьЖелтым", НСтр("ru = 'Желтым'"),, КартинкиОформления.ОформитьЖелтым); ПодменюОформления.Добавить("ОформитьЖелтым", НСтр("ru = 'Желтым'"),, КартинкиОформления.ОформитьЖелтым);
ПодменюОформления.Добавить("ОформитьЗеленым", НСтр("ru = 'Зеленым'"),, КартинкиОформления.ОформитьЗеленым); ПодменюОформления.Добавить("ОформитьЗеленым", НСтр("ru = 'Зеленым'"),, КартинкиОформления.ОформитьЗеленым);
@@ -2938,6 +3050,14 @@
КонецЕсли; КонецЕсли;
Если ТипЗнч(ВыполненноеДействие) = Тип("Строка")
И ВыполненноеДействие = "ОчиститьОформление" Тогда
ОчиститьОформление(Форма, СвойстваОбласти.СвойстваЗаголовка);
Возврат;
КонецЕсли;
Если ТипЗнч(ВыполненноеДействие) = Тип("Строка") Если ТипЗнч(ВыполненноеДействие) = Тип("Строка")
И (ВыполненноеДействие = "ОформитьКрасным" И (ВыполненноеДействие = "ОформитьКрасным"
Или ВыполненноеДействие = "ОформитьЖелтым" Или ВыполненноеДействие = "ОформитьЖелтым"
@@ -3249,7 +3369,7 @@
События = Новый Соответствие; События = Новый Соответствие;
События.Вставить("СгруппироватьПоВыбранномуПолю", Истина); События.Вставить("СгруппироватьПоВыбранномуПолю", Истина);
События.Вставить("ВставитьПолеСправа", Истина); События.Вставить("ВставитьПолеСлева", Истина);
События.Вставить("ВставитьПолеСправа", Истина); События.Вставить("ВставитьПолеСправа", Истина);
События.Вставить("ВставитьГруппировкуВыше", Истина); События.Вставить("ВставитьГруппировкуВыше", Истина);
События.Вставить("ВставитьГруппировкуНиже", Истина); События.Вставить("ВставитьГруппировкуНиже", Истина);
@@ -3269,6 +3389,8 @@
События.Вставить("СортироватьПоВозрастанию", Истина); События.Вставить("СортироватьПоВозрастанию", Истина);
События.Вставить("СортироватьПоУбыванию", Истина); События.Вставить("СортироватьПоУбыванию", Истина);
События.Вставить("ОчиститьОформление", Истина);
События.Вставить("ОформитьКрасным", Истина); События.Вставить("ОформитьКрасным", Истина);
События.Вставить("ОформитьЖелтым", Истина); События.Вставить("ОформитьЖелтым", Истина);
События.Вставить("ОформитьЗеленым", Истина); События.Вставить("ОформитьЗеленым", Истина);
@@ -118,9 +118,28 @@
// ПолеГруппировкиКомпоновкиДанных // ПолеГруппировкиКомпоновкиДанных
// Неопределено // Неопределено
// //
Функция ПолеОтчета(Поля, Поле, ПроверятьИспользование = Истина, ПолеОтчета = Неопределено) Экспорт Функция ПолеОтчета(Поля, Поле, ПроверятьИспользование = Истина, ЗаголовокПоля = "", ПолеОтчета = Неопределено) Экспорт
НайтиПолеОтчета(Поля, Поле, ПроверятьИспользование, ПолеОтчета); ДоступныеПоля = Неопределено;
Если ТипЗнч(Поля) = Тип("ВыбранныеПоляКомпоновкиДанных") Тогда
ДоступныеПоля = Поля.ДоступныеПоляВыбора;
ИначеЕсли ТипЗнч(Поля) = Тип("ПоляГруппировкиКомпоновкиДанных") Тогда
ДоступныеПоля = Поля.ДоступныеПоляПолейГруппировок;
КонецЕсли;
ОписаниеПоля = ?(ДоступныеПоля = Неопределено, Неопределено, ДоступныеПоля.НайтиПоле(Поле));
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ПроверятьИспользование", ПроверятьИспользование);
ДополнительныеПараметры.Вставить("ЗаголовокПоля", ЗаголовокПоля);
ДополнительныеПараметры.Вставить("ОписаниеПоля", ОписаниеПоля);
НайтиПолеОтчета(Поля, Поле, ПолеОтчета, ДополнительныеПараметры);
Возврат ПолеОтчета; Возврат ПолеОтчета;
@@ -259,22 +278,34 @@
// - ПолеГруппировкиКомпоновкиДанных // - ПолеГруппировкиКомпоновкиДанных
// - Неопределено // - Неопределено
// //
Процедура НайтиПолеОтчета(Поля, Поле, ПроверятьИспользование, НайденноеПоле) Процедура НайтиПолеОтчета(Поля, Поле, НайденноеПоле, ДополнительныеПараметры)
ПроверятьИспользование = ДополнительныеПараметры.ПроверятьИспользование;
ЗаголовокПоля = ДополнительныеПараметры.ЗаголовокПоля;
ОписаниеПоля = ДополнительныеПараметры.ОписаниеПоля;
Для Каждого Элемент Из Поля.Элементы Цикл Для Каждого Элемент Из Поля.Элементы Цикл
ТипЭлемента = ТипЗнч(Элемент); ТипЭлемента = ТипЗнч(Элемент);
ПроверкаИспользованияПоляПройденаУспешно = Не ПроверятьИспользование
Или ПроверятьИспользование И Элемент.Использование;
ПроверкаЗаголовкаПройденаУспешно = Не ЗначениеЗаполнено(ЗаголовокПоля)
Или Элемент.Заголовок = ЗаголовокПоля
Или ОписаниеПоля <> Неопределено И ОписаниеПоля.Заголовок = ЗаголовокПоля;
Если ТипЭлемента <> Тип("АвтоВыбранноеПолеКомпоновкиДанных") Если ТипЭлемента <> Тип("АвтоВыбранноеПолеКомпоновкиДанных")
И Элемент.Поле = Поле И Элемент.Поле = Поле
И (Не ПроверятьИспользование Или ПроверятьИспользование И Элемент.Использование) Тогда И ПроверкаИспользованияПоляПройденаУспешно
И ПроверкаЗаголовкаПройденаУспешно Тогда
НайденноеПоле = Элемент; НайденноеПоле = Элемент;
Возврат; Возврат;
ИначеЕсли ТипЭлемента = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда ИначеЕсли ТипЭлемента = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
НайтиПолеОтчета(Элемент, Поле, ПроверятьИспользование, НайденноеПоле); НайтиПолеОтчета(Элемент, Поле, НайденноеПоле, ДополнительныеПараметры);
КонецЕсли; КонецЕсли;
@@ -1632,7 +1632,11 @@
Шаблон = НСтр("ru = '%1 невозможно изменить в запрещенном периоде.'"); Шаблон = НСтр("ru = '%1 невозможно изменить в запрещенном периоде.'");
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Текст) + Символы.ПС + Символы.ПС; Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Текст) + Символы.ПС;
Если Не СтруктурноеОписание Тогда
Текст = Текст + "[РазделительШапка]";
КонецЕсли;
КонецЕсли; КонецЕсли;
ПустойРаздел = ПустаяСсылка(Тип("ПланВидовХарактеристикСсылка.РазделыДатЗапретаИзменения")); ПустойРаздел = ПустаяСсылка(Тип("ПланВидовХарактеристикСсылка.РазделыДатЗапретаИзменения"));
@@ -1648,6 +1652,8 @@
Текст = СообщениеОЗапрете(Запрет, ПоискЗапретовЗагрузки, СвойстваРазделов, ПустойРаздел); Текст = СообщениеОЗапрете(Запрет, ПоискЗапретовЗагрузки, СвойстваРазделов, ПустойРаздел);
Если СтруктурноеОписание Тогда Если СтруктурноеОписание Тогда
Текст = СтрЗаменить(Текст, "[РазделительПодробнее]", "");
Проверка = Запрет.Данные; Проверка = Запрет.Данные;
СвойстваРаздела = СвойстваРазделов.Разделы.Получить(Проверка.Раздел); // см. ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.СвойстваРаздела СвойстваРаздела = СвойстваРазделов.Разделы.Получить(Проверка.Раздел); // см. ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.СвойстваРаздела
@@ -1662,11 +1668,27 @@
СтрокаОписанияОшибки.Описание = Текст; СтрокаОписанияОшибки.Описание = Текст;
ИначеЕсли ДобавленныеТексты.Получить(Текст) = Неопределено Тогда ИначеЕсли ДобавленныеТексты.Получить(Текст) = Неопределено Тогда
ДобавленныеТексты.Вставить(Текст, Истина); ДобавленныеТексты.Вставить(Текст, Истина);
ТекстОшибки = ТекстОшибки + Текст + Символы.ПС + Символы.ПС; ТекстОшибки = ТекстОшибки + Текст + "[РазделительСообщение]";
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Если Не СтруктурноеОписание Тогда Если Не СтруктурноеОписание Тогда
РазделительШапка = "";
РазделительПодробнее = "";
РазделительСообщение = "";
Если ДобавленныеТексты.Количество() > 1 Тогда
РазделительШапка = Символы.ПС;
РазделительСообщение = Символы.ПС + Символы.ПС;
Иначе
РазделительПодробнее = Символы.ПС;
КонецЕсли;
ТекстОшибки = СтрЗаменить(ТекстОшибки, "[РазделительШапка]", РазделительШапка);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "[РазделительПодробнее]", РазделительПодробнее);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "[РазделительСообщение]", РазделительСообщение);
ОписаниеОшибки = СокрП(ТекстОшибки); ОписаниеОшибки = СокрП(ТекстОшибки);
КонецЕсли; КонецЕсли;
@@ -1722,68 +1744,203 @@
Если Не ПоискЗапретовЗагрузки Тогда Если Не ПоискЗапретовЗагрузки Тогда
Если Не ПоРазделу И Не ПоОбъекту И ДляНеуказанного Тогда Если Не ПоРазделу И Не ПоОбъекту И ДляНеуказанного Тогда
Текст = НСтр("ru = 'Дате %1 соответствует запрет изменения данных по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Изменение недоступно, поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляНеуказанного Тогда ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляНеуказанного Тогда
Текст = НСтр("ru = 'Дате %1 по разделу ""%2"" соответствует запрет изменения данных по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Изменение по разделу ""%2"" недоступно
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляНеуказанного Тогда ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляНеуказанного Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" соответствует запрет изменения данных по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Изменение по объекту ""%3"" недоступно,
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И ПоОбъекту И ДляНеуказанного Тогда ИначеЕсли ПоРазделу И ПоОбъекту И ДляНеуказанного Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" раздела ""%2"" соответствует запрет изменения данных по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Изменение по объекту ""%3"" раздела ""%2"" недоступно,
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И Не ПоОбъекту И ДляПользователя Тогда ИначеЕсли Не ПоРазделу И Не ПоОбъекту И ДляПользователя Тогда
Текст = НСтр("ru = 'Дате %1 соответствует запрет изменения данных для пользователя ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Пользователю ""%4"" недоступно изменение,
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляПользователя Тогда ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляПользователя Тогда
Текст = НСтр("ru = 'Дате %1 по разделу ""%2"" соответствует запрет изменения данных для пользователя ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Пользователю ""%4"" недоступно изменение по разделу ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляПользователя Тогда ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляПользователя Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" соответствует запрет изменения данных для пользователя ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Пользователю ""%4"" недоступно изменение по объекту ""%3"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И ПоОбъекту И ДляПользователя Тогда ИначеЕсли ПоРазделу И ПоОбъекту И ДляПользователя Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" раздела ""%2"" соответствует запрет изменения данных для пользователя ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Пользователю ""%4"" недоступно изменение по объекту ""%3"" раздела ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И Не ПоОбъекту И ДляГруппыПользователей Тогда ИначеЕсли Не ПоРазделу И Не ПоОбъекту И ДляГруппыПользователей Тогда
Текст = НСтр("ru = 'Дате %1 соответствует запрет изменения данных для группы пользователей ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для группы пользователей ""%4"" недоступно изменение,
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляГруппыПользователей Тогда ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляГруппыПользователей Тогда
Текст = НСтр("ru = 'Дате %1 по разделу ""%2"" соответствует запрет изменения данных для группы пользователей ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для группы пользователей ""%4"" недоступно изменение по разделу ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляГруппыПользователей Тогда ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляГруппыПользователей Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" соответствует запрет изменения данных для группы пользователей ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для группы пользователей ""%4"" недоступно изменение по объекту ""%3"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И ПоОбъекту И ДляГруппыПользователей Тогда ИначеЕсли ПоРазделу И ПоОбъекту И ДляГруппыПользователей Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" раздела ""%2"" соответствует запрет изменения данных для группы пользователей ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для группы пользователей ""%4"" недоступно изменение по объекту ""%3"" раздела ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И Не ПоОбъекту И ДляВсехПользователей Тогда ИначеЕсли Не ПоРазделу И Не ПоОбъекту И ДляВсехПользователей Тогда
Текст = НСтр("ru = 'Дате %1 соответствует запрет изменения данных для всех пользователей по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех пользователей недоступно изменение,
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляВсехПользователей Тогда ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляВсехПользователей Тогда
Текст = НСтр("ru = 'Дате %1 по разделу ""%2"" соответствует запрет изменения данных для всех пользователей по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех пользователей недоступно изменение по разделу ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляВсехПользователей Тогда ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляВсехПользователей Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" соответствует запрет изменения данных для всех пользователей по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех пользователей недоступно изменение по объекту ""%3"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И ПоОбъекту И ДляВсехПользователей Тогда ИначеЕсли ПоРазделу И ПоОбъекту И ДляВсехПользователей Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" раздела ""%2"" соответствует запрет изменения данных для всех пользователей по %5'");
Текст = НСтр("ru = 'Запрещено изменять данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех пользователей недоступно изменение по объекту ""%3"" раздела ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
КонецЕсли; КонецЕсли;
Иначе Иначе
Если Не ПоРазделу И Не ПоОбъекту И ДляИнформационнойБазы Тогда Если Не ПоРазделу И Не ПоОбъекту И ДляИнформационнойБазы Тогда
Текст = НСтр("ru = 'Дате %1 соответствует запрет загрузки данных для информационной базы ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для информационной базы ""%4"" запрещена загрузка данных,
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляИнформационнойБазы Тогда ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляИнформационнойБазы Тогда
Текст = НСтр("ru = 'Дате %1 по разделу ""%2"" соответствует запрет загрузки данных для информационной базы ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для информационной базы ""%4"" запрещена загрузка данных по разделу ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляИнформационнойБазы Тогда ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляИнформационнойБазы Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" соответствует запрет загрузки данных для информационной базы ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для информационной базы ""%4"" запрещена загрузка данных по объекту ""%3"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И ПоОбъекту И ДляИнформационнойБазы Тогда ИначеЕсли ПоРазделу И ПоОбъекту И ДляИнформационнойБазы Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" раздела ""%2"" соответствует запрет загрузки данных для информационной базы ""%4"" по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для информационной базы ""%4"" запрещена загрузка данных по объекту ""%3"" раздела ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И Не ПоОбъекту И ДляВсехИБПлана Тогда ИначеЕсли Не ПоРазделу И Не ПоОбъекту И ДляВсехИБПлана Тогда
Текст = НСтр("ru = 'Дате %1 соответствует запрет загрузки данных для всех информационных баз ""%6"" по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех информационных баз ""%6"" запрещена загрузка данных,
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляВсехИБПлана Тогда ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляВсехИБПлана Тогда
Текст = НСтр("ru = 'Дате %1 по разделу ""%2"" соответствует запрет загрузки данных для всех информационных баз ""%6"" по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех информационных баз ""%6"" запрещена загрузка данных по разделу ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляВсехИБПлана Тогда ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляВсехИБПлана Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" соответствует запрет загрузки данных для всех информационных баз ""%6"" по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех информационных баз ""%6"" запрещена загрузка данных по объекту ""%3"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И ПоОбъекту И ДляВсехИБПлана Тогда ИначеЕсли ПоРазделу И ПоОбъекту И ДляВсехИБПлана Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" раздела ""%2"" соответствует запрет загрузки данных для всех информационных баз ""%6"" по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех информационных баз ""%6"" запрещена загрузка данных по объекту ""%3"" раздела ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И Не ПоОбъекту И ДляВсехИБ Тогда ИначеЕсли Не ПоРазделу И Не ПоОбъекту И ДляВсехИБ Тогда
Текст = НСтр("ru = 'Дате %1 соответствует запрет загрузки данных для всех информационных баз по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех информационных баз запрещена загрузка данных,
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляВсехИБ Тогда ИначеЕсли ПоРазделу И Не ПоОбъекту И ДляВсехИБ Тогда
Текст = НСтр("ru = 'Дате %1 по разделу ""%2"" соответствует запрет загрузки данных для всех информационных баз по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех информационных баз запрещена загрузка данных по разделу ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляВсехИБ Тогда ИначеЕсли Не ПоРазделу И ПоОбъекту И ДляВсехИБ Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" соответствует запрет загрузки данных для всех информационных баз по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех информационных баз запрещена загрузка данных по объекту ""%3"",
|поскольку дата %1 входит в запрещенный период по %5'");
ИначеЕсли ПоРазделу И ПоОбъекту И ДляВсехИБ Тогда ИначеЕсли ПоРазделу И ПоОбъекту И ДляВсехИБ Тогда
Текст = НСтр("ru = 'Дате %1 по объекту ""%3"" раздела ""%2"" соответствует запрет загрузки данных для всех информационных баз по %5'");
Текст = НСтр("ru = 'Запрещено загружать данные с датой ранее %5 (включительно).
|[РазделительПодробнее]Подробнее:
|Для всех информационных баз запрещена загрузка данных по объекту ""%3"" раздела ""%2"",
|поскольку дата %1 входит в запрещенный период по %5'");
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -1287,6 +1287,10 @@
Если НЕ ПравоДоступа("Чтение", Метаданные.Справочники.ДополнительныеОтчетыИОбработки) Тогда Если НЕ ПравоДоступа("Чтение", Метаданные.Справочники.ДополнительныеОтчетыИОбработки) Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.РазделениеВключено()
И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = Запрос.Текст =
@@ -43,7 +43,6 @@
События.Вставить("ПриИзмененииКлючейВариантовОтчетов", Ложь); События.Вставить("ПриИзмененииКлючейВариантовОтчетов", Ложь);
События.Вставить("ПриОпределенииОбъектовСКомандамиОтчетов", Ложь); События.Вставить("ПриОпределенииОбъектовСКомандамиОтчетов", Ложь);
События.Вставить("ПередДобавлениемКомандОтчетов", Ложь); События.Вставить("ПередДобавлениемКомандОтчетов", Ложь);
События.Вставить("ПриДополненииСвязиОбъектовМетаданных", Ложь);
События.Вставить("ПриОпределенииПараметровВыбораВариантыОтчетов", Ложь); События.Вставить("ПриОпределенииПараметровВыбораВариантыОтчетов", Ложь);
События.Вставить("ПриСозданииНаСервереВариантыОтчетов", Ложь); События.Вставить("ПриСозданииНаСервереВариантыОтчетов", Ложь);
События.Вставить("ПередЗагрузкойВариантаНаСервере", Ложь); События.Вставить("ПередЗагрузкойВариантаНаСервере", Ложь);
@@ -2003,21 +2002,6 @@
КонецПроцедуры КонецПроцедуры
// См. ОтчетыПереопределяемый.ДополнитьСвязиОбъектовМетаданных.
Процедура ПриДополненииСвязиОбъектовМетаданных(Результат) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриДополненииСвязиОбъектовМетаданных Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриДополненииСвязиОбъектовМетаданных(Результат);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриДополненииСвязиОбъектовМетаданных Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПриДополненииСвязиОбъектовМетаданных(Результат);
КонецЕсли;
КонецПроцедуры
// См. ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора. // См. ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора.
Процедура ПриОпределенииПараметровВыбораВариантыОтчетов(Форма, СвойстваНастройки) Экспорт Процедура ПриОпределенииПараметровВыбораВариантыОтчетов(Форма, СвойстваНастройки) Экспорт
@@ -28,9 +28,9 @@
Если МультиязычностьПовтИсп.ОбъектНеСодержитТЧПредставления(Данные.Ссылка) Тогда Если МультиязычностьПовтИсп.ОбъектНеСодержитТЧПредставления(Данные.Ссылка) Тогда
СуффиксЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка(); СуффиксЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка();
Если ЗначениеЗаполнено(СуффиксЯзыка) И Данные.Свойство(ИмяРеквизита + СуффиксЯзыка) Тогда Если ЗначениеЗаполнено(СуффиксЯзыка) Тогда
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
Представление = Данные[ИмяРеквизита + СуффиксЯзыка] Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Данные.Ссылка, ИмяРеквизита,, ТекущийЯзык().КодЯзыка);
КонецЕсли; КонецЕсли;
ИначеЕсли Данные.Свойство("Ссылка") Или Данные.Ссылка <> Неопределено Тогда ИначеЕсли Данные.Свойство("Ссылка") Или Данные.Ссылка <> Неопределено Тогда
@@ -106,7 +106,10 @@
Если Форма.Параметры.Свойство("ЗначениеКопирования") Если Форма.Параметры.Свойство("ЗначениеКопирования")
И ЗначениеЗаполнено(Форма.Параметры.ЗначениеКопирования) Тогда И ЗначениеЗаполнено(Форма.Параметры.ЗначениеКопирования) Тогда
ОчиститьМультиязычныеРеквизиты(Объект, ОбъектМетаданные);
ПриЧтенииПредставленийНаСервере(Объект); ПриЧтенииПредставленийНаСервере(Объект);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -1413,6 +1416,24 @@
ОбновлениеИнформационнойБазыСлужебный.НачальноеЗаполнениеПредопределенныхДанных(Истина, Параметры); ОбновлениеИнформационнойБазыСлужебный.НачальноеЗаполнениеПредопределенныхДанных(Истина, Параметры);
КонецПроцедуры КонецПроцедуры
Процедура ОчиститьМультиязычныеРеквизиты(Объект, ОбъектМетаданные)
Если МультиязычныеСтрокиВРеквизитах(ОбъектМетаданные) Тогда
СписокМультиязычныхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъекта(ОбъектМетаданные);
Для Каждого Реквизит Из СписокМультиязычныхРеквизитов Цикл
Объект[Реквизит.Ключ + "Язык1"] = "";
Объект[Реквизит.Ключ + "Язык2"] = "";
КонецЦикла;
ИначеЕсли Объект.Свойство("Представления") Тогда
Объект.Представления.Очистить();
КонецЕсли;
КонецПроцедуры
Функция ЭтоОсновнойЯзык() Экспорт Функция ЭтоОсновнойЯзык() Экспорт
Возврат СтрСравнить(ОбщегоНазначения.КодОсновногоЯзыка(), ТекущийЯзык().КодЯзыка) = 0; Возврат СтрСравнить(ОбщегоНазначения.КодОсновногоЯзыка(), ТекущийЯзык().КодЯзыка) = 0;
@@ -182,7 +182,7 @@
// //
Функция НаименованиеЭтогоУзла(Знач УзелИнформационнойБазы) Экспорт Функция НаименованиеЭтогоУзла(Знач УзелИнформационнойБазы) Экспорт
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПолучитьЭтотУзелПланаОбмена(ПолучитьИмяПланаОбмена(УзелИнформационнойБазы)), "Наименование"); Возврат Строка(ПолучитьЭтотУзелПланаОбмена(ПолучитьИмяПланаОбмена(УзелИнформационнойБазы)));
КонецФункции КонецФункции
@@ -6106,7 +6106,7 @@
СтруктураНастроекОбменаВнешнееСоединение.Вставить("РежимОтладки", Структура.РежимОтладки); СтруктураНастроекОбменаВнешнееСоединение.Вставить("РежимОтладки", Структура.РежимОтладки);
СтруктураНастроекОбменаВнешнееСоединение.Вставить("УзелИнформационнойБазы", УзелИнформационнойБазы); СтруктураНастроекОбменаВнешнееСоединение.Вставить("УзелИнформационнойБазы", УзелИнформационнойБазы);
СтруктураНастроекОбменаВнешнееСоединение.Вставить("УзелИнформационнойБазыНаименование", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелИнформационнойБазы, "Наименование")); СтруктураНастроекОбменаВнешнееСоединение.Вставить("УзелИнформационнойБазыНаименование", Строка(УзелИнформационнойБазы));
СтруктураНастроекОбменаВнешнееСоединение.Вставить("КлючСообщенияЖурналаРегистрации", КлючСообщенияЖурналаРегистрации(УзелИнформационнойБазы, ДействиеПриОбмене)); СтруктураНастроекОбменаВнешнееСоединение.Вставить("КлючСообщенияЖурналаРегистрации", КлючСообщенияЖурналаРегистрации(УзелИнформационнойБазы, ДействиеПриОбмене));
@@ -11066,7 +11066,7 @@
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОбменДаннымиПовтИсп.ПолучитьЭтотУзелПланаОбмена(ИмяПланаОбмена), "Наименование"); Возврат Строка(ОбменДаннымиПовтИсп.ПолучитьЭтотУзелПланаОбмена(ИмяПланаОбмена));
КонецФункции КонецФункции
Процедура ОбработчикПриВыгрузкеДанныхБСП( Процедура ОбработчикПриВыгрузкеДанныхБСП(
@@ -11926,7 +11926,7 @@
СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В программе ""%1"" выполняется обновление настроек синхронизации. НСтр("ru = 'В программе ""%1"" выполняется обновление настроек синхронизации.
|Загрузка данных отменена. Необходимо запустить синхронизацию данных повторно.'"), |Загрузка данных отменена. Необходимо запустить синхронизацию данных повторно.'"),
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтруктураНастроек.УзелИнформационнойБазы, "Наименование")); Строка(СтруктураНастроек.УзелИнформационнойБазы));
Отказ = Истина; Отказ = Истина;
КонецЕсли; КонецЕсли;
Возврат Истина; Возврат Истина;
@@ -14259,6 +14259,7 @@
ПараметрыОбмена.ДлительнаяОперацияРазрешена); ПараметрыОбмена.ДлительнаяОперацияРазрешена);
Если ПараметрыОбмена.ДлительнаяОперация Тогда Если ПараметрыОбмена.ДлительнаяОперация Тогда
Если ПараметрыОбмена.ИнтервалОжиданияНаСервере > 0 Тогда Если ПараметрыОбмена.ИнтервалОжиданияНаСервере > 0 Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
МодульОбщегоНазначенияБТС = ОбщегоНазначения.ОбщийМодуль("ОбщегоНазначенияБТС"); МодульОбщегоНазначенияБТС = ОбщегоНазначения.ОбщийМодуль("ОбщегоНазначенияБТС");
@@ -14290,12 +14291,14 @@
ОбщегоНазначения.КодОсновногоЯзыка()), СтруктураНастроекОбмена); ОбщегоНазначения.КодОсновногоЯзыка()), СтруктураНастроекОбмена);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
ФайлСообщенияОбмена = ПолучитьФайлИзХранилищаВСервисе( ФайлСообщенияОбмена = ПолучитьФайлИзХранилищаВСервисе(
Новый УникальныйИдентификатор(ПараметрыОбмена.ИдентификаторФайла), Новый УникальныйИдентификатор(ПараметрыОбмена.ИдентификаторФайла),
УзелИнформационнойБазы,, УзелИнформационнойБазы,,
ПараметрыОбмена.ПараметрыАутентификации); ПараметрыОбмена.ПараметрыАутентификации);
Исключение Исключение
ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина); ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина);
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка;
@@ -14430,6 +14433,7 @@
ПараметрыОбмена.ДлительнаяОперацияРазрешена); ПараметрыОбмена.ДлительнаяОперацияРазрешена);
Если ПараметрыОбмена.ДлительнаяОперация Тогда Если ПараметрыОбмена.ДлительнаяОперация Тогда
Если ПараметрыОбмена.ИнтервалОжиданияНаСервере > 0 Тогда Если ПараметрыОбмена.ИнтервалОжиданияНаСервере > 0 Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
МодульОбщегоНазначенияБТС = ОбщегоНазначения.ОбщийМодуль("ОбщегоНазначенияБТС"); МодульОбщегоНазначенияБТС = ОбщегоНазначения.ОбщийМодуль("ОбщегоНазначенияБТС");
@@ -14458,13 +14462,17 @@
ОбщегоНазначения.КодОсновногоЯзыка()), СтруктураНастроекОбмена); ОбщегоНазначения.КодОсновногоЯзыка()), СтруктураНастроекОбмена);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Исключение Исключение
ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина); ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина);
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка;
Отказ = Истина; Отказ = Истина;
КонецПопытки; КонецПопытки;
КонецЕсли; КонецЕсли;
@@ -706,6 +706,34 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если ОсновныеПараметры.Свойство("ПараметрыВыборки")
И ТипЗнч(ОсновныеПараметры.ПараметрыВыборки) = Тип("Структура") Тогда
ПолныеИменаОбъектов = Неопределено;
ПолныеИменаРегистров = Неопределено;
ОсновныеПараметры.ПараметрыВыборки.Свойство("ПолныеИменаОбъектов", ПолныеИменаОбъектов);
ОсновныеПараметры.ПараметрыВыборки.Свойство("ПолныеИменаРегистров", ПолныеИменаРегистров);
МассивИмен = СтрРазделить(ПолныеИменаОбъектов, ",", Ложь);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивИмен, СтрРазделить(ПолныеИменаРегистров, ",", Ложь));
Несуществующие = Новый Массив;
Для Каждого ПолноеИмяОбъекта Из МассивИмен Цикл
ПолноеИмяОбъекта = СокрЛП(ПолноеИмяОбъекта);
ОбъектСуществует = (Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъекта) <> Неопределено);
Если Не ОбъектСуществует Тогда
Несуществующие.Добавить(ПолноеИмяОбъекта);
КонецЕсли;
КонецЦикла;
Если Несуществующие.Количество() <> 0 Тогда
ТекстИсключения = НСтр("ru = 'В свойстве ПараметрыВыборки процедуры заполнения данных отложенного обработчика указаны несуществующие объекты:
|%1.'");
ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстИсключения, СтрСоединить(Несуществующие, ", "));
ВызватьИсключение ТекстИсключения;
КонецЕсли;
КонецЕсли;
Узел = ОчередьСсылкой(ОсновныеПараметры.Очередь); Узел = ОчередьСсылкой(ОсновныеПараметры.Очередь);
Если ДополнительныеПараметры.ЭтоДвижения Тогда Если ДополнительныеПараметры.ЭтоДвижения Тогда
@@ -1075,16 +1103,16 @@
|СГРУППИРОВАТЬ ПО |СГРУППИРОВАТЬ ПО
| ТаблицаРегистраИзменения.Регистратор | ТаблицаРегистраИзменения.Регистратор
| |
|ИНДЕКСИРОВАТЬ ПО
| Регистратор
|
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
| МАКСИМУМ(ЕСТЬNULL(ТаблицаРегистра.Период, ДАТАВРЕМЯ(3000, 1, 1))) | МАКСИМУМ(ЕСТЬNULL(ТаблицаРегистра.Период, ДАТАВРЕМЯ(3000, 1, 1)))
| |
|ИНДЕКСИРОВАТЬ ПО
| Регистратор
|
|; |;
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ ВТЗаблокированоРегистратор"; |УНИЧТОЖИТЬ ВТЗаблокированоРегистратор"; // @query-part
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"#ТаблицаДвиженийРегистра", ПолноеИмяРегистра); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"#ТаблицаДвиженийРегистра", ПолноеИмяРегистра);
Иначе Иначе
@@ -3490,7 +3518,7 @@
Если ОбластиДанных <> Неопределено Тогда Если ОбластиДанных <> Неопределено Тогда
УсловияЗапроса.Добавить("ОбработчикиОбновления.ОбластьДанныхВспомогательныеДанные В (&ОбластиДанных)"); УсловияЗапроса.Добавить("ОбработчикиОбновления.ОбластьДанныхВспомогательныеДанные В (&ОбластиДанных)");
Запрос.УстановитьПараметр("ОбластиДанных", ОбластиДанных); Запрос.УстановитьПараметр("ОбластиДанных", ОбластиДанных);
Если Отбор.ОбластиДанных.Найти(0) = Неопределено Тогда Если Отбор.Свойство("ОбластиДанных") И Отбор.ОбластиДанных.Найти(0) = Неопределено Тогда
УсловиеОбработчиковОбщихДанных = "ЛОЖЬ"; УсловиеОбработчиковОбщихДанных = "ЛОЖЬ";
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.5.132"; Описание.Версия = "3.1.5.146";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -177,7 +177,7 @@
// РазрабатываемыеПодсистемы - Массив из Строка - имена разрабатываемых подсистемы в текущей конфигурации // РазрабатываемыеПодсистемы - Массив из Строка - имена разрабатываемых подсистемы в текущей конфигурации
// имя подсистемы в том виде, в котором оно задано в общем модуле ОбновлениеИнформационнойБазыХХХ // имя подсистемы в том виде, в котором оно задано в общем модуле ОбновлениеИнформационнойБазыХХХ
// //
Процедура ПриФормированиеСпискаРазрабатываемыхПодсистем(РазрабатываемыеПодсистемы) Экспорт Процедура ПриФормированииСпискаРазрабатываемыхПодсистем(РазрабатываемыеПодсистемы) Экспорт
@@ -243,5 +243,16 @@
КонецПроцедуры КонецПроцедуры
#Область УстаревшиеПроцедурыИФункции
// Устарела. Следует использовать
// ОбновлениеИнформационнойБазыПереопределяемый.ПриФормированииСпискаРазрабатываемыхПодсистем
//
Процедура ПриФормированиеСпискаРазрабатываемыхПодсистем(РазрабатываемыеПодсистемы) Экспорт
КонецПроцедуры
#КонецОбласти
#КонецОбласти #КонецОбласти
@@ -6712,60 +6712,47 @@
Функция КоличествоОбработчиковНаТекущуюВерсию(ИтерацииОбновления, РежимВыполненияОтложенногоОбновления) Функция КоличествоОбработчиковНаТекущуюВерсию(ИтерацииОбновления, РежимВыполненияОтложенногоОбновления)
УчитыватьПроцедурыРегистрации = Истина;
Если РежимВыполненияОтложенногоОбновления = "Отложенно" Тогда
КлиентСервер = Не ОбщегоНазначения.ИнформационнаяБазаФайловая();
Коробка = Не ОбщегоНазначения.РазделениеВключено();
Если КлиентСервер И Коробка Тогда
// Регистрация данных выполняется позже.
УчитыватьПроцедурыРегистрации = Ложь;
КонецЕсли;
КонецЕсли;
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("РежимВыполнения", Перечисления.РежимыВыполненияОбработчиков.Отложенно); Запрос.УстановитьПараметр("РежимВыполнения", Перечисления.РежимыВыполненияОбработчиков.Отложенно);
Запрос.УстановитьПараметр("РежимВыполненияОтложенногоОбработчика", Перечисления.РежимыВыполненияОтложенныхОбработчиков.Параллельно); Запрос.УстановитьПараметр("РежимВыполненияОтложенногоОбработчика", Перечисления.РежимыВыполненияОтложенныхОбработчиков.Параллельно);
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ
| КОЛИЧЕСТВО(ОбработчикиОбновления.ИмяОбработчика) КАК Количество | ОбработчикиОбновления.ИмяОбработчика КАК ИмяОбработчика
|ИЗ |ИЗ
| РегистрСведений.ОбработчикиОбновления КАК ОбработчикиОбновления | РегистрСведений.ОбработчикиОбновления КАК ОбработчикиОбновления
|ГДЕ |ГДЕ
| ОбработчикиОбновления.РежимВыполнения <> &РежимВыполнения | ОбработчикиОбновления.РежимВыполнения <> &РежимВыполнения";
| КоличествоРазделенныхОбработчиков = Запрос.Выполнить().Выгрузить().Количество();
|ОБЪЕДИНИТЬ ВСЕ
| Запрос.Текст =
|ВЫБРАТЬ "ВЫБРАТЬ
| КОЛИЧЕСТВО(ОбработчикиОбновленияОбщихДанных.ИмяОбработчика) КАК Количество | ОбработчикиОбновленияОбщихДанных.ИмяОбработчика КАК ИмяОбработчика
|ИЗ |ИЗ
| РегистрСведений.ОбработчикиОбновленияОбщихДанных КАК ОбработчикиОбновленияОбщихДанных | РегистрСведений.ОбработчикиОбновленияОбщихДанных КАК ОбработчикиОбновленияОбщихДанных";
| КоличествоНеразделенныхОбработчиков = Запрос.Выполнить().Выгрузить().Количество();
|ОБЪЕДИНИТЬ ВСЕ
| Запрос.Текст =
|ВЫБРАТЬ "ВЫБРАТЬ
| КОЛИЧЕСТВО(ОбработчикиОбновления.ИмяОбработчика) КАК Количество | ОбработчикиОбновления.ИмяОбработчика КАК ИмяОбработчика
|ИЗ |ИЗ
| РегистрСведений.ОбработчикиОбновления КАК ОбработчикиОбновления | РегистрСведений.ОбработчикиОбновления КАК ОбработчикиОбновления
|ГДЕ |ГДЕ
| ОбработчикиОбновления.РежимВыполнения = &РежимВыполнения | ОбработчикиОбновления.РежимВыполнения = &РежимВыполнения";
| КоличествоОтложенныхОбработчиков = Запрос.Выполнить().Выгрузить().Количество();
|ОБЪЕДИНИТЬ ВСЕ
| Запрос.Текст =
|ВЫБРАТЬ "ВЫБРАТЬ
| КОЛИЧЕСТВО(ОбработчикиОбновления.ИмяОбработчика) КАК Количество | ОбработчикиОбновления.ИмяОбработчика КАК ИмяОбработчика
|ИЗ |ИЗ
| РегистрСведений.ОбработчикиОбновления КАК ОбработчикиОбновления | РегистрСведений.ОбработчикиОбновления КАК ОбработчикиОбновления
|ГДЕ |ГДЕ
| ОбработчикиОбновления.РежимВыполненияОтложенногоОбработчика = &РежимВыполненияОтложенногоОбработчика"; | ОбработчикиОбновления.РежимВыполненияОтложенногоОбработчика = &РежимВыполненияОтложенногоОбработчика";
Результат = Запрос.Выполнить().Выгрузить(); КоличествоПроцедурРегистрации = Запрос.Выполнить().Выгрузить().Количество();
КоличествоОбработчиков = Результат[0].Количество + Результат[1].Количество; КоличествоОбработчиков = КоличествоРазделенныхОбработчиков + КоличествоНеразделенныхОбработчиков + КоличествоПроцедурРегистрации;
Если РежимВыполненияОтложенногоОбновления = "Монопольно" Тогда Если РежимВыполненияОтложенногоОбновления = "Монопольно" Тогда
КоличествоОбработчиков = КоличествоОбработчиков + Результат[2].Количество; КоличествоОбработчиков = КоличествоОбработчиков + КоличествоОтложенныхОбработчиков;
КонецЕсли;
Если УчитыватьПроцедурыРегистрации Тогда
КоличествоОбработчиков = КоличествоОбработчиков + Результат[3].Количество;
КонецЕсли; КонецЕсли;
Возврат Новый Структура("ВсегоОбработчиков, ВыполненоОбработчиков", КоличествоОбработчиков, 0); Возврат Новый Структура("ВсегоОбработчиков, ВыполненоОбработчиков", КоличествоОбработчиков, 0);
@@ -116,7 +116,8 @@
// значением Неопределено; если нет прав для работы с таблицей, то возникнет исключение; // значением Неопределено; если нет прав для работы с таблицей, то возникнет исключение;
// если Ложь, то возникнет исключение при отсутствии прав на таблицу // если Ложь, то возникнет исключение при отсутствии прав на таблицу
// или любой из реквизитов. // или любой из реквизитов.
// КодЯзыка - Строка - код языка для мультиязычного реквизита. // КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации.
// Если значение на указанном языке не заполнено, возвращается значение на языке конфигурации.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура - содержит имена (ключи) и значения затребованных реквизитов. // Структура - содержит имена (ключи) и значения затребованных реквизитов.
@@ -381,7 +382,8 @@
// если нет прав для работы с таблицей, то возникнет исключение; // если нет прав для работы с таблицей, то возникнет исключение;
// если Ложь, то возникнет исключение при отсутствии прав на таблицу // если Ложь, то возникнет исключение при отсутствии прав на таблицу
// или любой из реквизитов. // или любой из реквизитов.
// КодЯзыка - Строка - код языка для мультиязычного реквизита. // КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации.
// Если значение на указанном языке не заполнено, возвращается значение на языке конфигурации.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Произвольный - если в параметр Ссылка передана пустая ссылка, то возвращается Неопределено. // Произвольный - если в параметр Ссылка передана пустая ссылка, то возвращается Неопределено.
@@ -422,7 +424,8 @@
// будет исключен и из результата; // будет исключен и из результата;
// если Ложь, то возникнет исключение при отсутствии прав на таблицу // если Ложь, то возникнет исключение при отсутствии прав на таблицу
// или любой из реквизитов. // или любой из реквизитов.
// КодЯзыка - Строка - код языка для мультиязычного реквизита. // КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации.
// Если значение на указанном языке не заполнено, возвращается значение на языке конфигурации.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие из КлючИЗначение - список объектов и значений их реквизитов: // Соответствие из КлючИЗначение - список объектов и значений их реквизитов:
@@ -471,7 +474,7 @@
ИмяРеквизита = СокрЛП(НаборРеквизитов[Позиция]); ИмяРеквизита = СокрЛП(НаборРеквизитов[Позиция]);
Если МультиязычныеРеквизиты[ИмяРеквизита] <> Неопределено Тогда Если МультиязычныеРеквизиты[ИмяРеквизита] <> Неопределено Тогда
ИмяССуффиксом = ИмяРеквизита + СуффиксЯзыка; ИмяССуффиксом = ИмяРеквизита + СуффиксЯзыка;
НаборРеквизитов[Позиция] = ИмяССуффиксом + " КАК " + ИмяРеквизита; НаборРеквизитов[Позиция] = СтрШаблон("ВЫБОР КОГДА %1 = """" ТОГДА %2 ИНАЧЕ %1 КОНЕЦ КАК %2", ИмяССуффиксом, ИмяРеквизита);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
РеквизитыТекстЗапроса = СтрСоединить(НаборРеквизитов, ","); РеквизитыТекстЗапроса = СтрСоединить(НаборРеквизитов, ",");
@@ -533,13 +536,13 @@
ПоляТаблиц.Добавить("ПсевдонимЗаданнойТаблицы.Ссылка"); ПоляТаблиц.Добавить("ПсевдонимЗаданнойТаблицы.Ссылка");
Для Каждого Реквизит Из СтрРазделить(Реквизиты, ",") Цикл Для Каждого Реквизит Из СтрРазделить(Реквизиты, ",") Цикл
Если МультиязычныеРеквизиты[Реквизит] = Истина Тогда Если МультиязычныеРеквизиты[Реквизит] = Истина Тогда
ПоляТаблиц.Добавить("ТаблицаПредставления." + Реквизит + " КАК " + Реквизит); ПоляТаблиц.Добавить("ЕСТЬNULL(ТаблицаПредставления." + Реквизит + ", ПсевдонимЗаданнойТаблицы." + Реквизит + ") КАК " + Реквизит);
Иначе Иначе
ПоляТаблиц.Добавить(Реквизит); ПоляТаблиц.Добавить(Реквизит);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
ПоляТаблиц = СтрСоединить(ПоляТаблиц, ","); ПоляТаблиц = СтрСоединить(ПоляТаблиц, "," + Символы.ПС);
Таблицы = ПолноеИмяОбъектаМетаданных + " " + "КАК ПсевдонимЗаданнойТаблицы" + Символы.ПС Таблицы = ПолноеИмяОбъектаМетаданных + " " + "КАК ПсевдонимЗаданнойТаблицы" + Символы.ПС
+ "ЛЕВОЕ СОЕДИНЕНИЕ" + " " + ПолноеИмяОбъектаМетаданных + ".Представления КАК ТаблицаПредставления" + Символы.ПС + "ЛЕВОЕ СОЕДИНЕНИЕ" + " " + ПолноеИмяОбъектаМетаданных + ".Представления КАК ТаблицаПредставления" + Символы.ПС
@@ -626,7 +629,8 @@
// будет исключен и из результата; // будет исключен и из результата;
// если Ложь, то возникнет исключение при отсутствии прав на таблицу // если Ложь, то возникнет исключение при отсутствии прав на таблицу
// или любой из реквизитов. // или любой из реквизитов.
// КодЯзыка - Строка - код языка для мультиязычного реквизита. // КодЯзыка - Строка - код языка для мультиязычного реквизита. Значение по умолчанию - основной язык конфигурации.
// Если значение на указанном языке не заполнено, возвращается значение на языке конфигурации.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие из КлючИЗначение: // Соответствие из КлючИЗначение:
@@ -2345,7 +2349,7 @@
// * Данные - ТаблицаЗначений - преобразованная из XML таблица. // * Данные - ТаблицаЗначений - преобразованная из XML таблица.
// //
// Пример: // Пример:
// КлассификаторТаблица = ПрочитатьXMLВТаблицу( // КлассификаторТаблица = ОбщегоНазначения.ПрочитатьXMLВТаблицу(
// Обработки.ЗагрузкаКурсовВалют.ПолучитьМакет("ОбщероссийскийКлассификаторВалют").ПолучитьТекст()).Данные; // Обработки.ЗагрузкаКурсовВалют.ПолучитьМакет("ОбщероссийскийКлассификаторВалют").ПолучитьТекст()).Данные;
// //
Функция ПрочитатьXMLВТаблицу(Знач XML) Экспорт Функция ПрочитатьXMLВТаблицу(Знач XML) Экспорт
@@ -5726,6 +5730,9 @@
// Устарела. Следует использовать // Устарела. Следует использовать
// ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(). // ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных().
// //
// Возвращаемое значение:
// Булево
//
Функция ИспользованиеРазделителяСеанса() Экспорт Функция ИспользованиеРазделителяСеанса() Экспорт
Если Не РазделениеВключено() Тогда Если Не РазделениеВключено() Тогда
@@ -6855,6 +6862,15 @@
ПарыЗамен); ПарыЗамен);
КонецЦикла; КонецЦикла;
Для Каждого Реквизит Из Описание.РеквизитыАдресации Цикл
Имя = Реквизит.Ключ;
ЦелеваяСсылка = ПарыЗамен[ Объект[Имя] ];
Если ЦелеваяСсылка <> Неопределено Тогда
ЗарегистрироватьФактЗамены(Объект, Объект[Имя], ЦелеваяСсылка, "РеквизитыАдресации", Имя);
Объект[Имя] = ЦелеваяСсылка;
КонецЕсли;
КонецЦикла;
КонецПроцедуры КонецПроцедуры
Процедура ЗарегистрироватьФактЗамены(Объект, СсылкаДубля, СсылкаОригинала, ВидРеквизита, ИмяРеквизита, Индекс = Неопределено, ИмяКолонки = Неопределено) Процедура ЗарегистрироватьФактЗамены(Объект, СсылкаДубля, СсылкаОригинала, ВидРеквизита, ИмяРеквизита, Индекс = Неопределено, ИмяКолонки = Неопределено)
@@ -7172,6 +7188,7 @@
// Возвращаемое значение: // Возвращаемое значение:
// Структура: // Структура:
// * СтандартныеРеквизиты - Структура // * СтандартныеРеквизиты - Структура
// * РеквизитыАдресации - Структура
// * Реквизиты - Структура // * Реквизиты - Структура
// * СтандартныеТабличныеЧасти - Массив из Структура: // * СтандартныеТабличныеЧасти - Массив из Структура:
// ** Имя - Строка // ** Имя - Строка
@@ -7181,12 +7198,12 @@
// ** СписокПолей - Структура // ** СписокПолей - Структура
// * МожетБытьПроведен - Булево // * МожетБытьПроведен - Булево
// //
Функция ОписаниеОбъекта(Знач Мета) Функция ОписаниеОбъекта(Знач ОбъектМетаданных)
ТипВсеСсылки = ОписаниеТипаВсеСсылки(); ТипВсеСсылки = ОписаниеТипаВсеСсылки();
Кандидаты = Новый Структура("Реквизиты, СтандартныеРеквизиты, ТабличныеЧасти, СтандартныеТабличныеЧасти"); Кандидаты = Новый Структура("Реквизиты, СтандартныеРеквизиты, ТабличныеЧасти, СтандартныеТабличныеЧасти, РеквизитыАдресации");
ЗаполнитьЗначенияСвойств(Кандидаты, Мета); ЗаполнитьЗначенияСвойств(Кандидаты, ОбъектМетаданных);
ОписаниеОбъекта = Новый Структура; ОписаниеОбъекта = Новый Структура;
@@ -7245,7 +7262,16 @@
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
ОписаниеОбъекта.Вставить("МожетБытьПроведен", Метаданные.Документы.Содержит(Мета)); ОписаниеОбъекта.Вставить("РеквизитыАдресации", Новый Структура);
Если Кандидаты.РеквизитыАдресации <> Неопределено Тогда
Для Каждого Реквизит Из Кандидаты.РеквизитыАдресации Цикл
Если ОписанияТиповПересекаются(Реквизит.Тип, ТипВсеСсылки) Тогда
ОписаниеОбъекта.РеквизитыАдресации.Вставить(Реквизит.Имя);
КонецЕсли;
КонецЦикла;
КонецЕсли;
ОписаниеОбъекта.Вставить("МожетБытьПроведен", Метаданные.Документы.Содержит(ОбъектМетаданных));
Возврат ОписаниеОбъекта; Возврат ОписаниеОбъекта;
КонецФункции КонецФункции
@@ -495,8 +495,8 @@
// //
// Пример: // Пример:
// //
// Если НЕ ПроверитьТипПараметраКоманды(Элементы.Список.ВыделенныеСтроки, // Если НЕ ОбщегоНазначенияКлиент.ПроверитьТипПараметраКоманды(
// Тип("ЗадачаСсылка.ЗадачаИсполнителя")) Тогда // Элементы.Список.ВыделенныеСтроки, Тип("ЗадачаСсылка.ЗадачаИсполнителя")) Тогда
// Возврат; // Возврат;
// КонецЕсли; // КонецЕсли;
// ... // ...
@@ -574,7 +574,7 @@
// Пример: // Пример:
// //А = [1, 3, 5, 7]; // //А = [1, 3, 5, 7];
// //В = [3, 7, 9]; // //В = [3, 7, 9];
// Результат = РазностьМассивов(А, В); // Результат = ОбщегоНазначенияКлиентСервер.РазностьМассивов(А, В);
// //Результат = [1, 5]; // //Результат = [1, 5];
// //
Функция РазностьМассивов(Знач Массив, Знач МассивВычитания) Экспорт Функция РазностьМассивов(Знач Массив, Знач МассивВычитания) Экспорт
@@ -319,26 +319,6 @@
// // Обработка события. // // Обработка события.
// КонецПроцедуры // КонецПроцедуры
// //
// ** ДополнитьСвязиОбъектовМетаданных - Булево - если Истина, то в модуле объекта отчета
// следует определить обработчик события по шаблону:
//
// // Дополнительные связи настроек этого отчета.
// // В данной процедуре следует описать дополнительные зависимости объектов метаданных
// // конфигурации, которые будут использоваться для связи настроек отчетов.
// //
// // Параметры:
// // СвязиОбъектовМетаданных - ТаблицаЗначений - таблица связей.
// // * ПодчиненныйРеквизит - Строка - имя реквизита подчиненного объекта метаданных.
// // * ПодчиненныйТип - Тип - тип подчиненного объекта метаданных.
// // * ВедущийТип - Тип - тип ведущего объекта метаданных.
// //
// // См. также:
// // ОтчетыПереопределяемый.ДополнитьСвязиОбъектовМетаданных().
// //
// Процедура ДополнитьСвязиОбъектовМетаданных(СвязиОбъектовМетаданных) Экспорт
// // Обработка события.
// КонецПроцедуры
//
// ** ПриОпределенииОсновныхПолей - Булево - если Истина, то в модуле объекта отчета // ** ПриОпределенииОсновныхПолей - Булево - если Истина, то в модуле объекта отчета
// следует определить обработчик события по шаблону: // следует определить обработчик события по шаблону:
// //
@@ -386,7 +366,6 @@
События.Вставить("ПослеЗаполненияПанелиБыстрыхНастроек", Ложь); События.Вставить("ПослеЗаполненияПанелиБыстрыхНастроек", Ложь);
События.Вставить("ПриОпределенииПараметровВыбора", Ложь); События.Вставить("ПриОпределенииПараметровВыбора", Ложь);
События.Вставить("ПриОпределенииИспользуемыхТаблиц", Ложь); События.Вставить("ПриОпределенииИспользуемыхТаблиц", Ложь);
События.Вставить("ДополнитьСвязиОбъектовМетаданных", Ложь);
События.Вставить("ПриОпределенииСвойствЭлементовФормыНастроек", Ложь); События.Вставить("ПриОпределенииСвойствЭлементовФормыНастроек", Ложь);
События.Вставить("ПриОпределенииОсновныхПолей", Ложь); События.Вставить("ПриОпределенииОсновныхПолей", Ложь);
@@ -104,21 +104,6 @@
КонецПроцедуры
// В данной процедуре следует описать дополнительные зависимости объектов метаданных
// конфигурации, которые будут использоваться для связи настроек отчетов.
//
// Параметры:
// СвязиОбъектовМетаданных - ТаблицаЗначений:
// * ПодчиненныйРеквизит - Строка - имя реквизита подчиненного объекта метаданных.
// * ПодчиненныйТип - Тип - тип подчиненного объекта метаданных.
// * ВедущийТип - Тип - тип ведущего объекта метаданных.
//
Процедура ДополнитьСвязиОбъектовМетаданных(СвязиОбъектовМетаданных) Экспорт
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -810,7 +810,7 @@
Вариант = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Контекст, "ВариантСсылка"); Вариант = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Контекст, "ВариантСсылка");
Если ЗначениеЗаполнено(Вариант) Тогда Если ЗначениеЗаполнено(Вариант) Тогда
Заголовок.Значение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Вариант, "Наименование"); Заголовок.Значение = Строка(Вариант);
КонецЕсли; КонецЕсли;
Если ЗначениеЗаполнено(Заголовок.Значение) Если ЗначениеЗаполнено(Заголовок.Значение)
@@ -4077,12 +4077,12 @@
Если МассивПеремещенныхПользователей.Количество() = 0 И МассивНеПеремещенныхПользователей.Количество() = 0 Тогда Если МассивПеремещенныхПользователей.Количество() = 0 И МассивНеПеремещенныхПользователей.Количество() = 0 Тогда
Если МассивПользователей.Количество() = 1 Тогда Если МассивПользователей.Количество() = 1 Тогда
ТекстСообщения = НСтр("ru = 'Пользователь ""%1"" уже включен в группу ""%2"".'"); ТекстСообщения = НСтр("ru = 'Пользователь ""%1"" уже включен в группу ""%2"".'");
ИмяПеремещаемогоПользователя = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(МассивПользователей[0], "Наименование"); ИмяПеремещаемогоПользователя = Строка(МассивПользователей[0]);
Иначе Иначе
ТекстСообщения = НСтр("ru = 'Все выбранные пользователи уже включены в группу ""%2"".'"); ТекстСообщения = НСтр("ru = 'Все выбранные пользователи уже включены в группу ""%2"".'");
ИмяПеремещаемогоПользователя = ""; ИмяПеремещаемогоПользователя = "";
КонецЕсли; КонецЕсли;
НаименованиеГруппы = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ГруппаПриемник, "Наименование"); НаименованиеГруппы = Строка(ГруппаПриемник);
СообщениеПользователю.Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, СообщениеПользователю.Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения,
ИмяПеремещаемогоПользователя, НаименованиеГруппы); ИмяПеремещаемогоПользователя, НаименованиеГруппы);
СообщениеПользователю.ЕстьОшибки = Истина; СообщениеПользователю.ЕстьОшибки = Истина;
@@ -4211,7 +4211,7 @@
Перемещение, МассивНеПеремещенныхПользователей, ГруппаИсточник = Неопределено) Экспорт Перемещение, МассивНеПеремещенныхПользователей, ГруппаИсточник = Неопределено) Экспорт
КоличествоПользователей = МассивПользователей.Количество(); КоличествоПользователей = МассивПользователей.Количество();
НаименованиеГруппы = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ГруппаПриемник, "Наименование"); НаименованиеГруппы = Строка(ГруппаПриемник);
СообщениеПользователю = Неопределено; СообщениеПользователю = Неопределено;
КоличествоНеПеремещенныхПользователей = МассивНеПеремещенныхПользователей.Количество(); КоличествоНеПеремещенныхПользователей = МассивНеПеремещенныхПользователей.Количество();
@@ -4284,13 +4284,13 @@
Если КоличествоПользователей = 1 Тогда Если КоличествоПользователей = 1 Тогда
СтрокаОбъект = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(МассивПользователей[0], "Наименование"); СтрокаОбъект = Строка(МассивПользователей[0]);
Если ГруппаПриемник = Справочники.ГруппыПользователей.ВсеПользователи Если ГруппаПриемник = Справочники.ГруппыПользователей.ВсеПользователи
Или ГруппаПриемник = Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи Тогда Или ГруппаПриемник = Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи Тогда
СообщениеПользователю = НСтр("ru = '""%1"" исключен из группы ""%2""'"); СообщениеПользователю = НСтр("ru = '""%1"" исключен из группы ""%2""'");
НаименованиеГруппы = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ГруппаИсточник, "Наименование"); НаименованиеГруппы = Строка(ГруппаИсточник);
ИначеЕсли Перемещение Тогда ИначеЕсли Перемещение Тогда
СообщениеПользователю = НСтр("ru = '""%1"" перемещен в группу ""%2""'"); СообщениеПользователю = НСтр("ru = '""%1"" перемещен в группу ""%2""'");
@@ -4306,7 +4306,7 @@
Если ГруппаПриемник = Справочники.ГруппыПользователей.ВсеПользователи Тогда Если ГруппаПриемник = Справочники.ГруппыПользователей.ВсеПользователи Тогда
СообщениеПользователю = НСтр("ru = '%1 исключены из группы ""%2""'"); СообщениеПользователю = НСтр("ru = '%1 исключены из группы ""%2""'");
НаименованиеГруппы = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ГруппаИсточник, "Наименование"); НаименованиеГруппы = Строка(ГруппаИсточник);
ИначеЕсли Перемещение Тогда ИначеЕсли Перемещение Тогда
СообщениеПользователю = НСтр("ru = '%1 перемещены в группу ""%2""'"); СообщениеПользователю = НСтр("ru = '%1 перемещены в группу ""%2""'");
@@ -133,7 +133,7 @@
// //
Функция ПояснениеНедействительногоБанка(Банк) Экспорт Функция ПояснениеНедействительногоБанка(Банк) Экспорт
НаименованиеБанка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Банк, "Наименование"); НаименованиеБанка = Строка(Банк);
ТекстЗапроса = ТекстЗапроса =
"ВЫБРАТЬ "ВЫБРАТЬ
@@ -423,7 +423,7 @@
| СпрВалюты.ФормулаРасчетаКурса ПОДОБНО &СимвольныйКод"; | СпрВалюты.ФормулаРасчетаКурса ПОДОБНО &СимвольныйКод";
Запрос.УстановитьПараметр("ВалютаБазовая", ВалютаБазовая); Запрос.УстановитьПараметр("ВалютаБазовая", ВалютаБазовая);
Запрос.УстановитьПараметр("СимвольныйКод", "%" + ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВалютаБазовая, "Наименование") + "%"); Запрос.УстановитьПараметр("СимвольныйКод", "%" + Строка(ВалютаБазовая) + "%");
ЗависимыеВалюты = Запрос.Выполнить().Выгрузить(); ЗависимыеВалюты = Запрос.Выполнить().Выгрузить();
@@ -1016,6 +1016,10 @@
ПоказатьПредупреждение(, Результат.ОписаниеОшибки); ПоказатьПредупреждение(, Результат.ОписаниеОшибки);
КонецЕсли; КонецЕсли;
Если Результат.КодВозврата <> 0 Тогда
ПоказатьПредупреждение(, Результат.ПотокОшибок);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
Процедура ПоказатьВопросУстановкиКомпонентыСканирования(Результат, КомпонентаУстановлена) Экспорт Процедура ПоказатьВопросУстановкиКомпонентыСканирования(Результат, КомпонентаУстановлена) Экспорт
@@ -962,6 +962,17 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
Процедура УстановитьУниверсальноеВремяИзменения(ПутьКФайлу, НовоеВремяИзменения)
Если НЕ ЗначениеЗаполнено(НовоеВремяИзменения) Тогда
Возврат;
КонецЕсли;
Файл = Новый Файл(ПутьКФайлу);
Если Файл.Существует() Тогда
Файл.УстановитьУниверсальноеВремяИзменения(НовоеВремяИзменения);
КонецЕсли;
КонецПроцедуры
// Возвращает Истина, если файл с таким расширением можно загружать. // Возвращает Истина, если файл с таким расширением можно загружать.
Функция ПроверитьРасширениеФайлаДляЗагрузки(РасширениеФайла, ВызыватьИсключение = Истина) Функция ПроверитьРасширениеФайлаДляЗагрузки(РасширениеФайла, ВызыватьИсключение = Истина)
@@ -2800,8 +2811,8 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ВременныйФайлНешифрованный = Новый Файл(ПараметрыВыполнения.ДиалогПолноеИмяФайла); УстановитьУниверсальноеВремяИзменения(ПараметрыВыполнения.ДиалогПолноеИмяФайла,
ВременныйФайлНешифрованный.УстановитьУниверсальноеВремяИзменения(ПараметрыВыполнения.ВремяИзмененияВыбранное); ПараметрыВыполнения.ВремяИзмененияВыбранное);
ПараметрыВыполнения.ФайлЗашифрован = Ложь; ПараметрыВыполнения.ФайлЗашифрован = Ложь;
@@ -5560,8 +5571,8 @@
КонецЕсли; КонецЕсли;
// Установим время изменения файла таким, как оно стоит в текущей версии. // Установим время изменения файла таким, как оно стоит в текущей версии.
ФайлНаДиске = Новый Файл(ПараметрыВыполнения.ПолноеИмяФайла); УстановитьУниверсальноеВремяИзменения(ПараметрыВыполнения.ПолноеИмяФайла,
ФайлНаДиске.УстановитьУниверсальноеВремяИзменения(ПараметрыВыполнения.ВремяИзмененияУниверсальное); ПараметрыВыполнения.ВремяИзмененияУниверсальное);
ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловЗавершение(ПараметрыВыполнения); ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловЗавершение(ПараметрыВыполнения);
@@ -6859,9 +6870,7 @@
УдалитьИзВременногоХранилища(АдресФайла); УдалитьИзВременногоХранилища(АдресФайла);
КонецЕсли; КонецЕсли;
НовыйФайл = Новый Файл(ПолноеИмяФайла); УстановитьУниверсальноеВремяИзменения(ПолноеИмяФайла,
НовыйФайл.УстановитьУниверсальноеВремяИзменения(
ПараметрыВыполнения.ДанныеФайла.ДатаМодификацииУниверсальная); ПараметрыВыполнения.ДанныеФайла.ДатаМодификацииУниверсальная);
КонецЕсли; КонецЕсли;
@@ -10764,8 +10773,7 @@
Если ПолучитьФайлы(ПолучаемыеФайлы, ПолученныеФайлы, , Ложь) Тогда Если ПолучитьФайлы(ПолучаемыеФайлы, ПолученныеФайлы, , Ложь) Тогда
ПолноеИмяФайлаНаКлиенте = ПолученныеФайлы[0].ПолноеИмя; ПолноеИмяФайлаНаКлиенте = ПолученныеФайлы[0].ПолноеИмя;
Файл = Новый Файл(ПолноеИмяФайлаНаКлиенте); УстановитьУниверсальноеВремяИзменения(ПолноеИмяФайлаНаКлиенте, ДатаМодификацииУниверсальная);
Файл.УстановитьУниверсальноеВремяИзменения(ДатаМодификацииУниверсальная);
Возврат Истина; Возврат Истина;
КонецЕсли; КонецЕсли;
@@ -13,6 +13,11 @@
// //
Функция ПолучитьУникальноеИмяСПутем(ИмяКаталога, ИмяФайла) Экспорт Функция ПолучитьУникальноеИмяСПутем(ИмяКаталога, ИмяФайла) Экспорт
ОбщегоНазначенияКлиентСервер.Проверить(
ЗначениеЗаполнено(ИмяКаталога),
НСтр("ru='Каталог должен быть заполнен.'"),
"ПолучитьУникальноеИмяСПутем");
ИтоговыйПуть = ""; ИтоговыйПуть = "";
Счетчик = 0; Счетчик = 0;
@@ -108,6 +108,8 @@
ВесьМассив.Добавить(НовыйАтрибут("1.2.643.100.3", "SNILS", 14, "СНИЛС", "10")); ВесьМассив.Добавить(НовыйАтрибут("1.2.643.100.3", "SNILS", 14, "СНИЛС", "10"));
ВесьМассив.Добавить(НовыйАтрибут("1.2.643.3.131.1.1", "INN", 12, "ИНН", "10")); ВесьМассив.Добавить(НовыйАтрибут("1.2.643.3.131.1.1", "INN", 12, "ИНН", "10"));
ВесьМассив.Добавить(НовыйАтрибут("1.2.840.113549.1.9.1", "E", 128, "ЭлектроннаяПочта", "10")); ВесьМассив.Добавить(НовыйАтрибут("1.2.840.113549.1.9.1", "E", 128, "ЭлектроннаяПочта", "10"));
ВесьМассив.Добавить(НовыйАтрибут("1.2.643.100.4", "INNLE", 10, "ИННЮЛ", "10"));
ВесьМассив.Добавить(НовыйАтрибут("1.2.643.100.114", "identificationKind", 1, "ВидИдентификации", "10"));
ВесьМассив.Добавить(НовыйАтрибут("2.5.4.5", "SerialNumber", 0, "СерийныйНомер")); ВесьМассив.Добавить(НовыйАтрибут("2.5.4.5", "SerialNumber", 0, "СерийныйНомер"));
ВесьМассив.Добавить(НовыйАтрибут("2.5.4.13", "Description", 0, "Описание")); ВесьМассив.Добавить(НовыйАтрибут("2.5.4.13", "Description", 0, "Описание"));
@@ -108,25 +108,9 @@
Тело.SenderId, Тело.SenderId,
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭтотУзелОбменаСообщениями, "Код")); ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭтотУзелОбменаСообщениями, "Код"));
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКорреспондента(), ОтправитьОтветноеСообщениеОбОшибкеПодключения(Сообщение, Отправитель, ПредставлениеОшибки);
УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки);
ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение(
СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПодключенияКорреспондента());
ОтветноеСообщение.Body.RecipientId = Тело.RecipientId;
ОтветноеСообщение.Body.SenderId = Тело.SenderId;
ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки;
НачатьТранзакцию();
Попытка
МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Возврат; Возврат;
КонецЕсли; КонецЕсли;
// Проверяем то, что корреспондент уже был подключен ранее. // Проверяем то, что корреспондент уже был подключен ранее.
@@ -161,25 +145,9 @@
НСтр("ru = 'Ошибка подключения конечной точки корреспондента обмена. Код конечной точки корреспондента обмена %1.'"), НСтр("ru = 'Ошибка подключения конечной точки корреспондента обмена. Код конечной точки корреспондента обмена %1.'"),
Тело.RecipientId); Тело.RecipientId);
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКорреспондента(), ОтправитьОтветноеСообщениеОбОшибкеПодключения(Сообщение, Отправитель, ПредставлениеОшибки);
УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки);
ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение(
СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПодключенияКорреспондента());
ОтветноеСообщение.Body.RecipientId = Тело.RecipientId;
ОтветноеСообщение.Body.SenderId = Тело.SenderId;
ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки;
НачатьТранзакцию();
Попытка
МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ПодключенныйКорреспондентКод = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПодключенныйКорреспондент, "Код"); ПодключенныйКорреспондентКод = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПодключенныйКорреспондент, "Код");
@@ -196,25 +164,9 @@
Тело.RecipientId, Тело.RecipientId,
ПодключенныйКорреспондентКод); ПодключенныйКорреспондентКод);
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКорреспондента(), ОтправитьОтветноеСообщениеОбОшибкеПодключения(Сообщение, Отправитель, ПредставлениеОшибки);
УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки);
ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение(
СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПодключенияКорреспондента());
ОтветноеСообщение.Body.RecipientId = Тело.RecipientId;
ОтветноеСообщение.Body.SenderId = Тело.SenderId;
ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки;
НачатьТранзакцию();
Попытка
МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Возврат; Возврат;
КонецЕсли; КонецЕсли;
НачатьТранзакцию(); НачатьТранзакцию();
@@ -266,25 +218,9 @@
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭтотУзелОбменаСообщениями, "Код"), ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭтотУзелОбменаСообщениями, "Код"),
Тело.RecipientId); Тело.RecipientId);
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКорреспондента(), ОтправитьОтветноеСообщениеОбОшибкеПодключения(Сообщение, Отправитель, ПредставлениеОшибки);
УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки);
ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение(
СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПодключенияКорреспондента());
ОтветноеСообщение.Body.RecipientId = Тело.RecipientId;
ОтветноеСообщение.Body.SenderId = Тело.SenderId;
ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки;
НачатьТранзакцию();
Попытка
МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Возврат; Возврат;
КонецЕсли; КонецЕсли;
КорреспондентОбъект = Корреспондент.ПолучитьОбъект(); КорреспондентОбъект = Корреспондент.ПолучитьОбъект();
@@ -370,4 +306,38 @@
КонецФункции КонецФункции
Процедура ОтправитьОтветноеСообщениеОбОшибкеПодключения(Сообщение, Отправитель, ПредставлениеОшибки)
НомерПопытки = Неопределено;
Если Сообщение.Установлено("AdditionalInfo") Тогда
ДополнительныеСвойства = СериализаторXDTO.ПрочитатьXDTO(Сообщение.AdditionalInfo);
ДополнительныеСвойства.Свойство("НомерПопытки", НомерПопытки);
КонецЕсли;
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКорреспондента(),
УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки);
МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса");
ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение(
СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПодключенияКорреспондента());
ДополнительныеСвойства = Новый Структура;
ДополнительныеСвойства.Вставить("НомерПопытки", НомерПопытки);
ОтветноеСообщение.AdditionalInfo = СериализаторXDTO.ЗаписатьXDTO(ДополнительныеСвойства);
ОтветноеСообщение.Body.RecipientId = Сообщение.Body.RecipientId;
ОтветноеСообщение.Body.SenderId = Сообщение.Body.SenderId;
ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки;
НачатьТранзакцию();
Попытка
МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -255,7 +255,7 @@
Если Отказ Тогда Если Отказ Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В процессе загрузки данных из программы ""%1"" возникли ошибки.'"), НСтр("ru = 'В процессе загрузки данных из программы ""%1"" возникли ошибки.'"),
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Корреспондент, "Наименование")); Строка(Корреспондент));
КонецЕсли; КонецЕсли;
// Отправляем ответное сообщение об успешной операции. // Отправляем ответное сообщение об успешной операции.
@@ -305,7 +305,7 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Для справочника ИдентификаторыОбъектовМетаданных. // Для справочника ИдентификаторыОбъектовМетаданных.
// Только для внутреннего использования. // См. Справочники.ИдентификаторыОбъектовМетаданных.ПредставлениеИдентификатора
Функция ПредставлениеИдентификатораОбъектаМетаданных(Ссылка) Экспорт Функция ПредставлениеИдентификатораОбъектаМетаданных(Ссылка) Экспорт
Возврат Справочники.ИдентификаторыОбъектовМетаданных.ПредставлениеИдентификатора(Ссылка); Возврат Справочники.ИдентификаторыОбъектовМетаданных.ПредставлениеИдентификатора(Ссылка);
@@ -106,7 +106,7 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Для справочника ИдентификаторыОбъектовМетаданных. // Для справочника ИдентификаторыОбъектовМетаданных.
// Только для внутреннего использования. // См. Справочники.ИдентификаторыОбъектовМетаданных.ПредставлениеИдентификатора
Функция ПредставлениеИдентификатораОбъектаМетаданных(Ссылка) Экспорт Функция ПредставлениеИдентификатораОбъектаМетаданных(Ссылка) Экспорт
Возврат СтандартныеПодсистемыВызовСервера.ПредставлениеИдентификатораОбъектаМетаданных(Ссылка); Возврат СтандартныеПодсистемыВызовСервера.ПредставлениеИдентификатораОбъектаМетаданных(Ссылка);
@@ -521,7 +521,7 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Для справочника ИдентификаторыОбъектовМетаданных. // Для справочника ИдентификаторыОбъектовМетаданных.
// Только для внутреннего использования. // См. Справочники.ИдентификаторыОбъектовМетаданных.КэшИдентификаторовОбъектовМетаданных
Функция КэшИдентификаторовОбъектовМетаданных(КлючДанныхПовторногоИспользования) Экспорт Функция КэшИдентификаторовОбъектовМетаданных(КлючДанныхПовторногоИспользования) Экспорт
Возврат Справочники.ИдентификаторыОбъектовМетаданных.КэшИдентификаторовОбъектовМетаданных( Возврат Справочники.ИдентификаторыОбъектовМетаданных.КэшИдентификаторовОбъектовМетаданных(
@@ -529,29 +529,21 @@
КонецФункции КонецФункции
// Только для внутреннего использования. // См. Справочники.ИдентификаторыОбъектовМетаданных.ТаблицаПереименованияДляТекущейВерсии
//
// Возвращаемое значение:
// см. Справочники.ИдентификаторыОбъектовМетаданных.ТаблицаПереименованияДляТекущейВерсии
//
Функция ТаблицаПереименованияДляТекущейВерсии() Экспорт Функция ТаблицаПереименованияДляТекущейВерсии() Экспорт
Возврат Справочники.ИдентификаторыОбъектовМетаданных.ТаблицаПереименованияДляТекущейВерсии(); Возврат Справочники.ИдентификаторыОбъектовМетаданных.ТаблицаПереименованияДляТекущейВерсии();
КонецФункции КонецФункции
// Только для внутреннего использования. // См. Справочники.ИдентификаторыОбъектовМетаданных.СвойстваКоллекцийОбъектовМетаданных
Функция СвойстваКоллекцийОбъектовМетаданных(ОбъектыРасширений = Ложь) Экспорт Функция СвойстваКоллекцийОбъектовМетаданных(ОбъектыРасширений = Ложь) Экспорт
Возврат Справочники.ИдентификаторыОбъектовМетаданных.СвойстваКоллекцийОбъектовМетаданных(ОбъектыРасширений); Возврат Справочники.ИдентификаторыОбъектовМетаданных.СвойстваКоллекцийОбъектовМетаданных(ОбъектыРасширений);
КонецФункции КонецФункции
// Только для внутреннего использования. // См. Справочники.ИдентификаторыОбъектовМетаданных.ПредставлениеИдентификатора
//
// Возвращаемое значение:
// Строка
//
Функция ПредставлениеИдентификатораОбъектаМетаданных(Ссылка) Экспорт Функция ПредставлениеИдентификатораОбъектаМетаданных(Ссылка) Экспорт
Возврат Справочники.ИдентификаторыОбъектовМетаданных.ПредставлениеИдентификатора(Ссылка); Возврат Справочники.ИдентификаторыОбъектовМетаданных.ПредставлениеИдентификатора(Ссылка);
@@ -15207,6 +15207,7 @@
Если ТранзакцияАктивна() И ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда Если ТранзакцияАктивна() И ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
Блокировка = Новый БлокировкаДанных; Блокировка = Новый БлокировкаДанных;
Блокировка.Добавить("РегистрСведений.ОбновлениеКлючейДоступаКДанным");
Блокировка.Добавить("РегистрСведений.ОбновлениеКлючейДоступаПользователей"); Блокировка.Добавить("РегистрСведений.ОбновлениеКлючейДоступаПользователей");
Блокировка.Заблокировать(); Блокировка.Заблокировать();
КонецЕсли; КонецЕсли;
@@ -16962,12 +16963,13 @@
| НаборыГруппДоступа.ДляВнешнихПользователей = &ДляВнешнихПользователей | НаборыГруппДоступа.ДляВнешнихПользователей = &ДляВнешнихПользователей
| И НаборыГруппДоступа.ТипЭлементовНабора = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) | И НаборыГруппДоступа.ТипЭлементовНабора = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| И НаборыГруппДоступа.Пользователь В | И НаборыГруппДоступа.Пользователь В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ | (ВЫБРАТЬ
| НаборыГруппДоступа.Пользователь КАК Пользователь | ВЫРАЗИТЬ(НаборыГруппДоступа.Пользователь КАК Справочник.Пользователи) КАК Пользователь
| ИЗ | ИЗ
| Справочник.НаборыГруппДоступа КАК НаборыГруппДоступа | Справочник.НаборыГруппДоступа КАК НаборыГруппДоступа
| ГДЕ | ГДЕ
| НаборыГруппДоступа.ТипЭлементовНабора = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) | НаборыГруппДоступа.ДляВнешнихПользователей = &ДляВнешнихПользователей
| И НаборыГруппДоступа.ТипЭлементовНабора = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| СГРУППИРОВАТЬ ПО | СГРУППИРОВАТЬ ПО
| НаборыГруппДоступа.Пользователь | НаборыГруппДоступа.Пользователь
| ИМЕЮЩИЕ | ИМЕЮЩИЕ
@@ -24009,6 +24011,11 @@
Иначе Иначе
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
БлокировкаДанных = Новый БлокировкаДанных;
БлокировкаДанных.Добавить("РегистрСведений.ПараметрыОграниченияДоступа");
БлокировкаДанных.Заблокировать();
КонецЕсли;
ОписаниеВерсии = ОписаниеПоследнейВерсии(Истина); ОписаниеВерсии = ОписаниеПоследнейВерсии(Истина);
Пока Истина Цикл Пока Истина Цикл
ЗаполнитьПараметрыДляШаблонов(Запись, Параметры, ОписаниеВерсии); ЗаполнитьПараметрыДляШаблонов(Запись, Параметры, ОписаниеВерсии);
@@ -1863,7 +1863,7 @@
|ПОМЕСТИТЬ КонтактнаяИнформация |ПОМЕСТИТЬ КонтактнаяИнформация
|ИЗ |ИЗ
| &КонтактнаяИнформация КАК КонтактнаяИнформация | &КонтактнаяИнформация КАК КонтактнаяИнформация
|;"); |;");//@query-part
Если КолонкаДействуетСОтсутствует Тогда Если КолонкаДействуетСОтсутствует Тогда
Запрос.Текст = Запрос.Текст + "ВЫБРАТЬ Запрос.Текст = Запрос.Текст + "ВЫБРАТЬ
@@ -1452,7 +1452,7 @@
Если ТипЗнч(Набор) = Тип("Строка") Тогда Если ТипЗнч(Набор) = Тип("Строка") Тогда
Возврат ""; Возврат "";
Иначе Иначе
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Набор, "Наименование"); Возврат Строка(Набор);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -1465,7 +1465,7 @@
Если ТипЗнч(Набор) = Тип("Строка") Тогда Если ТипЗнч(Набор) = Тип("Строка") Тогда
Наименование = ""; Наименование = "";
Иначе Иначе
Наименование = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Набор, "Наименование"); Наименование = Строка(Набор);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -226,6 +226,10 @@
КодировкаПотоков = КодировкаСтандартныхПотоков(); КодировкаПотоков = КодировкаСтандартныхПотоков();
КонецЕсли; КонецЕсли;
Если КодировкаПотоков = "CP866" И Не ЗначениеЗаполнено(КодировкаИсполнения) Тогда
КодировкаИсполнения = КодировкаПотоков;
КонецЕсли;
КодВозврата = Неопределено; КодВозврата = Неопределено;
Если ОбщегоНазначения.ЭтоWindowsСервер() Тогда Если ОбщегоНазначения.ЭтоWindowsСервер() Тогда
@@ -379,7 +383,7 @@
Функция КодировкаСтандартныхПотоков() Функция КодировкаСтандартныхПотоков()
Если ОбщегоНазначения.ЭтоWindowsСервер() Тогда Если ОбщегоНазначения.ЭтоWindowsСервер() Тогда
Кодировка = КодировкаТекста.OEM; Кодировка = "CP866";
Иначе Иначе
Кодировка = КодировкаТекста.Системная; Кодировка = КодировкаТекста.Системная;
КонецЕсли; КонецЕсли;
@@ -539,6 +539,8 @@
// Windows: запрос UAC; // Windows: запрос UAC;
// Linux: исполнение с командой pkexec; // Linux: исполнение с командой pkexec;
// macOS, веб-клиент и мобильный клиент: будет возвращен Результат.ОписаниеОшибки. // macOS, веб-клиент и мобильный клиент: будет возвращен Результат.ОписаниеОшибки.
// * СредаИсполнения - Строка - пустая строка, если среда исполнения не Windows. Используется при
// определении недопустимых символов в строке запуска.
// //
Функция ПараметрыЗапускаПрограммы() Экспорт Функция ПараметрыЗапускаПрограммы() Экспорт
@@ -551,6 +553,9 @@
Параметры.Вставить("КодировкаИсполнения", Неопределено); Параметры.Вставить("КодировкаИсполнения", Неопределено);
Параметры.Вставить("ВыполнитьСНаивысшимиПравами", Ложь); Параметры.Вставить("ВыполнитьСНаивысшимиПравами", Ложь);
СредаИсполнения = ?(ОбщегоНазначенияКлиент.ЭтоWindowsКлиент(), "Windows", "");
Параметры.Вставить("СредаИсполнения", СредаИсполнения);
Возврат Параметры; Возврат Параметры;
КонецФункции КонецФункции
@@ -595,7 +600,8 @@
ПараметрыЗапускаПрограммы = ПараметрыЗапускаПрограммы(); ПараметрыЗапускаПрограммы = ПараметрыЗапускаПрограммы();
КонецЕсли; КонецЕсли;
СтрокаКоманды = ОбщегоНазначенияСлужебныйКлиентСервер.БезопаснаяСтрокаКоманды(КомандаЗапуска); СредаИсполнения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыЗапускаПрограммы, "СредаИсполнения", "Windows");
СтрокаКоманды = ОбщегоНазначенияСлужебныйКлиентСервер.БезопаснаяСтрокаКоманды(КомандаЗапуска, СредаИсполнения);
ИмяФайлаПотокаВывода = ""; ИмяФайлаПотокаВывода = "";
ИмяФайлаПотокаОшибок = ""; ИмяФайлаПотокаОшибок = "";
@@ -1007,12 +1007,11 @@
// - Строка - полное имя файла, содержащего двоичные данные, // - Строка - полное имя файла, содержащего двоичные данные,
// которые были подписаны. // которые были подписаны.
// - Структура: // - Структура:
// * ПараметрыXMLDSig - Структура - как возвращает функция ПараметрыXMLDSig // * КонвертXML - Строка - подписанный КонвертXML,
// общего модуля ЭлектроннаяПодпись. // смотри также функцию КонвертXML.
// * КонвертSOAP - Строка - шаблон сообщения <soap:Envelope>. // * ПараметрыXMLDSig - см. ЭлектроннаяПодпись.ПараметрыXMLDSig
// - Структура: // - Структура:
// * ПараметрыCMS - Структура - как возвращает функция ПараметрыCMS // * ПараметрыCMS - см. ЭлектроннаяПодпись.ПараметрыCMS
// общего модуля ЭлектроннаяПодпись.
// * Данные - Строка - произвольная строка для подписания, // * Данные - Строка - произвольная строка для подписания,
// - ДвоичныеДанные - двоичные данные для подписания. // - ДвоичныеДанные - двоичные данные для подписания.
// //
@@ -1047,6 +1046,23 @@
ЭтоXMLDSig = ТипЗнч(ИсходныеДанныеДляПроверки) = Тип("Структура") ЭтоXMLDSig = ТипЗнч(ИсходныеДанныеДляПроверки) = Тип("Структура")
И ИсходныеДанныеДляПроверки.Свойство("ПараметрыXMLDSig"); И ИсходныеДанныеДляПроверки.Свойство("ПараметрыXMLDSig");
Если ЭтоXMLDSig Тогда
Если Не ИсходныеДанныеДляПроверки.Свойство("КонвертXML") Тогда
ИсходныеДанныеДляПроверки = Новый Структура(Новый ФиксированнаяСтруктура(ИсходныеДанныеДляПроверки));
ИсходныеДанныеДляПроверки.Вставить("КонвертXML", ИсходныеДанныеДляПроверки.КонвертSOAP);
КонецЕсли;
СвойстваКонвертаXML = ЭлектроннаяПодписьСлужебный.СвойстваКонвертаXML(
ИсходныеДанныеДляПроверки.КонвертXML, ИсходныеДанныеДляПроверки.ПараметрыXMLDSig, Истина);
Если СвойстваКонвертаXML <> Неопределено
И ЗначениеЗаполнено(СвойстваКонвертаXML.ТекстОшибки) Тогда
ОписаниеОшибки = СвойстваКонвертаXML.ТекстОшибки;
Если ВызыватьИсключение Тогда
ВызватьИсключение ОписаниеОшибки;
КонецЕсли;
Возврат Ложь;
КонецЕсли;
КонецЕсли;
ЭтоCMS = ТипЗнч(ИсходныеДанныеДляПроверки) = Тип("Структура") ЭтоCMS = ТипЗнч(ИсходныеДанныеДляПроверки) = Тип("Структура")
И ИсходныеДанныеДляПроверки.Свойство("ПараметрыCMS"); И ИсходныеДанныеДляПроверки.Свойство("ПараметрыCMS");
@@ -1068,8 +1084,12 @@
ПараметрыСоздания.АлгоритмПодписи = ПараметрыСоздания.АлгоритмПодписи =
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(ПодписьДляПроверки); ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(ПодписьДляПроверки);
ИначеЕсли ЭтоXMLDSig Тогда ИначеЕсли ЭтоXMLDSig Тогда
Если СвойстваКонвертаXML = Неопределено Тогда
ДанныеСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатИзКонвертаSOAP( ДанныеСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатИзКонвертаSOAP(
ИсходныеДанныеДляПроверки.КонвертSOAP, Ложь); ИсходныеДанныеДляПроверки.КонвертXML, Ложь);
Иначе
ДанныеСертификата = Base64Значение(СвойстваКонвертаXML.Сертификат.ЗначениеСертификата);
КонецЕсли;
ПараметрыСоздания.АлгоритмПодписи = ПараметрыСоздания.АлгоритмПодписи =
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата); ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата);
КонецЕсли; КонецЕсли;
@@ -1090,9 +1110,10 @@
Если ЭтоXMLDSig Тогда Если ЭтоXMLDSig Тогда
Попытка Попытка
Результат = ЭлектроннаяПодписьСлужебный.ПроверитьПодпись( Результат = ЭлектроннаяПодписьСлужебный.ПроверитьПодпись(
ИсходныеДанныеДляПроверки.КонвертSOAP, ИсходныеДанныеДляПроверки.КонвертXML,
ИсходныеДанныеДляПроверки.ПараметрыXMLDSig, ИсходныеДанныеДляПроверки.ПараметрыXMLDSig,
МенеджерКриптографииДляПроверки); МенеджерКриптографииДляПроверки,
СвойстваКонвертаXML);
Исключение Исключение
ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Если ВызыватьИсключение Тогда Если ВызыватьИсключение Тогда
@@ -1464,6 +1485,20 @@
КонецФункции КонецФункции
// См. ЭлектроннаяПодписьКлиент.КонвертXML.
Функция КонвертXML(Параметры) Экспорт
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.КонвертXML(Параметры);
КонецФункции
// См. ЭлектроннаяПодписьКлиент.ПараметрыКонвертаXML.
Функция ПараметрыКонвертаXML() Экспорт
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыКонвертаXML();
КонецФункции
// См. ЭлектроннаяПодписьКлиент.ПараметрыXMLDSig. // См. ЭлектроннаяПодписьКлиент.ПараметрыXMLDSig.
Функция ПараметрыXMLDSig() Экспорт Функция ПараметрыXMLDSig() Экспорт
@@ -124,8 +124,8 @@
// их в свойстве Данные (смотри выше общий подход). В момент вызова // их в свойстве Данные (смотри выше общий подход). В момент вызова
// в ОписаниеДанных уже вставлен параметр ВыбранныйСертификат (смотри ниже). // в ОписаниеДанных уже вставлен параметр ВыбранныйСертификат (смотри ниже).
// - Структура: // - Структура:
// * КонвертXML - см. ЭлектроннаяПодписьКлиент.КонвертXML
// * ПараметрыXMLDSig - см. ЭлектроннаяПодписьКлиент.ПараметрыXMLDSig // * ПараметрыXMLDSig - см. ЭлектроннаяПодписьКлиент.ПараметрыXMLDSig
// * КонвертSOAP - Строка - шаблон сообщения <soap:Envelope>.
// - Структура: // - Структура:
// * ПараметрыCMS - см. ЭлектроннаяПодписьКлиент.ПараметрыCMS // * ПараметрыCMS - см. ЭлектроннаяПодписьКлиент.ПараметрыCMS
// * Данные - Строка - произвольная строка для подписания, // * Данные - Строка - произвольная строка для подписания,
@@ -183,8 +183,8 @@
// # СвойстваПодписи = Строка - адрес временного хранилища, содержащего описанную ниже структуру. // # СвойстваПодписи = Строка - адрес временного хранилища, содержащего описанную ниже структуру.
// При передаче параметра НаборДанных, свойство нужно проверять в нем. // При передаче параметра НаборДанных, свойство нужно проверять в нем.
// = Структура - развернутое описание подписи: // = Структура - развернутое описание подписи:
// ## Подпись - ДвоичныеДанные - результат подписания. // ## Подпись = ДвоичныеДанные - результат подписания.
// - Строка - подписанный конверт SOAP, если передавался в данных. // = Строка - подписанный КонвертXML, если передавался в данных.
// ## УстановившийПодпись - СправочникСсылка.Пользователи - пользователь, который // ## УстановившийПодпись - СправочникСсылка.Пользователи - пользователь, который
// подписал объект информационной базы. // подписал объект информационной базы.
// ## Комментарий - Строка - комментарий, если он был введен при подписании. // ## Комментарий - Строка - комментарий, если он был введен при подписании.
@@ -420,8 +420,9 @@
// в расшифрованном файле (он не будет передан на сервер). // в расшифрованном файле (он не будет передан на сервер).
// - Строка - адрес временного хранилища, содержащего исходные двоичные данные. // - Строка - адрес временного хранилища, содержащего исходные двоичные данные.
// - Структура: // - Структура:
// * ПараметрыXMLDSig - см. ЭлектроннаяПодписьКлиент.ПараметрыXMLDSig. // * КонвертXML - Строка - подписанный КонвертXML,
// * КонвертSOAP - Строка - шаблон сообщения <soap:Envelope>. // смотри также функцию КонвертXML.
// * ПараметрыXMLDSig - см. ЭлектроннаяПодписьКлиент.ПараметрыXMLDSig
// - Структура: // - Структура:
// * ПараметрыCMS - см. ЭлектроннаяПодписьКлиент.ПараметрыCMS // * ПараметрыCMS - см. ЭлектроннаяПодписьКлиент.ПараметрыCMS
// * Данные - Строка - произвольная строка для подписания, // * Данные - Строка - произвольная строка для подписания,
@@ -1188,14 +1189,113 @@
КонецФункции КонецФункции
// Формирует структуру свойств для уточнения данных конверта SOAP и алгоритмов // Возвращает шаблон формата XML, содержащий один стандартный элемент
// подписания и хеширования. // Signature (см. стандарт https://www.w3.org/TR/xmldsig-core1)
// с одним элементом Reference и заполненным атрибутом URI
// (ссылка на сообщение XML, которое будет подписано).
// //
// Не требуется заполнять алгоритмы при использовании сертификатов // Возвращаемый шаблон содержит параметры %SignatureMethod%, %DigestMethod%,
// %DigestValue%, %SignatureValue%, %BinarySecurityToken%,
// которые автоматически заполняются при подписании.
// Параметры %SignatureMethod% (алгоритм подписи в формате xml) и
// %DigestMethod% (алгоритм хеширования в формате xml) вычисляются по
// алгоритму открытого ключа сертификата, которым выполняется подписание,
// сначала по таблице, указанной в ПараметрыXMLDSig, затем
// если таблица не заполнена или соответствие не найдено,
// по внутренней таблице соответствия (рекомендуется).
//
// Поддерживаются алгоритмы подписания и хеширования ГОСТ 94…2012.
// Поддерживаются алгоритмы канонизации:
// Exclusive XML Canonicalization 1.0
// http://www.w3.org/2001/10/xml-exc-c14n#
// http://www.w3.org/2001/10/xml-exc-c14n#WithComments
// Canonical XML 1.0
// http://www.w3.org/TR/2001/REC-xml-c14n-20010315#
// http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
// Canonical XML 1.1
// http://www.w3.org/2006/12/xml-c14n11#
// http://www.w3.org/2006/12/xml-c14n11#WithComments
// Enveloped signature (по факту игнорируется, так как
// не поддерживается пустой URI в элементе SignedInfo.Reference):
// http://www.w3.org/2000/09/xmldsig#enveloped-signature
//
// Сертификат может быть указан в KeyInfo, как base64 значение:
// - либо в виде элемента X509Data.X509Certificate
// - либо в виде элемента KeyInfoReference.Reference или
// SecurityTokenReference.Reference с URI на элемент со значением.
//
// Параметры:
// Параметры - см. ЭлектроннаяПодписьКлиент.ПараметрыКонвертаXML
// - Неопределенно - использовать параметры по умолчанию.
//
// Возвращаемое значение:
// Строка
//
// Пример:
// ПараметрыКонверта = ЭлектроннаяПодписьКлиент.ПараметрыКонвертаXML();
// ПараметрыКонверта.Вариант = "furs.mark.crpt.ru_v1";
// ПараметрыКонверта.СообщениеXML =
// " <getProductDetailsResponse xmlns=""http://warehouse.example.com/ws"">
// | <getProductDetailsResult>
// | <productID>12345</productID>
// | <productName>Стакан граненый</productName>
// | <description>Стакан граненый. 250 мл.</description>
// | <price>9.95</price>
// | <currency>
// | <code>840</code>
// | <alpha3>USD</alpha3>
// | <sign>$</sign>
// | <name>US dollar</name>
// | <accuracy>2</accuracy>
// | </currency>
// | <inStock>true</inStock>
// | </getProductDetailsResult>
// | </getProductDetailsResponse>";
//
// КонвертXML = ЭлектроннаяПодписьКлиент.КонвертXML(Параметры);
//
Функция КонвертXML(Параметры = Неопределено) Экспорт
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.КонвертXML(Параметры);
КонецФункции
// Возвращает параметры, которые можно задать для конверта XML.
//
// Возвращаемое значение:
// Структура:
// * Вариант - Строка - вариант типового шаблона XML для обмена с сервисом:
// "furs.mark.crpt.ru_v1" (начальное значение).
// Возможны другие форматы, если удовлетворяют требованиям,
// указанным в описании функции КонвертXML.
//
// * СообщениеXML - Строка - сообщение в формате XML, которое вставлено в шаблон.
// Если не заполнено, остается параметр %MessageXML%.
//
Функция ПараметрыКонвертаXML() Экспорт
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыКонвертаXML();
КонецФункции
// Формирует структуру свойств для настройки нестандартной обработки
// конверта XML и алгоритмов подписания и хеширования.
//
// Рекомендуется не заполнять параметры XPathSignedInfo и XPathПодписываемыйТег
// Параметр XPathSignedInfo вычисляется по алгоритмам канонизации,
// а параметр XPathПодписываемыйТег вычисляется по ссылке
// в атрибуте URI элемента SignedInfo.Reference конверта XML.
// Параметры оставлены для обратной совместимости. Если указаны, работает по-старому:
// не выполняется извлечение параметров из конверта XML и их контроль, при этом
// конверт должен содержать алгоритмы канонизации и иметь элементы
// размещения сертификата, как в варианте конверта "furs.mark.crpt.ru_v1".
//
// Не требуется заполнять алгоритмы для использования сертификатов
// с алгоритмами открытого ключа ГОСТ 94, ГОСТ 2001, ГОСТ 2012/256 и ГОСТ 2012/512. // с алгоритмами открытого ключа ГОСТ 94, ГОСТ 2001, ГОСТ 2012/256 и ГОСТ 2012/512.
// // Алгоритмы подписания и хеширования вычисляются по алгоритму открытого ключа,
// Из сертификата извлекается OIDАлгоритмаОткрытогоКлюча и по нему из переданной таблицы // извлекаемого из сертификата, которым выполняется подписание. Сначала
// определяются идентификаторы и XML-имена алгоритмов подписания и хеширования. // по переданной таблице, затем если таблица не заполнена или соответствие
// не найдено, по внутренней таблице соответствия (рекомендуется).
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура: // Структура:
File diff suppressed because it is too large. Load diff
@@ -228,6 +228,11 @@
ЭтоXMLDSig = (ТипЗнч(Данные) = Тип("Структура") ЭтоXMLDSig = (ТипЗнч(Данные) = Тип("Структура")
И Данные.Свойство("ПараметрыXMLDSig")); И Данные.Свойство("ПараметрыXMLDSig"));
Если ЭтоXMLDSig И Не Данные.Свойство("КонвертXML") Тогда
Данные = Новый Структура(Новый ФиксированнаяСтруктура(Данные));
Данные.Вставить("КонвертXML", Данные.КонвертSOAP);
КонецЕсли;
ЭтоCMS = (ТипЗнч(Данные) = Тип("Структура") ЭтоCMS = (ТипЗнч(Данные) = Тип("Структура")
И Данные.Свойство("ПараметрыCMS")); И Данные.Свойство("ПараметрыCMS"));
@@ -242,7 +247,7 @@
МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = Параметры.ЗначениеПароля; МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = Параметры.ЗначениеПароля;
Попытка Попытка
ДвоичныеДанныеРезультата = ЭлектроннаяПодписьСлужебный.Подписать( ДвоичныеДанныеРезультата = ЭлектроннаяПодписьСлужебный.Подписать(
Данные.КонвертSOAP, Данные.КонвертXML,
Данные.ПараметрыXMLDSig, Данные.ПараметрыXMLDSig,
СертификатКриптографии, СертификатКриптографии,
МенеджерКриптографии); МенеджерКриптографии);
@@ -345,6 +350,13 @@
КонецФункции КонецФункции
// См. ЭлектроннаяПодписьСлужебный.СвойстваКонвертаXML
Функция СвойстваКонвертаXML(Знач КонвертXML, Знач ПараметрыXMLDSig, Знач ПроверкаПодписи) Экспорт
Возврат ЭлектроннаяПодписьСлужебный.СвойстваКонвертаXML(КонвертXML, ПараметрыXMLDSig, ПроверкаПодписи);
КонецФункции
// Только для внутреннего использования. // Только для внутреннего использования.
Функция ДобавитьПодпись(СсылкаНаОбъект, СвойстваПодписи, ИдентификаторФормы, ВерсияОбъекта) Экспорт Функция ДобавитьПодпись(СсылкаНаОбъект, СвойстваПодписи, ИдентификаторФормы, ВерсияОбъекта) Экспорт
@@ -52,7 +52,28 @@
Возврат ОписаниеПрограммы; Возврат ОписаниеПрограммы;
КонецЕсли; КонецЕсли;
Возврат Неопределено; ОписаниеПрограммы = Неопределено;
Если ИмяКриптопровайдера = "Crypto-Pro GOST R 34.10-2001 KC1 CSP"
Или ИмяКриптопровайдера = "Crypto-Pro GOST R 34.10-2001 KC2 CSP" Тогда
ОписаниеПрограммы = ОписаниеПрограммыПоИмениКриптопровайдера(
"Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider", ОписанияПрограмм);
ИначеЕсли ИмяКриптопровайдера = "Crypto-Pro GOST R 34.10-2012 KC1 CSP"
Или ИмяКриптопровайдера = "Crypto-Pro GOST R 34.10-2012 KC2 CSP" Тогда
ОписаниеПрограммы = ОписаниеПрограммыПоИмениКриптопровайдера(
"Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider", ОписанияПрограмм);
ИначеЕсли ИмяКриптопровайдера = "Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP"
Или ИмяКриптопровайдера = "Crypto-Pro GOST R 34.10-2012 KC2 Strong CSP" Тогда
ОписаниеПрограммы = ОписаниеПрограммыПоИмениКриптопровайдера(
"Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider", ОписанияПрограмм);
КонецЕсли;
Возврат ОписаниеПрограммы;
КонецФункции КонецФункции
@@ -1301,8 +1322,8 @@
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура: // Структура:
// ПолноеИмяМакета - Строка // * ПолноеИмяМакета - Строка
// ИмяОбъекта - Строка // * ИмяОбъекта - Строка
// //
Функция ОписаниеКомпоненты() Экспорт Функция ОписаниеКомпоненты() Экспорт
@@ -1328,13 +1349,48 @@
КонецФункции КонецФункции
// См. ЭлектроннаяПодписьКлиент.КонвертXML.
Функция КонвертXML(Параметры) Экспорт
Если Параметры = Неопределено Тогда
Параметры = ПараметрыКонвертаXML();
КонецЕсли;
Если Параметры.Вариант = "furs.mark.crpt.ru_v1" Тогда
КонвертXML = КонвертXML1();
Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Указано неизвестное значение ""%1"" параметра %2 в функции %3'"),
Параметры.Вариант, "Вариант", "КонвертXML");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.СообщениеXML) Тогда
КонвертXML = СтрЗаменить(КонвертXML, "%MessageXML%", СокрЛП(Параметры.СообщениеXML));
КонецЕсли;
Возврат КонвертXML;
КонецФункции
// См. ЭлектроннаяПодписьКлиент.ПараметрыКонвертаXML.
Функция ПараметрыКонвертаXML() Экспорт
Результат = Новый Структура;
Результат.Вставить("Вариант", "furs.mark.crpt.ru_v1");
Результат.Вставить("СообщениеXML", "");
Возврат Результат;
КонецФункции
// См. ЭлектроннаяПодписьКлиент.ПараметрыXMLDSig. // См. ЭлектроннаяПодписьКлиент.ПараметрыXMLDSig.
Функция ПараметрыXMLDSig() Экспорт Функция ПараметрыXMLDSig() Экспорт
ДанныеАлгоритмаПодписания = Новый Структура; ДанныеАлгоритмаПодписания = Новый Структура;
ДанныеАлгоритмаПодписания.Вставить("XPathSignedInfo", "(//. | //@* | //namespace::*)[ancestor-or-self::*[local-name()='SignedInfo']]"); ДанныеАлгоритмаПодписания.Вставить("XPathSignedInfo", "");
ДанныеАлгоритмаПодписания.Вставить("XPathПодписываемыйТег", "(//. | //@* | //namespace::*)[ancestor-or-self::soap:Body]"); ДанныеАлгоритмаПодписания.Вставить("XPathПодписываемыйТег", "");
ДанныеАлгоритмаПодписания.Вставить("OIDАлгоритмаОткрытогоКлюча", ""); ДанныеАлгоритмаПодписания.Вставить("OIDАлгоритмаОткрытогоКлюча", "");
@@ -1368,7 +1424,37 @@
КонецФункции КонецФункции
Функция ПроверитьВыбратьАлгоритмПодписи(СертификатКриптографииBase64, ДанныеАлгоритмаПодписания, ВызыватьИсключение = Ложь) Экспорт // Преобразует двоичные данные сертификата криптографии
// в корректно отформатированную строку в формате Base64.
//
// Параметры:
// ДанныеСертификата - ДвоичныеДанные - двоичные данные сертификата криптографии.
//
// Возвращаемое значение:
// Строка - двоичные данные сертификата в формате Base64.
//
Функция СертификатКриптографииBase64(ДанныеСертификата) Экспорт
СтрокаBase64 = Base64Строка(ДанныеСертификата);
Значение = СтрЗаменить(СтрокаBase64, Символы.ВК, "");
Значение = СтрЗаменить(Значение, Символы.ПС, "");
Возврат Значение;
КонецФункции
// Параметры:
// СертификатКриптографииBase64 - Строка - Base64 строка.
// ДанныеАлгоритмаПодписания - см. ЭлектроннаяПодписьКлиент.ПараметрыXMLDSig
// ВызыватьИсключение - Булево
// СвойстваКонвертаXML - см. ЭлектроннаяПодписьСлужебный.СвойстваКонвертаXML
//
// Возвращаемое значение:
// Строка - текст ошибки, если заполнена.
//
Функция ПроверитьВыбратьАлгоритмПодписи(СертификатКриптографииBase64, ДанныеАлгоритмаПодписания,
ВызыватьИсключение = Ложь, СвойстваКонвертаXML = Неопределено) Экспорт
OIDАлгоритмаОткрытогоКлюча = АлгоритмПодписиСертификата( OIDАлгоритмаОткрытогоКлюча = АлгоритмПодписиСертификата(
Base64Значение(СертификатКриптографииBase64),, Истина); Base64Значение(СертификатКриптографииBase64),, Истина);
@@ -1437,6 +1523,29 @@
Возврат ТекстОшибки; Возврат ТекстОшибки;
КонецЕсли; КонецЕсли;
Если АлгоритмыУказаны
Или СвойстваКонвертаXML = Неопределено
Или Не СвойстваКонвертаXML.ПроверкаПодписи Тогда
Возврат "";
КонецЕсли;
Если СвойстваКонвертаXML.АлгоритмПодписи.Идентификатор
<> ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаПодписи Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В документе XML указанный алгоритм подписи
|""%1"" (OID ""%2"")
|не совпадает с алгоритмом подписи в сертификате OID ""%3"".'"),
СвойстваКонвертаXML.АлгоритмПодписи.Имя,
СвойстваКонвертаXML.АлгоритмПодписи.Идентификатор,
ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаПодписи);
Если ВызыватьИсключение Тогда
ВызватьИсключение ТекстОшибки;
КонецЕсли;
Возврат ТекстОшибки;
КонецЕсли;
Возврат ""; Возврат "";
КонецФункции КонецФункции
@@ -1473,16 +1582,12 @@
ВызватьИсключение НСтр("ru = 'Некорректный параметр ТипПодписи метода CMSSign компоненты XMLDSig.'"); ВызватьИсключение НСтр("ru = 'Некорректный параметр ТипПодписи метода CMSSign компоненты XMLDSig.'");
КонецЕсли; КонецЕсли;
Если ТипЗнч(Данные) = Тип("Строка") Тогда Если ТипЗнч(Данные) = Тип("Строка")
ПараметрыКомпоненты.Вставить("ТипВходныхДанных", 0); Или ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
ПараметрыКомпоненты.Вставить("Данные", Данные);
ИначеЕсли ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда ПараметрыКомпоненты.Вставить("Данные", Данные);
ПараметрыКомпоненты.Вставить("ТипВходныхДанных", 128);
ПараметрыКомпоненты.Вставить("Данные",
СтрСоединить(СтрРазделить(Base64Строка(Данные), Символы.ПС + Символы.ВК, Ложь)));
Иначе Иначе
ВызватьИсключение НСтр("ru = 'Некорректный параметр ТипВходныхДанных метода CMSSign компоненты XMLDSig.'"); ВызватьИсключение НСтр("ru = 'Некорректный параметр Данные метода CMSSign компоненты XMLDSig.'");
КонецЕсли; КонецЕсли;
Если ТипЗнч(ПараметрыCMS.Открепленная) = Тип("Булево") Тогда Если ТипЗнч(ПараметрыCMS.Открепленная) = Тип("Булево") Тогда
@@ -1779,6 +1884,233 @@
КонецФункции КонецФункции
#Область ШаблоныКонвертаXML
// Вариант "furs.mark.crpt.ru_v1".
Функция КонвертXML1()
Возврат
"<soap:Envelope
| xmlns:wsse=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd""
| xmlns:wsu=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd""
| xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">
| <soap:Header>
| <wsse:Security soap:actor=""http://smev.gosuslugi.ru/actors/smev"">
| <ds:Signature xmlns:ds=""http://www.w3.org/2000/09/xmldsig#"">
| <SignedInfo xmlns=""http://www.w3.org/2000/09/xmldsig#"">
| <CanonicalizationMethod Algorithm=""http://www.w3.org/2001/10/xml-exc-c14n#""/>
| <SignatureMethod Algorithm=""%SignatureMethod%""/>
| <Reference URI=""#body"">
| <Transforms>
| <Transform Algorithm=""http://www.w3.org/2000/09/xmldsig#enveloped-signature""/>
| <Transform Algorithm=""http://www.w3.org/2001/10/xml-exc-c14n#""/>
| </Transforms>
| <DigestMethod Algorithm=""%DigestMethod%""/>
| <DigestValue>%DigestValue%</DigestValue>
| </Reference>
| </SignedInfo>
| <SignatureValue xmlns=""http://www.w3.org/2000/09/xmldsig#"">
| %SignatureValue%
| </SignatureValue>
| <ds:KeyInfo>
| <wsse:SecurityTokenReference>
| <wsse:Reference URI=""#SenderCertificate""
| ValueType=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3""/>
| </wsse:SecurityTokenReference>
| </ds:KeyInfo>
| </ds:Signature>
| <wsse:BinarySecurityToken
| EncodingType=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary""
| ValueType=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3""
| wsu:Id=""SenderCertificate"">
| %BinarySecurityToken%
| </wsse:BinarySecurityToken>
| </wsse:Security>
| </soap:Header>
| <soap:Body wsu:Id=""body"">
| %MessageXML%
| </soap:Body>
|</soap:Envelope>";
КонецФункции
#КонецОбласти
#Область ОбластьXML
// Параметры:
// СтрокаXML - Строка
// ИмяЭлемента - Строка
//
// Возвращаемое значение:
// см. СвойстваОбластиXML
//
Функция ОбластьXML(СтрокаXML, ИмяЭлемента) Экспорт
Результат = СвойстваОбластиXML(ИмяЭлемента);
ПризнакНачалаОбласти = "<" + ИмяЭлемента;
ПризнакОкончанияОбласти = "</" + ИмяЭлемента + ">";
Позиция = СтрНайти(СтрокаXML, ПризнакНачалаОбласти);
Если Позиция = 0 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не найдена элемент ""%1"" в документе XML.'"), ИмяЭлемента);
Результат.ТекстОшибки = ТекстОшибки;
КонецЕсли;
Результат.ПозицияНачала = Позиция;
Текст = Сред(СтрокаXML, Позиция);
Позиция = СтрНайти(Текст, ПризнакНачалаОбласти, , 2);
Если Позиция > 0 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Найдено более одного элемента ""%1"" в документе XML.'"), ИмяЭлемента);
Результат.ТекстОшибки = ТекстОшибки;
КонецЕсли;
Позиция = СтрНайти(Текст, ПризнакОкончанияОбласти);
Если Позиция = 0 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не найдено окончание элемента ""%1"" в документе XML.'"), ИмяЭлемента);
Результат.ТекстОшибки = ТекстОшибки;
КонецЕсли;
ПозицияСледующейОбласти = Позиция + СтрДлина(ПризнакОкончанияОбласти);
Результат.Текст = Сред(Текст, 1, ПозицияСледующейОбласти - 1);
Результат.ПозицияСледующейОбласти = Результат.ПозицияНачала + ПозицияСледующейОбласти;
Текст = Сред(Текст, 1, Позиция - 1);
Позиция = СтрНайти(Текст, ">");
Если Позиция = 0 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не найдено окончание заголовка элемента ""%1"" в документе XML.'"), ИмяЭлемента);
Результат.ТекстОшибки = ТекстОшибки;
КонецЕсли;
Результат.Начало = Сред(Текст, 1, Позиция);
Результат.Конец = ПризнакОкончанияОбласти;
Результат.Содержимое = Сред(Текст, Позиция + 1);
Возврат Результат;
КонецФункции
// Параметры:
// ОбластьXML - см. СвойстваОбластиXML
// Начало - Неопределено
// - Строка
//
// Возвращаемое значение:
// Строка
//
Функция ТекстОбластиXML(ОбластьXML, Начало = Неопределено) Экспорт
ЧастиТекста = Новый Массив;
ЧастиТекста.Добавить(?(Начало = Неопределено, ОбластьXML.Начало, Начало));
ЧастиТекста.Добавить(ОбластьXML.Содержимое);
ЧастиТекста.Добавить(ОбластьXML.Конец);
Результат = СтрСоединить(ЧастиТекста);
Возврат Результат;
КонецФункции
// Параметры:
// ОбластьXML - см. СвойстваОбластиXML
// Алгоритм - см. ЭлектроннаяПодписьСлужебный.АлгоритмКанонизации
// ТекстXML - Строка
//
// Возвращаемое значение:
// Строка
//
Функция НачалоОбластиXMLДляC14N(ОбластьXML, Алгоритм, ТекстXML) Экспорт
Результат = Новый Структура("Начало, ТекстОшибки", , "");
Если Алгоритм.Версия = 1 Тогда
Если ТекстXML = Неопределено Тогда
ТекущаяОбластьXML = ОбластьXML;
Иначе
ТекущаяОбластьXML = ОбластьXML(ТекстXML, ОбластьXML.ИмяЭлемента);
Если ЗначениеЗаполнено(ТекущаяОбластьXML.ТекстОшибки) Тогда
Результат.ТекстОшибки = ТекущаяОбластьXML.ТекстОшибки;
Возврат Результат;
КонецЕсли;
ТекущаяОбластьXML.ПространстваИменДоУзла = ОбластьXML.ПространстваИменДоУзла;
КонецЕсли;
Результат.Начало = РасширенноеНачало(ТекущаяОбластьXML);
Иначе
Результат.Начало = ОбластьXML.Начало;
КонецЕсли;
Возврат Результат;
КонецФункции
// Параметры:
// ОбластьXML - см. СвойстваОбластиXML
//
// Возвращаемое значение:
// Строка
//
Функция РасширенноеНачало(ОбластьXML)
Если Не ЗначениеЗаполнено(ОбластьXML.ПространстваИменДоУзла) Тогда
Возврат ОбластьXML.Начало;
КонецЕсли;
Дополнительные = Новый Массив;
Для Каждого ИмяПространства Из ОбластьXML.ПространстваИменДоУзла Цикл
Позиция = СтрНайти(ИмяПространства, "=""");
ОбъявлениеПространства = Лев(ИмяПространства, Позиция + 1);
Если СтрНайти(ОбластьXML.Начало, ОбъявлениеПространства) > 0 Тогда
Продолжить;
КонецЕсли;
Дополнительные.Добавить(ИмяПространства);
КонецЦикла;
Результат = Лев(ОбластьXML.Начало, СтрДлина(ОбластьXML.ИмяЭлемента) + 1)
+ " " + СтрСоединить(Дополнительные, " ")
+ " " + Сред(ОбластьXML.Начало, СтрДлина(ОбластьXML.ИмяЭлемента) + 2);
Возврат Результат;
КонецФункции
// Параметры:
// ИмяЭлемента - Строка
//
// Возвращаемое значение:
// Структура:
// * ИмяЭлемента - Строка
// * ТекстОшибки - Строка
// * ПозицияНачала - Число
// * ПозицияСледующейОбласти - Число
// * Начало - Строка
// * Содержимое - Строка
// * Конец - Строка
// * ПространстваИменДоУзла - Массив из Строка
// - Неопределено
//
Функция СвойстваОбластиXML(ИмяЭлемента)
Результат = Новый Структура;
Результат.Вставить("ИмяЭлемента", ИмяЭлемента);
Результат.Вставить("ТекстОшибки", "");
Результат.Вставить("ПозицияНачала", 0);
Результат.Вставить("ПозицияСледующейОбласти", 0);
Результат.Вставить("Начало", "");
Результат.Вставить("Содержимое", "");
Результат.Вставить("Конец", "");
Результат.Вставить("Текст", "");
Результат.Вставить("ПространстваИменДоУзла");
Возврат Результат;
КонецФункции
#КонецОбласти
#Область АлгоритмыПодписи #Область АлгоритмыПодписи
Функция АлгоритмСформированнойПодписи(ДанныеПодписи, ВключаяOID = Ложь, ТолькоOID = Ложь) Экспорт Функция АлгоритмСформированнойПодписи(ДанныеПодписи, ВключаяOID = Ложь, ТолькоOID = Ложь) Экспорт
@@ -2425,7 +2757,7 @@
// Возвращаемое значение: // Возвращаемое значение:
// Массив из см. НовыйНаборАлгоритмовДляСозданияПодписи // Массив из см. НовыйНаборАлгоритмовДляСозданияПодписи
// //
Функция НаборыАлгоритмовДляСозданияПодписи() Функция НаборыАлгоритмовДляСозданияПодписи() Экспорт
Наборы = Новый Массив; Наборы = Новый Массив;
+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="f89e0496-eba4-11eb-2191-0242ac110002"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="5d0a309c-f68d-11eb-bd8d-0242ac110002">
<name>БиблиотекаСтандартныхПодсистем</name> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="f89e0497-eba4-11eb-2191-0242ac110002"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="5d0a309d-f68d-11eb-bd8d-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="f89e04c8-eba4-11eb-2191-0242ac110002"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="5d0a30ce-f68d-11eb-bd8d-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="f89e04d2-eba4-11eb-2191-0242ac110002"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="5d0a30d8-f68d-11eb-bd8d-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="f89e04d3-eba4-11eb-2191-0242ac110002"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="5d0a30d9-f68d-11eb-bd8d-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="f89e04dc-eba4-11eb-2191-0242ac110002"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="5d0a30e2-f68d-11eb-bd8d-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="f89e04dd-eba4-11eb-2191-0242ac110002"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="5d0a30e3-f68d-11eb-bd8d-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="aac3d85a-7d23-4ca7-92af-35c3f2dd6dd6"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="50bdec87-1632-4f41-bb9c-4ee421ecf766"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.5.132</version> <version>3.1.5.146</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,5618c07a-eba5-11eb-7a8b-0242ac110002,1,3e224d92-eba5-11eb-938a-0242ac110002,"3.1.5.132","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6460,1,0,f89e0496-eba4-11eb-2191-0242ac110002,f89e0496-eba4-11eb-2191-0242ac110002,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated {6,1,1,ba8a7c22-f68d-11eb-c486-0242ac110002,1,a2dd95d2-f68d-11eb-1388-0242ac110002,"3.1.5.146","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6460,1,0,5d0a309c-f68d-11eb-bd8d-0242ac110002,5d0a309c-f68d-11eb-bd8d-0242ac110002,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated
@@ -32,7 +32,7 @@
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
НаименованиеКорреспондента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелИнформационнойБазы, "Наименование"); НаименованиеКорреспондента = Строка(УзелИнформационнойБазы);
ВидТранспортаСообщений = РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию(УзелИнформационнойБазы); ВидТранспортаСообщений = РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию(УзелИнформационнойБазы);
ВыполнитьОтправкуДанных = РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.ВыполнитьОтправкуДанных(УзелИнформационнойБазы); ВыполнитьОтправкуДанных = РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.ВыполнитьОтправкуДанных(УзелИнформационнойБазы);
@@ -37,7 +37,7 @@
КонецЕсли; КонецЕсли;
НовыйГрафикРаботы = Справочники.Календари.СоздатьЭлемент(); НовыйГрафикРаботы = Справочники.Календари.СоздатьЭлемент();
НовыйГрафикРаботы.Наименование = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПроизводственныйКалендарь, "Наименование"); НовыйГрафикРаботы.Наименование = Строка(ПроизводственныйКалендарь);
НовыйГрафикРаботы.ПроизводственныйКалендарь = ПроизводственныйКалендарь; НовыйГрафикРаботы.ПроизводственныйКалендарь = ПроизводственныйКалендарь;
НовыйГрафикРаботы.СпособЗаполнения = Перечисления.СпособыЗаполненияГрафикаРаботы.ПоНеделям; НовыйГрафикРаботы.СпособЗаполнения = Перечисления.СпособыЗаполненияГрафикаРаботы.ПоНеделям;
НовыйГрафикРаботы.ДатаНачала = НачалоГода(ТекущаяДатаСеанса()); НовыйГрафикРаботы.ДатаНачала = НачалоГода(ТекущаяДатаСеанса());
@@ -2133,14 +2133,17 @@
&НаСервере &НаСервере
Процедура ДозаполнитьРеквизитыИзСведений(Сведения, Реквизиты) Процедура ДозаполнитьРеквизитыИзСведений(Сведения, Реквизиты)
НезаполненныеРеквизиты = Новый Структура;
Для Каждого Реквизит Из Реквизиты Цикл Для Каждого Реквизит Из Реквизиты Цикл
Если ЗначениеЗаполнено(ЭтотОбъект[Реквизит.Ключ]) Тогда
Если Не ЗначениеЗаполнено(ЭтотОбъект[Реквизит.Ключ]) Тогда Продолжить;
ЭтотОбъект[Реквизит.Ключ] = Сведения[Реквизит.Ключ];
КонецЕсли; КонецЕсли;
НезаполненныеРеквизиты.Вставить(Реквизит.Ключ, ЭтотОбъект[Реквизит.Ключ]);
КонецЦикла; КонецЦикла;
ЗаполнитьЗначенияСвойств(НезаполненныеРеквизиты, Сведения);
ЗаполнитьЗначенияСвойств(ЭтотОбъект, НезаполненныеРеквизиты);
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -13019,6 +13019,19 @@
КонецЕсли; КонецЕсли;
ИначеЕсли ОбщегоНазначения.ЭтоПланСчетов(ОбъектМД) Тогда
Если Не (ОбъектМД.Реквизиты.Найти(Реквизит.Ключ) <> Неопределено
Или ОбъектМД.ПризнакиУчета.Найти(Реквизит.Ключ) <> Неопределено
Или ОбменДаннымиСервер.ЭтоСтандартныйРеквизит(ОбъектМД.СтандартныеРеквизиты, Реквизит.Ключ)
Или ЭтоОбщийРеквизит(Реквизит.Ключ, ОбъектМД.ПолноеИмя(), ТаблицаОбщихРеквизитов)) Тогда
СтрокаСообщения = НСтр("ru = 'Неправильно указаны реквизиты шапки объекта ""%1"". Реквизит ""%2"" не существует.'");
СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, Строка(ОбъектМД), Реквизит.Ключ);
ЗаписатьВПротоколВыполнения(СтрокаСообщения);
КонецЕсли;
Иначе Иначе
Если Не (ОбъектМД.Реквизиты.Найти(Реквизит.Ключ) <> Неопределено Если Не (ОбъектМД.Реквизиты.Найти(Реквизит.Ключ) <> Неопределено
@@ -13037,8 +13050,8 @@
Иначе Иначе
// Табличная часть, стандартная табличная часть, движения. // Табличная часть, стандартная табличная часть, движения.
МетаТаблица = МетаТабличнаяЧастьРеквизитовРегистрацииОбъектов(ОбъектМД, СтрокаТаблицы.ИмяТабличнойЧасти); МетаТаблицы = МетаТабличнаяЧастьРеквизитовРегистрацииОбъектов(ОбъектМД, СтрокаТаблицы.ИмяТабличнойЧасти);
Если МетаТаблица = Неопределено Тогда Если МетаТаблицы = Неопределено Тогда
ЗаписатьВПротоколВыполнения(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ЗаписатьВПротоколВыполнения(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Табличная часть (стандартная табличная часть, движения) ""%1"" объекта ""%2"" не существует.'"), НСтр("ru = 'Табличная часть (стандартная табличная часть, движения) ""%1"" объекта ""%2"" не существует.'"),
СтрокаТаблицы.ИмяТабличнойЧасти, ОбъектМД)); СтрокаТаблицы.ИмяТабличнойЧасти, ОбъектМД));
@@ -13048,7 +13061,15 @@
// Пробуем найти каждый реквизит хоть где-нибудь. // Пробуем найти каждый реквизит хоть где-нибудь.
Для Каждого Реквизит Из СтрокаТаблицы.СтруктураРеквизитовРегистрации Цикл Для Каждого Реквизит Из СтрокаТаблицы.СтруктураРеквизитовРегистрации Цикл
Если Не РеквизитНайденВТабличнойЧастиРеквизитовРегистрацииОбъектов(МетаТаблица, Реквизит.Ключ) Тогда РеквизитНайден = Ложь;
Для Каждого МетаТаблица Из МетаТаблицы Цикл
РеквизитНайден = РеквизитНайденВТабличнойЧастиРеквизитовРегистрацииОбъектов(МетаТаблица, Реквизит.Ключ);
Если РеквизитНайден Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если Не РеквизитНайден Тогда
ЗаписатьВПротоколВыполнения(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ЗаписатьВПротоколВыполнения(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Реквизит ""%3"" не существует в табличной части (стандартной табличной части, движениях) ""%1"" объекта ""%2"".'"), НСтр("ru = 'Реквизит ""%3"" не существует в табличной части (стандартной табличной части, движениях) ""%1"" объекта ""%2"".'"),
СтрокаТаблицы.ИмяТабличнойЧасти, ОбъектМД, Реквизит.Ключ)); СтрокаТаблицы.ИмяТабличнойЧасти, ОбъектМД, Реквизит.Ключ));
@@ -13073,6 +13094,7 @@
МетаТест = Новый Структура("ТабличныеЧасти, СтандартныеТабличныеЧасти, Движения"); МетаТест = Новый Структура("ТабличныеЧасти, СтандартныеТабличныеЧасти, Движения");
ЗаполнитьЗначенияСвойств(МетаТест, МетаданныеТекущегоОбъекта); ЗаполнитьЗначенияСвойств(МетаТест, МетаданныеТекущегоОбъекта);
МетаТаблицы = Новый Массив;
ИмяКандидата = ВРег(ИмяИскомойТабличнойЧасти); ИмяКандидата = ВРег(ИмяИскомойТабличнойЧасти);
@@ -13082,12 +13104,15 @@
Для Каждого МетаТаблица Из МетаКоллекцияТаблиц Цикл Для Каждого МетаТаблица Из МетаКоллекцияТаблиц Цикл
Если ВРег(МетаТаблица.Имя) = ИмяКандидата Тогда Если ВРег(МетаТаблица.Имя) = ИмяКандидата Тогда
Возврат МетаТаблица; МетаТаблицы.Добавить(МетаТаблица);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Если МетаТаблицы.Количество() > 0 Тогда
Возврат МетаТаблицы;
КонецЕсли;
Возврат Неопределено; Возврат Неопределено;
@@ -13099,6 +13124,16 @@
ЗаполнитьЗначенияСвойств(МетаТест, МетаданныеТаблицы); ЗаполнитьЗначенияСвойств(МетаТест, МетаданныеТаблицы);
ИмяКандидата = ВРег(ИмяИскомогоРеквизита); ИмяКандидата = ВРег(ИмяИскомогоРеквизита);
Корреспонденция = Ложь;
Если ТипЗнч(МетаданныеТаблицы) = Тип("ОбъектМетаданных") И ОбщегоНазначения.ЭтоРегистрБухгалтерии(МетаданныеТаблицы) Тогда
Корреспонденция = МетаданныеТаблицы.Корреспонденция;
// Субконто Дт и Кт отсутствуют в измерениях, их не проверить.
// Счет - стандартный реквизит без признака баланса.
Если ИмяКандидата = "СУБКОНТОДТ" Или ИмяКандидата = "СУБКОНТОКТ"
Или ИмяКандидата = "СЧЕТДТ" Или ИмяКандидата = "СЧЕТКТ" Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
Для Каждого КлючЗначение Из МетаТест Цикл Для Каждого КлючЗначение Из МетаТест Цикл
МетаКоллекцияРеквизитов = КлючЗначение.Значение; // КоллекцияОбъектовМетаданных, ОписанияСтандартныхРеквизитов МетаКоллекцияРеквизитов = КлючЗначение.Значение; // КоллекцияОбъектовМетаданных, ОписанияСтандартныхРеквизитов
@@ -13106,9 +13141,18 @@
Если МетаКоллекцияРеквизитов <> Неопределено Тогда Если МетаКоллекцияРеквизитов <> Неопределено Тогда
Для Каждого МетаРеквизит Из МетаКоллекцияРеквизитов Цикл Для Каждого МетаРеквизит Из МетаКоллекцияРеквизитов Цикл
Если ВРег(МетаРеквизит.Имя) = ИмяКандидата Тогда Если ВРег(МетаРеквизит.Имя) = ИмяКандидата Тогда
Возврат Истина; Возврат Истина;
КонецЕсли; КонецЕсли;
Если (КлючЗначение.Ключ = "Измерения" Или КлючЗначение.Ключ = "Ресурсы") И Корреспонденция И НЕ МетаРеквизит.Балансовый Тогда
Если ВРег(МетаРеквизит.Имя) + "ДТ" = ИмяКандидата
Или ВРег(МетаРеквизит.Имя) + "КТ" = ИмяКандидата Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
@@ -1706,6 +1706,7 @@
Функция РазрабатываемыеПодсистемы() Экспорт Функция РазрабатываемыеПодсистемы() Экспорт
Результат = Новый Массив; Результат = Новый Массив;
ОбновлениеИнформационнойБазыПереопределяемый.ПриФормированииСпискаРазрабатываемыхПодсистем(Результат);
ОбновлениеИнформационнойБазыПереопределяемый.ПриФормированиеСпискаРазрабатываемыхПодсистем(Результат); ОбновлениеИнформационнойБазыПереопределяемый.ПриФормированиеСпискаРазрабатываемыхПодсистем(Результат);
Возврат Результат; Возврат Результат;
@@ -11,6 +11,10 @@
&НаСервере &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не Параметры.Свойство("Узел") Тогда
ВызватьИсключение НСтр("ru = 'Обработка не предназначена для непосредственного использования.'");
КонецЕсли;
Узел = Параметры.Узел; Узел = Параметры.Узел;
АдресСтруктурыУзла = Параметры.АдресСтруктурыУзла; АдресСтруктурыУзла = Параметры.АдресСтруктурыУзла;
@@ -3809,6 +3809,9 @@
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>БИПГруппаИнтеграцияСПлатежнымиСистемами</name> <name>БИПГруппаИнтеграцияСПлатежнымиСистемами</name>
<id>1921</id> <id>1921</id>
<items xsi:type="form:FormGroup">
<name>БИПГруппаНастройкиИнтеграции</name>
<id>1941</id>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>БИПНастройкаИнтеграцииСПлатежнымиСистемами</name> <name>БИПНастройкаИнтеграцииСПлатежнымиСистемами</name>
<id>1923</id> <id>1923</id>
@@ -3846,6 +3849,120 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Настройки интеграции</value>
</title>
<width>43</width>
<extendedTooltip>
<name>БИПГруппаНастройкиИнтеграцииРасширеннаяПодсказка</name>
<id>1942</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>БИПГруппаДлительностьОперации</name>
<id>1943</id>
<items xsi:type="form:FormField">
<name>БИПДлительностьОперацииПлатежнойСистемы</name>
<id>1945</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>БИПДлительностьОперацииПлатежнойСистемы</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Длительность ожидания подтверждения
оплаты покупателем. (количество секунд)</value>
</toolTip>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<handlers>
<event>OnChange</event>
<name>БИПДлительностьОперацииПлатежнойСистемыПриИзменении</name>
</handlers>
<extendedTooltip>
<name>БИПДлительностьОперацииПлатежнойСистемыРасширеннаяПодсказка</name>
<id>1947</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>БИПДлительностьОперацииПлатежнойСистемыКонтекстноеМеню</name>
<id>1946</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>14</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Длительность операции</value>
</title>
<extendedTooltip>
<name>БИПГруппаДлительностьОперацииРасширеннаяПодсказка</name>
<id>1944</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<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> <title>
<key>ru</key> <key>ru</key>
<value>Интеграция с платежными системами</value> <value>Интеграция с платежными системами</value>
@@ -3863,7 +3980,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group> <group>AlwaysHorizontal</group>
<behavior>Collapsible</behavior> <behavior>Collapsible</behavior>
<collapsed>true</collapsed> <collapsed>true</collapsed>
<controlRepresentation>Button</controlRepresentation> <controlRepresentation>Button</controlRepresentation>
@@ -4394,6 +4511,26 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>БИПДлительностьОперацииПлатежнойСистемы</name>
<title>
<key>ru</key>
<value>Длительность операции</value>
</title>
<id>30</id>
<valueType>
<types>Number</types>
<numberQualifiers>
<precision>3</precision>
</numberQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>БИПВойтиИлиВыйти</name> <name>БИПВойтиИлиВыйти</name>
<title> <title>
@@ -141,6 +141,16 @@
Элементы.БИПГруппаИнтеграцияСКоннект.Видимость = Ложь; Элементы.БИПГруппаИнтеграцияСКоннект.Видимость = Ложь;
КонецЕсли; КонецЕсли;
// Дополнительная проверка необходимо, т.к. программа может содержать версию БИП
// ниже чем 2.6.1.25. Проверка будет удалена при переходе на новую редакцию БСП.
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ИнтеграцияСПлатежнымиСистемами") Тогда
МодульИнтернетПоддержкаПользователейКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиентСервер");
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(
МодульИнтернетПоддержкаПользователейКлиентСервер.ВерсияБиблиотеки(), "2.6.1.25") < 0 Тогда
Элементы.БИПДлительностьОперацииПлатежнойСистемы.Видимость = Ложь;
КонецЕсли;
КонецЕсли;
НастройкиПрограммыПереопределяемый.ИнтернетПоддержкаИСервисыПриСозданииНаСервере(ЭтотОбъект); НастройкиПрограммыПереопределяемый.ИнтернетПоддержкаИСервисыПриСозданииНаСервере(ЭтотОбъект);
Элементы.ГруппаОбсуждения.Видимость = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Обсуждения"); Элементы.ГруппаОбсуждения.Видимость = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Обсуждения");
@@ -427,6 +437,18 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура БИПДлительностьОперацииПлатежнойСистемыПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ИнтеграцияСПлатежнымиСистемами") Тогда
МодульИнтеграцияСПлатежнымиСистемамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияСПлатежнымиСистемамиКлиент");
МодульИнтеграцияСПлатежнымиСистемамиКлиент.БИПДлительностьОперацииПлатежнойСистемыПриИзменении(
ЭтотОбъект,
Элемент);
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -5,7 +5,6 @@
// Текст лицензии доступен по ссылке: // Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode // https://creativecommons.org/licenses/by/4.0/legalcode
/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОписаниеПеременных #Область ОписаниеПеременных
&НаКлиенте &НаКлиенте
@@ -19,29 +18,25 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда
Элементы.ГруппаБлокировкаРаботыСВнешнимиРесурсами.Видимость = Элементы.ГруппаБлокировкаРаботыСВнешнимиРесурсами.Видимость = РегламентныеЗаданияСервер.РаботаСВнешнимиРесурсамиЗаблокирована();
РегламентныеЗаданияСервер.РаботаСВнешнимиРесурсамиЗаблокирована();
Элементы.ГруппаОбработкаРегламентныеИФоновыеЗадания.Видимость = Элементы.ГруппаОбработкаРегламентныеИФоновыеЗадания.Видимость = Пользователи.ЭтоПолноправныйПользователь( ,
Пользователи.ЭтоПолноправныйПользователь(, Истина); Истина);
Иначе Иначе
Элементы.ГруппаОбработкаРегламентныеИФоновыеЗадания.Видимость = Ложь; Элементы.ГруппаОбработкаРегламентныеИФоновыеЗадания.Видимость = Ложь;
Элементы.ГруппаБлокировкаРаботыСВнешнимиРесурсами.Видимость = Ложь; Элементы.ГруппаБлокировкаРаботыСВнешнимиРесурсами.Видимость = Ложь;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеИтогамиИАгрегатами") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеИтогамиИАгрегатами") Тогда
Элементы.ГруппаОбработкаУправлениеИтогамиИАгрегатамиОткрыть.Видимость = Элементы.ГруппаОбработкаУправлениеИтогамиИАгрегатамиОткрыть.Видимость = Пользователи.ЭтоПолноправныйПользователь()
Пользователи.ЭтоПолноправныйПользователь()
И Не ОбщегоНазначения.РазделениеВключено(); И Не ОбщегоНазначения.РазделениеВключено();
Иначе Иначе
Элементы.ГруппаОбработкаУправлениеИтогамиИАгрегатамиОткрыть.Видимость = Ложь; Элементы.ГруппаОбработкаУправлениеИтогамиИАгрегатамиОткрыть.Видимость = Ложь;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда
Элементы.ГруппаРезервноеКопированиеИВосстановление.Видимость = Элементы.ГруппаРезервноеКопированиеИВосстановление.Видимость = Пользователи.ЭтоПолноправныйПользователь( ,
Пользователи.ЭтоПолноправныйПользователь(, Истина) Истина) И Не ОбщегоНазначения.РазделениеВключено() И Не ОбщегоНазначения.КлиентПодключенЧерезВебСервер()
И Не ОбщегоНазначения.РазделениеВключено()
И Не ОбщегоНазначения.КлиентПодключенЧерезВебСервер()
И ОбщегоНазначения.ЭтоWindowsКлиент(); И ОбщегоНазначения.ЭтоWindowsКлиент();
ОбновитьНастройкиРезервногоКопирования(); ОбновитьНастройкиРезервногоКопирования();
@@ -50,15 +45,13 @@
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
Элементы.ГруппаОценкаПроизводительности.Видимость = Элементы.ГруппаОценкаПроизводительности.Видимость = Пользователи.ЭтоПолноправныйПользователь( , Истина);
Пользователи.ЭтоПолноправныйПользователь(, Истина);
Иначе Иначе
Элементы.ГруппаОценкаПроизводительности.Видимость = Ложь; Элементы.ГруппаОценкаПроизводительности.Видимость = Ложь;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов") Тогда
Элементы.ГруппаОбработкаГрупповоеИзменениеОбъектов.Видимость = Элементы.ГруппаОбработкаГрупповоеИзменениеОбъектов.Видимость = Пользователи.ЭтоПолноправныйПользователь();
Пользователи.ЭтоПолноправныйПользователь();
Иначе Иначе
Элементы.ГруппаОбработкаГрупповоеИзменениеОбъектов.Видимость = Ложь; Элементы.ГруппаОбработкаГрупповоеИзменениеОбъектов.Видимость = Ложь;
КонецЕсли; КонецЕсли;
@@ -68,33 +61,26 @@
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
Элементы.ГруппаДополнительныеОтчетыИОбработки.Видимость = Элементы.ГруппаДополнительныеОтчетыИОбработки.Видимость = НаборКонстант.ИспользоватьДополнительныеОтчетыИОбработки;
НаборКонстант.ИспользоватьДополнительныеОтчетыИОбработки;
Иначе Иначе
Элементы.ГруппаДополнительныеОтчетыИОбработки.Видимость = Ложь; Элементы.ГруппаДополнительныеОтчетыИОбработки.Видимость = Ложь;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
Элементы.ГруппаУстановленныеИсправления.Видимость = Элементы.ГруппаУстановленныеИсправления.Видимость = Пользователи.ЭтоПолноправныйПользователь();
Пользователи.ЭтоПолноправныйПользователь();
Если СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации() Если СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации()
И Не СтандартныеПодсистемыСервер.ДоступнаУстановкаПодписанныхРасширенийВБазовойВерсии() Тогда И Не СтандартныеПодсистемыСервер.ДоступнаУстановкаПодписанныхРасширенийВБазовойВерсии() Тогда
Элементы.УстановкаОбновлений.Заголовок = НСтр("ru = 'Установка обновлений'"); Элементы.УстановкаОбновлений.Заголовок = НСтр("ru = 'Установка обновлений'");
Элементы.УстановкаОбновлений.РасширеннаяПодсказка.Заголовок = Элементы.УстановкаОбновлений.РасширеннаяПодсказка.Заголовок = НСтр(
НСтр("ru = 'Обновление программы из файла на локальном диске или в сетевой папке.'"); "ru = 'Обновление программы из файла на локальном диске или в сетевой папке.'");
КонецЕсли; КонецЕсли;
Иначе Иначе
Элементы.ГруппаУстановкаОбновлений.Видимость = Ложь; Элементы.ГруппаУстановкаОбновлений.Видимость = Ложь;
Элементы.ГруппаУстановленныеИсправления.Видимость = Ложь; Элементы.ГруппаУстановленныеИсправления.Видимость = Ложь;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОблачныйАрхив") Тогда
МодульОблачныйАрхив = ОбщегоНазначения.ОбщийМодуль("ОблачныйАрхив");
МодульОблачныйАрхив.ПанельАдминистрированияБСП_ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда
Если Элементы.Найти("ПравилПроверкиУчета") <> Неопределено Тогда Если Элементы.Найти("ПравилПроверкиУчета") <> Неопределено Тогда
Элементы.ПравилаПроверкиУчета.Видимость = Ложь; Элементы.ПравилаПроверкиУчета.Видимость = Ложь;
@@ -117,31 +103,16 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОблачныйАрхив") Тогда
МодульОблачныйАрхивКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОблачныйАрхивКлиент");
МодульОблачныйАрхивКлиент.ПанельАдминистрированияБСП_ПриОткрытии(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "ЗакрытаФормаНастройкиРезервногоКопирования" Если ИмяСобытия = "ЗакрытаФормаНастройкиРезервногоКопирования" И ОбщегоНазначенияКлиент.ПодсистемаСуществует(
И ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда "СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда
ОбновитьНастройкиРезервногоКопирования(); ОбновитьНастройкиРезервногоКопирования();
ИначеЕсли ИмяСобытия = "РазрешенаРаботаСВнешнимиРесурсами" Тогда ИначеЕсли ИмяСобытия = "РазрешенаРаботаСВнешнимиРесурсами" Тогда
Элементы.ГруппаБлокировкаРаботыСВнешнимиРесурсами.Видимость = Ложь; Элементы.ГруппаБлокировкаРаботыСВнешнимиРесурсами.Видимость = Ложь;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОблачныйАрхив") Тогда
МодульОблачныйАрхивКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОблачныйАрхивКлиент");
МодульОблачныйАрхивКлиент.ПанельАдминистрированияБСП_ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -176,35 +147,6 @@
УстановитьКоличествоПотоковОбновления(); УстановитьКоличествоПотоковОбновления();
КонецПроцедуры КонецПроцедуры
#Область ИнтернетПоддержкаПользователей_ОблачныйАрхив
&НаКлиенте
Процедура ОблачныйАрхивОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Истина;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОблачныйАрхив") Тогда
МодульОблачныйАрхивКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОблачныйАрхивКлиент");
МодульОблачныйАрхивКлиент.ОбработкаНавигационнойСсылки(
ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка, Новый Структура);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СпособРезервногоКопированияПриИзменении(Элемент)
// В зависимости от состояния, вывести правильную страницу.
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОблачныйАрхив") Тогда
МодульОблачныйАрхивКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОблачныйАрхивКлиент");
МодульОблачныйАрхивКлиент.ПанельАдминистрированияБСП_СпособРезервногоКопированияПриИзменении(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти #КонецОбласти
#Область ОбработчикиКомандФормы #Область ОбработчикиКомандФормы
@@ -223,40 +165,6 @@
ОткрытьФорму("Обработка.РезультатыОбновленияПрограммы.Форма.ИндикацияХодаОтложенногоОбновленияИБ", ПараметрыФормы); ОткрытьФорму("Обработка.РезультатыОбновленияПрограммы.Форма.ИндикацияХодаОтложенногоОбновленияИБ", ПараметрыФормы);
КонецПроцедуры КонецПроцедуры
#Область ИнтернетПоддержкаПользователей_ОблачныйАрхив
&НаКлиенте
Процедура ПодключитьСервисОблачныйАрхив(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОблачныйАрхив") Тогда
МодульОблачныйАрхивКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОблачныйАрхивКлиент");
МодульОблачныйАрхивКлиент.ПодключитьСервисОблачныйАрхив();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОблачныйАрхивВосстановлениеИзРезервнойКопииНажатие(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОблачныйАрхив") Тогда
МодульОблачныйАрхивКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОблачныйАрхивКлиент");
МодульОблачныйАрхивКлиент.ВосстановлениеИзРезервнойКопии();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОблачныйАрхивНастройкаРезервногоКопированияНажатие(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОблачныйАрхив") Тогда
МодульОблачныйАрхивКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОблачныйАрхивКлиент");
МодульОблачныйАрхивКлиент.НастройкаРезервногоКопирования();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -351,12 +259,14 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") И (РеквизитПутьКДанным
И (РеквизитПутьКДанным = "НаборКонстант.ВыполнятьЗамерыПроизводительности" = "НаборКонстант.ВыполнятьЗамерыПроизводительности" Или РеквизитПутьКДанным = "") Тогда
Или РеквизитПутьКДанным = "") Тогда ЭлементОбработкаОценкаПроизводительностиИмпортЗамеровПроизводительности = Элементы.Найти(
ЭлементОбработкаОценкаПроизводительностиИмпортЗамеровПроизводительности = Элементы.Найти("ОбработкаОценкаПроизводительностиИмпортЗамеровПроизводительности"); "ОбработкаОценкаПроизводительностиИмпортЗамеровПроизводительности");
ЭлементОбработкаОценкаПроизводительностиЭкспортДанных = Элементы.Найти("ОбработкаОценкаПроизводительностиЭкспортДанных"); ЭлементОбработкаОценкаПроизводительностиЭкспортДанных = Элементы.Найти(
ЭлементСправочникПрофилиКлючевыхОперацийОткрытьСписок = Элементы.Найти("СправочникПрофилиКлючевыхОперацийОткрытьСписок"); "ОбработкаОценкаПроизводительностиЭкспортДанных");
ЭлементСправочникПрофилиКлючевыхОперацийОткрытьСписок = Элементы.Найти(
"СправочникПрофилиКлючевыхОперацийОткрытьСписок");
ЭлементОбработкаНастройкиОценкиПроизводительности = Элементы.Найти("ОбработкаНастройкиОценкиПроизводительности"); ЭлементОбработкаНастройкиОценкиПроизводительности = Элементы.Найти("ОбработкаНастройкиОценкиПроизводительности");
Если (ЭлементОбработкаНастройкиОценкиПроизводительности <> Неопределено Если (ЭлементОбработкаНастройкиОценкиПроизводительности <> Неопределено
И ЭлементОбработкаОценкаПроизводительностиЭкспортДанных <> Неопределено И ЭлементОбработкаОценкаПроизводительностиЭкспортДанных <> Неопределено
@@ -375,8 +285,7 @@
&НаСервере &НаСервере
Процедура ОбновитьНастройкиРезервногоКопирования() Процедура ОбновитьНастройкиРезервногоКопирования()
Если Не ОбщегоНазначения.РазделениеВключено() Если Не ОбщегоНазначения.РазделениеВключено() И Пользователи.ЭтоПолноправныйПользователь( , Истина) Тогда
И Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда
МодульРезервноеКопированиеИБСервер = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеИБСервер"); МодульРезервноеКопированиеИБСервер = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеИБСервер");
Элементы.НастройкаРезервногоКопированияИБ.РасширеннаяПодсказка.Заголовок = МодульРезервноеКопированиеИБСервер.ТекущаяНастройкаРезервногоКопирования(); Элементы.НастройкаРезервногоКопированияИБ.РасширеннаяПодсказка.Заголовок = МодульРезервноеКопированиеИБСервер.ТекущаяНастройкаРезервногоКопирования();
@@ -391,18 +300,4 @@
МодульРегламентныеЗаданияСервер.РазблокироватьРаботуСВнешнимиРесурсами(); МодульРегламентныеЗаданияСервер.РазблокироватьРаботуСВнешнимиРесурсами();
КонецПроцедуры КонецПроцедуры
#Область ИнтернетПоддержкаПользователей_ОблачныйАрхив
&НаКлиенте
Процедура Подключаемый_ПроверитьСостояниеОблачногоАрхива()
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОблачныйАрхив") Тогда
МодульОблачныйАрхивКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОблачныйАрхивКлиент");
МодульОблачныйАрхивКлиент.ПанельАдминистрированияБСП_ПроверитьСостояниеОблачногоАрхива(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти #КонецОбласти
@@ -534,7 +534,7 @@
РежимВыгрузкиДанных = "ОбычнаяВыгрузка"; РежимВыгрузкиДанных = "ОбычнаяВыгрузка";
КонецЕсли; КонецЕсли;
НаименованиеПриложения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелОбмена, "Наименование"); НаименованиеПриложения = Строка(УзелОбмена);
Параметры.Свойство("ЭтоОбменСПриложениемВСервисе", ЭтоОбменСПриложениемВСервисе); Параметры.Свойство("ЭтоОбменСПриложениемВСервисе", ЭтоОбменСПриложениемВСервисе);
Параметры.Свойство("ОбластьДанныхКорреспондента", ОбластьДанныхКорреспондента); Параметры.Свойство("ОбластьДанныхКорреспондента", ОбластьДанныхКорреспондента);
@@ -100,7 +100,7 @@
ПроверятьРасхождениеВерсий = Истина; ПроверятьРасхождениеВерсий = Истина;
НаименованиеКорреспондента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.УзелИнформационнойБазы, "Наименование"); НаименованиеКорреспондента = Строка(Объект.УзелИнформационнойБазы);
УстановитьЗаголовокФормы(); УстановитьЗаголовокФормы();
@@ -663,7 +663,7 @@
Если Результат.Отказ Тогда Если Результат.Отказ Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось загрузить данные из ""%1"" (этап автоматического сопоставления данных).'"), НСтр("ru = 'Не удалось загрузить данные из ""%1"" (этап автоматического сопоставления данных).'"),
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Корреспондент, "Наименование")); Строка(Корреспондент));
КонецЕсли; КонецЕсли;
ТаблицаИнформацииСтатистики = ПомощникИнтерактивногоОбменаДанными.ТаблицаИнформацииСтатистики(); ТаблицаИнформацииСтатистики = ПомощникИнтерактивногоОбменаДанными.ТаблицаИнформацииСтатистики();
@@ -282,7 +282,7 @@
ПараметрыОбработчика.Отказ = Истина; ПараметрыОбработчика.Отказ = Истина;
ПараметрыОбработчика.СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ПараметрыОбработчика.СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Перед запуском обмена данными необходимо завершить настройку синхронизации в программе ""%1"".'"), НСтр("ru = 'Перед запуском обмена данными необходимо завершить настройку синхронизации в программе ""%1"".'"),
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НастройкиВыгрузки.Корреспондент, "Наименование")); Строка(НастройкиВыгрузки.Корреспондент));
ПродолжитьОжидание = Ложь; ПродолжитьОжидание = Ложь;
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -292,7 +292,7 @@
ПараметрыОбработчика.Отказ = Истина; ПараметрыОбработчика.Отказ = Истина;
ПараметрыОбработчика.СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ПараметрыОбработчика.СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Перед запуском обмена данными необходимо завершить сопоставление данных в программе ""%1"".'"), НСтр("ru = 'Перед запуском обмена данными необходимо завершить сопоставление данных в программе ""%1"".'"),
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НастройкиВыгрузки.Корреспондент, "Наименование")); Строка(НастройкиВыгрузки.Корреспондент));
ПродолжитьОжидание = Ложь; ПродолжитьОжидание = Ложь;
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -13,7 +13,7 @@
УзелОбмена = Параметры.УзелОбмена; УзелОбмена = Параметры.УзелОбмена;
НаименованиеКорреспондента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелОбмена, "Наименование"); НаименованиеКорреспондента = Строка(УзелОбмена);
Элементы.ДекорацияНадписьОжидание.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Элементы.ДекорацияНадписьОжидание.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
Элементы.ДекорацияНадписьОжидание.Заголовок, НаименованиеКорреспондента); Элементы.ДекорацияНадписьОжидание.Заголовок, НаименованиеКорреспондента);
@@ -258,7 +258,7 @@
Параметры.Свойство("ЭтоОбменСПриложениемВСервисе", ЭтоОбменСПриложениемВСервисе); Параметры.Свойство("ЭтоОбменСПриложениемВСервисе", ЭтоОбменСПриложениемВСервисе);
Если Не ЗначениеЗаполнено(НаименованиеКорреспондента) Тогда Если Не ЗначениеЗаполнено(НаименованиеКорреспондента) Тогда
НаименованиеКорреспондента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелОбмена, "Наименование"); НаименованиеКорреспондента = Строка(УзелОбмена);
КонецЕсли; КонецЕсли;
ВидТранспорта = РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию(УзелОбмена); ВидТранспорта = РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию(УзелОбмена);
@@ -1517,7 +1517,7 @@
НСтр("ru = 'При удалении настройки синхронизации в программе ""%1"" возникла ошибка: %2. НСтр("ru = 'При удалении настройки синхронизации в программе ""%1"" возникла ошибка: %2.
| |
|Попробуйте выполнить удаление позже, или снимите флажок ""Удалить настройку также в программе..."".'"), |Попробуйте выполнить удаление позже, или снимите флажок ""Удалить настройку также в программе..."".'"),
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НастройкиУдаления.УзелОбмена, "Наименование"), Строка(НастройкиУдаления.УзелОбмена),
Результат.СообщениеОбОшибкеВКорреспонденте); Результат.СообщениеОбОшибкеВКорреспонденте);
ПоместитьВоВременноеХранилище(Результат, АдресРезультата); ПоместитьВоВременноеХранилище(Результат, АдресРезультата);
@@ -354,7 +354,7 @@
ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелИнформационнойБазы); ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелИнформационнойБазы);
НаименованиеЭтойБазы = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПланыОбмена[ИмяПланаОбмена].ЭтотУзел(), "Наименование"); НаименованиеЭтойБазы = Строка(ПланыОбмена[ИмяПланаОбмена].ЭтотУзел());
НаименованиеВторойБазы = УзелИнформационнойБазыПараметры.Наименование; НаименованиеВторойБазы = УзелИнформационнойБазыПараметры.Наименование;
ПрефиксИнформационнойБазыПриемника = УзелИнформационнойБазыПараметры.Код; ПрефиксИнформационнойБазыПриемника = УзелИнформационнойБазыПараметры.Код;
@@ -124,7 +124,7 @@
НаименованиеЭтойПрограммы = ОбменДаннымиПовтИсп.НаименованиеЭтогоУзла(Объект.УзелИнформационнойБазы); НаименованиеЭтойПрограммы = ОбменДаннымиПовтИсп.НаименованиеЭтогоУзла(Объект.УзелИнформационнойБазы);
НаименованиеЭтойПрограммы = ?(ПустаяСтрока(НаименованиеЭтойПрограммы), НСтр("ru = 'Эта программа'"), НаименованиеЭтойПрограммы); НаименованиеЭтойПрограммы = ?(ПустаяСтрока(НаименованиеЭтойПрограммы), НСтр("ru = 'Эта программа'"), НаименованиеЭтойПрограммы);
НаименованиеВторойПрограммы = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.УзелИнформационнойБазы, "Наименование"); НаименованиеВторойПрограммы = Строка(Объект.УзелИнформационнойБазы);
НаименованиеВторойПрограммы = ?(ПустаяСтрока(НаименованиеВторойПрограммы), НСтр("ru = 'Вторая программа'"), НаименованиеВторойПрограммы); НаименованиеВторойПрограммы = ?(ПустаяСтрока(НаименованиеВторойПрограммы), НСтр("ru = 'Вторая программа'"), НаименованиеВторойПрограммы);
Элементы.ДанныеЭтойПрограммы.Заголовок = НаименованиеЭтойПрограммы; Элементы.ДанныеЭтойПрограммы.Заголовок = НаименованиеЭтойПрограммы;
@@ -190,13 +190,15 @@
ВсеПоля = СервисКриптографииDSSASNКлиентСервер.ОпределитьТип_OID(, "10"); ВсеПоля = СервисКриптографииDSSASNКлиентСервер.ОпределитьТип_OID(, "10");
Для каждого СтрокаПоля Из ВсеПоля Цикл Для каждого СтрокаПоля Из ВсеПоля Цикл
ЗначениеПоля = ПоляЗапроса[СтрокаПоля.Ключ];
Представление = СтрокаПоля.Значение.Представление; Представление = СтрокаПоля.Значение.Представление;
Если НайтиЭлементФормы(Представление) Тогда
ЗначениеПоля = ПоляЗапроса[СтрокаПоля.Ключ];
Если НЕ ЗначениеЗаполнено(ЗначениеПоля) Тогда Если НЕ ЗначениеЗаполнено(ЗначениеПоля) Тогда
ЗначениеПоля = ПоляЗапроса[Представление]; ЗначениеПоля = ПоляЗапроса[Представление];
КонецЕсли; КонецЕсли;
ЭтотОбъект[Представление] = ЗначениеПоля; ЭтотОбъект[Представление] = ЗначениеПоля;
Элементы[Представление].Доступность = НЕ ЗначениеЗаполнено(ЗначениеПоля); Элементы[Представление].Доступность = НЕ ЗначениеЗаполнено(ЗначениеПоля);
КонецЕсли;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -239,6 +241,20 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Функция НайтиЭлементФормы(ИмяЭлемента)
Результат = Ложь;
НашлиЭлемент = Элементы.Найти(ИмяЭлемента);
Если НашлиЭлемент <> Неопределено Тогда
Результат = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервере &НаСервере
Процедура УправлениеФормой() Процедура УправлениеФормой()
@@ -251,21 +267,25 @@
ВсеПоля = СервисКриптографииDSSASNКлиентСервер.ОпределитьТип_OID(, "10"); ВсеПоля = СервисКриптографииDSSASNКлиентСервер.ОпределитьТип_OID(, "10");
Для каждого СтрокаМассива Из ВсеПоля Цикл Для каждого СтрокаМассива Из ВсеПоля Цикл
Представление = СтрокаМассива.Значение.Представление; Представление = СтрокаМассива.Значение.Представление;
Если НайтиЭлементФормы(Представление) Тогда
ЭлементФормы = ЭлементыФормы[Представление]; ЭлементФормы = ЭлементыФормы[Представление];
ЭлементФормы.Заголовок = СтрЗаменить(ЭлементФормы.Заголовок, СимволОбязательности, ""); ЭлементФормы.Заголовок = СтрЗаменить(ЭлементФормы.Заголовок, СимволОбязательности, "");
ЭлементФормы.ТолькоПросмотр = Истина; ЭлементФормы.ТолькоПросмотр = Истина;
ЭлементФормы.ОтметкаНезаполненного = Ложь; ЭлементФормы.ОтметкаНезаполненного = Ложь;
КонецЕсли;
КонецЦикла; КонецЦикла;
Если ЗначениеЗаполнено(УдостоверяющийЦентр) Тогда Если ЗначениеЗаполнено(УдостоверяющийЦентр) Тогда
ИменаПолей = СервисКриптографииDSS.ПолучитьРеестрПолейУдостоверяющегоЦентра(УдостоверяющийЦентр); ИменаПолей = СервисКриптографииDSS.ПолучитьРеестрПолейУдостоверяющегоЦентра(УдостоверяющийЦентр);
Для каждого СтрокаМассива Из ИменаПолей Цикл Для каждого СтрокаМассива Из ИменаПолей Цикл
Если НайтиЭлементФормы(СтрокаМассива.Представление) Тогда
ЭлементФормы = ЭлементыФормы[СтрокаМассива.Представление]; ЭлементФормы = ЭлементыФормы[СтрокаМассива.Представление];
ЭлементФормы.ТолькоПросмотр = Ложь; ЭлементФормы.ТолькоПросмотр = Ложь;
Если СтрокаМассива.Обязательно Тогда Если СтрокаМассива.Обязательно Тогда
ЭлементФормы.Заголовок = ЭлементФормы.Заголовок + СимволОбязательности; ЭлементФормы.Заголовок = ЭлементФормы.Заголовок + СимволОбязательности;
ЭлементФормы.ОтметкаНезаполненного = Истина; ЭлементФормы.ОтметкаНезаполненного = Истина;
КонецЕсли; КонецЕсли;
КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
@@ -1603,7 +1603,8 @@
#Если ВебКлиент Тогда #Если ВебКлиент Тогда
НоваяСтрока.Расположение = 4; НоваяСтрока.Расположение = 4;
НоваяСтрока.ИмяФайлаНаКомпьютере = ПоместитьВоВременноеХранилище(ПолучитьИзВременногоХранилища(ВыбранныйФайл.Хранение)); НоваяСтрока.ИмяФайлаНаКомпьютере = ПоместитьВоВременноеХранилище(ПолучитьИзВременногоХранилища(ВыбранныйФайл.Хранение),
УникальныйИдентификатор);
#Иначе #Иначе
НоваяСтрока.Расположение = 2; НоваяСтрока.Расположение = 2;
НоваяСтрока.ИмяФайлаНаКомпьютере = ВыбранныйФайл.ПолноеИмя; НоваяСтрока.ИмяФайлаНаКомпьютере = ВыбранныйФайл.ПолноеИмя;
@@ -94,7 +94,7 @@
КонецЕсли; КонецЕсли;
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 10000
| ВерсииОбъектов.Объект, | ВерсииОбъектов.Объект,
| ВерсииОбъектов.НомерВерсии, | ВерсииОбъектов.НомерВерсии,
| ВерсииОбъектов.ВерсияОбъекта, | ВерсииОбъектов.ВерсияОбъекта,
@@ -112,6 +112,7 @@
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Количество() > 0 Цикл
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
НаборЗаписей = СоздатьНаборЗаписей(); НаборЗаписей = СоздатьНаборЗаписей();
@@ -122,7 +123,8 @@
ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка); ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка);
НаборЗаписей.Записать(); НаборЗаписей.Записать();
КонецЦикла;
Выборка = Запрос.Выполнить().Выбрать();
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -274,6 +274,19 @@
КонецЕсли; КонецЕсли;
НоваяСтрокаТаблицы = Группа.Строки.Добавить(); НоваяСтрокаТаблицы = Группа.Строки.Добавить();
НоваяСтрокаТаблицы.КлассОбъекта = "КлассПланыВидовХарактеристик"; НоваяСтрокаТаблицы.КлассОбъекта = "КлассПланыВидовХарактеристик";
ИначеЕсли ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(Тип) Тогда
ИмяГруппы = "06ПланыВидовРасчетаКорень";
ПредставлениеГруппы = НСтр("ru = 'Планы видов расчета'");
ТипОбъектовГруппы = "ПланыВидовРасчета";
Группа = ДеревоОМ.Строки.Найти(ИмяГруппы, "КлассОбъекта");
Если Группа = Неопределено Тогда
Группа = ДеревоОМ.Строки.Добавить();
Группа.СинонимНаименованияОбъекта = ПредставлениеГруппы;
Группа.КлассОбъекта = ИмяГруппы;
Группа.ТипОбъекта = ТипОбъектовГруппы;
КонецЕсли;
НоваяСтрокаТаблицы = Группа.Строки.Добавить();
НоваяСтрокаТаблицы.КлассОбъекта = "КлассПланыВидовРасчета";
КонецЕсли; КонецЕсли;
МетаданныеОбъекта = Метаданные.НайтиПоТипу(Тип); МетаданныеОбъекта = Метаданные.НайтиПоТипу(Тип);
НоваяСтрокаТаблицы.ТипОбъекта = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип); НоваяСтрокаТаблицы.ТипОбъекта = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип);
@@ -784,6 +784,45 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField">
<name>WSИспользоватьПередачуБольшогоОбъемаДанных</name>
<id>204</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Запись.WSИспользоватьПередачуБольшогоОбъемаДанных</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<toolTip>
<key>ru</key>
<value>Рекомендуется использовать в тех случаях, если в синхронизации участвует более одного объекта (справочника, документа).</value>
</toolTip>
<toolTipRepresentation>Button</toolTipRepresentation>
<extendedTooltip>
<name>WSИспользоватьПередачуБольшогоОбъемаДанныхРасширеннаяПодсказка</name>
<id>206</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>WSИспользоватьПередачуБольшогоОбъемаДанныхКонтекстноеМеню</name>
<id>205</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ПараметрыДоступаВИнтернет</name> <name>ПараметрыДоступаВИнтернет</name>
<id>119</id> <id>119</id>
@@ -530,7 +530,9 @@
<maxValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/> <fillValue xsi:type="core:BooleanValue">
<value>true</value>
</fillValue>
</resources> </resources>
<resources uuid="eb551461-ae0d-41dd-89fa-2f6e7f3c4840"> <resources uuid="eb551461-ae0d-41dd-89fa-2f6e7f3c4840">
<name>ВидТранспортаСообщенийОбменаПоУмолчанию</name> <name>ВидТранспортаСообщенийОбменаПоУмолчанию</name>
@@ -358,7 +358,6 @@
Иначе Иначе
ФИО = Сотрудник.Сотрудник.Наименование; ФИО = Сотрудник.Сотрудник.Наименование;
КонецЕсли; КонецЕсли;
ФИО = ФизическиеЛицаКлиентСервер.ФамилияИнициалы(Сотрудник.Сотрудник.Наименование);
Для Каждого ТекСтрока Из ТаблицаКоманд Цикл Для Каждого ТекСтрока Из ТаблицаКоманд Цикл
Значения = Новый Структура("Представление, ФИО", ТекСтрока.Представление,ФИО); Значения = Новый Структура("Представление, ФИО", ТекСтрока.Представление,ФИО);
Если КомплектПечатныхФорм.НайтиСтроки(Новый Структура("ИмяМакета", ТекСтрока.Идентификатор)) = 0 Тогда Если КомплектПечатныхФорм.НайтиСтроки(Новый Структура("ИмяМакета", ТекСтрока.Идентификатор)) = 0 Тогда
@@ -934,6 +934,8 @@
СобытияРЗ.Добавить("_$Job$_.Cancel"); СобытияРЗ.Добавить("_$Job$_.Cancel");
СобытияРЗ.Добавить("_$Job$_.Fail"); СобытияРЗ.Добавить("_$Job$_.Fail");
СобытияРЗ.Добавить("_$Job$_.Succeed"); СобытияРЗ.Добавить("_$Job$_.Succeed");
СобытияРЗ.Добавить("_$Job$_.Finish");
СобытияРЗ.Добавить("_$Job$_.Error");
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
ОтборЖурнала = Новый Структура; ОтборЖурнала = Новый Структура;
@@ -1925,6 +1925,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>Constant.ОсновнойЯзык</name> <name>Constant.ОсновнойЯзык</name>
<right> <right>
@@ -5202,93 +5289,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>CommonCommand.ЗагрузитьКурсыВалют</name> <name>CommonCommand.ЗагрузитьКурсыВалют</name>
<right> <right>
@@ -21,6 +21,37 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name> <name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name>
<right> <right>
@@ -76,37 +107,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<restrictionTemplate> <restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name> <name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "") <condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -2746,6 +2746,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>Constant.ОсновнойЯзык</name> <name>Constant.ОсновнойЯзык</name>
<right> <right>
@@ -7087,45 +7126,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>CommonCommand.ЗагрузитьКурсыВалют</name> <name>CommonCommand.ЗагрузитьКурсыВалют</name>
<right> <right>
@@ -3,24 +3,6 @@
<setForNewObjects>false</setForNewObjects> <setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault> <setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects> <independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ЖурналРегистрации</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -52,4 +34,22 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ЖурналРегистрации</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
</Rights> </Rights>
@@ -322,7 +322,13 @@
КонецЕсли; КонецЕсли;
ДоступныеЗначения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( ДоступныеЗначения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
КомпоновщикНастроек.Настройки.ДополнительныеСвойства, "ДоступныеЗначения", Новый Структура); КомпоновщикНастроек.Настройки.ДополнительныеСвойства, "ДоступныеЗначения");
Если ИмяПоляНастройки = Неопределено
Или ТипЗнч(ДоступныеЗначения) <> Тип("Структура") Тогда
Возврат ЗначениеНастройки;
КонецЕсли;
ДоступныеЗначенияНастройки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( ДоступныеЗначенияНастройки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
ДоступныеЗначения, ИмяПоляНастройки, Новый СписокЗначений); ДоступныеЗначения, ИмяПоляНастройки, Новый СписокЗначений);
@@ -1646,6 +1646,12 @@
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>Вставка</name> <name>Вставка</name>
<id>198</id> <id>198</id>
<items xsi:type="form:FormGroup">
<name>ВставкаКолонки</name>
<id>445</id>
<items xsi:type="form:FormGroup">
<name>ВставкаКолонка1</name>
<id>447</id>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ВставитьПолеСлева</name> <name>ВставитьПолеСлева</name>
<id>156</id> <id>156</id>
@@ -1674,34 +1680,6 @@
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation> <shapeRepresentation>None</shapeRepresentation>
</items> </items>
<items xsi:type="form:Button">
<name>ВставитьПолеСправа</name>
<id>158</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ВставитьПолеСправаРасширеннаяПодсказка</name>
<id>159</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualButton</type>
<commandName>Form.Command.ВставитьПолеСправа</commandName>
<buttonImportance>Supplementary</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation>
</items>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ВставитьГруппировкуВыше</name> <name>ВставитьГруппировкуВыше</name>
<id>160</id> <id>160</id>
@@ -1730,6 +1708,67 @@
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation> <shapeRepresentation>None</shapeRepresentation>
</items> </items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Вставка колонка 1</value>
</title>
<width>20</width>
<extendedTooltip>
<name>ВставкаКолонка1РасширеннаяПодсказка</name>
<id>448</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ВставкаКолонка2</name>
<id>449</id>
<items xsi:type="form:Button">
<name>ВставитьПолеСправа</name>
<id>158</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ВставитьПолеСправаРасширеннаяПодсказка</name>
<id>159</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualButton</type>
<commandName>Form.Command.ВставитьПолеСправа</commandName>
<buttonImportance>Supplementary</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation>
</items>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ВставитьГруппировкуНиже</name> <name>ВставитьГруппировкуНиже</name>
<id>162</id> <id>162</id>
@@ -1758,6 +1797,64 @@
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation> <shapeRepresentation>None</shapeRepresentation>
</items> </items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Вставка колонка 2</value>
</title>
<extendedTooltip>
<name>ВставкаКолонка2РасширеннаяПодсказка</name>
<id>450</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>446</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Decoration"> <items xsi:type="form:Decoration">
<name>ВставкаГраницаГруппы</name> <name>ВставкаГраницаГруппы</name>
<id>356</id> <id>356</id>
@@ -1832,6 +1929,12 @@
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>Перемещение</name> <name>Перемещение</name>
<id>200</id> <id>200</id>
<items xsi:type="form:FormGroup">
<name>ПеремещениеКолонки</name>
<id>451</id>
<items xsi:type="form:FormGroup">
<name>ПеремещениеКолонка1</name>
<id>453</id>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ПереместитьПолеВлево</name> <name>ПереместитьПолеВлево</name>
<id>186</id> <id>186</id>
@@ -1860,34 +1963,6 @@
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation> <shapeRepresentation>None</shapeRepresentation>
</items> </items>
<items xsi:type="form:Button">
<name>ПереместитьПолеВправо</name>
<id>188</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПереместитьПолеВправоРасширеннаяПодсказка</name>
<id>189</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualButton</type>
<commandName>Form.Command.ПереместитьПолеВправо</commandName>
<buttonImportance>Supplementary</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation>
</items>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ПереместитьПолеВыше</name> <name>ПереместитьПолеВыше</name>
<id>190</id> <id>190</id>
@@ -1916,6 +1991,67 @@
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation> <shapeRepresentation>None</shapeRepresentation>
</items> </items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Перемещение колонка 1</value>
</title>
<width>20</width>
<extendedTooltip>
<name>ПеремещениеКолонка1РасширеннаяПодсказка</name>
<id>454</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ПеремещениеКолонка2</name>
<id>455</id>
<items xsi:type="form:Button">
<name>ПереместитьПолеВправо</name>
<id>188</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПереместитьПолеВправоРасширеннаяПодсказка</name>
<id>189</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualButton</type>
<commandName>Form.Command.ПереместитьПолеВправо</commandName>
<buttonImportance>Supplementary</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation>
</items>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ПереместитьПолеНиже</name> <name>ПереместитьПолеНиже</name>
<id>192</id> <id>192</id>
@@ -1944,6 +2080,64 @@
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation> <shapeRepresentation>None</shapeRepresentation>
</items> </items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Перемещение колонка 2</value>
</title>
<extendedTooltip>
<name>ПеремещениеКолонка2РасширеннаяПодсказка</name>
<id>456</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>452</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Decoration"> <items xsi:type="form:Decoration">
<name>ПеремещениеГраницаГруппы</name> <name>ПеремещениеГраницаГруппы</name>
<id>359</id> <id>359</id>
@@ -2289,6 +2483,12 @@
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>УстановкаЦвета</name> <name>УстановкаЦвета</name>
<id>204</id> <id>204</id>
<items xsi:type="form:FormGroup">
<name>УстановкаЦветаКолонки</name>
<id>457</id>
<items xsi:type="form:FormGroup">
<name>УстановкаЦветаКолонка1</name>
<id>459</id>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ОформитьОтрицательные</name> <name>ОформитьОтрицательные</name>
<id>172</id> <id>172</id>
@@ -2317,6 +2517,39 @@
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation> <shapeRepresentation>None</shapeRepresentation>
</items> </items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Установка цвета колонка 1</value>
</title>
<width>20</width>
<extendedTooltip>
<name>УстановкаЦветаКолонка1РасширеннаяПодсказка</name>
<id>460</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>УстановкаЦветаКолонка2</name>
<id>461</id>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ОформитьПоложительные</name> <name>ОформитьПоложительные</name>
<id>174</id> <id>174</id>
@@ -2345,6 +2578,64 @@
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<shapeRepresentation>None</shapeRepresentation> <shapeRepresentation>None</shapeRepresentation>
</items> </items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Установка цвета колонка 2</value>
</title>
<extendedTooltip>
<name>УстановкаЦветаКолонка2РасширеннаяПодсказка</name>
<id>462</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>458</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Decoration"> <items xsi:type="form:Decoration">
<name>УстановкаЦветаГраницаГруппы</name> <name>УстановкаЦветаГраницаГруппы</name>
<id>365</id> <id>365</id>
@@ -1037,7 +1037,7 @@
</columns> </columns>
</attributes> </attributes>
<attributes> <attributes>
<name>ИмяФайлаБезРаширения</name> <name>ИмяФайлаБезРасширения</name>
<id>14</id> <id>14</id>
<valueType> <valueType>
<types>String</types> <types>String</types>
@@ -12,7 +12,7 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РасширениеАрхива = ".zip"; РасширениеАрхива = ".zip";
ИмяФайлаБезРаширения = "ReportOptions"; ИмяФайлаБезРасширения = "ReportOptions";
ЗаполнитьОписаниеВариантовОтчетов(); ЗаполнитьОписаниеВариантовОтчетов();
ПрочитатьПользовательскиеНастройки(); ПрочитатьПользовательскиеНастройки();
@@ -58,19 +58,19 @@
Если НРег(ИмяФайлаКраткое) = РасширениеАрхива Тогда Если НРег(ИмяФайлаКраткое) = РасширениеАрхива Тогда
ИмяФайлаКраткое = ИмяФайлаБезРаширения + РасширениеАрхива; ИмяФайлаКраткое = ИмяФайлаБезРасширения + РасширениеАрхива;
ОписаниеИмениФайла[ОписаниеИмениФайла.ВГраница()] = ИмяФайлаКраткое; ОписаниеИмениФайла[ОписаниеИмениФайла.ВГраница()] = ИмяФайлаКраткое;
ИмяФайла = СтрСоединить(ОписаниеИмениФайла, ПолучитьРазделительПути()); ИмяФайла = СтрСоединить(ОписаниеИмениФайла, ПолучитьРазделительПути());
ИначеЕсли Не СтрЗаканчиваетсяНа(НРег(ИмяФайлаКраткое), РасширениеАрхива) Тогда ИначеЕсли Не СтрЗаканчиваетсяНа(НРег(ИмяФайлаКраткое), РасширениеАрхива) Тогда
ИмяФайлаКраткое = ИмяФайлаБезРаширения + РасширениеАрхива; ИмяФайлаКраткое = ИмяФайлаБезРасширения + РасширениеАрхива;
ОписаниеИмениФайла.Добавить(ИмяФайлаКраткое); ОписаниеИмениФайла.Добавить(ИмяФайлаКраткое);
ИмяФайла = СтрСоединить(ОписаниеИмениФайла, ПолучитьРазделительПути()); ИмяФайла = СтрСоединить(ОписаниеИмениФайла, ПолучитьРазделительПути());
Иначе Иначе
ИмяФайлаБезРаширения = СтрЗаменить(ИмяФайлаКраткое, РасширениеАрхива, ""); ИмяФайлаБезРасширения = СтрЗаменить(ИмяФайлаКраткое, РасширениеАрхива, "");
КонецЕсли; КонецЕсли;
@@ -572,7 +572,7 @@
ОписаниеВариантаОтчета = ОписаниеВариантовОтчетов[НомерВариантаОтчета - 1]; ОписаниеВариантаОтчета = ОписаниеВариантовОтчетов[НомерВариантаОтчета - 1];
ОписаниеВариантаОтчета.ИмяФайла = ИмяКаталога ОписаниеВариантаОтчета.ИмяФайла = ИмяКаталога
+ ИмяФайлаБезРаширения + ИмяФайлаБезРасширения
+ ?(ОписаниеВариантовОтчетов.Количество() = 1, "", НомерВариантаОтчета) + ?(ОписаниеВариантовОтчетов.Количество() = 1, "", НомерВариантаОтчета)
+ РасширениеАрхива; + РасширениеАрхива;
@@ -6,6 +6,49 @@
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаОформляемыеПоляВариантыВыбора</name> <name>ГруппаОформляемыеПоляВариантыВыбора</name>
<id>354</id> <id>354</id>
<items xsi:type="form:FormField">
<name>Использование</name>
<id>372</id>
<title>
<key>ru</key>
<value>Используется для</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Использование</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<toolTip>
<key>ru</key>
<value>Включить, либо отключить оформление.</value>
</toolTip>
<extendedTooltip>
<name>ИспользованиеРасширеннаяПодсказка</name>
<id>374</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИспользованиеКонтекстноеМеню</name>
<id>373</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<groupVerticalAlign>Center</groupVerticalAlign>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>ВариантВыбораОформляемыхПолей</name> <name>ВариантВыбораОформляемыхПолей</name>
<id>356</id> <id>356</id>
@@ -3603,6 +3646,23 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>Использование</name>
<title>
<key>ru</key>
<value>Использование</value>
</title>
<id>19</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>
@@ -15,6 +15,7 @@
УстановитьЗаголовок(); УстановитьЗаголовок();
ЭлементОформления = ЭлементОформленияИсходный(); ЭлементОформления = ЭлементОформленияИсходный();
Использование = ЭлементОформления.Использование;
Если ИдентификаторКД <> Неопределено Тогда Если ИдентификаторКД <> Неопределено Тогда
@@ -549,6 +550,8 @@
УточнитьСоставОформляемыхПолей(ЭлементОформления); УточнитьСоставОформляемыхПолей(ЭлементОформления);
ЭлементОформления.Использование = Использование;
ОписаниеФормул = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НастройкиОтчета, "ОписаниеФормул", Новый Массив); ОписаниеФормул = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НастройкиОтчета, "ОписаниеФормул", Новый Массив);
Результат = Новый Структура(); Результат = Новый Структура();