diff --git a/VERSION b/VERSION
index 700af7568..6a5a3701e 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-11.5.27.61
+11.5.27.70
diff --git a/src/AccumulationRegisters/НДСПредъявленный.xml b/src/AccumulationRegisters/НДСПредъявленный.xml
index 11a4e2e28..c41d14c26 100644
--- a/src/AccumulationRegisters/НДСПредъявленный.xml
+++ b/src/AccumulationRegisters/НДСПредъявленный.xml
@@ -730,6 +730,88 @@
Use
+
+
+ Партия
+
+
+ ru
+ Партия
+
+
+
+
+ cfg:DefinedType.ДокументПартии
+
+ false
+
+
+
+
+ ru
+ Партия номенклатуры
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ Index
+ Use
+
+
+
+
+ АналитикаУчетаПартий
+
+
+ ru
+ Аналитика учета партий
+
+
+
+
+ cfg:CatalogRef.КлючиАналитикиУчетаПартий
+
+ false
+
+
+
+
+ ru
+ Аналитика учета партии номенклатуры
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+
+
Организация
diff --git a/src/AccumulationRegisters/РаспоряженияНаОтгрузкуИВозврат/Ext/ManagerModule.bsl b/src/AccumulationRegisters/РаспоряженияНаОтгрузкуИВозврат/Ext/ManagerModule.bsl
index cf406414f..6ee9bb7ce 100644
--- a/src/AccumulationRegisters/РаспоряженияНаОтгрузкуИВозврат/Ext/ManagerModule.bsl
+++ b/src/AccumulationRegisters/РаспоряженияНаОтгрузкуИВозврат/Ext/ManagerModule.bsl
@@ -860,7 +860,7 @@
Обработчик.Многопоточный = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ЗарегистрироватьДанныеАктуальныхДокументов";
Обработчик.ПроцедураПроверки = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ДанныеОбновленыНаНовуюВерсиюПрограммы";
- Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Обычный;
+ Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Критичный;
Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра накопления ""Распоряжения на отгрузку и возврат"" для актуальных (незакрытых) распоряжений:
|- перенос движений из регистра накопления ""Распоряжения на отгрузку""
|- формирование движений по показателям
@@ -936,7 +936,7 @@
Обработчик.Многопоточный = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ЗарегистрироватьДанныеДокументовЗаявкаНаВозврат";
Обработчик.ПроцедураПроверки = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ДанныеОбновленыНаНовуюВерсиюПрограммы";
- Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Обычный;
+ Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Критичный;
Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра накопления ""Распоряжения на отгрузку и возврат"" для документов возврата:
|- перенос движений из регистра накопления ""Заявки на возврат товаров от клиентов""
|- формирование движений по показателям
@@ -982,7 +982,6 @@
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи";
НоваяСтрока.Порядок = "До";
// УАС - конец
-
#КонецОбласти
#Область ОбработкаАктуальныхДокументовСторно
@@ -995,7 +994,7 @@
Обработчик.Многопоточный = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ЗарегистрироватьДанныеАктуальныхДокументовСторно";
Обработчик.ПроцедураПроверки = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ДанныеОбновленыНаНовуюВерсиюПрограммы";
- Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Обычный;
+ Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Критичный;
Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра накопления ""Распоряжения на отгрузку и возврат"" для актуальных документов Сторно'");
Читаемые = Новый Массив;
@@ -1030,13 +1029,12 @@
НоваяСтрока = Обработчик.ПриоритетыВыполнения.Добавить();
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ОбработатьДанныеНеактуальныхДокументовСторно";
НоваяСтрока.Порядок = "До";
-
+
// УАС - начало
НоваяСтрока = Обработчик.ПриоритетыВыполнения.Добавить();
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи";
НоваяСтрока.Порядок = "До";
// УАС - конец
-
#КонецОбласти
#Область ОбработкаНеактуальныхДокументов
@@ -1104,13 +1102,12 @@
НоваяСтрока = Обработчик.ПриоритетыВыполнения.Добавить();
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ОбработатьДанныеНеактуальныхДокументовСторно";
НоваяСтрока.Порядок = "До";
-
+
// УАС - начало
НоваяСтрока = Обработчик.ПриоритетыВыполнения.Добавить();
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи";
НоваяСтрока.Порядок = "До";
// УАС - конец
-
#КонецОбласти
#Область ОбработкаНеактуальныхДокументовСторно
@@ -1164,7 +1161,6 @@
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи";
НоваяСтрока.Порядок = "До";
// УАС - конец
-
#КонецОбласти
// УАС - начало
@@ -1215,7 +1211,6 @@
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ОбработатьДанныеНеактуальныхДокументовСторно";
НоваяСтрока.Порядок = "После";
// УАС - конец
-
КонецПроцедуры
// Отмечает порцию данных для обработки.
@@ -1326,19 +1321,11 @@
| ТаблицаОтраженныеРегистраторы.Регистратор
| ИЗ
| ТаблицаОтраженныеРегистраторы КАК ТаблицаОтраженныеРегистраторы)
- | И (Таблица.Распоряжение В
+ | И Таблица.Распоряжение В
| (ВЫБРАТЬ
| ТаблицаАктуальныеРаспоряжения.Распоряжение
| ИЗ
- | ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения)
- | ИЛИ ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаказКлиента)
- | И ВЫРАЗИТЬ(Таблица.Распоряжение КАК
- | Документ.ЗаказКлиента).Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт)
- | ИЛИ ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаявкаНаВозвратТоваровОтКлиента)
- | И НЕ ВЫРАЗИТЬ(Таблица.Распоряжение КАК
- | Документ.ЗаявкаНаВозвратТоваровОтКлиента).Статус В (
- | ЗНАЧЕНИЕ(Перечисление.СтатусыЗаявокНаВозвратТоваровОтКлиентов.Выполнена),
- | ЗНАЧЕНИЕ(Перечисление.СтатусыЗаявокНаВозвратТоваровОтКлиентов.Отклонена)))";
+ | ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения)";
Выборка = Запрос.Выполнить().Выбрать();
@@ -1449,14 +1436,11 @@
| ТаблицаОтраженныеРегистраторы.Регистратор
| ИЗ
| ТаблицаОтраженныеРегистраторы КАК ТаблицаОтраженныеРегистраторы)
- | И (Таблица.Распоряжение В
+ | И Таблица.Распоряжение В
| (ВЫБРАТЬ
| ТаблицаАктуальныеРаспоряжения.Распоряжение
| ИЗ
| ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения)
- | ИЛИ ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаказКлиента)
- | И ВЫРАЗИТЬ(Таблица.Распоряжение КАК
- | Документ.ЗаказКлиента).Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт))
|
|ОБЪЕДИНИТЬ
|
@@ -1541,15 +1525,7 @@
| (ВЫБРАТЬ
| ТаблицаАктуальныеРаспоряжения.Распоряжение
| ИЗ
- | ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения)
- | И НЕ (ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаказКлиента)
- | И ВЫРАЗИТЬ(Таблица.Распоряжение КАК
- | Документ.ЗаказКлиента).Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт))
- | И НЕ (ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаявкаНаВозвратТоваровОтКлиента)
- | И НЕ ВЫРАЗИТЬ(Таблица.Распоряжение КАК
- | Документ.ЗаявкаНаВозвратТоваровОтКлиента).Статус В (
- | ЗНАЧЕНИЕ(Перечисление.СтатусыЗаявокНаВозвратТоваровОтКлиентов.Выполнена),
- | ЗНАЧЕНИЕ(Перечисление.СтатусыЗаявокНаВозвратТоваровОтКлиентов.Отклонена)))";
+ | ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения)";
Выборка = Запрос.Выполнить().Выбрать();
@@ -1616,10 +1592,7 @@
| (ВЫБРАТЬ
| ТаблицаАктуальныеРаспоряжения.Распоряжение
| ИЗ
- | ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения)
- | И НЕ (ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаказКлиента)
- | И ВЫРАЗИТЬ(Таблица.Распоряжение КАК
- | Документ.ЗаказКлиента).Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт))";
+ | ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения)";
Выборка = Запрос.Выполнить().Выбрать();
diff --git a/src/Catalogs/ВидыДокументовЭДО/Forms/ФормаВыбора/Ext/Form/Module.bsl b/src/Catalogs/ВидыДокументовЭДО/Forms/ФормаВыбора/Ext/Form/Module.bsl
index bad452ff3..b8a672f89 100644
--- a/src/Catalogs/ВидыДокументовЭДО/Forms/ФормаВыбора/Ext/Form/Module.bsl
+++ b/src/Catalogs/ВидыДокументовЭДО/Forms/ФормаВыбора/Ext/Form/Module.bsl
@@ -10,6 +10,12 @@
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементОтбора.ПравоеЗначение = ЭлектронныеДокументыЭДО.ВидыДокументовДляПроизвольногоФормата();
ЭлементОтбора.Использование = Истина;
+ ИначеЕсли ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ВыборОграниченийМЧД", Ложь) Тогда
+ ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
+ ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
+ ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
+ ЭлементОтбора.ПравоеЗначение = ЭлектронныеДокументыЭДО.ВидыДокументовСПодписью();
+ ЭлементОтбора.Использование = Истина;
КонецЕсли;
КонецПроцедуры
diff --git a/src/Catalogs/ВидыНалоговВзносов/Ext/ManagerModule.bsl b/src/Catalogs/ВидыНалоговВзносов/Ext/ManagerModule.bsl
index 80bc87eda..9f5278cf2 100644
--- a/src/Catalogs/ВидыНалоговВзносов/Ext/ManagerModule.bsl
+++ b/src/Catalogs/ВидыНалоговВзносов/Ext/ManagerModule.bsl
@@ -27,6 +27,10 @@
Элемент = Элементы.Добавить();
Элемент.ИмяПредопределенныхДанных = "НДС";
МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'НДС'", КодыЯзыков);// @НСтр-2
+
+ Элемент = Элементы.Добавить();
+ Элемент.ИмяПредопределенныхДанных = "Акцизы";
+ МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Акцизы'", КодыЯзыков);// @НСтр-2
ВидыНалоговВзносовЛокализация.ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти);
@@ -122,6 +126,8 @@
Наименование = "ru = 'НДС при импорте товаров из ЕАЭС'"; // @НСтр-1
ИначеЕсли ИмяПредопределенного = "НДС_НалоговыйАгент" Тогда
Наименование = "ru = 'НДС при исполнении обязанностей налогового агента'"; // @НСтр-1
+ ИначеЕсли ИмяПредопределенного = "Акцизы" Тогда
+ Наименование = "ru = 'Акцизы'"; // @НСтр-1
КонецЕсли;
Если ПустаяСтрока(Наименование) Тогда
Наименование = Перечисления.УдалитьТипыНалогов.НаименованиеПредопределенногоЭлемента(ИмяПредопределенного);
diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Form/Module.bsl
index d2f2a04d2..2031d3f36 100644
--- a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Form/Module.bsl
+++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Form/Module.bsl
@@ -2987,6 +2987,7 @@
&НаСервере
Процедура НастроитьФорму()
+
ТолькоПросмотр = Не ЕстьПравоРедактирования;
ЗаполняемыйОбъект = Объект;
@@ -3584,17 +3585,24 @@
#КонецОбласти
#Область ДопРеквизитыИДопСведения
- Элементы.СтраницаДопРеквизиты.Видимость = ИспользоватьДополнительныеРеквизитыИСведения;
- Элементы.СтраницаДопСведения.Видимость = ИспользоватьДополнительныеРеквизитыИСведения;
-
- ЕстьПравоДобавленияРеквизитов = ПравоДоступа("Добавление", Метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения);
+ Элементы.СтраницаДопРеквизиты.Видимость = ИспользоватьДополнительныеРеквизитыИСведения;
+ Элементы.СтраницаДопСведения.Видимость = ИспользоватьДополнительныеРеквизитыИСведения;
+ Элементы.НоменклатураГруппаСоздатьРеквизиты.Видимость = ЕстьПравоРедактирования;
+ Элементы.ХарактеристикиГруппаСоздатьРеквизиты.Видимость = ЕстьПравоРедактирования;
+ Элементы.СерииГруппаСоздатьРеквизиты.Видимость = ЕстьПравоРедактирования;
+ Элементы.НоменклатураГруппаСоздатьСведения.Видимость = ЕстьПравоРедактирования;
+ Элементы.ХарактеристикиГруппаСоздатьСведения.Видимость = ЕстьПравоРедактирования;
+ Элементы.СерииГруппаСоздатьСведения.Видимость = ЕстьПравоРедактирования;
- Элементы.НоменклатураГруппаСоздатьРеквизиты.Видимость = ЕстьПравоДобавленияРеквизитов;
- Элементы.ХарактеристикиГруппаСоздатьРеквизиты.Видимость = ЕстьПравоДобавленияРеквизитов;
- Элементы.СерииГруппаСоздатьРеквизиты.Видимость = ЕстьПравоДобавленияРеквизитов;
- Элементы.НоменклатураГруппаСоздатьСведения.Видимость = ЕстьПравоДобавленияРеквизитов;
- Элементы.ХарактеристикиГруппаСоздатьСведения.Видимость = ЕстьПравоДобавленияРеквизитов;
- Элементы.СерииГруппаСоздатьСведения.Видимость = ЕстьПравоДобавленияРеквизитов;
+ Элементы.РеквизитыДляКонтроляНоменклатурыПредставлениеРеквизитаГиперссылка.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
+ Элементы.РеквизитыДляКонтроляХарактеристикПредставлениеРеквизитаГиперссылка.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
+ Элементы.РеквизитыДляКонтроляСерийПредставлениеРеквизитаГиперссылка.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
+
+ Элементы.РеквизитыДляКонтроляНоменклатурыВиденСУсловием.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
+ Элементы.РеквизитыДляКонтроляХарактеристикВиденСУсловием.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
+
+ Элементы.РеквизитыДляКонтроляНоменклатурыДоступенСУсловием.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
+ Элементы.РеквизитыДляКонтроляХарактеристикДоступенСУсловием.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
#КонецОбласти
#Область КонтролироватьУникальность
@@ -6564,11 +6572,13 @@
Запись.КоличествоВПотребительскойУпаковке = 1;
КонецЕсли;
Запись.КлючВидовПродукции = КлючВидовПродукции;
+ УстановитьПривилегированныйРежим(Истина);
Если ЗначениеЗаполнено(Запись.КлючВидовПродукции) Тогда
Запись.Записать();
Иначе
Запись.Удалить();
КонецЕсли;
+ УстановитьПривилегированныйРежим(Ложь);
ЗафиксироватьТранзакцию();
diff --git a/src/Catalogs/ИдентификаторыОбъектовМетаданных/Ext/ManagerModule.bsl b/src/Catalogs/ИдентификаторыОбъектовМетаданных/Ext/ManagerModule.bsl
index a2166a330..ffceca22b 100644
--- a/src/Catalogs/ИдентификаторыОбъектовМетаданных/Ext/ManagerModule.bsl
+++ b/src/Catalogs/ИдентификаторыОбъектовМетаданных/Ext/ManagerModule.bsl
@@ -1030,11 +1030,7 @@
//
Процедура ОбновитьСвойстваИдентификатора(Объект) Экспорт
- Если ТипЗнч(Объект) <> Тип("ДанныеФормыСтруктура") Тогда
- ОбъектыРасширений = ЭтоОбъектРасширений(Объект);
- Иначе
- ОбъектыРасширений = ЭтоОбъектРасширений(Объект.Ссылка);
- КонецЕсли;
+ ОбъектыРасширений = ЭтоОбъектРасширений(Объект);
Если ОбъектыРасширений
И Справочники.ИдентификаторыОбъектовРасширений.ОбъектРасширенияОтключен(Объект.Ссылка) Тогда
@@ -1528,7 +1524,7 @@
//
Процедура ФормаЭлементаПриСозданииНаСервере(Форма) Экспорт
- ОбъектыРасширений = ЭтоОбъектРасширений(Форма.Объект.Ссылка);
+ ОбъектыРасширений = ЭтоОбъектРасширений(Форма.Объект);
Элементы = Форма.Элементы;
@@ -2197,7 +2193,7 @@
Процедура ОбновитьСвойстваПомеченногоНаУдаление(Свойства, СвойстваОбновлены = Ложь, ЕстьУдаленные = Ложь, ЭтоДубль = Ложь)
- ОбъектыРасширений = ЭтоОбъектРасширений(Свойства.Ссылка);
+ ОбъектыРасширений = ЭтоОбъектРасширений(Свойства);
Если ЭтоДубль Тогда
КлючОбъектаМетаданных = ?(ТипЗнч(Свойства.КлючОбъектаМетаданных) = Тип("ХранилищеЗначения"),
@@ -2226,7 +2222,7 @@
// Установка новых свойств идентификатора объекта метаданных.
Свойства.ПометкаУдаления = Истина;
- Свойства.Родитель = ПустаяСсылкаСправочника(ЭтоОбъектРасширений(Свойства.Ссылка));
+ Свойства.Родитель = ПустаяСсылкаСправочника(ЭтоОбъектРасширений(Свойства));
Свойства.Наименование = ВставитьЗнакВопроса(Свойства.Наименование);
Свойства.Имя = ВставитьЗнакВопроса(Свойства.Имя);
Свойства.Синоним = ВставитьЗнакВопроса(Свойства.Синоним);
@@ -2373,7 +2369,7 @@
РезультатПроверки.Вставить("ПредставлениеУдаленного", "");
КлючОбъектаМетаданных = СвойстваИдентификатора.КлючОбъектаМетаданных.Получить();
- ОбъектыРасширений = ЭтоОбъектРасширений(СвойстваИдентификатора.Ссылка);
+ ОбъектыРасширений = ЭтоОбъектРасширений(СвойстваИдентификатора);
Если КлючОбъектаМетаданных <> Неопределено
И КлючОбъектаМетаданных <> Тип("Неопределено") Тогда
@@ -2891,10 +2887,9 @@
КонецФункции
-Функция ЭтоОбъектРасширений(ОбъектИлиСсылка)
+Функция ЭтоОбъектРасширений(ОписаниеОбъекта)
- Возврат ТипЗнч(ОбъектИлиСсылка) = Тип("СправочникОбъект.ИдентификаторыОбъектовРасширений")
- Или ТипЗнч(ОбъектИлиСсылка) = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений");
+ Возврат ТипЗнч(ОписаниеОбъекта.Ссылка) = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений");
КонецФункции
@@ -3400,7 +3395,7 @@
СтрокаТаблицы = НайденныеСтроки[0];
РезультатПроверки = КлючОбъектаМетаданныхСоответствуетПолномуИмени(СтрокаТаблицы);
Если РезультатПроверки.НеСоответствует Тогда
- НазваниеСправочника = НазваниеСправочника(ЭтоОбъектРасширений(СтрокаТаблицы.Ссылка));
+ НазваниеСправочника = НазваниеСправочника(ЭтоОбъектРасширений(СтрокаТаблицы));
Если РезультатПроверки.ОбъектМетаданных = Неопределено Тогда
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
diff --git a/src/Catalogs/ИдентификаторыОбъектовМетаданных/Ext/Predefined.xml b/src/Catalogs/ИдентификаторыОбъектовМетаданных/Ext/Predefined.xml
index da5adda7b..b71f29260 100644
--- a/src/Catalogs/ИдентификаторыОбъектовМетаданных/Ext/Predefined.xml
+++ b/src/Catalogs/ИдентификаторыОбъектовМетаданных/Ext/Predefined.xml
@@ -5412,10 +5412,22 @@
false
+ -
+ РегистрСведенийДокументыОПредстоящейПоставке
+
+ Регистр сведений документы о предстоящей поставке
+ false
+
-
РегистрСведенийМестаОсуществленияДеятельностиИСМП
false
+ -
+ РегистрСведенийСоответствиеНоменклатурыСырьяГИСМТ
+
+
+ false
+
\ No newline at end of file
diff --git a/src/Catalogs/КлассификаторПолномочийМЧД003/Ext/ManagerModule.bsl b/src/Catalogs/КлассификаторПолномочийМЧД003/Ext/ManagerModule.bsl
index aa6a41c8d..6597872a2 100644
--- a/src/Catalogs/КлассификаторПолномочийМЧД003/Ext/ManagerModule.bsl
+++ b/src/Catalogs/КлассификаторПолномочийМЧД003/Ext/ManagerModule.bsl
@@ -4,6 +4,17 @@
#Область ДляВызоваИзДругихПодсистем
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОбработатьДанныеДляПереходаНаНовуюВерсиюНачальноеЗаполнение");
+
+КонецПроцедуры
+
+#КонецОбласти
+
// СтандартныеПодсистемы.ОбновлениеВерсииИБ
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
@@ -359,6 +370,6 @@
КонецФункции
-#КонецОбласти
+#КонецОбласти
#КонецЕсли
\ No newline at end of file
diff --git a/src/Catalogs/КлассификаторПолномочийМЧД003/Forms/ФормаПодбораСоставныхПолномочий/Ext/Form/Module.bsl b/src/Catalogs/КлассификаторПолномочийМЧД003/Forms/ФормаПодбораСоставныхПолномочий/Ext/Form/Module.bsl
index d134111e6..fd1ad6566 100644
--- a/src/Catalogs/КлассификаторПолномочийМЧД003/Forms/ФормаПодбораСоставныхПолномочий/Ext/Form/Module.bsl
+++ b/src/Catalogs/КлассификаторПолномочийМЧД003/Forms/ФормаПодбораСоставныхПолномочий/Ext/Form/Module.bsl
@@ -206,6 +206,7 @@
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("МножественныйВыбор", Истина);
+ ПараметрыФормы.Вставить("ВыборОграниченийМЧД", Истина);
Если Элемент.ТекущиеДанные <> Неопределено Тогда
ПараметрыФормы.Вставить("ТекущаяСтрока", Элемент.ТекущиеДанные.Значение);
КонецЕсли;
diff --git a/src/Catalogs/КлассификаторПолномочийМЧД003/Templates/ДанныеКлассификатора/Ext/Template.txt b/src/Catalogs/КлассификаторПолномочийМЧД003/Templates/ДанныеКлассификатора/Ext/Template.txt
index 56b6264bf..fa4d918b5 100644
--- a/src/Catalogs/КлассификаторПолномочийМЧД003/Templates/ДанныеКлассификатора/Ext/Template.txt
+++ b/src/Catalogs/КлассификаторПолномочийМЧД003/Templates/ДанныеКлассификатора/Ext/Template.txt
@@ -1,5 +1,5 @@
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"forcedUpdate": "0",
"elements": [
{
@@ -46393,7 +46393,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46403,7 +46403,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46418,7 +46418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46428,7 +46428,7 @@
"DESCRIPTION": "",
"GROUP": "55eb544b-0792-9533-2431-86031c83ba59",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46443,7 +46443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46453,7 +46453,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46468,7 +46468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46478,7 +46478,7 @@
"DESCRIPTION": "",
"GROUP": "7f2fadf7-ca66-4847-a383-6fd1ce85ce52",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46493,7 +46493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46503,7 +46503,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46518,7 +46518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46528,7 +46528,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46543,7 +46543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46553,7 +46553,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46568,7 +46568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46578,7 +46578,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46593,7 +46593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46603,7 +46603,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46618,7 +46618,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46628,7 +46628,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46643,7 +46643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46653,7 +46653,7 @@
"DESCRIPTION": "",
"GROUP": "a41a732e-be76-4ce8-b6e8-59b68f6f5c8f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46668,7 +46668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46678,7 +46678,7 @@
"DESCRIPTION": "",
"GROUP": "a41a732e-be76-4ce8-b6e8-59b68f6f5c8f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46693,7 +46693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46703,7 +46703,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46718,7 +46718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46728,7 +46728,7 @@
"DESCRIPTION": "",
"GROUP": "3255aac1-6192-46ec-898f-3d943a690340",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46743,7 +46743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46753,7 +46753,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46768,7 +46768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46778,7 +46778,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46793,7 +46793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46803,7 +46803,7 @@
"DESCRIPTION": "",
"GROUP": "c10d29a1-4043-44e5-2218-0aaccd5f2eda",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46818,7 +46818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46828,7 +46828,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46843,7 +46843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46853,7 +46853,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46868,7 +46868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46878,7 +46878,7 @@
"DESCRIPTION": "",
"GROUP": "55eb544b-0792-9533-2431-86031c83ba59",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46893,7 +46893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46903,7 +46903,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46918,7 +46918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46928,7 +46928,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46943,7 +46943,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46953,7 +46953,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46968,7 +46968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -46978,7 +46978,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -46993,7 +46993,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47003,7 +47003,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47018,7 +47018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47028,7 +47028,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47043,7 +47043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47053,7 +47053,7 @@
"DESCRIPTION": "",
"GROUP": "654245f9-5983-051c-812f-b27c7c8f6ce9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47068,7 +47068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47078,7 +47078,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47093,7 +47093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47103,7 +47103,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47118,7 +47118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47128,7 +47128,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47143,7 +47143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47153,7 +47153,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47168,7 +47168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47178,7 +47178,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47193,7 +47193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47203,7 +47203,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47218,7 +47218,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47228,7 +47228,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47243,7 +47243,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47253,7 +47253,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47268,7 +47268,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47278,7 +47278,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47293,7 +47293,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47303,7 +47303,7 @@
"DESCRIPTION": "",
"GROUP": "82a3eb2c-34f2-4c0f-96e7-0e6390cc96e6",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47318,7 +47318,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47328,7 +47328,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47343,7 +47343,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47353,7 +47353,7 @@
"DESCRIPTION": "",
"GROUP": "92f464c7-aeb5-c692-7626-858a7a272ef4",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47368,7 +47368,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47378,7 +47378,7 @@
"DESCRIPTION": "",
"GROUP": "27feb4d9-3d36-4690-b985-8edd40869c3c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47393,7 +47393,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47403,7 +47403,7 @@
"DESCRIPTION": "",
"GROUP": "61c06b84-7f1c-4f70-ec8b-7e6dca51867d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47418,7 +47418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47428,7 +47428,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47443,7 +47443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47453,7 +47453,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47468,7 +47468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47478,7 +47478,7 @@
"DESCRIPTION": "",
"GROUP": "62c731f5-8394-761b-d0e6-8d93fe320265",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47493,7 +47493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47503,7 +47503,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47518,7 +47518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47528,7 +47528,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47543,7 +47543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47553,7 +47553,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47568,7 +47568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47578,7 +47578,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47593,7 +47593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47603,7 +47603,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47618,7 +47618,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47628,7 +47628,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47643,7 +47643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47653,7 +47653,7 @@
"DESCRIPTION": "",
"GROUP": "e96b146d-298d-34c5-0c54-43c1f214ed70",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47668,7 +47668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47678,7 +47678,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47693,7 +47693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47703,7 +47703,7 @@
"DESCRIPTION": "",
"GROUP": "69c9c98a-1c53-6ea8-4aaf-87f01e193ed3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47718,7 +47718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47728,7 +47728,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47743,7 +47743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47753,7 +47753,7 @@
"DESCRIPTION": "",
"GROUP": "62c731f5-8394-761b-d0e6-8d93fe320265",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47768,7 +47768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47778,7 +47778,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47793,7 +47793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47803,7 +47803,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47818,7 +47818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47828,7 +47828,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47843,7 +47843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47853,7 +47853,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47868,7 +47868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47878,7 +47878,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47893,7 +47893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47903,7 +47903,7 @@
"DESCRIPTION": "",
"GROUP": "db31e5a7-d301-492b-9e49-b83f4c679b08",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47918,7 +47918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47928,7 +47928,7 @@
"DESCRIPTION": "",
"GROUP": "759612a0-13c8-4106-a38f-3247f6754d28",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47943,7 +47943,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47953,7 +47953,7 @@
"DESCRIPTION": "",
"GROUP": "068a32c5-99a0-b858-edf2-541bdc065ee5",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47968,7 +47968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -47978,7 +47978,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -47993,7 +47993,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48003,7 +48003,7 @@
"DESCRIPTION": "",
"GROUP": "2974dd4e-156e-4300-93ce-4660d1048273",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48018,7 +48018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48028,7 +48028,7 @@
"DESCRIPTION": "",
"GROUP": "4ef8df26-3e8d-ead7-848c-6ce5eb238b6d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48043,7 +48043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48053,7 +48053,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48068,7 +48068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48078,7 +48078,7 @@
"DESCRIPTION": "",
"GROUP": "654245f9-5983-051c-812f-b27c7c8f6ce9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48093,7 +48093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48103,7 +48103,7 @@
"DESCRIPTION": "",
"GROUP": "61c06b84-7f1c-4f70-ec8b-7e6dca51867d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48118,7 +48118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48128,7 +48128,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48143,7 +48143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48153,7 +48153,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48168,7 +48168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48178,7 +48178,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48193,7 +48193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48203,7 +48203,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48218,7 +48218,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48228,7 +48228,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48243,7 +48243,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48253,7 +48253,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48268,7 +48268,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48278,7 +48278,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48293,7 +48293,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48303,7 +48303,7 @@
"DESCRIPTION": "",
"GROUP": "e96b146d-298d-34c5-0c54-43c1f214ed70",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48318,7 +48318,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48328,7 +48328,7 @@
"DESCRIPTION": "",
"GROUP": "820be4f2-76fc-cf7c-0500-51b23c64a80e",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48343,7 +48343,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48353,7 +48353,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48368,7 +48368,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48378,7 +48378,7 @@
"DESCRIPTION": "",
"GROUP": "82ac77f6-106f-4053-8cf0-f8d7c42f3f3c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48393,7 +48393,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48403,7 +48403,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48418,7 +48418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48428,7 +48428,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48443,7 +48443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48453,7 +48453,7 @@
"DESCRIPTION": "",
"GROUP": "b931645e-778d-4b43-9097-80178a47f536",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48468,7 +48468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48478,7 +48478,7 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48493,7 +48493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48503,7 +48503,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48518,7 +48518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48528,7 +48528,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48543,7 +48543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48553,7 +48553,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48568,7 +48568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48578,7 +48578,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48593,7 +48593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48603,8 +48603,8 @@
"DESCRIPTION": "",
"GROUP": "61c06b84-7f1c-4f70-ec8b-7e6dca51867d",
"NSI_ID": "MFIN03",
- "STARTED": "20260219",
- "REVOKED": "20260415",
+ "STARTED": "20260417",
+ "REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
"PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
@@ -48613,12 +48613,12 @@
"LEGAL_RELATIONS": "",
"LAW_DETAILS": "",
"autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001074",
- "uid": "e4c6fee9-5345-46d5-ae56-7fd9b8d9fcf8",
+ "uid": "2f93afca-4f6f-43dc-b145-b0fd222cfbd4",
"script": "",
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48628,7 +48628,7 @@
"DESCRIPTION": "",
"GROUP": "62c731f5-8394-761b-d0e6-8d93fe320265",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48643,7 +48643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48653,7 +48653,7 @@
"DESCRIPTION": "",
"GROUP": "cdea171a-3b21-7e99-909e-64fed5f80b99",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48668,7 +48668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48678,7 +48678,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48693,7 +48693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48703,7 +48703,7 @@
"DESCRIPTION": "",
"GROUP": "1ba3c340-315c-47a8-ae2a-eae3bdfe7ccd",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48718,7 +48718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48728,7 +48728,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48743,7 +48743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48753,7 +48753,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48768,7 +48768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48778,7 +48778,7 @@
"DESCRIPTION": "",
"GROUP": "e96b146d-298d-34c5-0c54-43c1f214ed70",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48793,7 +48793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48803,7 +48803,7 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48818,7 +48818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48828,7 +48828,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48843,7 +48843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48853,7 +48853,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48868,7 +48868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48878,7 +48878,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48893,7 +48893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48903,7 +48903,7 @@
"DESCRIPTION": "",
"GROUP": "ca08a989-ec65-4fd5-81c6-339eba4acfb5",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48918,7 +48918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48928,8 +48928,8 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260219",
- "REVOKED": "20260415",
+ "STARTED": "20260417",
+ "REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
"PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
@@ -48938,12 +48938,12 @@
"LEGAL_RELATIONS": "",
"LAW_DETAILS": "",
"autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001119",
- "uid": "752f4af2-132d-4e8d-85fb-96785e03d38d",
+ "uid": "8918f8cc-cc13-4b19-938c-abeb9c0e329c",
"script": "",
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48953,7 +48953,7 @@
"DESCRIPTION": "",
"GROUP": "820be4f2-76fc-cf7c-0500-51b23c64a80e",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48968,7 +48968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -48978,7 +48978,7 @@
"DESCRIPTION": "",
"GROUP": "4ef8df26-3e8d-ead7-848c-6ce5eb238b6d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -48993,7 +48993,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49003,7 +49003,7 @@
"DESCRIPTION": "",
"GROUP": "87a7fcb6-16be-28b8-d7c6-2e656ae8aaa2",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49018,7 +49018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49028,7 +49028,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49043,7 +49043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49053,7 +49053,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49068,7 +49068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49078,7 +49078,7 @@
"DESCRIPTION": "",
"GROUP": "c6ac4f28-a387-81df-e00f-6c2b0ed792f9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49093,7 +49093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49103,7 +49103,7 @@
"DESCRIPTION": "",
"GROUP": "759612a0-13c8-4106-a38f-3247f6754d28",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49118,7 +49118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49128,7 +49128,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49143,7 +49143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49153,7 +49153,7 @@
"DESCRIPTION": "",
"GROUP": "c3c97b07-f540-280c-eb40-0d199e9870d4",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49168,7 +49168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49178,7 +49178,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49193,7 +49193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49203,7 +49203,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49218,7 +49218,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49228,7 +49228,7 @@
"DESCRIPTION": "",
"GROUP": "86f17667-063b-5a10-6f8d-5c49911268aa",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49243,7 +49243,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49253,7 +49253,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49268,7 +49268,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49278,7 +49278,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49293,7 +49293,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49303,7 +49303,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49318,7 +49318,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49328,7 +49328,7 @@
"DESCRIPTION": "",
"GROUP": "9f983948-ff0b-71ac-1733-01a27cb1306a",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49343,7 +49343,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49353,7 +49353,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49368,7 +49368,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49378,7 +49378,7 @@
"DESCRIPTION": "",
"GROUP": "55eb544b-0792-9533-2431-86031c83ba59",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49393,7 +49393,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49403,7 +49403,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49418,7 +49418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49428,7 +49428,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49443,7 +49443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49453,7 +49453,7 @@
"DESCRIPTION": "",
"GROUP": "4e90581d-efbc-520a-5885-bb0f963aaa42",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49468,7 +49468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49478,7 +49478,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49493,7 +49493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49503,7 +49503,7 @@
"DESCRIPTION": "",
"GROUP": "61c06b84-7f1c-4f70-ec8b-7e6dca51867d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49518,7 +49518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49528,7 +49528,7 @@
"DESCRIPTION": "",
"GROUP": "654245f9-5983-051c-812f-b27c7c8f6ce9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49543,7 +49543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49553,7 +49553,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49568,7 +49568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49578,7 +49578,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49593,7 +49593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49603,7 +49603,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49618,7 +49618,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49628,7 +49628,7 @@
"DESCRIPTION": "",
"GROUP": "69c9c98a-1c53-6ea8-4aaf-87f01e193ed3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49643,7 +49643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49653,7 +49653,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49668,7 +49668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49678,7 +49678,7 @@
"DESCRIPTION": "",
"GROUP": "69c9c98a-1c53-6ea8-4aaf-87f01e193ed3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49693,7 +49693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49703,7 +49703,7 @@
"DESCRIPTION": "",
"GROUP": "69c9c98a-1c53-6ea8-4aaf-87f01e193ed3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49718,7 +49718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49728,7 +49728,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49743,7 +49743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49753,7 +49753,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49768,7 +49768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49778,7 +49778,7 @@
"DESCRIPTION": "",
"GROUP": "7f2fadf7-ca66-4847-a383-6fd1ce85ce52",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49793,7 +49793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49803,8 +49803,8 @@
"DESCRIPTION": "",
"GROUP": "b0bfc103-6a5c-211e-e3a9-15bfbf074f05",
"NSI_ID": "MFIN03",
- "STARTED": "20260219",
- "REVOKED": "20260415",
+ "STARTED": "20260417",
+ "REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
"PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
@@ -49813,12 +49813,12 @@
"LEGAL_RELATIONS": "",
"LAW_DETAILS": "",
"autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001196",
- "uid": "031ddaee-d7c5-40fc-9696-71021f00d5de",
+ "uid": "20861762-d073-4d17-a984-2678525fefc3",
"script": "",
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49828,7 +49828,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49843,7 +49843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49853,7 +49853,7 @@
"DESCRIPTION": "",
"GROUP": "62c731f5-8394-761b-d0e6-8d93fe320265",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49868,7 +49868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49878,7 +49878,7 @@
"DESCRIPTION": "",
"GROUP": "7f2fadf7-ca66-4847-a383-6fd1ce85ce52",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49893,7 +49893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49903,7 +49903,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49918,7 +49918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49928,7 +49928,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49943,7 +49943,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49953,7 +49953,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49968,7 +49968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -49978,7 +49978,7 @@
"DESCRIPTION": "",
"GROUP": "87a7fcb6-16be-28b8-d7c6-2e656ae8aaa2",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -49993,7 +49993,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50003,7 +50003,7 @@
"DESCRIPTION": "",
"GROUP": "27feb4d9-3d36-4690-b985-8edd40869c3c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50018,7 +50018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50028,7 +50028,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50043,7 +50043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50053,7 +50053,7 @@
"DESCRIPTION": "",
"GROUP": "7f2fadf7-ca66-4847-a383-6fd1ce85ce52",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50068,7 +50068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50078,7 +50078,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50093,7 +50093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50103,7 +50103,7 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50118,7 +50118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50128,7 +50128,7 @@
"DESCRIPTION": "",
"GROUP": "c3c97b07-f540-280c-eb40-0d199e9870d4",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50143,7 +50143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50153,7 +50153,7 @@
"DESCRIPTION": "",
"GROUP": "62c731f5-8394-761b-d0e6-8d93fe320265",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50168,7 +50168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50178,7 +50178,7 @@
"DESCRIPTION": "",
"GROUP": "db31e5a7-d301-492b-9e49-b83f4c679b08",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50193,7 +50193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50203,7 +50203,7 @@
"DESCRIPTION": "",
"GROUP": "a73aa76f-4064-4fb3-bf42-76004a9a1218",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50218,7 +50218,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50228,7 +50228,7 @@
"DESCRIPTION": "",
"GROUP": "500664fb-ed53-6588-1e84-84c0b4af4834",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50243,7 +50243,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50253,7 +50253,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50268,7 +50268,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50278,7 +50278,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50293,7 +50293,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50303,7 +50303,7 @@
"DESCRIPTION": "",
"GROUP": "3255aac1-6192-46ec-898f-3d943a690340",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50318,7 +50318,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50328,7 +50328,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50343,7 +50343,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50353,7 +50353,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50368,7 +50368,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50378,7 +50378,7 @@
"DESCRIPTION": "",
"GROUP": "885d504e-45c5-b2f9-4b29-94e9e8ff0345",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50393,7 +50393,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50403,7 +50403,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50418,7 +50418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50428,7 +50428,7 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50443,7 +50443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50453,7 +50453,7 @@
"DESCRIPTION": "",
"GROUP": "69c9c98a-1c53-6ea8-4aaf-87f01e193ed3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50468,7 +50468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50478,7 +50478,7 @@
"DESCRIPTION": "",
"GROUP": "3e7e21f0-46d2-38e0-dcb0-5391f8661c69",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50493,7 +50493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50503,7 +50503,7 @@
"DESCRIPTION": "",
"GROUP": "62c731f5-8394-761b-d0e6-8d93fe320265",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50518,7 +50518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50528,7 +50528,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50543,7 +50543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50553,7 +50553,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50568,7 +50568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50578,7 +50578,7 @@
"DESCRIPTION": "",
"GROUP": "4e90581d-efbc-520a-5885-bb0f963aaa42",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50593,7 +50593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50603,7 +50603,7 @@
"DESCRIPTION": "",
"GROUP": "2974dd4e-156e-4300-93ce-4660d1048273",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50618,7 +50618,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50628,7 +50628,7 @@
"DESCRIPTION": "",
"GROUP": "8f3506fb-ad94-415e-a49e-1b9fb9de6143",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50643,7 +50643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50653,7 +50653,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50668,7 +50668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50678,7 +50678,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50693,7 +50693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50703,7 +50703,7 @@
"DESCRIPTION": "",
"GROUP": "2974dd4e-156e-4300-93ce-4660d1048273",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50718,7 +50718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50728,7 +50728,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50743,7 +50743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50753,7 +50753,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50768,7 +50768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50778,7 +50778,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50793,7 +50793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50803,7 +50803,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50818,7 +50818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50828,7 +50828,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50843,7 +50843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50853,7 +50853,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50868,7 +50868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50878,7 +50878,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50893,7 +50893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50903,7 +50903,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50918,7 +50918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50928,7 +50928,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50943,7 +50943,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50953,7 +50953,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50968,7 +50968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -50978,7 +50978,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -50993,7 +50993,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51003,7 +51003,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51018,7 +51018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51028,7 +51028,7 @@
"DESCRIPTION": "",
"GROUP": "4ef8df26-3e8d-ead7-848c-6ce5eb238b6d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51043,7 +51043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51053,7 +51053,7 @@
"DESCRIPTION": "",
"GROUP": "c3c97b07-f540-280c-eb40-0d199e9870d4",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51068,7 +51068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51078,7 +51078,7 @@
"DESCRIPTION": "",
"GROUP": "a41a732e-be76-4ce8-b6e8-59b68f6f5c8f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51093,7 +51093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51103,7 +51103,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51118,7 +51118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51128,7 +51128,7 @@
"DESCRIPTION": "",
"GROUP": "62c731f5-8394-761b-d0e6-8d93fe320265",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51143,7 +51143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51153,7 +51153,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51168,7 +51168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51178,7 +51178,7 @@
"DESCRIPTION": "",
"GROUP": "4ef8df26-3e8d-ead7-848c-6ce5eb238b6d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51193,7 +51193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51203,7 +51203,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51218,7 +51218,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51228,7 +51228,7 @@
"DESCRIPTION": "",
"GROUP": "759612a0-13c8-4106-a38f-3247f6754d28",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51243,7 +51243,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51253,7 +51253,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51268,7 +51268,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51278,8 +51278,8 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260219",
- "REVOKED": "20260415",
+ "STARTED": "20260417",
+ "REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
"PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
@@ -51288,12 +51288,12 @@
"LEGAL_RELATIONS": "",
"LAW_DETAILS": "",
"autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001121",
- "uid": "02dfa927-7d3f-433e-8c58-34aa0e3839a5",
+ "uid": "ff800aaa-c4b2-4434-afa3-bcce6d4d8ccd",
"script": "",
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51303,7 +51303,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51318,7 +51318,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51328,7 +51328,7 @@
"DESCRIPTION": "",
"GROUP": "cdea171a-3b21-7e99-909e-64fed5f80b99",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51343,7 +51343,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51353,7 +51353,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51368,7 +51368,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51378,7 +51378,7 @@
"DESCRIPTION": "",
"GROUP": "4e90581d-efbc-520a-5885-bb0f963aaa42",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51393,7 +51393,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51403,7 +51403,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51418,7 +51418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51428,7 +51428,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51443,7 +51443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51453,7 +51453,7 @@
"DESCRIPTION": "",
"GROUP": "20c44d56-a050-89ee-3a3c-1d1065b71908",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51468,7 +51468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51478,7 +51478,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51493,7 +51493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51503,7 +51503,7 @@
"DESCRIPTION": "",
"GROUP": "a73aa76f-4064-4fb3-bf42-76004a9a1218",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51518,7 +51518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51528,7 +51528,7 @@
"DESCRIPTION": "",
"GROUP": "3255aac1-6192-46ec-898f-3d943a690340",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51543,7 +51543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51553,7 +51553,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51568,7 +51568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51578,7 +51578,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51593,7 +51593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51603,7 +51603,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51618,7 +51618,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51628,7 +51628,7 @@
"DESCRIPTION": "",
"GROUP": "62c731f5-8394-761b-d0e6-8d93fe320265",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51643,7 +51643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51653,7 +51653,7 @@
"DESCRIPTION": "",
"GROUP": "3255aac1-6192-46ec-898f-3d943a690340",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51668,7 +51668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51678,7 +51678,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51693,7 +51693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51703,7 +51703,7 @@
"DESCRIPTION": "",
"GROUP": "cdea171a-3b21-7e99-909e-64fed5f80b99",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51718,7 +51718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51728,7 +51728,7 @@
"DESCRIPTION": "",
"GROUP": "c3c97b07-f540-280c-eb40-0d199e9870d4",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51743,7 +51743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51753,7 +51753,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51768,7 +51768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51778,7 +51778,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51793,7 +51793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51803,7 +51803,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51818,7 +51818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51828,7 +51828,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51843,7 +51843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51853,7 +51853,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51868,7 +51868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51878,7 +51878,7 @@
"DESCRIPTION": "",
"GROUP": "a73aa76f-4064-4fb3-bf42-76004a9a1218",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51893,7 +51893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51903,7 +51903,7 @@
"DESCRIPTION": "",
"GROUP": "ca08a989-ec65-4fd5-81c6-339eba4acfb5",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51918,7 +51918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51928,7 +51928,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51943,7 +51943,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51953,7 +51953,7 @@
"DESCRIPTION": "",
"GROUP": "b0bfc103-6a5c-211e-e3a9-15bfbf074f05",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51968,7 +51968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -51978,7 +51978,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -51993,7 +51993,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52003,7 +52003,7 @@
"DESCRIPTION": "",
"GROUP": "3255aac1-6192-46ec-898f-3d943a690340",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52018,7 +52018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52028,7 +52028,7 @@
"DESCRIPTION": "",
"GROUP": "4e90581d-efbc-520a-5885-bb0f963aaa42",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52043,7 +52043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52053,7 +52053,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52068,7 +52068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52078,7 +52078,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52093,7 +52093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52103,7 +52103,7 @@
"DESCRIPTION": "",
"GROUP": "55eb544b-0792-9533-2431-86031c83ba59",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52118,7 +52118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52128,7 +52128,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52143,7 +52143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52153,7 +52153,7 @@
"DESCRIPTION": "",
"GROUP": "dc5e24e0-e02c-84a9-2b67-43f559c82bb4",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52168,7 +52168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52178,7 +52178,7 @@
"DESCRIPTION": "",
"GROUP": "1e67e5af-f434-2af1-cc9b-bf4cf5695d64",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52193,7 +52193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52203,7 +52203,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52218,7 +52218,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52228,7 +52228,7 @@
"DESCRIPTION": "",
"GROUP": "1ba3c340-315c-47a8-ae2a-eae3bdfe7ccd",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52243,7 +52243,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52253,7 +52253,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52268,7 +52268,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52278,7 +52278,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52293,7 +52293,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52303,7 +52303,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52318,7 +52318,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52328,7 +52328,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52343,7 +52343,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52353,7 +52353,7 @@
"DESCRIPTION": "",
"GROUP": "62c731f5-8394-761b-d0e6-8d93fe320265",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52368,7 +52368,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52378,7 +52378,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52393,7 +52393,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52403,7 +52403,7 @@
"DESCRIPTION": "",
"GROUP": "db31e5a7-d301-492b-9e49-b83f4c679b08",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52418,7 +52418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52428,7 +52428,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52443,7 +52443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52453,7 +52453,7 @@
"DESCRIPTION": "",
"GROUP": "2974dd4e-156e-4300-93ce-4660d1048273",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52468,7 +52468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52478,7 +52478,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52493,7 +52493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52503,7 +52503,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52518,7 +52518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52528,7 +52528,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52543,7 +52543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52553,7 +52553,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52568,7 +52568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52578,7 +52578,7 @@
"DESCRIPTION": "",
"GROUP": "f63238ac-672f-43da-9714-46c4304f7e0c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52593,7 +52593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52603,7 +52603,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52618,7 +52618,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52628,7 +52628,7 @@
"DESCRIPTION": "",
"GROUP": "2974dd4e-156e-4300-93ce-4660d1048273",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52643,7 +52643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52653,7 +52653,7 @@
"DESCRIPTION": "",
"GROUP": "a41a732e-be76-4ce8-b6e8-59b68f6f5c8f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52668,7 +52668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52678,7 +52678,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52693,7 +52693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52703,7 +52703,7 @@
"DESCRIPTION": "",
"GROUP": "4ef8df26-3e8d-ead7-848c-6ce5eb238b6d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52718,7 +52718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52728,7 +52728,7 @@
"DESCRIPTION": "",
"GROUP": "62c731f5-8394-761b-d0e6-8d93fe320265",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52743,7 +52743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52753,7 +52753,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52768,7 +52768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52778,7 +52778,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52793,7 +52793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52803,7 +52803,7 @@
"DESCRIPTION": "",
"GROUP": "ca08a989-ec65-4fd5-81c6-339eba4acfb5",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52818,7 +52818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52828,7 +52828,7 @@
"DESCRIPTION": "",
"GROUP": "55eb544b-0792-9533-2431-86031c83ba59",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52843,7 +52843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52853,7 +52853,7 @@
"DESCRIPTION": "",
"GROUP": "e96b146d-298d-34c5-0c54-43c1f214ed70",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52868,7 +52868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52878,7 +52878,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52893,7 +52893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52903,7 +52903,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52918,7 +52918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52928,7 +52928,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52943,7 +52943,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52953,7 +52953,7 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -52968,7 +52968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -52978,8 +52978,8 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260219",
- "REVOKED": "20260415",
+ "STARTED": "20260417",
+ "REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
"PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
@@ -52988,12 +52988,12 @@
"LEGAL_RELATIONS": "",
"LAW_DETAILS": "",
"autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001123",
- "uid": "ba1a2a3a-a62b-458d-b00b-0710f3e9981f",
+ "uid": "c674cdcb-d756-40cc-8f59-58a071d0b452",
"script": "",
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53003,7 +53003,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53018,7 +53018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53028,7 +53028,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53043,7 +53043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53053,7 +53053,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53068,7 +53068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53078,7 +53078,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53093,7 +53093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53103,7 +53103,7 @@
"DESCRIPTION": "",
"GROUP": "a41a732e-be76-4ce8-b6e8-59b68f6f5c8f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53118,7 +53118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53128,7 +53128,7 @@
"DESCRIPTION": "",
"GROUP": "a41a732e-be76-4ce8-b6e8-59b68f6f5c8f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53143,7 +53143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53153,7 +53153,7 @@
"DESCRIPTION": "",
"GROUP": "69c9c98a-1c53-6ea8-4aaf-87f01e193ed3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53168,7 +53168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53178,7 +53178,7 @@
"DESCRIPTION": "",
"GROUP": "99d88f1a-b562-40b5-bf1e-4c3cf2047911",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53193,7 +53193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53203,7 +53203,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53218,7 +53218,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53228,7 +53228,7 @@
"DESCRIPTION": "",
"GROUP": "9c5b1f6b-2bc6-4d58-b00f-d63db86b51c6",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53243,7 +53243,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53253,7 +53253,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53268,7 +53268,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53278,7 +53278,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53293,7 +53293,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53303,7 +53303,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53318,7 +53318,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53328,7 +53328,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53343,7 +53343,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53353,7 +53353,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53368,7 +53368,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53378,7 +53378,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53393,7 +53393,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53403,7 +53403,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53418,7 +53418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53428,7 +53428,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53443,7 +53443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53453,7 +53453,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53468,7 +53468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53478,7 +53478,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53493,7 +53493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53503,7 +53503,7 @@
"DESCRIPTION": "",
"GROUP": "759612a0-13c8-4106-a38f-3247f6754d28",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53518,7 +53518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53528,7 +53528,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53543,7 +53543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53553,7 +53553,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53568,7 +53568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53578,7 +53578,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53593,7 +53593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53603,7 +53603,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53618,7 +53618,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53628,7 +53628,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53643,7 +53643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53653,7 +53653,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53668,7 +53668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53678,7 +53678,7 @@
"DESCRIPTION": "",
"GROUP": "1e1a6981-3cd1-6f6a-ddfa-777d77dbdd03",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53693,7 +53693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53703,7 +53703,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53718,7 +53718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53728,7 +53728,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53743,7 +53743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53753,7 +53753,7 @@
"DESCRIPTION": "",
"GROUP": "69c9c98a-1c53-6ea8-4aaf-87f01e193ed3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53768,7 +53768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53778,7 +53778,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53793,7 +53793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53803,7 +53803,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53818,7 +53818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53828,7 +53828,7 @@
"DESCRIPTION": "",
"GROUP": "cdea171a-3b21-7e99-909e-64fed5f80b99",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53843,7 +53843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53853,7 +53853,7 @@
"DESCRIPTION": "",
"GROUP": "b0bfc103-6a5c-211e-e3a9-15bfbf074f05",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53868,7 +53868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53878,7 +53878,7 @@
"DESCRIPTION": "",
"GROUP": "1ba3c340-315c-47a8-ae2a-eae3bdfe7ccd",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53893,7 +53893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53903,7 +53903,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53918,7 +53918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53928,7 +53928,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53943,7 +53943,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53953,7 +53953,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53968,7 +53968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -53978,7 +53978,7 @@
"DESCRIPTION": "",
"GROUP": "ca08a989-ec65-4fd5-81c6-339eba4acfb5",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -53993,7 +53993,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54003,7 +54003,7 @@
"DESCRIPTION": "",
"GROUP": "3a02d78a-7b7a-2039-7b61-86864dcc8559",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54018,7 +54018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54028,7 +54028,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54043,7 +54043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54053,7 +54053,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54068,7 +54068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54078,7 +54078,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54093,7 +54093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54103,7 +54103,7 @@
"DESCRIPTION": "",
"GROUP": "55eb544b-0792-9533-2431-86031c83ba59",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54118,7 +54118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54128,7 +54128,7 @@
"DESCRIPTION": "",
"GROUP": "27feb4d9-3d36-4690-b985-8edd40869c3c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54143,7 +54143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54153,7 +54153,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54168,7 +54168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54178,7 +54178,7 @@
"DESCRIPTION": "",
"GROUP": "c3c97b07-f540-280c-eb40-0d199e9870d4",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54193,7 +54193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54203,7 +54203,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54218,7 +54218,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54228,7 +54228,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54243,7 +54243,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54253,7 +54253,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54268,7 +54268,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54278,8 +54278,8 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260219",
- "REVOKED": "20260415",
+ "STARTED": "20260417",
+ "REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
"PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
@@ -54288,12 +54288,12 @@
"LEGAL_RELATIONS": "",
"LAW_DETAILS": "",
"autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF000812",
- "uid": "7b2bdb6f-3206-457d-9a36-19a5673e3f2b",
+ "uid": "450295b3-dfe7-4287-98e1-1848ee013afa",
"script": "",
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54303,7 +54303,7 @@
"DESCRIPTION": "",
"GROUP": "4ef8df26-3e8d-ead7-848c-6ce5eb238b6d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54318,7 +54318,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54328,7 +54328,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54343,7 +54343,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54353,7 +54353,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54368,7 +54368,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54378,7 +54378,7 @@
"DESCRIPTION": "",
"GROUP": "55eb544b-0792-9533-2431-86031c83ba59",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54393,7 +54393,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54403,7 +54403,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54418,7 +54418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54428,7 +54428,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54443,7 +54443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54453,7 +54453,7 @@
"DESCRIPTION": "",
"GROUP": "759612a0-13c8-4106-a38f-3247f6754d28",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54468,7 +54468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54478,7 +54478,7 @@
"DESCRIPTION": "",
"GROUP": "a73aa76f-4064-4fb3-bf42-76004a9a1218",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54493,7 +54493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54503,7 +54503,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54518,7 +54518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54528,7 +54528,7 @@
"DESCRIPTION": "",
"GROUP": "61c06b84-7f1c-4f70-ec8b-7e6dca51867d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54543,7 +54543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54553,7 +54553,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54568,7 +54568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54578,7 +54578,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54593,7 +54593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54603,8 +54603,8 @@
"DESCRIPTION": "",
"GROUP": "b0bfc103-6a5c-211e-e3a9-15bfbf074f05",
"NSI_ID": "MFIN03",
- "STARTED": "20260219",
- "REVOKED": "20260415",
+ "STARTED": "20260417",
+ "REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
"PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
@@ -54613,12 +54613,12 @@
"LEGAL_RELATIONS": "",
"LAW_DETAILS": "",
"autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001195",
- "uid": "a2b004e4-be6a-4baf-a610-d546ed9242e8",
+ "uid": "a4f884d8-d4b9-43fd-8360-f4a425bdacec",
"script": "",
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54628,7 +54628,7 @@
"DESCRIPTION": "",
"GROUP": "4ef8df26-3e8d-ead7-848c-6ce5eb238b6d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54643,7 +54643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54653,7 +54653,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54668,7 +54668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54678,7 +54678,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54693,7 +54693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54703,7 +54703,7 @@
"DESCRIPTION": "",
"GROUP": "654245f9-5983-051c-812f-b27c7c8f6ce9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54718,7 +54718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54728,7 +54728,7 @@
"DESCRIPTION": "",
"GROUP": "1ba3c340-315c-47a8-ae2a-eae3bdfe7ccd",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54743,7 +54743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54753,7 +54753,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54768,7 +54768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54778,7 +54778,7 @@
"DESCRIPTION": "",
"GROUP": "4ef8df26-3e8d-ead7-848c-6ce5eb238b6d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54793,7 +54793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54803,7 +54803,7 @@
"DESCRIPTION": "",
"GROUP": "91e2de47-dad7-9fd3-c3fa-27847db0ed19",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54818,7 +54818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54828,7 +54828,7 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54843,7 +54843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54853,7 +54853,7 @@
"DESCRIPTION": "",
"GROUP": "1ba3c340-315c-47a8-ae2a-eae3bdfe7ccd",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54868,7 +54868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54878,7 +54878,7 @@
"DESCRIPTION": "",
"GROUP": "ca08a989-ec65-4fd5-81c6-339eba4acfb5",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54893,7 +54893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54903,7 +54903,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54918,7 +54918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54928,7 +54928,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54943,7 +54943,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54953,7 +54953,7 @@
"DESCRIPTION": "",
"GROUP": "a41a732e-be76-4ce8-b6e8-59b68f6f5c8f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54968,7 +54968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -54978,7 +54978,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -54993,7 +54993,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55003,7 +55003,7 @@
"DESCRIPTION": "",
"GROUP": "dc5e24e0-e02c-84a9-2b67-43f559c82bb4",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55018,7 +55018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55028,7 +55028,7 @@
"DESCRIPTION": "",
"GROUP": "77839bb1-dab9-e49d-965c-6ea824ad0dce",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55043,7 +55043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55053,7 +55053,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55068,7 +55068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55078,7 +55078,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55093,7 +55093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55103,7 +55103,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55118,7 +55118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55128,7 +55128,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55143,7 +55143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55153,7 +55153,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55168,7 +55168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55178,7 +55178,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55193,7 +55193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55203,7 +55203,7 @@
"DESCRIPTION": "",
"GROUP": "759612a0-13c8-4106-a38f-3247f6754d28",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55218,7 +55218,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55228,7 +55228,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55243,7 +55243,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55253,7 +55253,7 @@
"DESCRIPTION": "",
"GROUP": "654245f9-5983-051c-812f-b27c7c8f6ce9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55268,7 +55268,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55278,7 +55278,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55293,7 +55293,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55303,7 +55303,7 @@
"DESCRIPTION": "",
"GROUP": "27feb4d9-3d36-4690-b985-8edd40869c3c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55318,7 +55318,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55328,7 +55328,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55343,7 +55343,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55353,7 +55353,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55368,7 +55368,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55378,7 +55378,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55393,7 +55393,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55403,7 +55403,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55418,7 +55418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55428,7 +55428,7 @@
"DESCRIPTION": "",
"GROUP": "af3ed096-c050-3ed5-1e30-9e5d115e362a",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55443,7 +55443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55453,7 +55453,7 @@
"DESCRIPTION": "",
"GROUP": "61c06b84-7f1c-4f70-ec8b-7e6dca51867d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55468,7 +55468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55478,7 +55478,7 @@
"DESCRIPTION": "",
"GROUP": "654245f9-5983-051c-812f-b27c7c8f6ce9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55493,7 +55493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55503,7 +55503,7 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55518,7 +55518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55528,7 +55528,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55543,7 +55543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55553,7 +55553,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55568,7 +55568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55578,7 +55578,7 @@
"DESCRIPTION": "",
"GROUP": "91e2de47-dad7-9fd3-c3fa-27847db0ed19",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55593,7 +55593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55603,7 +55603,7 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55618,7 +55618,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55628,7 +55628,7 @@
"DESCRIPTION": "",
"GROUP": "91e2de47-dad7-9fd3-c3fa-27847db0ed19",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55643,7 +55643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55653,7 +55653,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55668,7 +55668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55678,7 +55678,7 @@
"DESCRIPTION": "",
"GROUP": "a41a732e-be76-4ce8-b6e8-59b68f6f5c8f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55693,7 +55693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55703,7 +55703,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55718,7 +55718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55728,7 +55728,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55743,7 +55743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55753,7 +55753,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55768,7 +55768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55778,7 +55778,7 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55793,7 +55793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55803,7 +55803,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55818,7 +55818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55828,7 +55828,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55843,7 +55843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55853,7 +55853,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55868,7 +55868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55878,7 +55878,7 @@
"DESCRIPTION": "",
"GROUP": "27feb4d9-3d36-4690-b985-8edd40869c3c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55893,7 +55893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55903,7 +55903,7 @@
"DESCRIPTION": "",
"GROUP": "cdea171a-3b21-7e99-909e-64fed5f80b99",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55918,7 +55918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55928,7 +55928,7 @@
"DESCRIPTION": "",
"GROUP": "4ef8df26-3e8d-ead7-848c-6ce5eb238b6d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55943,7 +55943,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55953,7 +55953,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55968,7 +55968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -55978,7 +55978,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -55993,7 +55993,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56003,7 +56003,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56018,7 +56018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56028,7 +56028,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56043,7 +56043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56053,7 +56053,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56068,7 +56068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56078,7 +56078,7 @@
"DESCRIPTION": "",
"GROUP": "d6f671ff-43a8-465a-b669-acc4cf0395af",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56093,7 +56093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56103,7 +56103,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56118,7 +56118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56128,7 +56128,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56143,7 +56143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56153,7 +56153,7 @@
"DESCRIPTION": "",
"GROUP": "cb111400-9d09-9776-0822-d0aa22c6d4b4",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56168,7 +56168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56178,7 +56178,7 @@
"DESCRIPTION": "",
"GROUP": "1c2219ec-8d7e-b462-9fc5-3dff18d10a55",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56193,7 +56193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56203,7 +56203,7 @@
"DESCRIPTION": "",
"GROUP": "654245f9-5983-051c-812f-b27c7c8f6ce9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56218,7 +56218,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56228,7 +56228,7 @@
"DESCRIPTION": "",
"GROUP": "91c81d21-ab05-67d2-b5e7-750e6ff686f1",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56243,7 +56243,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56253,7 +56253,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56268,7 +56268,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56278,7 +56278,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56293,7 +56293,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56303,7 +56303,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56318,7 +56318,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56328,7 +56328,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56343,7 +56343,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56353,7 +56353,7 @@
"DESCRIPTION": "",
"GROUP": "a41a732e-be76-4ce8-b6e8-59b68f6f5c8f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56368,7 +56368,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56378,7 +56378,7 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56393,7 +56393,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56403,7 +56403,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56418,7 +56418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56428,7 +56428,7 @@
"DESCRIPTION": "",
"GROUP": "27feb4d9-3d36-4690-b985-8edd40869c3c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56443,7 +56443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56453,7 +56453,7 @@
"DESCRIPTION": "",
"GROUP": "5276a7c5-b398-bf2f-b892-08ac1553854d",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56468,7 +56468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56478,7 +56478,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56493,7 +56493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56503,7 +56503,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56518,7 +56518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56528,7 +56528,7 @@
"DESCRIPTION": "",
"GROUP": "068a32c5-99a0-b858-edf2-541bdc065ee5",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56543,7 +56543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56553,7 +56553,7 @@
"DESCRIPTION": "",
"GROUP": "5221af09-c692-80b4-173f-ae607895ca26",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56568,7 +56568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56578,7 +56578,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56593,7 +56593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56603,7 +56603,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56618,7 +56618,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56628,7 +56628,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56643,7 +56643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56653,7 +56653,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56668,7 +56668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56678,7 +56678,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56693,7 +56693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56703,7 +56703,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56718,7 +56718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56728,7 +56728,7 @@
"DESCRIPTION": "",
"GROUP": "f63238ac-672f-43da-9714-46c4304f7e0c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56743,7 +56743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56753,7 +56753,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56768,7 +56768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56778,7 +56778,7 @@
"DESCRIPTION": "",
"GROUP": "62c731f5-8394-761b-d0e6-8d93fe320265",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56793,7 +56793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56803,7 +56803,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56818,7 +56818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56828,7 +56828,7 @@
"DESCRIPTION": "",
"GROUP": "cdea171a-3b21-7e99-909e-64fed5f80b99",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56843,7 +56843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56853,7 +56853,7 @@
"DESCRIPTION": "",
"GROUP": "69c9c98a-1c53-6ea8-4aaf-87f01e193ed3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56868,7 +56868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56878,7 +56878,7 @@
"DESCRIPTION": "",
"GROUP": "e96b146d-298d-34c5-0c54-43c1f214ed70",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56893,7 +56893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56903,7 +56903,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56918,7 +56918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56928,7 +56928,7 @@
"DESCRIPTION": "",
"GROUP": "8e2be0df-29a3-4545-67bc-f95dddba10cf",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56943,7 +56943,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56953,7 +56953,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56968,7 +56968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -56978,7 +56978,7 @@
"DESCRIPTION": "",
"GROUP": "7f2fadf7-ca66-4847-a383-6fd1ce85ce52",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -56993,7 +56993,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -57003,7 +57003,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -57018,7 +57018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -57028,7 +57028,7 @@
"DESCRIPTION": "",
"GROUP": "e2f31a16-e5dc-ff61-9e28-ee7a1bf132a9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -57043,7 +57043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -57053,7 +57053,7 @@
"DESCRIPTION": "",
"GROUP": "3e7e21f0-46d2-38e0-dcb0-5391f8661c69",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -57068,7 +57068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -57078,7 +57078,7 @@
"DESCRIPTION": "",
"GROUP": "3255aac1-6192-46ec-898f-3d943a690340",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -57093,7 +57093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -57103,7 +57103,7 @@
"DESCRIPTION": "",
"GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -57118,7 +57118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -57128,7 +57128,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -57143,7 +57143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -57153,7 +57153,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -57168,7 +57168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -57178,7 +57178,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -57193,7 +57193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -57203,7 +57203,7 @@
"DESCRIPTION": "",
"GROUP": "66130110-3499-473b-84d9-068ab9658a95",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -57218,7 +57218,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -57228,7 +57228,7 @@
"DESCRIPTION": "",
"GROUP": "654245f9-5983-051c-812f-b27c7c8f6ce9",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -58918,27 +58918,27 @@
"rules": []
},
{
- "lastChangeDate": "20240827",
+ "lastChangeDate": "20260428",
"parentUUID": "7f95e706-b770-4ebc-bf92-b57f13883b10",
"parent": "Полномочия МЧД ФК",
"type": "",
"CODE": "FK9800_GIISEB_EB10019",
- "MNEMONIC": "",
- "NAME": "Руководитель (уполномоченное лицо). Подписание документов администраторами доходов бюджета, просмотр данных, запрос отчетности",
+ "MNEMONIC": "EB10019",
+ "NAME": "Руководитель (уполномоченное лицо). Согласование заказчиком распоряжения в случае если условиями документа, обосновывающего обязательство, предусмотрено требование о согласовании распоряжений заказчиком",
"DESCRIPTION": "",
- "GROUP": "",
- "NSI_ID": "",
- "STARTED": "",
- "REVOKED": "20240805",
+ "GROUP": "2333ad1d-ae10-417d-9907-f07bb0bd140b",
+ "NSI_ID": "RKZN",
+ "STARTED": "20260501",
+ "REVOKED": "",
"EXP": "",
- "PWR_VIS": "",
- "PWR_READ": "",
- "PWR_ISS": "",
+ "PWR_VIS": "PUB",
+ "PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "PWR_ISS": "[\"P\", \"OA\", \"OB\", \"OL\"]",
"CXT": "",
- "LEGAL_RELATIONS": "",
- "LAW_DETAILS": "",
- "autokey": "",
- "uid": "",
+ "LEGAL_RELATIONS": "Согласование заказчиком распоряжения в случае если условиями документа, обосновывающего обязательство, предусмотрено требование о согласовании распоряжений заказчиком.",
+ "LAW_DETAILS": "Приказ Минфина РФ от 17.12.2021 №214н подпункт с пункта 24",
+ "autokey": "POWER_PWR_CLASS_MCHD_FK_EB10019",
+ "uid": "17c2f5e4-6c45-491d-896c-b96cd5541aae",
"script": "",
"rules": []
},
@@ -61418,7 +61418,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61428,7 +61428,7 @@
"DESCRIPTION": "",
"GROUP": "92f464c7-aeb5-c692-7626-858a7a272ef4",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61443,7 +61443,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61453,7 +61453,7 @@
"DESCRIPTION": "",
"GROUP": "7f2fadf7-ca66-4847-a383-6fd1ce85ce52",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61468,7 +61468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61478,7 +61478,7 @@
"DESCRIPTION": "",
"GROUP": "7f2fadf7-ca66-4847-a383-6fd1ce85ce52",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61493,7 +61493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61503,7 +61503,7 @@
"DESCRIPTION": "",
"GROUP": "7f2fadf7-ca66-4847-a383-6fd1ce85ce52",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61518,7 +61518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61528,7 +61528,7 @@
"DESCRIPTION": "",
"GROUP": "d79e3765-3ed7-604e-0a42-8d1def47d156",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61543,7 +61543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61553,7 +61553,7 @@
"DESCRIPTION": "",
"GROUP": "d79e3765-3ed7-604e-0a42-8d1def47d156",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61568,7 +61568,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61578,7 +61578,7 @@
"DESCRIPTION": "",
"GROUP": "d79e3765-3ed7-604e-0a42-8d1def47d156",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61593,7 +61593,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61603,7 +61603,7 @@
"DESCRIPTION": "",
"GROUP": "d79e3765-3ed7-604e-0a42-8d1def47d156",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61618,7 +61618,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61628,7 +61628,7 @@
"DESCRIPTION": "",
"GROUP": "d79e3765-3ed7-604e-0a42-8d1def47d156",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61643,7 +61643,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61653,7 +61653,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61668,7 +61668,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61678,7 +61678,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61693,7 +61693,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61703,7 +61703,7 @@
"DESCRIPTION": "",
"GROUP": "82a3eb2c-34f2-4c0f-96e7-0e6390cc96e6",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61718,7 +61718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61728,7 +61728,7 @@
"DESCRIPTION": "",
"GROUP": "82a3eb2c-34f2-4c0f-96e7-0e6390cc96e6",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61743,7 +61743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61753,7 +61753,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61768,7 +61768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61778,7 +61778,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61793,7 +61793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61803,7 +61803,7 @@
"DESCRIPTION": "",
"GROUP": "7f2fadf7-ca66-4847-a383-6fd1ce85ce52",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61818,7 +61818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61828,7 +61828,7 @@
"DESCRIPTION": "",
"GROUP": "7f2fadf7-ca66-4847-a383-6fd1ce85ce52",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61843,7 +61843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61853,7 +61853,7 @@
"DESCRIPTION": "",
"GROUP": "f63238ac-672f-43da-9714-46c4304f7e0c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -61868,7 +61868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -61878,7 +61878,7 @@
"DESCRIPTION": "",
"GROUP": "d79e3765-3ed7-604e-0a42-8d1def47d156",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -65043,7 +65043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -65053,7 +65053,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -65068,7 +65068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -65078,7 +65078,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -65093,7 +65093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -65103,7 +65103,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -66068,7 +66068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -66078,7 +66078,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -66093,7 +66093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -66103,7 +66103,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -66118,7 +66118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -66128,7 +66128,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -66143,7 +66143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -66153,7 +66153,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -66168,7 +66168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -66178,7 +66178,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -66193,7 +66193,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -66203,7 +66203,7 @@
"DESCRIPTION": "",
"GROUP": "d79e3765-3ed7-604e-0a42-8d1def47d156",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -68468,7 +68468,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -68478,7 +68478,7 @@
"DESCRIPTION": "",
"GROUP": "82a3eb2c-34f2-4c0f-96e7-0e6390cc96e6",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -68493,7 +68493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -68503,7 +68503,7 @@
"DESCRIPTION": "",
"GROUP": "d79e3765-3ed7-604e-0a42-8d1def47d156",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69493,7 +69493,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69503,7 +69503,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69518,7 +69518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69528,7 +69528,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69718,7 +69718,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69728,7 +69728,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69743,7 +69743,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69753,7 +69753,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69768,7 +69768,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69778,7 +69778,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69793,7 +69793,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69803,7 +69803,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69818,7 +69818,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69828,7 +69828,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69843,7 +69843,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69853,7 +69853,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69868,7 +69868,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69878,7 +69878,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69893,7 +69893,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69903,7 +69903,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69918,7 +69918,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69928,7 +69928,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69943,7 +69943,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69953,7 +69953,7 @@
"DESCRIPTION": "",
"GROUP": "2974dd4e-156e-4300-93ce-4660d1048273",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69968,7 +69968,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -69978,7 +69978,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -69993,7 +69993,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -70003,7 +70003,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -70018,7 +70018,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -70028,7 +70028,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -70043,7 +70043,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -70053,7 +70053,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -70068,7 +70068,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -70078,7 +70078,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -70093,7 +70093,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -70103,7 +70103,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -70118,7 +70118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -70128,7 +70128,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -70143,7 +70143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -70153,7 +70153,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -70168,7 +70168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -70178,7 +70178,7 @@
"DESCRIPTION": "",
"GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -71118,7 +71118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -71128,7 +71128,7 @@
"DESCRIPTION": "",
"GROUP": "d84a69b5-949a-49b2-b986-b5418c4806c8",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -71143,7 +71143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -71153,7 +71153,7 @@
"DESCRIPTION": "",
"GROUP": "27feb4d9-3d36-4690-b985-8edd40869c3c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -72118,7 +72118,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -72128,7 +72128,7 @@
"DESCRIPTION": "",
"GROUP": "d4c0300f-0f49-7986-4142-70b10d91476f",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -72143,7 +72143,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -72153,7 +72153,7 @@
"DESCRIPTION": "",
"GROUP": "5ce53eae-3eb8-8782-9141-0f761115a74c",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -72168,7 +72168,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -72178,7 +72178,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -72518,7 +72518,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -72528,7 +72528,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -72543,7 +72543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -72553,7 +72553,7 @@
"DESCRIPTION": "",
"GROUP": "834b5fd5-11b3-462f-b805-b0aa68700af3",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -73543,7 +73543,7 @@
"rules": []
},
{
- "lastChangeDate": "20260415",
+ "lastChangeDate": "20260428",
"parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
"parent": "Полномочия МЧД Минфина России",
"type": "",
@@ -73553,7 +73553,7 @@
"DESCRIPTION": "",
"GROUP": "0f4855f0-49f6-e739-2fa7-32b53bdaf213",
"NSI_ID": "MFIN03",
- "STARTED": "20260313",
+ "STARTED": "20260417",
"REVOKED": "",
"EXP": "",
"PWR_VIS": "PUB",
@@ -73566,6 +73566,206 @@
"uid": "cb2ccdaa-843f-4d74-b52b-331be1bd84bb",
"script": "",
"rules": []
+ },
+ {
+ "lastChangeDate": "20260428",
+ "parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
+ "parent": "Полномочия МЧД Минфина России",
+ "type": "",
+ "CODE": "MEFMO_MFEB_S0002_M00025_C00029_MF001350",
+ "MNEMONIC": "MF001350",
+ "NAME": "Заключение соглашений об оказании государственных (муниципальных) услуг в социальной сфере (Получатель)",
+ "DESCRIPTION": "",
+ "GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
+ "NSI_ID": "MFIN03",
+ "STARTED": "20260417",
+ "REVOKED": "",
+ "EXP": "",
+ "PWR_VIS": "PUB",
+ "PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "PWR_ISS": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "CXT": "",
+ "LEGAL_RELATIONS": "",
+ "LAW_DETAILS": "",
+ "autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001350",
+ "uid": "2a1161f0-88e4-4002-94f9-09ba3353777d",
+ "script": "",
+ "rules": []
+ },
+ {
+ "lastChangeDate": "20260428",
+ "parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
+ "parent": "Полномочия МЧД Минфина России",
+ "type": "",
+ "CODE": "MEFMO_MFEB_S0002_M00025_C00029_MF001349",
+ "MNEMONIC": "MF001349",
+ "NAME": "Заключение соглашений об оказании государственных (муниципальных) услуг в социальной сфере (Федеральный орган исполнительной власти)",
+ "DESCRIPTION": "",
+ "GROUP": "18c19255-2b8c-70d2-9e9b-ce0c07aa03f8",
+ "NSI_ID": "MFIN03",
+ "STARTED": "20260417",
+ "REVOKED": "",
+ "EXP": "",
+ "PWR_VIS": "PUB",
+ "PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "PWR_ISS": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "CXT": "",
+ "LEGAL_RELATIONS": "",
+ "LAW_DETAILS": "",
+ "autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001349",
+ "uid": "c7bc4fa1-0113-46c8-abcb-0afc36718cf6",
+ "script": "",
+ "rules": []
+ },
+ {
+ "lastChangeDate": "20260428",
+ "parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
+ "parent": "Полномочия МЧД Минфина России",
+ "type": "",
+ "CODE": "MEFMO_MFEB_S0008_M00041_MF001313",
+ "MNEMONIC": "MF001313",
+ "NAME": "Согласование и утверждение Министерством финансов Российской Федерации перечня главных администраторов доходов бюджетов государственных внебюджетных фондов РФ (ФОМС)",
+ "DESCRIPTION": "",
+ "GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
+ "NSI_ID": "MFIN03",
+ "STARTED": "20260417",
+ "REVOKED": "",
+ "EXP": "",
+ "PWR_VIS": "PUB",
+ "PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "PWR_ISS": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "CXT": "",
+ "LEGAL_RELATIONS": "",
+ "LAW_DETAILS": "",
+ "autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001313",
+ "uid": "675acbca-77c6-44e5-ae72-0493c019bf56",
+ "script": "",
+ "rules": []
+ },
+ {
+ "lastChangeDate": "20260428",
+ "parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
+ "parent": "Полномочия МЧД Минфина России",
+ "type": "",
+ "CODE": "MEFMO_MFEB_S0008_M00041_MF001308",
+ "MNEMONIC": "MF001308",
+ "NAME": "Согласование и утверждение главным администратором доходов бюджетов перечня главных администраторов доходов бюджетов государственных внебюджетных фондов РФ (СФР)",
+ "DESCRIPTION": "",
+ "GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
+ "NSI_ID": "MFIN03",
+ "STARTED": "20260417",
+ "REVOKED": "",
+ "EXP": "",
+ "PWR_VIS": "PUB",
+ "PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "PWR_ISS": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "CXT": "",
+ "LEGAL_RELATIONS": "",
+ "LAW_DETAILS": "",
+ "autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001308",
+ "uid": "1386eb4a-1d4a-4534-ac82-5a39ac40d275",
+ "script": "",
+ "rules": []
+ },
+ {
+ "lastChangeDate": "20260428",
+ "parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
+ "parent": "Полномочия МЧД Минфина России",
+ "type": "",
+ "CODE": "MEFMO_MFEB_S0008_M00041_MF001312",
+ "MNEMONIC": "MF001312",
+ "NAME": "Согласование и утверждение главным администратором доходов бюджетов перечня главных администраторов доходов бюджетов государственных внебюджетных фондов РФ (ФОМС)",
+ "DESCRIPTION": "",
+ "GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
+ "NSI_ID": "MFIN03",
+ "STARTED": "20260417",
+ "REVOKED": "",
+ "EXP": "",
+ "PWR_VIS": "PUB",
+ "PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "PWR_ISS": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "CXT": "",
+ "LEGAL_RELATIONS": "",
+ "LAW_DETAILS": "",
+ "autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001312",
+ "uid": "577c0819-3109-4740-aeb8-9fde166b32f3",
+ "script": "",
+ "rules": []
+ },
+ {
+ "lastChangeDate": "20260428",
+ "parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
+ "parent": "Полномочия МЧД Минфина России",
+ "type": "",
+ "CODE": "MEFMO_MFEB_S0008_M00041_MF001309",
+ "MNEMONIC": "MF001309",
+ "NAME": "Согласование и утверждение Министерством финансов Российской Федерации перечня главных администраторов доходов бюджетов государственных внебюджетных фондов РФ (СФР)",
+ "DESCRIPTION": "",
+ "GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
+ "NSI_ID": "MFIN03",
+ "STARTED": "20260417",
+ "REVOKED": "",
+ "EXP": "",
+ "PWR_VIS": "PUB",
+ "PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "PWR_ISS": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "CXT": "",
+ "LEGAL_RELATIONS": "",
+ "LAW_DETAILS": "",
+ "autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001309",
+ "uid": "1a72c175-c50c-4eff-b40e-13ec9d2e1d9a",
+ "script": "",
+ "rules": []
+ },
+ {
+ "lastChangeDate": "20260428",
+ "parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
+ "parent": "Полномочия МЧД Минфина России",
+ "type": "",
+ "CODE": "MEFMO_MFEB_S0008_M00041_MF001307",
+ "MNEMONIC": "MF001307",
+ "NAME": "Утверждение координатором деятельности СФР перечня главных администраторов доходов бюджетов государственных внебюджетных фондов РФ (СФР)",
+ "DESCRIPTION": "",
+ "GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
+ "NSI_ID": "MFIN03",
+ "STARTED": "20260417",
+ "REVOKED": "",
+ "EXP": "",
+ "PWR_VIS": "PUB",
+ "PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "PWR_ISS": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "CXT": "",
+ "LEGAL_RELATIONS": "",
+ "LAW_DETAILS": "",
+ "autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001307",
+ "uid": "3155b1f5-5cd3-4971-a3da-de9662af6209",
+ "script": "",
+ "rules": []
+ },
+ {
+ "lastChangeDate": "20260428",
+ "parentUUID": "8624a541-4407-4ecf-b24e-c65a43c6e9b8",
+ "parent": "Полномочия МЧД Минфина России",
+ "type": "",
+ "CODE": "MEFMO_MFEB_S0008_M00041_MF001311",
+ "MNEMONIC": "MF001311",
+ "NAME": "Утверждение координатором деятельности ФОМС перечня главных администраторов доходов бюджетов государственных внебюджетных фондов РФ (ФОМС)",
+ "DESCRIPTION": "",
+ "GROUP": "6cef9939-734e-dadc-2abe-001b481984dc",
+ "NSI_ID": "MFIN03",
+ "STARTED": "20260417",
+ "REVOKED": "",
+ "EXP": "",
+ "PWR_VIS": "PUB",
+ "PWR_READ": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "PWR_ISS": "[\"P\", \"OA\", \"OB\", \"OL\"]",
+ "CXT": "",
+ "LEGAL_RELATIONS": "",
+ "LAW_DETAILS": "",
+ "autokey": "POWER_PWR_CLASS_MCHD_MINFIN_MF001311",
+ "uid": "95aee4b7-a449-443c-8d2e-131c0656aac3",
+ "script": "",
+ "rules": []
}
]
}
\ No newline at end of file
diff --git a/src/Catalogs/КлассификаторПолномочийФНСМЧД002/Ext/ManagerModule.bsl b/src/Catalogs/КлассификаторПолномочийФНСМЧД002/Ext/ManagerModule.bsl
index 18de8afa9..e61846345 100644
--- a/src/Catalogs/КлассификаторПолномочийФНСМЧД002/Ext/ManagerModule.bsl
+++ b/src/Catalogs/КлассификаторПолномочийФНСМЧД002/Ext/ManagerModule.bsl
@@ -4,6 +4,17 @@
#Область ДляВызоваИзДругихПодсистем
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОбработатьДанныеДляПереходаНаНовуюВерсиюНачальноеЗаполнение");
+
+КонецПроцедуры
+
+#КонецОбласти
+
// СтандартныеПодсистемы.ОбновлениеВерсииИБ
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
diff --git a/src/Catalogs/Контрагенты/Forms/ФормаСписка/Ext/Form.xml b/src/Catalogs/Контрагенты/Forms/ФормаСписка/Ext/Form.xml
index a3a879f5c..6d8a52121 100644
--- a/src/Catalogs/Контрагенты/Forms/ФормаСписка/Ext/Form.xml
+++ b/src/Catalogs/Контрагенты/Forms/ФормаСписка/Ext/Form.xml
@@ -2,7 +2,6 @@
+
+
+ ОбработанаВУпрощенномРежимеРаботыСДоверенностями
+
+
+ ru
+ Обработана в упрощенном режиме работы с доверенностями
+
+
+ Выполнена проверка подписи доверенности при обновлении ИБ
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+ Use
+
+
diff --git a/src/Catalogs/МЧД003/Ext/ManagerModule.bsl b/src/Catalogs/МЧД003/Ext/ManagerModule.bsl
index ed438a0d0..3b7e8f834 100644
--- a/src/Catalogs/МЧД003/Ext/ManagerModule.bsl
+++ b/src/Catalogs/МЧД003/Ext/ManagerModule.bsl
@@ -1242,11 +1242,12 @@
// если отсутствует возможность проверить подпись МЧД на сервере
// (в настройках установлена проверка подписи на клиенте)
// и необходимо выполнить проверку на клиенте.
+// * ВариантПроверкиСертификатовМЧДЭДО - ПеречислениеСсылка.ВариантыПроверкиСертификатовМЧДЭДО
// * ДанныеДляПроверки - См. МашиночитаемыеДоверенностиКлиентСервер.НовыеДанныеДляПроверкиМЧД
-// * ДанныеДляПроверки - Неопределено
-// * ТекстОшибки - Строка -
+// - Неопределено
+// * ТекстОшибки - Строка
Функция ЗагрузитьМЧДИзФайла(ДанныеФайла, МЧД = Неопределено, ДополнительныеСведения = Неопределено) Экспорт
-
+
ТребуетсяПроверкаМЧДНаКлиенте = Ложь;
Результат = Новый Структура;
@@ -1254,6 +1255,7 @@
Результат.Вставить("ТребуетсяПроверкаМЧДНаКлиенте", ТребуетсяПроверкаМЧДНаКлиенте);
Результат.Вставить("ДанныеДляПроверки", Неопределено);
Результат.Вставить("ТекстОшибки", "");
+ Результат.Вставить("ВариантПроверкиСертификатовМЧДЭДО", МашиночитаемыеДоверенности.ВариантПроверкиСертификатаДоверителя());
Если ТипЗнч(ДанныеФайла) = Тип("Структура") Тогда
ДанныеАрхива = ДанныеФайла;
@@ -1285,8 +1287,8 @@
ДополнительныеСведения = МашиночитаемыеДоверенностиКлиентСервер.ДополнительныеСведенияПоЗагрузкеМЧД();
КонецЕсли;
- РезультатПроверкиНаСервере = Новый Структура("Результат, ТекстОшибки", Истина, "");
-
+ РезультатПроверкиНаСервере = МашиночитаемыеДоверенности.НовыйОбщийРезультатПроверкиПодписиДоверенности(Истина);
+
ЭтоРучноеСоздание = Ложь;
ОбновлятьСуществующуюМЧД = Истина;
@@ -4615,6 +4617,20 @@
//
Процедура ПроверитьУсловныеПоляОбъектаМЧД(Доверенность, ОшибкиЗаполнения)
+ ПроверитьУсловныеПоляДоверителейМЧД(Доверенность, ОшибкиЗаполнения);
+ ПроверитьУсловныеПоляПредставителейМЧД(Доверенность, ОшибкиЗаполнения);
+ ПроверитьУсловныеПоляПолномочийМЧД(Доверенность, ОшибкиЗаполнения);
+
+КонецПроцедуры
+
+// Проверяет условные поля доверителей в МЧД.
+//
+// Параметры:
+// Доверенность см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
+// ОшибкиЗаполнения см. НовыйНаборОшибокЗаполненияОбъектаМЧД
+//
+Процедура ПроверитьУсловныеПоляДоверителейМЧД(Знач Доверенность, ОшибкиЗаполнения)
+
Доверители = Доверенность.Документ.Довер.СвДоверит;
ИндексДоверителя = 0;
@@ -4624,6 +4640,16 @@
ИндексДоверителя = ИндексДоверителя + 1;
КонецЦикла;
+КонецПроцедуры
+
+// Проверяет условные поля представителей в МЧД.
+//
+// Параметры:
+// Доверенность см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
+// ОшибкиЗаполнения см. НовыйНаборОшибокЗаполненияОбъектаМЧД
+//
+Процедура ПроверитьУсловныеПоляПредставителейМЧД(Знач Доверенность, ОшибкиЗаполнения)
+
Представители = Доверенность.Документ.Довер.СвУпПред;
ИндексПредставителя = 0;
@@ -4633,11 +4659,113 @@
ИндексПредставителя = ИндексПредставителя + 1;
КонецЦикла;
- ПроверитьУсловныеПоляПолномочийМЧД(Доверенность, ОшибкиЗаполнения);
+ ПроверитьСовпадениеПредставителяИДоверителяМЧД(Доверенность, ОшибкиЗаполнения);
КонецПроцедуры
-// Проверить условные поля объекта МЧД.
+// Проверяет совпадение полей ИНН и СНИЛС представителя и доверителя в МЧД.
+//
+// Параметры:
+// Доверенность - см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
+// ОшибкиЗаполнения - см. НовыйНаборОшибокЗаполненияОбъектаМЧД
+//
+Процедура ПроверитьСовпадениеПредставителяИДоверителяМЧД(Знач Доверенность, ОшибкиЗаполнения)
+
+ Доверители = Доверенность.Документ.Довер.СвДоверит; // см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.СвДоверитТип
+ Представители = Доверенность.Документ.Довер.СвУпПред; // см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.СвУпПредТип
+
+ ИННФизЛицаДоверителяДействующегоБезДоверенности = "";
+ ИННФизЛицаПредставителя = "";
+
+ Для Каждого Доверитель Из Доверители Цикл
+
+ ТипДоверителя = Доверитель.ТипДоверит; // Строка
+
+ Если ТипДоверителя = ТипыДоверителей().ЮридическоеЛицо Тогда
+
+ РосОргДовер = Доверитель.Доверит.РосОргДовер; // см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.РосОргДоверТип
+ Если РосОргДовер.ЕИОФЛ = КлассификаторДаНет().Да Тогда
+ ИННФизЛицаДоверителяДействующегоБезДоверенности = РосОргДовер.ЛицоБезДов[0].СвФЛ.ИННФЛ; // Строка
+ ИначеЕсли РосОргДовер.ЕИОИП = КлассификаторДаНет().Да Тогда
+ ИННФизЛицаДоверителяДействующегоБезДоверенности = РосОргДовер.ЛицоБезДов[0].СВИП.ИННФЛ; // Строка
+ ИначеЕсли РосОргДовер.ЕИОУК = КлассификаторДаНет().Да Тогда
+ ИННФизЛицаДоверителяДействующегоБезДоверенности = РосОргДовер.ЛицоБезДов[0].СВЮЛ.СвФЛ[0].ИННФЛ; // Строка
+ КонецЕсли;
+
+ ИначеЕсли ТипДоверителя = ТипыДоверителей().ИндивидуальныйПредприниматель Тогда
+ ИННФизЛицаДоверителяДействующегоБезДоверенности = Доверитель.Доверит.ИПДовер.ИННФЛ; // Строка
+ КонецЕсли;
+
+ Если ПустаяСтрока(ИННФизЛицаДоверителяДействующегоБезДоверенности) Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ИндексПредставителя = 0;
+ НомерСтроки = 0;
+ КоличествоПредставителей = Представители.Количество();
+
+ Для Каждого Представитель Из Представители Цикл
+
+ НомерСтроки = НомерСтроки + 1;
+ ТипПредставителя = Представитель.ТипПред; // Строка
+
+ Если ТипПредставителя = ТипыПредставителей().ФизическоеЛицо Тогда
+ ИННФизЛицаПредставителя = Представитель.Пред.СведФизЛ.ИННФЛ; // Строка
+ Путь = СтрШаблон("Доверенность[0].Документ[0].Довер[0].СвУпПред[%1].Пред[0].СведФизЛ[0].ИННФЛ",
+ ИндексПредставителя);
+ ИначеЕсли ТипПредставителя = ТипыПредставителей().ИндивидуальныйПредприниматель Тогда
+ ИННФизЛицаПредставителя = Представитель.Пред.СведИП.ИННФЛ; // Строка
+ Путь = СтрШаблон("Доверенность[0].Документ[0].Довер[0].СвУпПред[%1].Пред[0].СведИП[0].ИННФЛ",
+ ИндексПредставителя);
+ Иначе
+ ИндексПредставителя = ИндексПредставителя + 1;
+ Продолжить;
+ КонецЕсли;
+
+ ДобавитьОшибкуСовпаденияИННПредставителяИДоверителяМЧД(ОшибкиЗаполнения, Путь, ИННФизЛицаПредставителя,
+ ИННФизЛицаДоверителяДействующегоБезДоверенности, КоличествоПредставителей, НомерСтроки);
+
+ ИндексПредставителя = ИндексПредставителя + 1;
+
+ КонецЦикла;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Добавить ошибку совпадения ИННПредставителя и доверителя МЧД.
+//
+// Параметры:
+// ОшибкиЗаполнения - см. НовыйНаборОшибокЗаполненияОбъектаМЧД
+// Путь - Строка
+// ИННПредставителя - Строка
+// ИННДоверителя - Строка
+// КоличествоПредставителей - Число
+// НомерСтроки - Число
+Процедура ДобавитьОшибкуСовпаденияИННПредставителяИДоверителяМЧД(ОшибкиЗаполнения, Знач Путь, Знач ИННПредставителя,
+ Знач ИННДоверителя, Знач КоличествоПредставителей, Знач НомерСтроки)
+
+ Если Не ЗначениеЗаполнено(ИННПредставителя)
+ Или ИННПредставителя <> ИННДоверителя Тогда
+ Возврат;
+ КонецЕсли;
+
+ ТекстПояснения = НСтр("ru = 'пункт 3 статьи 182 ГК РФ ""Представитель не может совершать сделки от имени
+ |представляемого (доверителя) в отношении себя лично, а также в отношении другого лица, представителем которого он одновременно является"".'");
+
+ Если КоличествоПредставителей = 1 Тогда
+ ТекстОшибки = СтрШаблон(НСтр("ru = 'Недопустимый ИНН представителя - физического лица. Основание: %1'"),
+ ТекстПояснения);
+ Иначе
+ ТекстОшибки = СтрШаблон(НСтр("ru = 'Недопустимый ИНН представителя - физического лица в строке %1. Основание: %2'"),
+ НомерСтроки, ТекстПояснения);
+ КонецЕсли;
+
+ ДобавитьОшибкуЗаполненияОбъектаМЧД(ОшибкиЗаполнения, Путь, ТекстОшибки);
+
+КонецПроцедуры
+
+// Проверяет условные поля объекта МЧД.
//
// Параметры:
// Доверенность - см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
@@ -4645,6 +4773,20 @@
//
Процедура ПроверитьУсловныеПоляОбъектаМЧДПередоверия(Доверенность, ОшибкиЗаполнения)
+ ПроверитьУсловныеПоляДоверителейМЧДПередоверия(Доверенность, ОшибкиЗаполнения);
+ ПроверитьУсловныеПоляПредставителейМЧДПередоверия(Доверенность, ОшибкиЗаполнения);
+ ПроверитьУсловныеПоляПолномочийМЧДПередоверия(Доверенность, ОшибкиЗаполнения);
+
+КонецПроцедуры
+
+// Проверяет условные поля доверителей МЧД передоверия.
+//
+// Параметры:
+// Доверенность - см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
+// ОшибкиЗаполнения - см. НовыйНаборОшибокЗаполненияОбъектаМЧД
+//
+Процедура ПроверитьУсловныеПоляДоверителейМЧДПередоверия(Знач Доверенность, ОшибкиЗаполнения)
+
Доверители = Доверенность.Документ.Передов.СвПередПолн;
ИндексДоверителя = 0;
@@ -4654,6 +4796,16 @@
ИндексДоверителя = ИндексДоверителя + 1;
КонецЦикла;
+КонецПроцедуры
+
+// Проверяет условные поля представителей МЧД передоверия.
+//
+// Параметры:
+// Доверенность - см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
+// ОшибкиЗаполнения - см. НовыйНаборОшибокЗаполненияОбъектаМЧД
+//
+Процедура ПроверитьУсловныеПоляПредставителейМЧДПередоверия(Знач Доверенность, ОшибкиЗаполнения)
+
Представители = Доверенность.Документ.Передов.СвПолучПолн;
ИндексПредставителя = 0;
@@ -4663,10 +4815,80 @@
ИндексПредставителя = ИндексПредставителя + 1;
КонецЦикла;
- ПроверитьУсловныеПоляПолномочийМЧДПередоверия(Доверенность, ОшибкиЗаполнения);
+ ПроверитьСовпадениеПредставителяИДоверителяМЧДПередоверия(Доверенность, ОшибкиЗаполнения)
КонецПроцедуры
+// Проверяет совпадение полей ИНН и СНИЛС представителя и доверителя в МЧД передоверия.
+//
+// Параметры:
+// Доверенность - см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
+// ОшибкиЗаполнения - см. НовыйНаборОшибокЗаполненияОбъектаМЧД
+//
+Процедура ПроверитьСовпадениеПредставителяИДоверителяМЧДПередоверия(Знач Доверенность, ОшибкиЗаполнения)
+
+ Доверители = Доверенность.Документ.Передов.СвПередПолн; // см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.СвПередПолн
+ Представители = Доверенность.Документ.Передов.СвПолучПолн; // см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.СвУпПредТип
+
+ ИННФизЛицаДоверителяДействующегоБезДоверенности = "";
+ ИННФизЛицаПредставителя = "";
+
+ Для Каждого Доверитель Из Доверители Цикл
+
+ ТипДоверителя = Доверитель.ТипПерПолн; // Строка
+
+ Если ТипДоверителя = ТипыДоверителей().ЮридическоеЛицо Тогда
+
+ РосОргДовер = Доверитель.ПередПолн.РосОргПерПолн; // см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.РосОргДоверТип
+ Если РосОргДовер.ЕИОФЛ = КлассификаторДаНет().Да Тогда
+ ИННФизЛицаДоверителяДействующегоБезДоверенности = РосОргДовер.ЛицоБезДов[0].СвФЛ.ИННФЛ; // Строка
+ ИначеЕсли РосОргДовер.ЕИОИП = КлассификаторДаНет().Да Тогда
+ ИННФизЛицаДоверителяДействующегоБезДоверенности = РосОргДовер.ЛицоБезДов[0].СВИП.ИННФЛ; // Строка
+ ИначеЕсли РосОргДовер.ЕИОУК = КлассификаторДаНет().Да Тогда
+ ИННФизЛицаДоверителяДействующегоБезДоверенности = РосОргДовер.ЛицоБезДов[0].СВЮЛ.СвФЛ[0].ИННФЛ; // Строка
+ КонецЕсли;
+
+ ИначеЕсли ТипДоверителя = ТипыДоверителей().ИндивидуальныйПредприниматель Тогда
+ ИННФизЛицаДоверителяДействующегоБезДоверенности = Доверитель.ПередПолн.ИППерПолн.ИННФЛ; // Строка
+ КонецЕсли;
+
+ Если ПустаяСтрока(ИННФизЛицаДоверителяДействующегоБезДоверенности) Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ИндексПредставителя = 0;
+ НомерСтроки = 0;
+ КоличествоПредставителей = Представители.Количество();
+
+ Для Каждого Представитель Из Представители Цикл
+
+ НомерСтроки = НомерСтроки + 1;
+ ТипПредставителя = Представитель.ТипПред; // Строка
+
+ Если ТипПредставителя = ТипыПредставителей().ФизическоеЛицо Тогда
+ ИННФизЛицаПредставителя = Представитель.Пред.СведФизЛ.ИННФЛ; // Строка
+ Путь = СтрШаблон("Доверенность[0].Документ[0].Передов[0].СвПолучПолн[%1].Пред[0].СведФизЛ[0].ИННФЛ",
+ ИндексПредставителя);
+ ИначеЕсли ТипПредставителя = ТипыПредставителей().ИндивидуальныйПредприниматель Тогда
+ ИННФизЛицаПредставителя = Представитель.Пред.СведИП.ИННФЛ; // Строка
+ Путь = СтрШаблон("Доверенность[0].Документ[0].Передов[0].СвПолучПолн[%1].Пред[0].СведИП[0].ИННФЛ",
+ ИндексПредставителя);
+ Иначе
+ ИндексПредставителя = ИндексПредставителя + 1;
+ Продолжить;
+ КонецЕсли;
+
+ ДобавитьОшибкуСовпаденияИННПредставителяИДоверителяМЧД(ОшибкиЗаполнения, Путь, ИННФизЛицаПредставителя,
+ ИННФизЛицаДоверителяДействующегоБезДоверенности, КоличествоПредставителей, НомерСтроки);
+
+ ИндексПредставителя = ИндексПредставителя + 1;
+
+ КонецЦикла;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
// Проверить соответствие дат доверенности и родительской доверенности МЧД.
//
// Параметры:
diff --git a/src/Catalogs/МЧД003/Forms/ВыборДоверенности/Ext/Form.xml b/src/Catalogs/МЧД003/Forms/ВыборДоверенности/Ext/Form.xml
index ee9acccfe..6b652e52b 100644
--- a/src/Catalogs/МЧД003/Forms/ВыборДоверенности/Ext/Form.xml
+++ b/src/Catalogs/МЧД003/Forms/ВыборДоверенности/Ext/Form.xml
@@ -197,5 +197,8 @@
+
+
+
\ No newline at end of file
diff --git a/src/Catalogs/МЧД003/Forms/ФормаПросмотра/Ext/Form.xml b/src/Catalogs/МЧД003/Forms/ФормаПросмотра/Ext/Form.xml
index db47b039a..fe4c3c012 100644
--- a/src/Catalogs/МЧД003/Forms/ФормаПросмотра/Ext/Form.xml
+++ b/src/Catalogs/МЧД003/Forms/ФормаПросмотра/Ext/Form.xml
@@ -71,11 +71,11 @@
InAdditionalSubmenu
-
+
+ CommandBarButton
+ Form.StandardCommand.Write
+
+
@@ -33,11 +38,6 @@
Form
-
- CommandBarButton
- Form.Command.ПроверитьПодключение
-
-
@@ -69,59 +69,107 @@
-
+
ru
- Настройки подключения
+ Колонки
Vertical
- Picture
- NormalSeparation
-
-
-
-
-
- ru
- Настройки приема оплат
-
-
- Vertical
- Picture
- NormalSeparation
-
-
-
-
-
- ru
- Дополнительные настройки
-
-
- Vertical
- true
- Picture
None
false
-
+
-
-
+
+
ru
- <color #000000><link open:paymentPurpose>Шаблоны назначения (%1)</></>
+ Настройки подключения
- ShowLeft
- Left
-
-
-
- ДекорацияНастройкиШаблоновОбработкаНавигационнойСсылки
-
-
+ Vertical
+ Picture
+ NormalSeparation
+ false
+
+
+
+
+
+ ru
+ Настройки аутентификации
+
+
+ Vertical
+ None
+ false
+
+
+
+ UsualButton
+ Form.Command.ПроверитьПодключение
+
+
+
+
+
+
+
+ ru
+ Настройки приема оплат
+
+
+ Vertical
+ Picture
+ NormalSeparation
+ false
+
+
+
+
+
+ ru
+ Дополнительные настройки
+
+
+ Vertical
+ true
+ Picture
+ false
+
+
+
+
+
+ ru
+ Шаблоны назначения: <link open:paymentPurpose>Настроить</>
+
+
+ ShowLeft
+ Left
+
+
+
+ ДекорацияНастройкиШаблоновОбработкаНавигационнойСсылки
+
+
+
+
+
+ ru
+ Кассовые QR-коды: <link open:cashQrc>Настроить</>
+
+
+ Left
+
+
+
+ ДекорацияКассовыеСсылкиОбработкаНавигационнойСсылки
+
+
+
+
@@ -165,7 +213,7 @@
ru
- Проверить подключение
+ Проверить корректность параметров аутентификации
ПроверитьПодключение
diff --git a/src/Catalogs/НастройкиПодключенияКПлатежнымСистемам/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/Catalogs/НастройкиПодключенияКПлатежнымСистемам/Forms/ФормаЭлемента/Ext/Form/Module.bsl
index f046158bc..d537113dc 100644
--- a/src/Catalogs/НастройкиПодключенияКПлатежнымСистемам/Forms/ФормаЭлемента/Ext/Form/Module.bsl
+++ b/src/Catalogs/НастройкиПодключенияКПлатежнымСистемам/Forms/ФормаЭлемента/Ext/Form/Module.bsl
@@ -22,7 +22,7 @@
ПлатежныеСистемыСлужебный.ДобавитьНастройкиАутентификации(
ЭтотОбъект,
- Элементы.ГруппаНастройкиПодключения,
+ Элементы.ГруппаНастройкиАутентификации,
Объект.ПлатежнаяСистема,
Объект.Ссылка);
@@ -37,7 +37,7 @@
Объект.ПлатежнаяСистема,
Объект.Ссылка);
- ЗаполнитьДекорацияНастройкиШаблонов();
+ ЗаполнитьДекорацииНастройкиШаблоновИКассовыхСсылок();
КонецПроцедуры
@@ -181,6 +181,44 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ДекорацияКассовыеСсылкиОбработкаНавигационнойСсылки(
+ Элемент,
+ НавигационнаяСсылкаФорматированнойСтроки,
+ СтандартнаяОбработка)
+
+ Если НавигационнаяСсылкаФорматированнойСтроки <> "open:cashQrc" Тогда
+ Возврат;
+ КонецЕсли;
+
+ СтандартнаяОбработка = Ложь;
+
+ Если Модифицированность Тогда
+ ОбщегоНазначенияКлиент.СообщитьПользователю(
+ НСтр("ru = 'Перед настройкой кассовых QR-кодов необходимо записать изменения.'"));
+ Возврат;
+ КонецЕсли;
+
+ Если Не Объект.Используется Тогда
+ ОбщегоНазначенияКлиент.СообщитьПользователю(
+ НСтр("ru = 'Для отключенной настройки подключения недоступно изменение кассовых QR-кодов.'"));
+ Возврат;
+ КонецЕсли;
+
+ ОповещениеПослеЗакрытияФормыКассовыхСсылок = Новый ОписаниеОповещения(
+ "ДекорацияКассовыеСсылкиЗавершение",
+ ЭтотОбъект);
+
+ ПараметрыНастройки = Новый Структура;
+ ПараметрыНастройки.Вставить("НастройкаПодключения", Объект.Ссылка);
+ ПараметрыНастройки.Вставить("ПлатежнаяСистема", Объект.ПлатежнаяСистема);
+
+ ПлатежныеСистемыКлиент.ПриНастройкеКассовыхСсылок(
+ ПараметрыНастройки,
+ ОповещениеПослеЗакрытияФормыКассовыхСсылок);
+
+КонецПроцедуры
+
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДанныхАутентификации(Элемент)
@@ -323,17 +361,43 @@
КонецПроцедуры
-&НаСервере
-Процедура ЗаполнитьДекорацияНастройкиШаблонов()
+&НаКлиенте
+Процедура ДекорацияКассовыеСсылкиЗавершение(
+ Результат,
+ ДополнительныеПараметры) Экспорт
- ПредопределенныеШаблоны = ПлатежныеСистемыСлужебный.НастройкиПодключения(
- Объект.ПлатежнаяСистема).ШаблоныНазначений;
+ ОбновитьНадписьКассовыеСсылкиНаСервере();
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ЗаполнитьДекорацииНастройкиШаблоновИКассовыхСсылок()
+
+ НастройкиПодключения = ПлатежныеСистемыСлужебный.НастройкиПодключения(
+ Объект.ПлатежнаяСистема);
+
+ ПредопределенныеШаблоны = НастройкиПодключения.ШаблоныНазначений;
НастройкиПлатежныхСистемСлужебный.ЗаполнитьДекорациюНастройкиШаблонов(
ПредопределенныеШаблоны,
Элементы.ДекорацияНастройкиШаблонов,
Объект.Ссылка);
+ ПлатежныеСистемыСлужебный.ЗаполнитьДекорациюКассовыеСсылки(
+ НастройкиПодключения.ИспользоватьНастройкуКассовыхСсылок,
+ Элементы.ДекорацияКассовыеСсылки,
+ Объект.Ссылка);
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ОбновитьНадписьКассовыеСсылкиНаСервере()
+
+ ПлатежныеСистемыСлужебный.ЗаполнитьДекорациюКассовыеСсылки(
+ Элементы.ДекорацияКассовыеСсылки.Видимость,
+ Элементы.ДекорацияКассовыеСсылки,
+ Объект.Ссылка);
+
КонецПроцедуры
&НаСервереБезКонтекста
diff --git a/src/Catalogs/НастройкиХозяйственныхОпераций/Ext/ManagerModule.bsl b/src/Catalogs/НастройкиХозяйственныхОпераций/Ext/ManagerModule.bsl
index c863d733b..a874b616f 100644
--- a/src/Catalogs/НастройкиХозяйственныхОпераций/Ext/ManagerModule.bsl
+++ b/src/Catalogs/НастройкиХозяйственныхОпераций/Ext/ManagerModule.bsl
@@ -6831,6 +6831,13 @@
НайденнаяСсылка = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Документ.ПолноеИмя());
ЭлементТЧ.ИдентификаторОбъектаМетаданных = НайденнаяСсылка;
КонецЕсли;
+ Документ = Метаданные.Документы.Найти("ДокументОПредстоящейПоставке");
+ Если Документ <> Неопределено Тогда
+ ЭлементТЧ = Элемент.Документы.Добавить();
+ ЭлементТЧ.ИмяДокумента = Документ.Имя;
+ НайденнаяСсылка = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Документ.ПолноеИмя());
+ ЭлементТЧ.ИдентификаторОбъектаМетаданных = НайденнаяСсылка;
+ КонецЕсли;
Элемент.ФункциональныеОпции = ТабличныеЧасти.ФункциональныеОпции.Скопировать();
ЭлементТЧ = Элемент.ФункциональныеОпции.Добавить();
diff --git a/src/Catalogs/Новости/Forms/ФормаНовостей/Ext/Form/Module.bsl b/src/Catalogs/Новости/Forms/ФормаНовостей/Ext/Form/Module.bsl
index fb812fd65..f2c4c5fda 100644
--- a/src/Catalogs/Новости/Forms/ФормаНовостей/Ext/Form/Module.bsl
+++ b/src/Catalogs/Новости/Forms/ФормаНовостей/Ext/Form/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2024, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -207,19 +207,33 @@
Для Каждого ТекущаяНовость Из ЛокальныйСписокНовостей Цикл
Запись = РегистрыСведений.СостоянияНовостей.СоздатьМенеджерЗаписи();
- Запись.Пользователь = ЛокальныйТекущийПользователь;
- Запись.Новость = ТекущаяНовость.Значение;
+ Запись.Пользователь = ЛокальныйТекущийПользователь;
+ Запись.Новость = ТекущаяНовость.Значение;
Запись.Прочитать(); // Запись будет ниже. // На тот случай, если были установлены другие свойства
- // Вдруг новость не выбрана (т.е. ее нет в базе) - перезаполнить менеджер записи и записать.
- Запись.Пользователь = ЛокальныйТекущийПользователь;
- Запись.Новость = ТекущаяНовость.Значение;
- Запись.Прочтена = Истина; // Всегда устанавливать прочтенность
- // Запись.Пометка Не трогать.
- Запись.ОповещениеВключено = ЛокальноеОповещениеВключено;
- // Запись.ДатаНачалаОповещения Не трогать.
+ // Вдруг новость не выбрана (т.е. ее нет в базе) - перезаполнить менеджер записи и записать.
+ Запись.Пользователь = ЛокальныйТекущийПользователь;
+ Запись.Новость = ТекущаяНовость.Значение;
+ Запись.Прочтена = Истина; // Всегда устанавливать прочтенность
+ // Запись.Пометка Не трогать.
+ Запись.ОповещениеВключено = ЛокальноеОповещениеВключено;
+ // Запись.ДатаНачалаОповещения Не трогать.
Запись.Записать(Истина);
КонецЦикла;
+ ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(); // Все значения = Неопределено, мы не считывали значения состояний.
+ НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(
+ Истина, // Прочтена
+ Неопределено, // Пометка
+ ЛокальноеОповещениеВключено, // ОповещениеВключено
+ Неопределено, // ДатаНачалаОповещения
+ Неопределено, // УдаленаИзСпискаНовостей
+ Неопределено); // ПрочитатьПозже
+ ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ЛокальныйТекущийПользователь),
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ТекущаяНовость.Значение),
+ ПредыдущиеЗначенияСостояний,
+ НовыеЗначенияСостояний);
+
Если ЛокальноеОповещениеВключено = Ложь Тогда
Запрос = Новый Запрос;
Запрос.Текст = "
diff --git a/src/Catalogs/Новости/Forms/ФормаНовостейСоСписком/Ext/Form.xml b/src/Catalogs/Новости/Forms/ФормаНовостейСоСписком/Ext/Form.xml
index 829eda100..b1ae6ead7 100644
--- a/src/Catalogs/Новости/Forms/ФормаНовостейСоСписком/Ext/Form.xml
+++ b/src/Catalogs/Новости/Forms/ФормаНовостейСоСписком/Ext/Form.xml
@@ -52,7 +52,6 @@
SingleRow
Row
- false
ExpandAllLevels
AsFile
ТаблицаНовостей
@@ -321,6 +320,42 @@
+
+
+
+ ru
+ Оповещение включено (при открытии)
+
+
+
+ xs:boolean
+
+
+
+
+
+ ru
+ Прочтена (при открытии)
+
+
+
+ xs:boolean
+
+
+
+
+
+ ru
+ Дата начала оповещения (при открытии)
+
+
+
+ xs:dateTime
+
+ DateTime
+
+
+
diff --git a/src/Catalogs/Новости/Forms/ФормаНовостейСоСписком/Ext/Form/Module.bsl b/src/Catalogs/Новости/Forms/ФормаНовостейСоСписком/Ext/Form/Module.bsl
index 7e4b57896..e9fa27c31 100644
--- a/src/Catalogs/Новости/Forms/ФормаНовостейСоСписком/Ext/Form/Module.bsl
+++ b/src/Catalogs/Новости/Forms/ФормаНовостейСоСписком/Ext/Form/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -214,6 +214,13 @@
Возврат;
КонецЕсли;
+ // Запомнить начальные состояния новостей.
+ Для Каждого ТекущаяНовость Из ТаблицаНовостей Цикл
+ ТекущаяНовость.ПрочтенаПриОткрытии = ТекущаяНовость.Прочтена;
+ ТекущаяНовость.ОповещениеВключеноПриОткрытии = ТекущаяНовость.ОповещениеВключено;
+ ТекущаяНовость.ДатаНачалаОповещенияПриОткрытии = ТекущаяНовость.ДатаНачалаОповещения;
+ КонецЦикла;
+
#Область МобильныйКлиент
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
@@ -386,7 +393,7 @@
#Область СлужебныеПроцедурыИФункции
-&НаСервереБезКонтекста
+&НаСервере
// Функция записывает регистр сведений "СостоянияНовостей".
// Также подготавливается список данных для очистки кэша контекстных новостей.
//
@@ -405,22 +412,57 @@
Для Каждого ТекущаяНовость Из лкТаблицаНовостей Цикл
Запись = РегистрыСведений.СостоянияНовостей.СоздатьМенеджерЗаписи();
- Запись.Пользователь = лкТекущийПользователь;
- Запись.Новость = ТекущаяНовость.Новость;
+ Запись.Пользователь = лкТекущийПользователь;
+ Запись.Новость = ТекущаяНовость.Новость;
Запись.Прочитать(); // Запись будет ниже. // На тот случай, если были установлены другие свойства
- // Вдруг новость не выбрана (т.е. ее нет в базе) - перезаполнить менеджер записи и записать.
- Запись.Пользователь = лкТекущийПользователь;
- Запись.Новость = ТекущаяНовость.Новость;
- Запись.Прочтена = ТекущаяНовость.Прочтена;
- // Запись.Пометка Не трогать.
- Запись.ОповещениеВключено = ТекущаяНовость.ОповещениеВключено;
- Запись.ДатаНачалаОповещения = ТекущаяНовость.ДатаНачалаОповещения; // При нажатии "Показать позже" надо отвести время показа на "ВремяПереносаПоказатьПозжеМинут" минут.
+ // Вдруг новость не выбрана (т.е. ее нет в базе) - перезаполнить менеджер записи и записать.
+ Запись.Пользователь = лкТекущийПользователь;
+ Запись.Новость = ТекущаяНовость.Новость;
+ Запись.Прочтена = ТекущаяНовость.Прочтена;
+ // Запись.Пометка Не трогать.
+ Запись.ОповещениеВключено = ТекущаяНовость.ОповещениеВключено;
+ Запись.ДатаНачалаОповещения = ТекущаяНовость.ДатаНачалаОповещения; // При нажатии "Показать позже" надо отвести время показа на "ВремяПереносаПоказатьПозжеМинут" минут.
Запись.Записать(Истина);
Если ТекущаяНовость.ОповещениеВключено = Ложь Тогда
МассивНовостейДляОчисткиКэшаКонтекстныхНовостей.Добавить(ТекущаяНовость.Новость);
КонецЕсли;
КонецЦикла;
+ // Здесь для каждой новости может быть свое состояние.
+ // Поэтому надо вначале "свернуть" таблицу, чтобы обрабатывать новости пачками.
+ ТаблицаНовостейТаблицей = лкТаблицаНовостей.Выгрузить(); // лкТаблицаНовостей - это ДанныеФормыКоллекция.
+ СгруппированныеСостоянияНовостей = ТаблицаНовостейТаблицей.Скопировать();
+ СгруппированныеСостоянияНовостей.Свернуть("ОповещениеВключено,Прочтена,ДатаНачалаОповещения,ОповещениеВключеноПриОткрытии,ПрочтенаПриОткрытии,ДатаНачалаОповещенияПриОткрытии");
+ Для Каждого ТекущееСостояние Из СгруппированныеСостоянияНовостей Цикл
+ ПараметрыОтбора = Новый Структура("ОповещениеВключено,Прочтена,ДатаНачалаОповещения,ОповещениеВключеноПриОткрытии,ПрочтенаПриОткрытии,ДатаНачалаОповещенияПриОткрытии");
+ ЗаполнитьЗначенияСвойств(ПараметрыОтбора, ТекущееСостояние);
+ НовостиПоСостоянию = ТаблицаНовостейТаблицей.НайтиСтроки(ПараметрыОтбора);
+ МассивНовостей = Новый Массив;
+ Для Каждого ТекущаяНовостьПоСостоянию Из НовостиПоСостоянию Цикл
+ МассивНовостей.Добавить(ТекущаяНовостьПоСостоянию.Новость);
+ КонецЦикла;
+
+ ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(
+ ТекущееСостояние.ПрочтенаПриОткрытии, // Прочтена
+ Неопределено, // Пометка
+ ТекущееСостояние.ОповещениеВключеноПриОткрытии, // ОповещениеВключено
+ ТекущееСостояние.ДатаНачалаОповещенияПриОткрытии, // ДатаНачалаОповещения
+ Неопределено, // УдаленаИзСпискаНовостей
+ Неопределено); // ПрочитатьПозже
+ НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(
+ ТекущееСостояние.Прочтена, // Прочтена
+ Неопределено, // Пометка
+ ТекущееСостояние.ОповещениеВключено, // ОповещениеВключено
+ ТекущееСостояние.ДатаНачалаОповещения, // ДатаНачалаОповещения
+ Неопределено, // УдаленаИзСпискаНовостей
+ Неопределено); // ПрочитатьПозже
+ ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(лкТекущийПользователь),
+ МассивНовостей,
+ ПредыдущиеЗначенияСостояний,
+ НовыеЗначенияСостояний);
+ КонецЦикла;
+
СписокДанныхДляОчисткиКэшаКонтекстныхНовостей = Новый СписокЗначений;
Если МассивНовостейДляОчисткиКэшаКонтекстныхНовостей.Количество() > 0 Тогда
diff --git a/src/Catalogs/Новости/Forms/ФормаНовости/Ext/Form/Module.bsl b/src/Catalogs/Новости/Forms/ФормаНовости/Ext/Form/Module.bsl
index 06b72f2a9..6fa8e6d6c 100644
--- a/src/Catalogs/Новости/Forms/ФормаНовости/Ext/Form/Module.bsl
+++ b/src/Catalogs/Новости/Forms/ФормаНовости/Ext/Form/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2024, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -153,8 +153,8 @@
// - ОповещениеВключено (имеет смысл только для важных и очень важных новостей);
// - ДатаНачалаОповещения (имеет смысл только для важных и очень важных новостей) // Пока не появится кнопка Отложить, всегда = пустой дате.
Запись = РегистрыСведений.СостоянияНовостей.СоздатьМенеджерЗаписи();
- Запись.Пользователь = ПараметрыСеанса_ТекущийПользователь;
- Запись.Новость = Объект.Ссылка;
+ Запись.Пользователь = ПараметрыСеанса_ТекущийПользователь;
+ Запись.Новость = Объект.Ссылка;
Запись.Прочитать(); // Только чтение, без последующей записи.
Если Запись.Выбран() Тогда
ПрочтенаПриОткрытии = Запись.Прочтена; // Для определения (при закрытии формы) - надо ли делать запись в регистр сведений.
@@ -204,12 +204,17 @@
// Записывать настройки нельзя при работе разделенной конфигурации в неразделенном сеансе.
Если ПропуститьЧтениеЗаписьПользовательскихНастроекНовости <> Истина Тогда
ОписательНовости = Новый Структура;
- ОписательНовости.Вставить("НовостьСсылка" , Объект.Ссылка);
- ОписательНовости.Вставить("Прочтена" , Истина);
- ОписательНовости.Вставить("Пометка" , Пометка);
- ОписательНовости.Вставить("ПрочитатьПозже" , ПрочитатьПозже);
- ОписательНовости.Вставить("ОповещениеВключено" , Ложь);
- ОписательНовости.Вставить("ДатаНачалаОповещения", '00010101');
+ ОписательНовости.Вставить("НовостьСсылка" , Объект.Ссылка);
+ ОписательНовости.Вставить("Прочтена" , Истина);
+ ОписательНовости.Вставить("Пометка" , Пометка);
+ ОписательНовости.Вставить("ПрочитатьПозже" , ПрочитатьПозже);
+ ОписательНовости.Вставить("ОповещениеВключено" , Ложь);
+ ОписательНовости.Вставить("ДатаНачалаОповещения" , '00010101');
+ ОписательНовости.Вставить("ПрочтенаПриОткрытии" , ПрочтенаПриОткрытии);
+ ОписательНовости.Вставить("ПометкаПриОткрытии" , ПометкаПриОткрытии);
+ ОписательНовости.Вставить("ПрочитатьПозжеПриОткрытии" , ПрочитатьПозжеПриОткрытии);
+ ОписательНовости.Вставить("ОповещениеВключеноПриОткрытии" , ОповещениеВключеноПриОткрытии);
+ ОписательНовости.Вставить("ДатаНачалаОповещенияПриОткрытии", ДатаНачалаОповещения); // Оставить как есть
// Настройки не изменялись, поэтому не важно, что туда записывать, главное, чтобы совпадали значения с "*ПриОткрытии".
ОписательНастроекЛентыНовостей = Новый Структура;
ОписательНастроекЛентыНовостей.Вставить("ЛентаНовостей" , Объект.ЛентаНовостей);
@@ -501,12 +506,17 @@
ИЛИ (СостояниеНастроекЛентыНовостейИзменено = Истина) Тогда
Если НЕ ПараметрыСеанса_ТекущийПользователь.Пустая() Тогда
ОписательНовости = Новый Структура;
- ОписательНовости.Вставить("НовостьСсылка" , Объект.Ссылка);
- ОписательНовости.Вставить("Прочтена" , Прочтена);
- ОписательНовости.Вставить("Пометка" , Пометка);
- ОписательНовости.Вставить("ПрочитатьПозже" , ПрочитатьПозже);
- ОписательНовости.Вставить("ОповещениеВключено" , ОповещениеВключено);
- ОписательНовости.Вставить("ДатаНачалаОповещения", ДатаНачалаОповещения);
+ ОписательНовости.Вставить("НовостьСсылка" , Объект.Ссылка);
+ ОписательНовости.Вставить("Прочтена" , Прочтена);
+ ОписательНовости.Вставить("Пометка" , Пометка);
+ ОписательНовости.Вставить("ПрочитатьПозже" , ПрочитатьПозже);
+ ОписательНовости.Вставить("ОповещениеВключено" , ОповещениеВключено);
+ ОписательНовости.Вставить("ДатаНачалаОповещения" , ДатаНачалаОповещения);
+ ОписательНовости.Вставить("ПрочтенаПриОткрытии" , ПрочтенаПриОткрытии);
+ ОписательНовости.Вставить("ПометкаПриОткрытии" , ПометкаПриОткрытии);
+ ОписательНовости.Вставить("ПрочитатьПозжеПриОткрытии" , ПрочитатьПозжеПриОткрытии);
+ ОписательНовости.Вставить("ОповещениеВключеноПриОткрытии" , ОповещениеВключеноПриОткрытии);
+ ОписательНовости.Вставить("ДатаНачалаОповещенияПриОткрытии", ДатаНачалаОповещения); // Оставить как есть
ОписательНастроекЛентыНовостей = Новый Структура;
ОписательНастроекЛентыНовостей.Вставить("ЛентаНовостей" , Объект.ЛентаНовостей);
ОписательНастроекЛентыНовостей.Вставить("ЛентаНовостейСостояниеОповещений" , ЛентаНовостейСостояниеОповещений);
@@ -834,6 +844,26 @@
Запись.ДатаНачалаОповещения = ОписательНовости.ДатаНачалаОповещения;
Запись.Записать(Истина);
+ ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(
+ ОписательНовости.ПрочтенаПриОткрытии,
+ ОписательНовости.ПометкаПриОткрытии,
+ ОписательНовости.ОповещениеВключеноПриОткрытии,
+ ОписательНовости.ДатаНачалаОповещенияПриОткрытии,
+ Неопределено,
+ ?(ОписательНовости.ПрочитатьПозжеПриОткрытии = 1, Истина, Ложь));
+ НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(
+ ОписательНовости.Прочтена,
+ ОписательНовости.Пометка,
+ ОписательНовости.ОповещениеВключено,
+ ОписательНовости.ДатаНачалаОповещения,
+ Неопределено,
+ ?(ОписательНовости.ПрочитатьПозже = 1, Истина, Ложь));
+ ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Пользователи.ТекущийПользователь()),
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОписательНовости.НовостьСсылка),
+ ПредыдущиеЗначенияСостояний,
+ НовыеЗначенияСостояний);
+
// Настройки ленты новостей.
НеобходимоСброситьКэш = Ложь;
Если (ОписательНастроекЛентыНовостей.ЛентаНовостейСостояниеПодписки <> ОписательНастроекЛентыНовостей.ЛентаНовостейСостояниеПодпискиПриОткрытии) Тогда
diff --git a/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form/Module.bsl
index 81bdde644..85b5e4208 100644
--- a/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form/Module.bsl
+++ b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form/Module.bsl
@@ -2054,7 +2054,7 @@
УстановитьДоступностьВестиУчетПоГТДЛокализация(Элементы.ВестиУчетПоГТД, Объект);
//++ Локализация
- ПриИзмененииТНВЭДиОКПД2();
+ ПриИзмененииТНВЭДиОКПД2(Ложь);
//-- Локализация
НастроитьФормуИОбновитьКарточку();
@@ -5563,7 +5563,7 @@
КонецПроцедуры
&НаКлиенте
-Процедура ПриИзмененииТНВЭДиОКПД2()
+Процедура ПриИзмененииТНВЭДиОКПД2(ОбновлятьКарточку = Истина)
УказанТНВЭД = ЗначениеЗаполнено(Объект.КодТНВЭД);
УказанОКПД2 = ЗначениеЗаполнено(Объект.КодОКПД2);
@@ -5575,7 +5575,9 @@
Если Не ЗначениеЗаполнено(ВидПродукцииГИСМТ) Тогда
ВидПродукцииГИСМТ = ДоступныеВидыПродукции[0];
ИнтеграцияИСКлиент.ВидПродукцииГИСМТПриИзменении(ЭтотОбъект);
- НастроитьФормуИОбновитьКарточку();
+ Если ОбновлятьКарточку Тогда
+ НастроитьФормуИОбновитьКарточку();
+ КонецЕсли;
Иначе
Если УказанТНВЭД И УказанОКПД2 Тогда
НачалоВопроса = СтрШаблон(
diff --git a/src/Catalogs/Организации/Forms/ФормаЭлемента/Ext/Form.xml b/src/Catalogs/Организации/Forms/ФормаЭлемента/Ext/Form.xml
index d18828706..668a92146 100644
--- a/src/Catalogs/Организации/Forms/ФормаЭлемента/Ext/Form.xml
+++ b/src/Catalogs/Организации/Forms/ФормаЭлемента/Ext/Form.xml
@@ -1507,9 +1507,6 @@
Button
- 2
- false
- 2
ShowInDropList
true
true
@@ -1521,7 +1518,7 @@
ru
- Признак отсутствует
+ 0 - Отсутствует
0
@@ -1534,7 +1531,7 @@
ru
- Есть право на освобождение от внесения обеспечительного платежа
+ 1 – Освобождение от внесения обеспечительного платежа
1
@@ -1547,7 +1544,7 @@
ru
- Иной признак
+ 2 – Иной признак
2
@@ -5347,6 +5344,14 @@
false
+ -
+ InformationRegister.ДокументыОПредстоящейПоставке.StandardCommand.OpenByValue.Организация
+ Auto
+ false
+
+ false
+
+
-
diff --git a/src/Catalogs/Партнеры/Forms/ФормаСпискаБезПолнотекстовогоПоиска/Ext/Form/Module.bsl b/src/Catalogs/Партнеры/Forms/ФормаСпискаБезПолнотекстовогоПоиска/Ext/Form/Module.bsl
index ed8b1de08..67adbdc3a 100644
--- a/src/Catalogs/Партнеры/Forms/ФормаСпискаБезПолнотекстовогоПоиска/Ext/Form/Module.bsl
+++ b/src/Catalogs/Партнеры/Forms/ФормаСпискаБезПолнотекстовогоПоиска/Ext/Form/Module.bsl
@@ -388,7 +388,21 @@
&НаКлиенте
Процедура Подключаемый_ОбновитьКомандыЭДО()
- ОбменСКонтрагентамиКлиент.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
+
+ Если ИспользоватьПартнеровКакКонтрагентов Тогда
+ ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
+ Если ТекущаяСтрока <> Неопределено Тогда
+ КонтрагентПартнера = ПартнерыИКонтрагентыВызовСервера.КонтрагентПартнера(ТекущаяСтрока);
+ Если КонтрагентПартнера <> Неопределено Тогда
+ ОбновитьКомандыЭДОДляКонтрагентаПартнера(КонтрагентПартнера);
+ Иначе
+ ОбменСКонтрагентамиКлиент.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
+ КонецЕсли;
+ КонецЕсли;
+ Иначе
+ ОбменСКонтрагентамиКлиент.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
+ КонецЕсли;
+
КонецПроцедуры
// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
@@ -729,6 +743,71 @@
КонецПроцедуры
+// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
+&НаСервере
+Функция ВычислитьЗначенияАлгоритмовЭДО(Алгоритмы, ПараметрыАлгоритма)
+ ЗначенияАлгоритмов = Новый Соответствие;
+ Для Каждого КлючИЗначение Из Алгоритмы Цикл
+ СтрокаВычисления = СтрШаблон("%1(Параметры)", КлючИЗначение.Ключ);
+ Значение = ОбщегоНазначения.ВычислитьВБезопасномРежиме(СтрокаВычисления, ПараметрыАлгоритма);
+ ЗначенияАлгоритмов.Вставить(КлючИЗначение.Ключ, Значение);
+ КонецЦикла;
+ Возврат ЗначенияАлгоритмов;
+КонецФункции
+
+&НаКлиенте
+Процедура ОбновитьКомандыЭДОДляКонтрагентаПартнера(Контрагент)
+
+ Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ЭтотОбъект, "ПараметрыУправленияВидимостьюЭДО") Тогда
+ ПараметрыУправленияВидимостью = ЭтотОбъект.ПараметрыУправленияВидимостьюЭДО;
+ Иначе
+ ПараметрыУправленияВидимостью = Неопределено;
+ КонецЕсли;
+ Если ПараметрыУправленияВидимостью = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ КомандыДляПроверкиАлгоритмами = Новый Соответствие;
+ ОбъектыДляПроверки = Новый Массив;
+ ОбъектыДляПроверки.Добавить(Контрагент);
+
+ Для Каждого Команда Из ПараметрыУправленияВидимостью.КомандыСУсловиямиВидимости Цикл
+ КомандаЭлемент = Элементы[Команда.ИмяВФорме];
+ Видимость = Истина;
+
+ Если ЗначениеЗаполнено(Команда.ИмяРеквизитаУсловия) Тогда
+ Видимость = Ложь;
+ ИначеЕсли ЗначениеЗаполнено(Команда.ИмяАлгоритмаПроверкиУсловия) Тогда
+ КомандыДляПроверкиАлгоритмами.Вставить(Команда, Команда.ИмяАлгоритмаПроверкиУсловия);
+ ИначеЕсли Команда.ЗначениеУсловия = Неопределено Тогда
+ Видимость = Ложь;
+ Иначе
+ Видимость = Истина;
+ КонецЕсли;
+
+ КомандаЭлемент.Видимость = Видимость;
+
+ Если Не Видимость Тогда
+ КомандыДляПроверкиАлгоритмами.Удалить(Команда);
+ КонецЕсли;
+ КонецЦикла;
+
+ Если КомандыДляПроверкиАлгоритмами.Количество() > 0 Тогда
+ Алгоритмы = Новый Соответствие;
+ Для Каждого КомандаИАлгоритм Из КомандыДляПроверкиАлгоритмами Цикл
+ Алгоритмы.Вставить(КомандаИАлгоритм.Значение, Истина);
+ КонецЦикла;
+ ЗначенияАлгоритмов = ВычислитьЗначенияАлгоритмовЭДО(Алгоритмы, ОбъектыДляПроверки);
+ Для Каждого КомандаИАлгоритм Из КомандыДляПроверкиАлгоритмами Цикл
+ Команда = КомандаИАлгоритм.Ключ;
+ КомандаЭлемент = Элементы[Команда.ИмяВФорме];
+ КомандаЭлемент.Видимость = Команда.ЗначениеУсловия = ЗначенияАлгоритмов[КомандаИАлгоритм.Значение];
+ КонецЦикла;
+ КонецЕсли;
+
+КонецПроцедуры
+// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
+
#КонецОбласти
#КонецОбласти
diff --git a/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Ext/Form.xml b/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Ext/Form.xml
index 71e5874de..0c6c3b232 100644
--- a/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Ext/Form.xml
+++ b/src/Catalogs/ПодписантыСервисаМобильнойПодписи/Forms/ОтправитьНаПодписание/Ext/Form.xml
@@ -169,7 +169,6 @@
Доверенность
- false
false
diff --git a/src/Catalogs/ПравилаПроверкиПолномочийМЧД.xml b/src/Catalogs/ПравилаПроверкиПолномочийМЧД.xml
index 0dd9f7a28..da0e69fec 100644
--- a/src/Catalogs/ПравилаПроверкиПолномочийМЧД.xml
+++ b/src/Catalogs/ПравилаПроверкиПолномочийМЧД.xml
@@ -991,10 +991,10 @@
ru
- Порядковый номер ограничения
+ Идентификатор ограничения
-
+ Порядковый номер ограничения
xs:decimal
diff --git a/src/Catalogs/ПравилаПроверкиПолномочийМЧД/Ext/ManagerModule.bsl b/src/Catalogs/ПравилаПроверкиПолномочийМЧД/Ext/ManagerModule.bsl
index d9100ec55..f5d2c877a 100644
--- a/src/Catalogs/ПравилаПроверкиПолномочийМЧД/Ext/ManagerModule.bsl
+++ b/src/Catalogs/ПравилаПроверкиПолномочийМЧД/Ext/ManagerModule.bsl
@@ -668,7 +668,7 @@
ПравилоНастройкиПроверкиРасширенные = ПравилоОбъект.НастройкиПроверкиРасширенные;
ПравилоНастройкиПроверкиРасширенные.Очистить();
- Для Каждого ТекущаяНастройка из ФормаНастройкиПроверкиРасширенные Цикл
+ Для Каждого ТекущаяНастройка Из ФормаНастройкиПроверкиРасширенные Цикл
НоваяНастройка = ПравилоНастройкиПроверкиРасширенные.Добавить();
ЗаполнитьЗначенияСвойств(НоваяНастройка, ТекущаяНастройка);
@@ -1645,7 +1645,7 @@
КонецПроцедуры
-// Установливает текст и параметры запроса для конвертации правил проверки полномочий.
+// Устанавливает текст и параметры запроса для конвертации правил проверки полномочий.
//
// Параметры:
// Запрос - Запрос
diff --git a/src/Catalogs/РассылкиОтчетов.xml b/src/Catalogs/РассылкиОтчетов.xml
index 889e86d57..7646b4ad0 100644
--- a/src/Catalogs/РассылкиОтчетов.xml
+++ b/src/Catalogs/РассылкиОтчетов.xml
@@ -250,7 +250,7 @@
- DontCheck
+ ShowError
false
false
Auto
diff --git a/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Ext/Form/Module.bsl
index 138599e53..21256bb05 100644
--- a/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Ext/Form/Module.bsl
+++ b/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Ext/Form/Module.bsl
@@ -352,11 +352,6 @@
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
// Проверка данных, которые выведены через реквизиты самой формы.
- Если Не ЗначениеЗаполнено(Объект.Наименование) Тогда
- Отказ = Истина;
- ТекстСообщения = НСтр("ru = 'Не введено наименование.'");
- ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.Наименование");
- КонецЕсли;
Если Объект.ИспользоватьЭлектроннуюПочту И Не Объект.Личная Тогда
Если Не ЗначениеЗаполнено(ТипПолучателейРассылки) Тогда
Отказ = Истина;
diff --git a/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Ext/Form/Module.bsl
index aa8fb8118..671de8d4b 100644
--- a/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Ext/Form/Module.bsl
+++ b/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Ext/Form/Module.bsl
@@ -172,11 +172,11 @@
Возврат;
КонецЕсли;
Если Параметр.Отозван Тогда
- ЭтотОбъект.Прочитать();
+ Прочитать();
ОбновитьВидимостьПредупреждения();
КонецЕсли;
Если Параметр.Установлен Тогда
- ЭтотОбъект.Прочитать();
+ Прочитать();
ПодключитьОбработчикОжидания("ОбработчикОжиданияПоказатьСостояниеСертификата", 0.1, Истина);
КонецЕсли;
Возврат;
diff --git a/src/Catalogs/СтраныМира/Templates/Классификатор/Ext/Template.txt b/src/Catalogs/СтраныМира/Templates/Классификатор/Ext/Template.txt
index b8ede58b2..55e7b24f5 100644
--- a/src/Catalogs/СтраныМира/Templates/Классификатор/Ext/Template.txt
+++ b/src/Catalogs/СтраныМира/Templates/Классификатор/Ext/Template.txt
@@ -642,7 +642,7 @@
HK
HKG
344
- Специальный административный регион Китая Гонконг
+ Специальный административный район Гонконг Китайской Народной Республики
false
false
Hong Kong
diff --git a/src/Catalogs/УАС_МеткиТоваровКубикМедиа/Templates/ОтборТоваров/Ext/Template.xml b/src/Catalogs/УАС_МеткиТоваровКубикМедиа/Templates/ОтборТоваров/Ext/Template.xml
index 4cf1353b0..46c864edd 100644
--- a/src/Catalogs/УАС_МеткиТоваровКубикМедиа/Templates/ОтборТоваров/Ext/Template.xml
+++ b/src/Catalogs/УАС_МеткиТоваровКубикМедиа/Templates/ОтборТоваров/Ext/Template.xml
@@ -66,16 +66,6 @@
-
- МотивационнаяГруппа
- МотивационнаяГруппа
-
-
- ru
- Мотивационная группа
-
-
-
Рецептурное
Рецептурное
@@ -92,8 +82,7 @@
ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика,
ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
- ЗНАЧЕНИЕ(Справочник.УТР_МаркетинговыеГруппы.ПустаяСсылка) КАК МаркетинговаяГруппа,
- ЗНАЧЕНИЕ(Справочник.итм_МотивационныеГруппы.ПустаяСсылка) КАК МотивационнаяГруппа,
+ ЗНАЧЕНИЕ(Справочник.УАС_МаркетинговыеГруппы.ПустаяСсылка) КАК МаркетинговаяГруппа,
ВЫРАЗИТЬ(ЛОЖЬ КАК БУЛЕВО) КАК Рецептурное
ПОМЕСТИТЬ ВТ
;
@@ -126,7 +115,6 @@
Т.Характеристика.*,
Т.Серия.*,
Т.МаркетинговаяГруппа.*,
- Т.МотивационнаяГруппа.*,
С.Сегмент.*,
Т.Рецептурное}
false
diff --git a/src/Catalogs/УАС_РМК/Forms/ФормаСписка/Ext/Form/Module.bsl b/src/Catalogs/УАС_РМК/Forms/ФормаСписка/Ext/Form/Module.bsl
index 5e0385a74..6ce1aae45 100644
--- a/src/Catalogs/УАС_РМК/Forms/ФормаСписка/Ext/Form/Module.bsl
+++ b/src/Catalogs/УАС_РМК/Forms/ФормаСписка/Ext/Form/Module.bsl
@@ -1221,7 +1221,7 @@
&НаСервереБезКонтекста
Процедура ЗагрузитьИзПланаОбменаНаСервере()
УстановитьПривилегированныйРежим(Истина);
- РегистрыСведений.УАС_АктивныеСерииНоменклатуры.ОбновитьАктивныеСерии(,1000);
+ РегистрыСведений.УАС_АктивныеСерииНоменклатуры.ОбновитьАктивныеСерии(1000);
Справочники.УАС_РМК.ОбновитьОбщиеНастройкиИзМакета();
КонецПроцедуры
diff --git a/src/Catalogs/УдалитьПрофилиНастроекЭДО/Ext/ManagerModule.bsl b/src/Catalogs/УдалитьПрофилиНастроекЭДО/Ext/ManagerModule.bsl
index a8327614e..c512e4c69 100644
--- a/src/Catalogs/УдалитьПрофилиНастроекЭДО/Ext/ManagerModule.bsl
+++ b/src/Catalogs/УдалитьПрофилиНастроекЭДО/Ext/ManagerModule.bsl
@@ -179,6 +179,19 @@
#Область ДляВызоваИзДругихПодсистем
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ДанныеОбновленыНаНовуюВерсиюПрограммы");
+ Методы.Вставить("ЗаполнитьРегламентЭДО");
+ Методы.Вставить("СнятьФлагОтветнойПодписиУСчетаНаОплату");
+
+КонецПроцедуры
+
+#КонецОбласти
+
// Возвращает профили настроек организации для отправки Запроса коммерческих предложений исходящего через ЭДО.
//
// Параметры:
diff --git a/src/Catalogs/УдалитьСертификатыЭП/Ext/ManagerModule.bsl b/src/Catalogs/УдалитьСертификатыЭП/Ext/ManagerModule.bsl
index 3e29b0b6a..9fb82d692 100644
--- a/src/Catalogs/УдалитьСертификатыЭП/Ext/ManagerModule.bsl
+++ b/src/Catalogs/УдалитьСертификатыЭП/Ext/ManagerModule.bsl
@@ -2,6 +2,21 @@
#Область ПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПеренестиНастройкиСертификатов");
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
+
// Обработчик обновления БЭД 1.1.9.1
// Заполняет дату окончания действия сертификата
//
diff --git a/src/Catalogs/УдалитьСоглашенияОбИспользованииЭД/Ext/ManagerModule.bsl b/src/Catalogs/УдалитьСоглашенияОбИспользованииЭД/Ext/ManagerModule.bsl
index d0bf897c5..26f721769 100644
--- a/src/Catalogs/УдалитьСоглашенияОбИспользованииЭД/Ext/ManagerModule.bsl
+++ b/src/Catalogs/УдалитьСоглашенияОбИспользованииЭД/Ext/ManagerModule.bsl
@@ -155,6 +155,20 @@
#Область ДляВызоваИзДругихПодсистем
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ДанныеОбновленыНаНовуюВерсиюПрограммы");
+ Методы.Вставить("ОбновитьВерсиюФорматаИсходящихЭД207_208");
+ Методы.Вставить("ОбновитьВерсиюФорматаИсходящихЭД501_502");
+ Методы.Вставить("УдалитьОтветныеТитулы");
+
+КонецПроцедуры
+
+#КонецОбласти
+
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
@@ -1451,7 +1465,6 @@
#КонецОбласти
-
#КонецОбласти
#КонецЕсли
\ No newline at end of file
diff --git a/src/Catalogs/Файлы/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/Catalogs/Файлы/Forms/ФормаЭлемента/Ext/Form/Module.bsl
index ba8aec7a1..3d45ed8dc 100644
--- a/src/Catalogs/Файлы/Forms/ФормаЭлемента/Ext/Form/Module.bsl
+++ b/src/Catalogs/Файлы/Forms/ФормаЭлемента/Ext/Form/Module.bsl
@@ -726,6 +726,10 @@
&НаКлиенте
Процедура ПродлитьДействиеПодписей(Команда)
+ Если Модифицированность Тогда
+ ПеренестиРезультатыПроверкиПодписей();
+ КонецЕсли;
+
ОбработчикПродолжения = Новый ОписаниеОповещения("ПриПолученииПодписей", ЭтотОбъект);
ПараметрыПродления = Новый Структура;
@@ -1617,6 +1621,11 @@
КонецПроцедуры
+&НаСервере
+Процедура ПеренестиРезультатыПроверкиПодписей()
+ РаботаСФайламиСлужебный.ПеренестиРезультатыПроверкиПодписей(ЭлектронныеПодписи, Объект.Ссылка);
+КонецПроцедуры
+
&НаКлиенте
Процедура ПрочитатьИУстановитьДоступностьЭлементовФормы(Результат, ДополнительныеПараметры) Экспорт
diff --git a/src/CommonForms/ВводВременногоПароля/Ext/Form/Module.bsl b/src/CommonForms/ВводВременногоПароля/Ext/Form/Module.bsl
index a11782795..6e3a62dab 100644
--- a/src/CommonForms/ВводВременногоПароля/Ext/Form/Module.bsl
+++ b/src/CommonForms/ВводВременногоПароля/Ext/Form/Module.bsl
@@ -20,9 +20,10 @@
СпособДоставкиПаролей = "phone";
ПараметрыПроцедуры = Новый Структура("ИдентификаторСертификата", СервисКриптографииСлужебный.Идентификатор(Сертификат));
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
- ДлительнаяОперация = СервисКриптографииСлужебный.ВыполнитьВФоне(
- "СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры);
+ ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(
+ "СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры, ПараметрыВыполнения);
ИспользоватьТокен = ЭлектроннаяПодписьВМоделиСервиса.ДолговременныйТокенИспользованиеВозможно();
ПарольОтправляется = Истина;
@@ -260,8 +261,10 @@
ПараметрыПроцедуры.Вставить("Тип", СпособДоставкиПаролей);
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне(
- "СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -384,8 +387,10 @@
ПараметрыПроцедуры.Вставить("ВременныйПароль", Пароль);
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне(
- "СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
diff --git a/src/CommonForms/ВводВременногоПароляМобильноеПриложение/Ext/Form/Module.bsl b/src/CommonForms/ВводВременногоПароляМобильноеПриложение/Ext/Form/Module.bsl
index 81eccada2..0d272e195 100644
--- a/src/CommonForms/ВводВременногоПароляМобильноеПриложение/Ext/Form/Module.bsl
+++ b/src/CommonForms/ВводВременногоПароляМобильноеПриложение/Ext/Form/Module.bsl
@@ -25,9 +25,10 @@
СпособДоставкиПаролей = "phone";
ПараметрыПроцедуры = Новый Структура("ИдентификаторСертификата", СервисКриптографииСлужебный.Идентификатор(Сертификат));
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
- ДлительнаяОперация = СервисКриптографииСлужебный.ВыполнитьВФоне(
- "СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры);
+ ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(
+ "СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры, ПараметрыВыполнения);
ПарольОтправляется = Истина;
Элементы.ФормаДругойСпособ.Видимость = Ложь;
@@ -167,8 +168,10 @@
ПараметрыПроцедуры.Вставить("Тип", СпособДоставкиПаролей);
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне(
- "СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -245,8 +248,10 @@
ПараметрыПроцедуры.Вставить("ВременныйПароль", ТекущийКод);
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне(
- "СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
diff --git a/src/CommonForms/ОтключениеПодтвержденияКриптоопераций/Ext/Form/Module.bsl b/src/CommonForms/ОтключениеПодтвержденияКриптоопераций/Ext/Form/Module.bsl
index b231d524e..ff8396983 100644
--- a/src/CommonForms/ОтключениеПодтвержденияКриптоопераций/Ext/Form/Module.bsl
+++ b/src/CommonForms/ОтключениеПодтвержденияКриптоопераций/Ext/Form/Module.bsl
@@ -23,8 +23,9 @@
Сертификат = Параметры.Сертификат;
ПараметрыПроцедуры = Новый Структура("ИдентификаторСертификата", СервисКриптографииСлужебный.Идентификатор(Сертификат));
- ДлительнаяОперация = СервисКриптографииСлужебный.ВыполнитьВФоне(
- "СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+ ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(
+ "СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры, ПараметрыВыполнения);
ОтпечатокСертификата = ЭлектроннаяПодписьВМоделиСервиса.НайтиСертификатПоИдентификатору(Сертификат);
ДанныеПользователя = ПолучитьДанныеТекущегоПользователя();
@@ -415,8 +416,10 @@
ПараметрыПроцедуры.Вставить("Тип", "phone");
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне(
- "СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -493,8 +496,10 @@
ПараметрыПроцедуры.Вставить("ВременныйПароль", КодТелефона);
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне(
- "СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
diff --git a/src/CommonForms/ОтображениеQRКодаСБП/Ext/Form/Module.bsl b/src/CommonForms/ОтображениеQRКодаСБП/Ext/Form/Module.bsl
index 4723da253..5f805a5b7 100644
--- a/src/CommonForms/ОтображениеQRКодаСБП/Ext/Form/Module.bsl
+++ b/src/CommonForms/ОтображениеQRКодаСБП/Ext/Form/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2024, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -14,10 +14,12 @@
Если ЗначениеЗаполнено(Параметры.ПлатежнаяСсылка) Тогда
ПлатежнаяСсылка = Параметры.ПлатежнаяСсылка;
- QRКод = СистемаБыстрыхПлатежей.ИзображениеQRКодаСБП(
+ QRКод = НастройкиПлатежныхСистем.ИзображениеQRКода(
Параметры.ПлатежнаяСсылка,
360,
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП(),
0);
+
QRКодКартинкой = ПоместитьВоВременноеХранилище(QRКод, ЭтотОбъект);
Иначе
diff --git a/src/CommonForms/ОтправкаURLОнлайнЗаказов/Ext/Form.xml b/src/CommonForms/ОтправкаURLОнлайнЗаказов/Ext/Form.xml
index 4b38e66b2..520d292cc 100644
--- a/src/CommonForms/ОтправкаURLОнлайнЗаказов/Ext/Form.xml
+++ b/src/CommonForms/ОтправкаURLОнлайнЗаказов/Ext/Form.xml
@@ -39,6 +39,7 @@
Страница выбора
+ false
@@ -68,12 +69,31 @@
5
1
- false
- false
true
true
true
НастройкиПодключения
+
+ Add
+ CancelSearch
+ Change
+ Copy
+ CopyToClipboard
+ Delete
+ EndEdit
+ Find
+ FindByCurrentValue
+ MoveDown
+ MoveUp
+ OutputList
+ SearchEverywhere
+ SearchHistory
+ SelectAll
+ ShowMultipleSelection
+ ShowRowRearrangement
+ SortListAsc
+ SortListDesc
+
@@ -667,7 +687,7 @@
ru
- MAX
+ МАКС
MAX
@@ -848,6 +868,7 @@
Группа шаблон сообщения электронная почта
+ false
@@ -881,6 +902,7 @@
Группа шаблон сообщения телефон
+ false
@@ -914,6 +936,7 @@
Группа декорация отступ
+ false
@@ -1066,8 +1089,6 @@
SingleRow
Row
- false
- false
true
AsFile
Вложения
@@ -1078,13 +1099,20 @@
+ Add
CancelSearch
Change
Copy
+ CopyToClipboard
+ Delete
EndEdit
Find
+ FindByCurrentValue
MoveDown
MoveUp
+ OutputList
+ SearchEverywhere
+ SearchHistory
ShowRowRearrangement
SortListAsc
SortListDesc
@@ -1188,6 +1216,7 @@
HorizontalIfPossible
+ false
diff --git a/src/CommonForms/ОтправкаURLОнлайнЗаказов/Ext/Form/Module.bsl b/src/CommonForms/ОтправкаURLОнлайнЗаказов/Ext/Form/Module.bsl
index 48439f80e..d3a272a9f 100644
--- a/src/CommonForms/ОтправкаURLОнлайнЗаказов/Ext/Form/Module.bsl
+++ b/src/CommonForms/ОтправкаURLОнлайнЗаказов/Ext/Form/Module.bsl
@@ -564,6 +564,7 @@
ПараметрыВыгрузки.Вставить("ДокументЗаказа", ОснованиеЗаказа);
ПараметрыВыгрузки.Вставить("ПечатныеФормы", ВыбранныеВложения.ПечатныеФормы);
ПараметрыВыгрузки.Вставить("ПрисоединенныеФайлы", ВыбранныеВложения.ПрисоединенныеФайлы);
+ ПараметрыВыгрузки.Вставить("ЗаказНаОплату", Неопределено);
РезультатВыполнения = ДлительныеОперации.ВыполнитьФункцию(
ПараметрыВыполнения,
diff --git a/src/CommonForms/ОтправкаПлатежнойСсылкиСБП/Ext/Form.xml b/src/CommonForms/ОтправкаПлатежнойСсылкиСБП/Ext/Form.xml
index a43d609a1..1cce5dcbd 100644
--- a/src/CommonForms/ОтправкаПлатежнойСсылкиСБП/Ext/Form.xml
+++ b/src/CommonForms/ОтправкаПлатежнойСсылкиСБП/Ext/Form.xml
@@ -98,6 +98,7 @@
Страница выбора
+ false
@@ -127,8 +128,6 @@
1
UseHeightInTableRows
- false
- false
true
true
true
@@ -205,6 +204,7 @@
Страница частичные оплаты
+ false
@@ -298,8 +298,6 @@
true
3
- false
- false
true
true
true
@@ -850,7 +848,7 @@
ru
- MAX
+ МАКС
MAX
@@ -966,6 +964,7 @@
Группа шаблон сообщения электронная почта
+ false
@@ -998,6 +997,7 @@
Группа шаблон сообщения телефон
+ false
@@ -1030,6 +1030,7 @@
Группа декорация отступ
+ false
diff --git a/src/CommonForms/ПечатьДокументов/Ext/Form/Module.bsl b/src/CommonForms/ПечатьДокументов/Ext/Form/Module.bsl
index 15fde8de8..f1c6a877c 100644
--- a/src/CommonForms/ПечатьДокументов/Ext/Form/Module.bsl
+++ b/src/CommonForms/ПечатьДокументов/Ext/Form/Module.bsl
@@ -1246,6 +1246,22 @@
КонецЦикла;
КонецПроцедуры
+&НаСервере
+Функция БезопасноеИмяФайлаДляАрхива(Представление, ИмяВременногоКаталога)
+
+ ИмяФайла = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(Представление);
+
+ СтруктураИмениФайла = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ИмяФайла);
+ Если ЗначениеЗаполнено(СтруктураИмениФайла.Расширение) Тогда
+ ИмяФайла = СтруктураИмениФайла.ИмяБезРасширения + НРег(СтруктураИмениФайла.Расширение);
+ КонецЕсли;
+
+ ПолноеИмяФайла = ИмяВременногоКаталога + ИмяФайла;
+
+ Возврат ФайловаяСистема.УникальноеИмяФайла(ПолноеИмяФайла);
+
+КонецФункции
+
&НаСервере
Функция ПоместитьФайлыВАрхив(ПечатныеФормыДокументов, ПереданныеНастройки)
Перем ЗаписьZipФайла, ИмяАрхива;
@@ -1272,9 +1288,7 @@
Для Каждого СтруктураФайла Из ПечатныеФормыДокументов Цикл
ДанныеФайла = ПолучитьИзВременногоХранилища(СтруктураФайла.АдресВоВременномХранилище);
- ИмяФайла = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(СтруктураФайла.Представление);
- ПолноеИмяФайла = ИмяВременногоКаталога + ИмяФайла;
- ПолноеИмяФайла = ФайловаяСистема.УникальноеИмяФайла(ПолноеИмяФайла);
+ ПолноеИмяФайла = БезопасноеИмяФайлаДляАрхива(СтруктураФайла.Представление, ИмяВременногоКаталога);
ДанныеФайла.Записать(ПолноеИмяФайла);
ОбъектПечати = ?(УстанавливатьОбъектПечати И ЗначениеЗаполнено(СтруктураФайла.ОбъектПечати), СтруктураФайла.ОбъектПечати, Неопределено);
diff --git a/src/CommonForms/ПодборОснованийСчетаФактуры/Ext/Form/Module.bsl b/src/CommonForms/ПодборОснованийСчетаФактуры/Ext/Form/Module.bsl
index c44de9a97..e9dadf905 100644
--- a/src/CommonForms/ПодборОснованийСчетаФактуры/Ext/Form/Module.bsl
+++ b/src/CommonForms/ПодборОснованийСчетаФактуры/Ext/Form/Module.bsl
@@ -293,7 +293,6 @@
| Документ.СчетФактураВыданный.ДокументыОснования КАК ДанныеДокумента
| ГДЕ
| ДанныеДокумента.Ссылка = &СчетФактура
- | И НЕ &ОтобразитьТолькоПодобранные
|
| ОБЪЕДИНИТЬ ВСЕ
|
@@ -303,8 +302,7 @@
| ИЗ
| РегистрСведений.ТребуетсяОформлениеСчетаФактуры КАК ДанныеРегистра
| ГДЕ
- | НЕ &ОтобразитьТолькоПодобранные
- | И ДанныеРегистра.ТипСчетаФактуры = &ТипСчетаФактуры
+ | ДанныеРегистра.ТипСчетаФактуры = &ТипСчетаФактуры
| //УсловиеОтбораОснований
|
| ОБЪЕДИНИТЬ ВСЕ
@@ -315,8 +313,7 @@
| ИЗ
| РегистрСведений.ТребуетсяОформлениеСчетаФактуры КАК ДанныеРегистра
| ГДЕ
- | НЕ &ОтобразитьТолькоПодобранные
- | И ДанныеРегистра.ТипСчетаФактуры = &ТипСчетаФактуры
+ | ДанныеРегистра.ТипСчетаФактуры = &ТипСчетаФактуры
| И (ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ДанныеРегистра.Основание) = ЗНАЧЕНИЕ(Документ.КорректировкаРеализации)
| ТОГДА ДанныеРегистра.Основание.ДокументОснование В (&ОснованияИсходногоСФ)
@@ -425,7 +422,6 @@
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("Валюта", Валюта);
- Запрос.УстановитьПараметр("ОтобразитьТолькоПодобранные", ЗначениеЗаполнено(СчетФактураИсправление));
Запрос.УстановитьПараметр("ОснованияИсходногоСФ", ОснованияИсходногоСФ);
Запрос.УстановитьПараметр("НачалоТекущегоДня", НачалоДня(ТекущаяДатаСеанса()));
diff --git a/src/CommonForms/ФормаНастроекОтчета/Ext/Form/Module.bsl b/src/CommonForms/ФормаНастроекОтчета/Ext/Form/Module.bsl
index bfa8b75bd..538efa82c 100644
--- a/src/CommonForms/ФормаНастроекОтчета/Ext/Form/Module.bsl
+++ b/src/CommonForms/ФормаНастроекОтчета/Ext/Form/Module.bsl
@@ -1615,7 +1615,9 @@
Строка = СтруктураВарианта.НайтиПоИдентификатору(ПараметрыПеретаскивания.Значение);
НовыйРодитель = СтруктураВарианта.НайтиПоИдентификатору(ИдентификаторЦели);
- Результат = ПереместитьЭлементыСтруктурыВарианта(Строка, НовыйРодитель);
+ ДополнительныеПараметры = ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта();
+ ДополнительныеПараметры.Копировать = ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Копирование;
+ Результат = ПереместитьЭлементыСтруктурыВарианта(Строка, НовыйРодитель, ДополнительныеПараметры);
Элементы.СтруктураВарианта.Развернуть(НовыйРодитель.ПолучитьИдентификатор(), Истина);
Элементы.СтруктураВарианта.ТекущаяСтрока = Результат.Строка.ПолучитьИдентификатор();
@@ -1785,7 +1787,9 @@
КонецЦикла;
// 1. Переместить нижнюю строку на уровень с верхней.
- Результат = ПереместитьЭлементыСтруктурыВарианта(СтрокаТаблицыВверх, СтрокаТаблицыВниз.ПолучитьРодителя(), СтрокаТаблицыВниз);
+ ДополнительныеПараметры = ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта();
+ ДополнительныеПараметры.ПередЧемВставить = СтрокаТаблицыВниз;
+ Результат = ПереместитьЭлементыСтруктурыВарианта(СтрокаТаблицыВверх, СтрокаТаблицыВниз.ПолучитьРодителя(), ДополнительныеПараметры);
СтрокаТаблицыВверх = Результат.Строка;
// 2. Запомнить какие строки нужно переместить.
@@ -1807,7 +1811,9 @@
Иначе
ПередЧемВставить = СтрокиВверх[Индекс];
КонецЕсли;
- Результат = ПереместитьЭлементыСтруктурыВарианта(СтрокаТаблицыВниз, СтрокаТаблицыВверх, ПередЧемВставить);
+ ДополнительныеПараметры = ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта();
+ ДополнительныеПараметры.ПередЧемВставить = ПередЧемВставить;
+ Результат = ПереместитьЭлементыСтруктурыВарианта(СтрокаТаблицыВниз, СтрокаТаблицыВверх, ДополнительныеПараметры);
СтрокаТаблицыВниз = Результат.Строка;
// Бантики.
@@ -5054,11 +5060,31 @@
КонецФункции
&НаКлиенте
-Функция ПереместитьЭлементыСтруктурыВарианта(Знач Строка, Знач НовыйРодитель,
- Знач ПередЧемВставить = Неопределено, Знач Индекс = Неопределено, Знач ИндексЭлементаНастройки = Неопределено)
+Функция ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта()
+
+ ДополнительныеПараметры = Новый Структура;
+ ДополнительныеПараметры.Вставить("ПередЧемВставить", Неопределено);
+ ДополнительныеПараметры.Вставить("Индекс", Неопределено);
+ ДополнительныеПараметры.Вставить("ИндексЭлементаНастройки", Неопределено);
+ ДополнительныеПараметры.Вставить("Копировать", Ложь);
+
+ Возврат ДополнительныеПараметры;
+КонецФункции
+
+&НаКлиенте
+Функция ПереместитьЭлементыСтруктурыВарианта(Знач Строка, Знач НовыйРодитель, Знач ДополнительныеПараметры = Неопределено)
Результат = Новый Структура("Строка, ЭлементНастройки, Индекс, ИндексЭлементаНастройки");
+ Если ДополнительныеПараметры = Неопределено Тогда
+ ДополнительныеПараметры = ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта();
+ КонецЕсли;
+
+ ПередЧемВставить = ДополнительныеПараметры.ПередЧемВставить;
+ Индекс = ДополнительныеПараметры.Индекс;
+ ИндексЭлементаНастройки = ДополнительныеПараметры.ИндексЭлементаНастройки;
+ Копировать = ДополнительныеПараметры.Копировать;
+
ДобавлятьВКонец = (НовыйРодитель = Неопределено);
КудаВставить = ПолучитьЭлементы(СтруктураВарианта, НовыйРодитель);
@@ -5113,8 +5139,10 @@
НоваяСтрока.Идентификатор = ПоискЭлементовКД.Получить(СтараяСтрока.Идентификатор);
КонецЦикла;
- ОткудаПереместить.Удалить(Строка);
- ОткудаПереместитьКД.Удалить(ЭлементКД);
+ Если Не Копировать Тогда
+ ОткудаПереместить.Удалить(Строка);
+ ОткудаПереместитьКД.Удалить(ЭлементКД);
+ КонецЕсли;
КонецЕсли;
Результат.Индекс = КудаВставить.Индекс(Результат.Строка);
@@ -6130,7 +6158,10 @@
Индекс = 0;
КонецЕсли;
- Результат = ПереместитьЭлементыСтруктурыВарианта(Контекст.ТекущаяСтрока, НовыйРодитель,, Индекс, Индекс);
+ ДополнительныеПараметры = ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта();
+ ДополнительныеПараметры.Индекс = Индекс;
+ ДополнительныеПараметры.ИндексЭлементаНастройки = Индекс;
+ Результат = ПереместитьЭлементыСтруктурыВарианта(Контекст.ТекущаяСтрока, НовыйРодитель, ДополнительныеПараметры);
Элементы.СтруктураВарианта.Развернуть(НовыйРодитель.ПолучитьИдентификатор(), Истина);
Элементы.СтруктураВарианта.ТекущаяСтрока = Результат.Строка.ПолучитьИдентификатор();
diff --git a/src/CommonModules/АвтоматическоеПолучениеЭДО/Ext/Module.bsl b/src/CommonModules/АвтоматическоеПолучениеЭДО/Ext/Module.bsl
index dd8597740..1fb02b45b 100644
--- a/src/CommonModules/АвтоматическоеПолучениеЭДО/Ext/Module.bsl
+++ b/src/CommonModules/АвтоматическоеПолучениеЭДО/Ext/Module.bsl
@@ -111,6 +111,7 @@
Возврат;
КонецЕсли;
+ УстановитьПривилегированныйРежим(Истина);
ОтключитьИспользованиеКлючаДоступаКСервисуЭДО(ИдентификаторЭДО);
РегистрыСведений.СостоянияАвтоматическогоПолученияЭДО.Удалить(ИдентификаторЭДО);
@@ -1251,7 +1252,7 @@
Текст = СтрШаблон(НСтр("ru = 'Начало операции: %1.'"), ВидОперации);
Подсистема = ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().АвтоматическоеПолучениеЭДО;
ОбщегоНазначенияБЭД.ЗаписатьВЖурналРегистрации(Текст, Подсистема, УровеньЖурналаРегистрации.Информация);
-
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("АвтоматическоеПолучениеЭДО");
Попытка
СостояниеПоИдентификаторамЭДОДоПолучения =
@@ -1337,7 +1338,7 @@
ОбработкаНеисправностейБЭД.ДобавитьОшибку(КонтекстДиагностики, Ошибка, Подсистема);
ДиагностикаЭДО.ОбработатьОшибки(КонтекстДиагностики);
КонецПопытки;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("АвтоматическоеПолучениеЭДО", ОписаниеЗамера, Загружено);
Возврат Результат;
КонецФункции
@@ -1818,4 +1819,13 @@
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВключитьПоУчетнымЗаписямЭДО", Истина);
+ Методы.Вставить("ПолучитьПоРасписанию", Истина);
+ Методы.Вставить("ПолучитьЧерезИнтервал", Истина);
+
+КонецПроцедуры
+
#КонецОбласти // СлужебныеПроцедурыИФункции
diff --git a/src/CommonModules/АдресныйКлассификаторСлужебный/Ext/Module.bsl b/src/CommonModules/АдресныйКлассификаторСлужебный/Ext/Module.bsl
index 219ae7b38..69eeca52f 100644
--- a/src/CommonModules/АдресныйКлассификаторСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/АдресныйКлассификаторСлужебный/Ext/Module.bsl
@@ -401,7 +401,7 @@
И ЗагруженныеАдресныеСведения.Получить(КодРегиона).ИспользоватьЗагруженные Тогда
Адрес = РаспознатьАдресЗагруженныеДанные(ЧастиАдреса, КодРегиона);
- Если СтрСравнить(Адрес.addressType, АдресВСвободнойФорме()) <> 0 Тогда
+ Если Адрес <> Неопределено И СтрСравнить(Адрес.addressType, АдресВСвободнойФорме()) <> 0 Тогда
Возврат Адрес;
КонецЕсли;
@@ -1339,6 +1339,7 @@
НаименованиеИТипОбъекта = НаименованиеИТипОбъекта(ЧастиАдреса[2]);
Результат.Area = НаименованиеИТипОбъекта.Наименование;
Результат.AreaType = НаименованиеИТипОбъекта.Сокращение;
+ Результат.areaValue = ОфициальноеНаименованиеРегиона(Результат.Area);
ОбновитьСписокУровней(Результат, "area", ЗначениеЗаполнено(Результат["area"]));
НаименованиеИТипОбъекта = НаименованиеИТипОбъекта(ЧастиАдреса[3]);
@@ -1397,6 +1398,7 @@
СубъектРФ = НаименованиеИТипОбъекта(АдаптацияНазванияРегиона(АдресРФ.СубъектРФ));
Результат.Area = Строка(СубъектРФ.Наименование);
Результат.AreaType = Строка(СубъектРФ.ТипОбъекта);
+ Результат.areaValue = ОфициальноеНаименованиеРегиона(Результат.Area);
ОбновитьСписокУровней(Результат, "area", ЗначениеЗаполнено(Результат["area"]));
РайонАдреса = НаименованиеИТипОбъекта(РайонАдреса(АдресРФ));
@@ -1409,10 +1411,12 @@
Результат.CityType = Строка(Город.ТипОбъекта);
ОбновитьСписокУровней(Результат, "city", ЗначениеЗаполнено(Результат["city"]));
- НаселПункт = НаименованиеИТипОбъекта(АдресРФ.НаселПункт);
- Результат.Locality = Строка(НаселПункт.Наименование);
- Результат.LocalityType = Строка(НаселПункт.ТипОбъекта);
- ОбновитьСписокУровней(Результат, "locality", ЗначениеЗаполнено(Результат["locality"]));
+ Если ЗначениеГородаОтличаетсяОтНаселенногоПункта(АдресРФ.Город, АдресРФ.НаселПункт) Тогда
+ НаселПункт = НаименованиеИТипОбъекта(АдресРФ.НаселПункт);
+ Результат.Locality = Строка(НаселПункт.Наименование);
+ Результат.LocalityType = Строка(НаселПункт.ТипОбъекта);
+ ОбновитьСписокУровней(Результат, "locality", ЗначениеЗаполнено(Результат["locality"]));
+ КонецЕсли;
ВнутригРайон = НаименованиеИТипОбъекта(АдресРФ.ВнутригРайон);
Результат.CityDistrict = Строка(ВнутригРайон.Наименование);
@@ -3073,6 +3077,21 @@
КонецФункции
+Функция ЗначениеГородаОтличаетсяОтНаселенногоПункта(Город, НаселенныйПункт)
+ Возврат СтрСравнить(Город, НаселенныйПункт) <> 0;
+КонецФункции
+
+Функция ОфициальноеНаименованиеРегиона(Знач Наименование)
+
+ ДанныеОРегионе = АдресныйКлассификаторПовтИсп.ДанныеОРегионе(Наименование);
+ Если ДанныеОРегионе <> Неопределено Тогда
+ Возврат ДанныеОРегионе.ОфициальноеНаименование;
+ КонецЕсли;
+
+ Возврат "";
+
+КонецФункции
+
Функция ДействующиеНаименованиеКемеровскойОбласти() Экспорт
// АПК: 1297-выкл Данные адресного классификатора, не локализуются
Возврат "Кемеровская область - Кузбасс";
@@ -3332,9 +3351,10 @@
КонецФункции
-Функция РаспознатьАдресЗагруженныеДанные(ЧастиАдреса, КодРегиона)
+Функция РаспознатьАдресЗагруженныеДанные(ИсходныеЧастиАдреса, КодРегиона)
- ОбработатьОбщепринятыеСокращенияИУдалитьТочкуВКонецТипа(ЧастиАдреса);
+ ЧастиАдреса = ОбработатьОбщепринятыеСокращенияИУдалитьТочкуВКонецТипа(ИсходныеЧастиАдреса);
+
Адрес = ОписаниеНовойКонтактнойИнформации();
Запрос = Новый Запрос;
@@ -3344,11 +3364,13 @@
| ДанныеАдреса.Позиция КАК Позиция,
| ДанныеАдреса.Значение КАК Значение,
| ДанныеАдреса.Наименование КАК Наименование,
- | ДанныеАдреса.ТипОбъекта КАК ТипОбъекта
+ | ДанныеАдреса.ТипОбъекта КАК ТипОбъекта,
+ | ДанныеАдреса.ТипОбъекта2 КАК ТипОбъекта2
|ПОМЕСТИТЬ ДанныеАдреса
|ИЗ
| &ДанныеАдреса КАК ДанныеАдреса
- |ГДЕ ДанныеАдреса.Уровень >= 0
+ |ГДЕ
+ | ДанныеАдреса.Уровень >= 0
|
|ИНДЕКСИРОВАТЬ ПО
| Уровень,
@@ -3358,75 +3380,111 @@
|;
|
|////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 10
- | МАКСИМУМ(АдресныеОбъекты.Уровень) КАК Уровень,
+ |ВЫБРАТЬ ПЕРВЫЕ 100
+ | АдресныеОбъекты.Уровень КАК Уровень,
| ДанныеАдреса.Позиция КАК Позиция,
- | ДанныеАдреса.Наименование КАК Наименование,
- | ДанныеАдреса.ТипОбъекта КАК ТипОбъекта
+ | АдресныеОбъекты.Наименование КАК Наименование,
+ | АдресныеОбъекты.ТипОбъекта КАК ТипОбъекта,
+ | ДанныеАдреса.ТипОбъекта КАК ИсходныйТипОбъекта,
+ | АдресныеОбъекты.Идентификатор КАК Идентификатор
+ |ПОМЕСТИТЬ НайденныеОбъекты
|ИЗ
| ДанныеАдреса КАК ДанныеАдреса
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты
| ПО (ДанныеАдреса.Наименование = АдресныеОбъекты.Наименование)
- | И (ДанныеАдреса.ТипОбъекта = АдресныеОбъекты.ТипОбъекта ИЛИ ДанныеАдреса.ТипОбъекта + ""."" = АдресныеОбъекты.ТипОбъекта )
+ | И (ДанныеАдреса.ТипОбъекта = АдресныеОбъекты.ТипОбъекта
+ | ИЛИ ДанныеАдреса.ТипОбъекта + ""."" = АдресныеОбъекты.ТипОбъекта
+ | ИЛИ ДанныеАдреса.ТипОбъекта2 = АдресныеОбъекты.ТипОбъекта
+ | ИЛИ ДанныеАдреса.ТипОбъекта2 + ""."" = АдресныеОбъекты.ТипОбъекта)
|ГДЕ
| НЕ АдресныеОбъекты.Идентификатор ЕСТЬ NULL
+ | И АдресныеОбъекты.КодСубъектаРФ = &КодСубъектаРФ
|
- |СГРУППИРОВАТЬ ПО
- | ДанныеАдреса.Наименование,
- | ДанныеАдреса.ТипОбъекта,
- | ДанныеАдреса.Позиция
- |
- |УПОРЯДОЧИТЬ ПО ДанныеАдреса.Позиция
|;
|
|////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ
+ |ВЫБРАТЬ ПЕРВЫЕ 100
+ | ДанныеАдреса.Уровень КАК Уровень,
| ДанныеАдреса.Позиция КАК Позиция,
- | ДанныеАдреса.Значение КАК Значение,
| ДанныеАдреса.Наименование КАК Наименование,
- | ДанныеАдреса.ТипОбъекта КАК ТипОбъекта
- |
+ | ДанныеАдреса.ТипОбъекта КАК ТипОбъекта,
+ | ДанныеАдреса.ИсходныйТипОбъекта КАК ИсходныйТипОбъекта,
+ | ДанныеАдреса.Идентификатор КАК Идентификатор,
+ | АдминистративнаяИерархия.РодительскийИдентификатор КАК АдминистративныйРодительскийИдентификатор,
+ | МуниципальнаяИерархия.РодительскийИдентификатор КАК МуниципальныйРодительскийИдентификатор
|ИЗ
- | ДанныеАдреса КАК ДанныеАдреса
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты
- | ПО ДанныеАдреса.Наименование = АдресныеОбъекты.Наименование
- | И (ДанныеАдреса.ТипОбъекта = АдресныеОбъекты.ТипОбъекта ИЛИ ДанныеАдреса.ТипОбъекта + ""."" = АдресныеОбъекты.ТипОбъекта )
+ | НайденныеОбъекты КАК ДанныеАдреса
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК АдминистративнаяИерархия
+ | ПО (АдминистративнаяИерархия.Идентификатор = ДанныеАдреса.Идентификатор)
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК МуниципальнаяИерархия
+ | ПО (МуниципальнаяИерархия.Идентификатор = ДанныеАдреса.Идентификатор)
|ГДЕ
- | АдресныеОбъекты.Идентификатор ЕСТЬ NULL
+ | (АдминистративнаяИерархия.КодСубъектаРФ = &КодСубъектаРФ ИЛИ МуниципальнаяИерархия.КодСубъектаРФ = &КодСубъектаРФ)
+ | И НЕ ДанныеАдреса.Идентификатор ЕСТЬ NULL
|
- |УПОРЯДОЧИТЬ ПО ДанныеАдреса.Позиция
+ |УПОРЯДОЧИТЬ ПО
+ | ДанныеАдреса.Уровень УБЫВ, ДанныеАдреса.Позиция УБЫВ
|";
Запрос.УстановитьПараметр("ДанныеАдреса", ЧастиАдреса);
+ Запрос.УстановитьПараметр("КодСубъектаРФ", КодРегиона);
+
РезультатЗапроса = Запрос.ВыполнитьПакет();
-
+
СопоставленныеЧастиАдреса = СопоставленныеЧастиАдреса(РезультатЗапроса);
-
Если СопоставленныеЧастиАдреса.Количество() = 0 Тогда
- Возврат Адрес;
+ Возврат Неопределено;
КонецЕсли;
- // дома
- ДомаЗдания = ДомаЗдания(РезультатЗапроса);
+ Муниципальный = Истина;
+ АдресПоНайденнымДанным = ОпределитьАдресПоНайденнымДанным(СопоставленныеЧастиАдреса, Муниципальный);
+ Если АдресПоНайденнымДанным.Адрес = Неопределено Тогда
+ Муниципальный = Ложь;
+ АдресПоНайденнымДанным = ОпределитьАдресПоНайденнымДанным(СопоставленныеЧастиАдреса, Муниципальный);
+ КонецЕсли;
+ Если АдресПоНайденнымДанным.Адрес = Неопределено Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Для Каждого ЭлементАдреса Из АдресПоНайденнымДанным.ЦепочкаАдреса Цикл
+
+ ОтборПоУровню = Новый Структура;
+ ОтборПоУровню.Вставить("Наименование", ЭлементАдреса.Наименование);
+ ОтборПоУровню.Вставить("ТипОбъекта", ЭлементАдреса.ИсходныйТипОбъекта);
+
+ СтрокиПоУровню = ЧастиАдреса.НайтиСтроки(ОтборПоУровню);
+
+ Для Каждого СтрокаУровня Из СтрокиПоУровню Цикл
+ СтрокаУровня.Уровень = ЭлементАдреса.Уровень;
+ КонецЦикла;
+
+ КонецЦикла;
+
+ АдресДанные = АдресПоНайденнымДанным.Адрес;
+
+ // Все нераспознанное считаем домами.
КодыДомовВладенийИСтроений = КодыДомовВладенийИСтроений();
СокращенияНаименованийДомов = АдресныйКлассификаторПовтИсп.СокращенияНаименованийДомов();
СокращенияНаименованийПомещений = АдресныйКлассификаторПовтИсп.СокращенияНаименованийПомещений();
-
+
Квартиры = Новый Массив;
Строения = Новый Массив;
-
+
СведенияОДоме = СведенияОДоме();
СведенияОЗемельномУчастке = "";
-
- Для Каждого ЭлементАдреса Из ДомаЗдания Цикл
-
+
+ Для Каждого ЭлементАдреса Из ЧастиАдреса Цикл
+ Если ЭлементАдреса.Уровень <> 0 Тогда
+ Продолжить;
+ КонецЕсли;
+
ТипОбъекта = ВРег(СокрЛП(СтрЗаменить(ЭлементАдреса.ТипОбъекта, "№", "")));
Значение = ЭлементАдреса.Наименование;
- Если СтрСравнить(ТипОбъекта, "З/У") = 0 Тогда
+ Если ЭтоТипЗемельныйУчасток(ЭлементАдреса) Тогда
СведенияОЗемельномУчастке = Значение;
- Продолжить
+ Продолжить;
КонецЕсли;
ТипДомаИлиСтроения = "";
@@ -3463,83 +3521,29 @@
КонецЦикла;
- АдресаПоПолям = НоваяТаблицаАдресовСРазбивкойНаПоля();
-
- АдресМуниципальный = АдресаПоПолям.Добавить();
- АдресМуниципальный.Ключ = 0;
- АдресМуниципальный.ЭтоМуниципальныйАдрес = Истина;
-
- АдресАдминистративный = АдресаПоПолям.Добавить();
- АдресАдминистративный.Ключ = 1;
- АдресАдминистративный.ЭтоМуниципальныйАдрес = Ложь;
-
- МаксимальноеКоличествоЧастейАдреса = 5;
- КоличествоЧастейАдреса = ?(СопоставленныеЧастиАдреса.Количество() > МаксимальноеКоличествоЧастейАдреса,
- МаксимальноеКоличествоЧастейАдреса, СопоставленныеЧастиАдреса.Количество() - 1);
- Позиция = 0;
-
- Пока Позиция <= КоличествоЧастейАдреса Цикл
-
- АдресМуниципальный["Наименование" + Строка(Позиция)] = СопоставленныеЧастиАдреса[Позиция]["Наименование"];
- АдресМуниципальный["ТипОбъекта" + Строка(Позиция)] = СопоставленныеЧастиАдреса[Позиция]["ТипОбъекта"];
- АдресАдминистративный["Наименование" + Строка(Позиция)] = СопоставленныеЧастиАдреса[Позиция]["Наименование"];
- АдресАдминистративный["ТипОбъекта" + Строка(Позиция)] = СопоставленныеЧастиАдреса[Позиция]["ТипОбъекта"];
-
- Позиция = Позиция + 1;
- КонецЦикла;
-
- КодыРегионов = Новый Массив;
- КодыРегионов.Добавить(КодРегиона);
-
- Запрос.Текст = ТекстЗапросаПроверкиАдресов();
- Запрос.УстановитьПараметр("АдресаПоПолям", АдресаПоПолям);
- Запрос.УстановитьПараметр("КодыРегионов", КодыРегионов);
-
- РезультатЗапроса = Запрос.ВыполнитьПакет();
- ВариантыАдресов = РезультатЗапроса[13];
- ДомаИСведения = РезультатЗапроса[14];
- Участки = РезультатЗапроса[15];
-
- Если ВариантыАдресов.Пустой() Тогда
- Возврат Адрес; // Не удалось распознать адрес.
- КонецЕсли;
- НайденныеАдреса= ВариантыАдресов.Выгрузить();
-
- Если НайденныеАдреса.Количество() > 1 И НайденныеАдреса[0].Уровень < НайденныеАдреса[1].Уровень Тогда
- СтрокаАдреса = НайденныеАдреса[1];
- Иначе
- СтрокаАдреса = НайденныеАдреса[0];
- КонецЕсли;
-
СтрокаИндекс = ЧастиАдреса.Найти(-1, "Уровень");
ПочтовыйИндекс = ?(СтрокаИндекс <> Неопределено, СтрокаИндекс.Значение, "");
- Муниципальный = ?(СтрокаАдреса.КлючАдреса = 0, Истина, Ложь);
-
- Сведения = СведенияОбАдресномОбъекта(СтрокаАдреса.Идентификатор);
- Сведения.ЗагруженныеДанные = Истина;
- Сведения.Муниципальный = Муниципальный;
-
- АдресДанные = АктуальныеАдресныеСведения(Сведения);
-
Адрес = СформироватьАдресПоДаннымИзКлассификатора(АдресДанные.Данные);
+ ИдентификаторАдресногоЭлемента = ИдентификаторАдресногоОбъекта(Адрес);
Адрес.AddressType = ?(Муниципальный, МуниципальныйАдрес(), АдминистративноТерриториальныйАдрес());
Адрес.HouseType = ТРег(СведенияОДоме.НаименованиеДома);
Адрес.HouseNumber = ТРег(СведенияОДоме.НомерДома);
- Если ЗначениеЗаполнено(СведенияОЗемельномУчастке) Тогда
+ Если ЗначениеЗаполнено(СведенияОЗемельномУчастке) Тогда
+ ДанныеОбУчастке = КодыПоИдентификаторуАдресногоОбъектаЗемельныйУчасток(ИдентификаторАдресногоЭлемента, СведенияОЗемельномУчастке);
- ДанныеОбУчастке = НайтиСтрокуСЗемельнымУчастком(Участки.Выгрузить(), СведенияОЗемельномУчастке);
Адрес.stead = ДанныеОбУчастке.НомерЗемельногоУчастка;
Адрес.steadId = ДанныеОбУчастке.ИдентификаторУчастка;
КонецЕсли;
-
+
Адрес.Buildings = Строения;
Адрес.Apartments = Квартиры;
-
- ОписаниеДома = НайтиСтрокуСДомом(ДомаИСведения.Выгрузить(), СведенияОДоме);
+
+ ОписаниеДома = КодыПоИдентификаторуАдресногоОбъектаДома(ИдентификаторАдресногоЭлемента, СведенияОДоме);
+
Если ОписаниеДома <> Неопределено Тогда
Адрес.HouseID = ОписаниеДома.ИдентификаторДома;
Адрес.OKTMO = Формат(ОписаниеДома.ОКТМО, "ЧГ=0");
@@ -3553,28 +3557,82 @@
ПочтовыйИндекс = Формат(ОписаниеДома.Индекс, "ЧГ=0");
КонецЕсли;
КонецЕсли;
-
+
Адрес.ZIPcode = ПочтовыйИндекс;
-
+
Возврат Адрес;
-
+
КонецФункции
-// Параметры:
-// РезультатЗапроса - Массив
-//
-// Возвращаемое значение:
-// ТаблицаЗначений:
-// * Позиция - Число
-// * Значение - Строка
-// * Наименование - Строка
-// * ТипОбъекта - Строка
-//
-Функция ДомаЗдания(Знач РезультатЗапроса)
-
- ДомаЗдания = РезультатЗапроса[2].Выгрузить();
- Возврат ДомаЗдания
+Функция ОпределитьАдресПоНайденнымДанным(Знач СопоставленныеЧастиАдреса, Муниципальный)
+
+ РезультатОпределения = Новый Структура;
+ РезультатОпределения.Вставить("Адрес", Неопределено);
+ РезультатОпределения.Вставить("ЦепочкаАдреса", Неопределено);
+
+ ВерхнийУровеньАдреса = СопоставленныеЧастиАдреса.Получить(0);
+
+ ОтборПоУровню = Новый Структура;
+ ОтборПоУровню.Вставить("Наименование", ВерхнийУровеньАдреса.Наименование);
+ ОтборПоУровню.Вставить("ТипОбъекта", ВерхнийУровеньАдреса.ТипОбъекта);
+ СтрокиУровня = СопоставленныеЧастиАдреса.НайтиСтроки(ОтборПоУровню);
+
+ ИмяПоляРодительскогоИдентификатора = ?(Муниципальный,
+ "МуниципальныйРодительскийИдентификатор", "АдминистративныйРодительскийИдентификатор");
+
+ СведенияОбАдресе = Неопределено;
+
+ Для каждого СтрокаУровня Из СтрокиУровня Цикл
+
+ ЦепочкаРодителей = Новый Структура;
+ ЦепочкаРодителей.Вставить("КореньНайден", Ложь);
+ ЦепочкаРодителей.Вставить("Уровни", Новый Массив);
+
+ ЦепочкаРодителей.Уровни.Добавить(СтрокаУровня);
+
+ ЦепочкаРодителей = ПутьДоКорняНайден(СопоставленныеЧастиАдреса,
+ СтрокаУровня[ИмяПоляРодительскогоИдентификатора], ИмяПоляРодительскогоИдентификатора, ЦепочкаРодителей);
+
+ Если ЦепочкаРодителей.КореньНайден Тогда
+
+ СведенияОбАдресе = СведенияОбАдресномОбъекта(СтрокаУровня.Идентификатор);
+ СведенияОбАдресе.ЗагруженныеДанные = Истина;
+ СведенияОбАдресе.Муниципальный = Муниципальный;
+ РезультатОпределения.ЦепочкаАдреса = ЦепочкаРодителей.Уровни;
+ Прервать;
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Если СведенияОбАдресе = Неопределено Тогда
+ Возврат РезультатОпределения;
+ КонецЕсли;
+
+ РезультатОпределения.Адрес = АктуальныеАдресныеСведения(СведенияОбАдресе);
+
+ Возврат РезультатОпределения;
+
+КонецФункции
+Функция ПутьДоКорняНайден(СопоставленныеЧастиАдреса, Идентификатор, ИмяПоляРодительскогоИдентификатора, ЦепочкаРодителей)
+
+ НайденнаяСтрока = СопоставленныеЧастиАдреса.Найти(Идентификатор, "Идентификатор");
+ Если НайденнаяСтрока = Неопределено Тогда
+ ЦепочкаРодителей.КореньНайден = Ложь;
+ Возврат ЦепочкаРодителей;
+ КонецЕсли;
+
+ Если НайденнаяСтрока.Уровень = 1 Тогда
+ ЦепочкаРодителей.Уровни.Добавить(НайденнаяСтрока);
+ ЦепочкаРодителей.КореньНайден = Истина;
+ Возврат ЦепочкаРодителей;
+ КонецЕсли;
+
+ ЦепочкаРодителей.Уровни.Добавить(НайденнаяСтрока);
+
+ Возврат ПутьДоКорняНайден(СопоставленныеЧастиАдреса, НайденнаяСтрока[ИмяПоляРодительскогоИдентификатора], ИмяПоляРодительскогоИдентификатора, ЦепочкаРодителей);
+
КонецФункции
// Параметры:
@@ -3589,7 +3647,7 @@
//
Функция СопоставленныеЧастиАдреса(Знач РезультатЗапроса)
- СопоставленныеЧастиАдреса = РезультатЗапроса[1].Выгрузить();
+ СопоставленныеЧастиАдреса = РезультатЗапроса[2].Выгрузить();
Возврат СопоставленныеЧастиАдреса
КонецФункции
@@ -4149,14 +4207,10 @@
Запрос = Новый Запрос;
УровеньУлицы = 8;
- Если ПустаяСтрока(ТекстПоиска) Тогда
- ТекстЗапроса = ТекстЗапросаПодбораВсехУлиц();
- Иначе
- ТекстЗапроса = ТекстЗапросаПодбораУлицМуниципальнаяИерархия();
- КонецЕсли;
+ ТекстЗапроса = ?(ПустаяСтрока(ТекстПоиска), ТекстЗапросаПодбораВсехУлиц(), ТекстЗапросаПодбораУлицМуниципальнаяИерархия());
- Если ПараметрыАвтоподбора.ТипАдреса = АдминистративноТерриториальныйАдрес() Тогда
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Метаданные.РегистрыСведений.МуниципальнаяИерархия.Имя,
+ Если ЭтоАдминистративноТерриториальныйАдрес(ПараметрыАвтоподбора.ТипАдреса) Тогда
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Метаданные.РегистрыСведений.МуниципальнаяИерархия.Имя,
Метаданные.РегистрыСведений.АдминистративнаяИерархия.Имя);
КонецЕсли;
@@ -4356,23 +4410,23 @@
|ПОМЕСТИТЬ ИдентификаторыДочернихОбъектов
|ИЗ
| РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект0
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия1
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия1
| ПО (Иерархия1.РодительскийИдентификатор = АдресныйОбъект0.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект1
| ПО (Иерархия1.Идентификатор = АдресныйОбъект1.Идентификатор)
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия2
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия2
| ПО (Иерархия2.РодительскийИдентификатор = Иерархия1.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект2
| ПО (Иерархия2.Идентификатор = АдресныйОбъект2.Идентификатор)
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия3
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия3
| ПО (Иерархия3.РодительскийИдентификатор = Иерархия2.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект3
| ПО (Иерархия3.Идентификатор = АдресныйОбъект3.Идентификатор)
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия4
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия4
| ПО (Иерархия4.РодительскийИдентификатор = Иерархия3.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект4
| ПО (Иерархия4.Идентификатор = АдресныйОбъект4.Идентификатор)
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия5
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия5
| ПО (Иерархия5.РодительскийИдентификатор = Иерархия4.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект5
| ПО (Иерархия5.Идентификатор = АдресныйОбъект5.Идентификатор)
@@ -4408,15 +4462,15 @@
| ИдентификаторыДочернихОбъектов КАК ИдентификаторыОбъектов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект0
| ПО (ИдентификаторыОбъектов.Идентификатор = АдресныйОбъект0.Идентификатор)
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия1
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия1
| ПО (Иерархия1.Идентификатор = АдресныйОбъект0.Идентификатор)
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия2
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия2
| ПО (Иерархия2.Идентификатор = Иерархия1.РодительскийИдентификатор)
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия3
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия3
| ПО (Иерархия3.Идентификатор = Иерархия2.РодительскийИдентификатор)
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия4
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия4
| ПО (Иерархия4.Идентификатор = Иерархия3.РодительскийИдентификатор)
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия5
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия5
| ПО (Иерархия5.Идентификатор = Иерархия4.РодительскийИдентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект1
| ПО (Иерархия1.РодительскийИдентификатор = АдресныйОбъект1.Идентификатор)
@@ -4438,8 +4492,6 @@
КонецФункции
-
-
// Параметры:
// СведенияОбАдресномОбъекте - см. СведенияОбАдресномОбъекта
//
@@ -4725,6 +4777,15 @@
// АПК: 1036-вкл
КонецФункции
+Функция ЭтоТипЗемельныйУчасток(ЭлементАдреса)
+
+ // АПК: 1297-выкл Данные адресного классификатора, не локализуются
+ ТипОбъекта = ВРег(СокрЛП(ЭлементАдреса.ТипОбъекта));
+ Возврат СтрСравнить(ТипОбъекта, "З/У") = 0 Или СтрНачинаетсяС(ВРег(ЭлементАдреса.Значение), ВРег("Земельный участок"));
+ // АПК: 1297-вкл
+
+КонецФункции
+
Функция ПредставлениеУровняАдреса(Адрес, ИмяУровня) Экспорт
ЭтоРегион = СтрСравнить(ИмяУровня, АдресныйКлассификаторПовтИсп.НомераУровнейАдресаПоНаименованию().area) = 0;
@@ -4825,7 +4886,6 @@
КонецФункции
-
// Возвращаемое значение:
// Структура:
// * Идентификатор - Строка
@@ -4916,13 +4976,13 @@
КонецФункции
-Функция КодыПоИдентификаторуАдресногоОбъекта(АдресныйОбъект, СведенияОДоме)
-
+Функция КодыПоИдентификаторуАдресногоОбъектаДома(ИдентификаторАдресногоОбъекта, СведенияОДоме)
+
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДомаЗданияСтроения.Строения КАК Строения,
- | ДополнительныеСведения.ПочтовыйИндекс КАК ПочтовыйИндекс,
+ | ДополнительныеСведения.ПочтовыйИндекс КАК Индекс,
| ДополнительныеСведения.ОКТМО КАК ОКТМО,
| ДополнительныеСведения.ОКТМОБюджетополучателя КАК ОКТМОБюджетополучателя,
| ДополнительныеСведения.OKATO КАК ОКАТО,
@@ -4936,51 +4996,100 @@
| ПО ДомаЗданияСтроения.ДополнительныеАдресныеСведения = ДополнительныеСведения.Идентификатор
|ГДЕ
| ДомаЗданияСтроения.АдресныйОбъект = &АдресныйОбъект";
-
- Запрос.УстановитьПараметр("АдресныйОбъект", АдресныйОбъект);
+
+ Запрос.УстановитьПараметр("АдресныйОбъект", ИдентификаторАдресногоОбъекта);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
-
+
ОписаниеДома = НайтиСтрокуСДомом(РезультатЗапроса, СведенияОДоме);
-
+
Если ОписаниеДома <> Неопределено Тогда
-
Возврат ОписаниеДома;
-
Иначе
// Коды с точностью до дома не найдены. Поэтому используем коды адресного объекта
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | ДополнительныеСведения.ПочтовыйИндекс КАК ПочтовыйИндекс,
- | ДополнительныеСведения.ОКТМО КАК ОКТМО,
- | ДополнительныеСведения.ОКТМОБюджетополучателя КАК ОКТМОБюджетополучателя,
- | ДополнительныеСведения.OKATO КАК ОКАТО,
- | ДополнительныеСведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ,
- | ДополнительныеСведения.КодУчасткаИФНСФЛ КАК КодУчасткаИФНСФЛ,
- | ДополнительныеСведения.КодИФНСЮЛ КАК КодИФНСЮЛ,
- | ДополнительныеСведения.КодИФНСФЛ КАК КодИФНСФЛ
- |ИЗ
- | РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеАдресныеСведения КАК ДополнительныеСведения
- | ПО АдресныеОбъекты.ДополнительныеАдресныеСведения = ДополнительныеСведения.Идентификатор
- |ГДЕ
- | АдресныеОбъекты.Идентификатор = &АдресныйОбъект";
-
- Запрос.УстановитьПараметр("АдресныйОбъект", АдресныйОбъект);
-
- РезультатЗапроса = Запрос.Выполнить();
-
- Если Не РезультатЗапроса.Пустой() Тогда
-
- Результат = РезультатЗапроса.Выгрузить()[0];
- Коды = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Результат);
+ Коды = КодыПоИдентификаторуАдресногоОбъекта(ИдентификаторАдресногоОбъекта);
+ Если Коды <> Неопределено Тогда
Коды.Вставить("ИдентификаторДома", "");
-
КонецЕсли;
+
КонецЕсли;
-
+
Возврат Коды;
+
+КонецФункции
+Функция КодыПоИдентификаторуАдресногоОбъектаЗемельныйУчасток(ИдентификаторАдресногоОбъекта, СведенияОЗемельномУчастке)
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ЗемельныеУчастки.Участки КАК Участки,
+ | ДополнительныеСведения.ПочтовыйИндекс КАК Индекс,
+ | ДополнительныеСведения.ОКТМО КАК ОКТМО,
+ | ДополнительныеСведения.ОКТМОБюджетополучателя КАК ОКТМОБюджетополучателя,
+ | ДополнительныеСведения.OKATO КАК ОКАТО,
+ | ДополнительныеСведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ,
+ | ДополнительныеСведения.КодУчасткаИФНСФЛ КАК КодУчасткаИФНСФЛ,
+ | ДополнительныеСведения.КодИФНСЮЛ КАК КодИФНСЮЛ,
+ | ДополнительныеСведения.КодИФНСФЛ КАК КодИФНСФЛ
+ |ИЗ
+ | РегистрСведений.ЗемельныеУчастки КАК ЗемельныеУчастки
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеАдресныеСведения КАК ДополнительныеСведения
+ | ПО ЗемельныеУчастки.ДополнительныеАдресныеСведения = ДополнительныеСведения.Идентификатор
+ |ГДЕ
+ | ЗемельныеУчастки.АдресныйОбъект = &АдресныйОбъект";
+
+ Запрос.УстановитьПараметр("АдресныйОбъект", ИдентификаторАдресногоОбъекта);
+ РезультатЗапроса = Запрос.Выполнить().Выгрузить();
+
+ ОписаниеУчастка = НайтиСтрокуСЗемельнымУчастком(РезультатЗапроса, СведенияОЗемельномУчастке);
+
+ Если ОписаниеУчастка <> Неопределено Тогда
+
+ Возврат ОписаниеУчастка;
+
+ Иначе
+ // Коды с точностью до дома не найдены. Поэтому используем коды адресного объекта
+ Коды = КодыПоИдентификаторуАдресногоОбъекта(ИдентификаторАдресногоОбъекта);
+ Коды.Вставить("ИдентификаторУчастка", "");
+
+ КонецЕсли;
+
+ Возврат Коды;
+
+КонецФункции
+
+Функция КодыПоИдентификаторуАдресногоОбъекта(ИдентификаторАдресногоОбъекта)
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ДополнительныеСведения.ПочтовыйИндекс КАК Индекс,
+ | ДополнительныеСведения.ОКТМО КАК ОКТМО,
+ | ДополнительныеСведения.ОКТМОБюджетополучателя КАК ОКТМОБюджетополучателя,
+ | ДополнительныеСведения.OKATO КАК ОКАТО,
+ | ДополнительныеСведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ,
+ | ДополнительныеСведения.КодУчасткаИФНСФЛ КАК КодУчасткаИФНСФЛ,
+ | ДополнительныеСведения.КодИФНСЮЛ КАК КодИФНСЮЛ,
+ | ДополнительныеСведения.КодИФНСФЛ КАК КодИФНСФЛ
+ |ИЗ
+ | РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеАдресныеСведения КАК ДополнительныеСведения
+ | ПО АдресныеОбъекты.ДополнительныеАдресныеСведения = ДополнительныеСведения.Идентификатор
+ |ГДЕ
+ | АдресныеОбъекты.Идентификатор = &АдресныйОбъект";
+
+ Запрос.УстановитьПараметр("АдресныйОбъект", ИдентификаторАдресногоОбъекта);
+
+ РезультатЗапроса = Запрос.Выполнить();
+
+ Коды = Неопределено;
+ Если Не РезультатЗапроса.Пустой() Тогда
+ Результат = РезультатЗапроса.Выгрузить()[0];
+ Коды = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Результат);
+ КонецЕсли;
+
+ Возврат Коды;
+
КонецФункции
Функция НайтиСтрокуСДомом(Знач Дома, Знач ДомВАдресе)
@@ -5009,7 +5118,7 @@
ДомВАдресе.НаименованиеДополнительногоДома2, ОписаниеДома.НаименованиеДополнительногоДома2) = 0 Тогда
ЗаполнитьЗначенияСвойств(ОписаниеДома, ИнформацияОДомах);
- ОписаниеДома.Индекс = ИнформацияОДомах.ПочтовыйИндекс;
+ ОписаниеДома.Индекс = ИнформацияОДомах.Индекс;
Возврат ОписаниеДома;
@@ -6851,7 +6960,7 @@
| ДомаЗданияСтроения.Строения КАК Строения,
| Сведения.Идентификатор КАК Идентификатор,
| Сведения.КодСубъектаРФ КАК КодСубъектаРФ,
- | Сведения.ПочтовыйИндекс КАК ПочтовыйИндекс,
+ | Сведения.ПочтовыйИндекс КАК Индекс,
| Сведения.ОКТМО КАК ОКТМО,
| Сведения.OKATO КАК OKATO,
| Сведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ,
@@ -6874,7 +6983,7 @@
| ЗемельныеУчастки.Участки КАК Участки,
| Сведения.Идентификатор КАК Идентификатор,
| Сведения.КодСубъектаРФ КАК КодСубъектаРФ,
- | Сведения.ПочтовыйИндекс КАК ПочтовыйИндекс,
+ | Сведения.ПочтовыйИндекс КАК Индекс,
| Сведения.ОКТМО КАК ОКТМО,
| Сведения.OKATO КАК OKATO,
| Сведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ,
@@ -6893,7 +7002,6 @@
КонецФункции
-
Процедура АктуализироватьДанныеОРегионе(Знач Адрес, Знач КодСубъектаРФ, Знач Результат)
Результат.АдресПроверен = Истина;
@@ -7158,7 +7266,7 @@
И СтрСравнить(ДомВАдресе.НаименованиеДополнительногоДома2,
ОписаниеДома.НаименованиеДополнительногоДома2) = 0 Тогда
ДомКорректный = Истина;
- ПочтовыйИндекс = ИнформацияОДомах.ПочтовыйИндекс;
+ ПочтовыйИндекс = ИнформацияОДомах.Индекс;
Прервать;
Иначе
@@ -9035,9 +9143,13 @@
Возврат Описание;
КонецФункции
-Процедура ОбработатьОбщепринятыеСокращенияИУдалитьТочкуВКонецТипа(АдресПоЧастям)
+Функция ОбработатьОбщепринятыеСокращенияИУдалитьТочкуВКонецТипа(ИсходнаяТаблица)
+
+ АдресПоЧастям = ИсходнаяТаблица.Скопировать();
+ АдресПоЧастям.Колонки.Добавить("ТипОбъекта2", ОбщегоНазначения.ОписаниеТипаСтрока(128));
ОбщепринятыеСокращения = ОбщепринятыеСокращенияАдресныхЭлементовИОбъектов();
+ ОбщепринятыеСокращенияЭлементов = ОбщепринятыеСокращенияАдресныхЭлементов();
Фильтр = Новый Структура("Уровень", 0);
НераспознанныеСтроки = АдресПоЧастям.НайтиСтроки(Фильтр);
@@ -9062,6 +9174,11 @@
Продолжить;
КонецЕсли;
+ Сокращение = ОбщепринятыеСокращенияЭлементов[ТипВРег];
+ Если Сокращение <> Неопределено Тогда
+ ЧастьАдреса.ТипОбъекта2 = Сокращение;
+ КонецЕсли;
+
// Замена сокращения
ПолноеИмя = ОбщепринятыеСокращения[ТипВРег];
Если ПолноеИмя <> Неопределено Тогда
@@ -9070,7 +9187,9 @@
КонецЦикла;
-КонецПроцедуры
+ Возврат АдресПоЧастям;
+
+КонецФункции
Функция ОбщепринятыеСокращенияАдресныхЭлементовИОбъектов()
@@ -9096,6 +9215,19 @@
КонецФункции
+Функция ОбщепринятыеСокращенияАдресныхЭлементов()
+
+ СтатическиеСокращения = Новый Соответствие;
+
+ СтатическиеСокращения = СокращенияАдресныхОбъектов();
+ СтатическиеСокращения.Вставить("ЛИНИЯ", "Лн.");
+ СтатическиеСокращения.Вставить("ПРОЕЗД", "пр-д");
+
+ Возврат СтатическиеСокращения;
+
+КонецФункции
+
+
Функция ПерваяБукваЗаглавная(Строка)
Возврат ВРег(Лев(Строка, 1)) + Сред(НРег(Строка), 2); // Использовать ТРег нельзя.
КонецФункции
@@ -9949,7 +10081,7 @@
//
Функция ЗаполнитьКодыАдреса(Результат, ИдентификаторАдресногоОбъекта, СведенияОДоме)
- Коды = КодыПоИдентификаторуАдресногоОбъекта(ИдентификаторАдресногоОбъекта, СведенияОДоме);
+ Коды = КодыПоИдентификаторуАдресногоОбъектаДома(ИдентификаторАдресногоОбъекта, СведенияОДоме);
Если Коды <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Результат, Коды);
diff --git a/src/CommonModules/БизнесСеть/Ext/Module.bsl b/src/CommonModules/БизнесСеть/Ext/Module.bsl
index fdbf96548..c60bf239d 100644
--- a/src/CommonModules/БизнесСеть/Ext/Module.bsl
+++ b/src/CommonModules/БизнесСеть/Ext/Module.bsl
@@ -692,41 +692,6 @@
КонецФункции
-// Возвращает токен доступа организации и срок его действия.
-//
-// Параметры:
-// Организация - ОпределяемыйТип.Организация - ссылка на организацию.
-//
-// Возвращаемое значение:
-// Структура - содержит ключи:
-// * ТокенДоступа - Строка - токен доступа.
-// * СрокДействияТокенаДоступа - Дата - срок действия токена.
-//
-Функция ТокенДоступаОрганизации(Организация) Экспорт
-
- Результат = Новый Структура;
-
- Результат.Вставить("ТокенДоступа", "");
- Результат.Вставить("СрокДействияТокенаДоступа", Дата(1,1,1));
-
- ИдентификаторОрганизации = ИдентификаторОрганизации(Организация);
-
- Если Не ЗначениеЗаполнено(ИдентификаторОрганизации) Тогда
- Возврат Результат;
- КонецЕсли;
-
- Отказ = Ложь;
-
- КлючДоступа = КлючДоступаБизнесСети(ИдентификаторОрганизации, Ложь, Отказ);
-
- Если Не Отказ Тогда
- ЗаполнитьЗначенияСвойств(Результат, КлючДоступа);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
#Область ИдентификаторыКонтрагентов
// Обработчик регламентного задания ОбновлениеИдентификаторовКонтрагентовБизнесСети
@@ -904,149 +869,13 @@
КонецФункции
-Функция КонтрагентыПоИдентификаторам(Знач ИдентификаторыКонтрагентов) Экспорт
-
- ИдентификаторыКонтрагентов = ОбщегоНазначенияКлиентСервер.СвернутьМассив(ИдентификаторыКонтрагентов);
-
- Результат = Новый Структура;
- Результат.Вставить("Данные", НовыйДанныеКонтрагентовБизнесСети());
- Результат.Вставить("ЕстьОшибки", Ложь);
- Результат.Вставить("Ошибки", Новый Соответствие);
-
- ДанныеКонтрагентов = Результат.Данные.СкопироватьКолонки();
- ДанныеКонтрагентов.Колонки.Добавить("КонтрагентНайден", Новый ОписаниеТипов("Булево"));
- ДанныеКонтрагентов.Индексы.Добавить("КонтрагентНайден");
-
- Для Каждого Идентификатор Из ИдентификаторыКонтрагентов Цикл
- Если Не ЗначениеЗаполнено(Идентификатор) Тогда
- Продолжить;
- КонецЕсли;
-
- НоваяСтрока = ДанныеКонтрагентов.Добавить();
- НоваяСтрока.Идентификатор = Идентификатор;
- НоваяСтрока.КонтрагентНайден = Ложь;
- КонецЦикла;
-
- // Попытаемся найти контрагентов в локальном хранилище
- НайтиКонтрагентовПоИдентификаторамВКэшеБизнесСети(ДанныеКонтрагентов);
-
- Результат.Данные = ДанныеКонтрагентов.Скопировать(
- ДанныеКонтрагентов.НайтиСтроки(Новый Структура("КонтрагентНайден", Истина)),
- "Контрагент, Идентификатор");
-
- // Найденные идентификаторы обрабатывать больше не нужно.
- ДанныеКонтрагентов = ДанныеКонтрагентов.Скопировать(
- ДанныеКонтрагентов.НайтиСтроки(Новый Структура("КонтрагентНайден", Ложь)));
-
- ТребуетсяЗапросКСервису = ДанныеКонтрагентов.Количество() > 0;
- Если Не ТребуетсяЗапросКСервису Тогда
- Возврат Результат;
- КонецЕсли;
-
- // По идентификаторам получим в сервисе Бизнес Сеть натуральные ключи
- ДанныеКонтрагентов.Колонки.Добавить("ИНН", Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(12)));
- ДанныеКонтрагентов.Колонки.Добавить("КПП", Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(9)));
- ДанныеКонтрагентов.Колонки.Добавить("НатуральныеКлючиЗаполнены", Новый ОписаниеТипов("Булево"));
-
- ДанныеКонтрагентов.ЗаполнитьЗначения(Ложь, "НатуральныеКлючиЗаполнены");
-
- Идентификаторы = ДанныеКонтрагентов.ВыгрузитьКолонку("Идентификатор");
-
- Отказ = Ложь;
- ДанныеСервиса = ДанныеОрганизацийПоИдентификаторам(Идентификаторы, Отказ);
-
- Если Отказ Тогда
- Результат.ЕстьОшибки = Истина;
-
- ТекстОшибки = НСтр("ru='Не удалось получить ИНН/КПП из сервиса.'");
- Для Каждого ДанныеКонтрагента Из ДанныеКонтрагентов Цикл
- Результат.Ошибки.Вставить(
- ДанныеКонтрагента.Идентификатор,
- НовыйОписаниеОшибкиПоискаКонтрагентов(ТипОшибкиСервисНеДоступен(), ТекстОшибки));
- КонецЦикла;
-
- Возврат Результат;
- КонецЕсли;
-
- Для Каждого ЗаписьСервиса Из ДанныеСервиса Цикл
- ДанныеКонтрагента = ДанныеКонтрагентов.Найти(ЗаписьСервиса.Идентификатор);
- Если ДанныеКонтрагента = Неопределено Или Не ЗначениеЗаполнено(ЗаписьСервиса.ИНН) Тогда
- Продолжить;
- КонецЕсли;
-
- ЗаполнитьЗначенияСвойств(ДанныеКонтрагента, ЗаписьСервиса, "ИНН,КПП");
- ДанныеКонтрагента.НатуральныеКлючиЗаполнены = Истина;
- КонецЦикла;
-
- // Если по идентификатору не удалось получить данные от сервиса - контрагент не зарегистрирован
- // или идентификатор не корректен.
- // Такие записи дальше не обрабатываем.
- ОшибочныеЗаписи = ДанныеКонтрагентов.НайтиСтроки(Новый Структура("НатуральныеКлючиЗаполнены", Ложь));
- Если ЗначениеЗаполнено(ОшибочныеЗаписи) Тогда
- Результат.ЕстьОшибки = Истина;
- ТекстОшибки = НСтр("ru='Идентификатор отсутствует в сервисе Бизнес Сеть.'");
- Для Каждого ДанныеКонтрагента Из ОшибочныеЗаписи Цикл
- Результат.Ошибки.Вставить(
- ДанныеКонтрагента.Идентификатор,
- НовыйОписаниеОшибкиПоискаКонтрагентов(ТипОшибкиОтсутствуетРегистрацияВБизнесСети(), ТекстОшибки));
-
- ДанныеКонтрагентов.Удалить(ДанныеКонтрагента);
- КонецЦикла;
- КонецЕсли;
-
- ДанныеКонтрагентов.Колонки.Удалить("НатуральныеКлючиЗаполнены");
-
- Если ДанныеКонтрагентов.Количество() = 0 Тогда
- Возврат Результат;
- КонецЕсли;
-
- // Ищем контрагентов в базе данных по кортежу ИНН + КПП
- НайтиКонтрагентовПоНатуральнымКлючам(ДанныеКонтрагентов);
-
- НеНайденныеЗаписи = ДанныеКонтрагентов.НайтиСтроки(Новый Структура("КонтрагентНайден", Ложь));
- Если ЗначениеЗаполнено(НеНайденныеЗаписи) Тогда
- Результат.ЕстьОшибки = Истина;
- ШаблонТекстаОшибки =
- НСтр("ru='По %1, полученным от Бизнес Сети, не найдена запись в базе данных.'");
-
- Для Каждого ДанныеКонтрагента Из НеНайденныеЗаписи Цикл
- ТекстОшибки = СтрШаблон(ШаблонТекстаОшибки, "ИНН: " + ДанныеКонтрагента.ИНН
- + ?(Не ПустаяСтрока(ДанныеКонтрагента.КПП), " КПП:" + ДанныеКонтрагента.КПП, ""));
-
- Результат.Ошибки.Вставить(
- ДанныеКонтрагента.Идентификатор,
- НовыйОписаниеОшибкиПоискаКонтрагентов(ТипОшибкиКонтрагентНеНайденВБазе(), ТекстОшибки));
-
- ДанныеКонтрагентов.Удалить(ДанныеКонтрагента);
- КонецЦикла;
- КонецЕсли;
-
- Для Каждого ДанныеКонтрагента Из ДанныеКонтрагентов Цикл
- ЗаполнитьЗначенияСвойств(Результат.Данные.Добавить(), ДанныеКонтрагента);
- КонецЦикла;
-
- // Обновим кэш данных Бизнес Сети
- Отказ = Ложь;
- ТекстОшибки = "";
- РегистрыСведений.КонтрагентыБизнесСеть.ОбновитьКэшДанныхКонтрагентаБизнесСети(ДанныеКонтрагентов, Отказ, ТекстОшибки);
-
- // С точки зрения поиска контрагентов это не ошибка.
- Если Отказ Тогда
- ОбщегоНазначенияБЭД.ЗаписатьВЖурналРегистрации(ТекстОшибки,
- ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().БизнесСеть);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
Функция ТипОшибкиОтсутствуетРегистрацияВБизнесСети() Экспорт
Возврат "ОтсутствуетРегистрация"
КонецФункции
-Функция ТипОшибкиСервисНеДоступен() Экспорт
+Функция ТипОшибкиСервисНеДоступен()
Возврат "СервисНеДоступен"
@@ -3299,7 +3128,7 @@
// * Телефон - Строка, Неопределено -
// * Сайт - Строка, Неопределено -
// * Адрес - Строка, Неопределено -
-Функция ДанныеОрганизацииИзJSON(ДанныеСервиса) Экспорт
+Функция ДанныеОрганизацииИзJSON(ДанныеСервиса)
Результат = Новый Структура;
@@ -5252,112 +5081,6 @@
КонецПроцедуры
-Процедура НайтиКонтрагентовПоИдентификаторамВКэшеБизнесСети(ДанныеКонтрагентов)
-
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("Данные", ДанныеКонтрагентов);
- Запрос.Текст =
- "ВЫБРАТЬ
- | Данные.Идентификатор КАК Идентификатор,
- | Данные.Контрагент КАК Контрагент
- |ПОМЕСТИТЬ Данные
- |ИЗ
- | &Данные КАК Данные
- |
- |ИНДЕКСИРОВАТЬ ПО
- | Идентификатор
- |;
- |
- |////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ
- | КонтрагентыБизнесСеть.Контрагент КАК Контрагент,
- | Данные.Идентификатор КАК Идентификатор
- |ИЗ
- | Данные КАК Данные
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтрагентыБизнесСеть КАК КонтрагентыБизнесСеть
- | ПО (КонтрагентыБизнесСеть.Идентификатор = Данные.Идентификатор)";
-
- Результат = Запрос.Выполнить();
- Если Результат.Пустой() Тогда
- Возврат;
- КонецЕсли;
-
- ДанныеКэша = Результат.Выгрузить();
- ДанныеКэша.Индексы.Добавить("Идентификатор");
-
- Для Каждого ДанныеКонтрагента Из ДанныеКонтрагентов Цикл
- ЗаписьКэша = ДанныеКэша.Найти(ДанныеКонтрагента.Идентификатор, "Идентификатор");
- Если ЗаписьКэша = Неопределено Или Не ЗначениеЗаполнено(ЗаписьКэша.Контрагент) Тогда
- Продолжить;
- КонецЕсли;
-
- ДанныеКонтрагента.КонтрагентНайден = Истина;
- ДанныеКонтрагента.Контрагент = ЗаписьКэша.Контрагент;
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура НайтиКонтрагентовПоНатуральнымКлючам(ДанныеКонтрагентов)
-
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("Данные", ДанныеКонтрагентов);
- ТекстЗапроса =
- "ВЫБРАТЬ
- | Данные.Идентификатор КАК Идентификатор,
- | Данные.ИНН КАК ИНН,
- | Данные.КПП КАК КПП
- |ПОМЕСТИТЬ Данные
- |ИЗ
- | &Данные КАК Данные
- |
- |ИНДЕКСИРОВАТЬ ПО
- | ИНН,
- | КПП
- |;
- |
- |////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ
- | Контрагенты.Ссылка КАК Контрагент,
- | Данные.ИНН КАК ИНН,
- | Данные.КПП КАК КПП,
- | Данные.Идентификатор КАК Идентификатор
- |ИЗ
- | Данные КАК Данные
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ &Контрагенты КАК Контрагенты
- | ПО (Контрагенты.ИНН = Данные.ИНН)
- | И (Контрагенты.КПП = Данные.КПП)
- |";
-
- ИмяСправочникаКонтрагенты = ОбщегоНазначенияБЭД.ИмяПрикладногоСправочника("Контрагенты");
- РеквизитИНН = ОбщегоНазначенияБЭДПовтИсп.ИмяНаличиеОбъектаРеквизитаВПрикладномРешении("ИННКонтрагента");
- РеквизитКПП = ОбщегоНазначенияБЭДПовтИсп.ИмяНаличиеОбъектаРеквизитаВПрикладномРешении("КППКонтрагента");
-
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Контрагенты", "Справочник." + ИмяСправочникаКонтрагенты);
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Контрагенты.ИНН", "Контрагенты." + РеквизитИНН);
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Контрагенты.КПП", "Контрагенты." + РеквизитКПП);
- Запрос.Текст = ТекстЗапроса;
-
- Результат = Запрос.Выполнить();
- Если Результат.Пустой() Тогда
- Возврат;
- КонецЕсли;
-
- ДанныеИнформационнойБазы = Результат.Выгрузить();
- ДанныеИнформационнойБазы.Индексы.Добавить("Идентификатор");
-
- Для Каждого ДанныеКонтрагента Из ДанныеКонтрагентов Цикл
- ЗаписьИнформационнойБазы = ДанныеИнформационнойБазы.Найти(ДанныеКонтрагента.Идентификатор, "Идентификатор");
- Если ЗаписьИнформационнойБазы = Неопределено
- Или Не ЗначениеЗаполнено(ЗаписьИнформационнойБазы.Контрагент) Тогда
- ДанныеКонтрагента.КонтрагентНайден = Ложь;
- Иначе
- ДанныеКонтрагента.КонтрагентНайден = Истина;
- ДанныеКонтрагента.Контрагент = ЗаписьИнформационнойБазы.Контрагент;
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
Процедура ЗаполнитьНатуральныеИдентификаторыКонтрагентов(ДанныеКонтрагентов)
Запрос = Новый Запрос;
diff --git a/src/CommonModules/БухгалтерскиеОтчетыПереопределяемый/Ext/Module.bsl b/src/CommonModules/БухгалтерскиеОтчетыПереопределяемый/Ext/Module.bsl
index 7ba89030b..0de95e9f1 100644
--- a/src/CommonModules/БухгалтерскиеОтчетыПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/БухгалтерскиеОтчетыПереопределяемый/Ext/Module.bsl
@@ -146,9 +146,10 @@
//
// Параметры:
// Схема - СхемаКомпоновкиДанных - схема компоновки данных отчета.
-// КоличествоСтрокПараметров - Число - число по которому будем фиксировать шапку отчета.
+// КоличествоСтрокПараметров - Число - число по которому будем фиксировать шапку отчета.
+// ПараметрыОтчета - Структура - см. ПодготовитьПараметрыОтчета() в ФормаОтчета.
//
-Процедура ВысотаВыводимыхПараметров(Схема, КоличествоСтрокПараметров) Экспорт
+Процедура ВысотаВыводимыхПараметров(Схема, КоличествоСтрокПараметров, ПараметрыОтчета = Неопределено) Экспорт
КонецПроцедуры
// Вызывается в местах, где требуется получить полный список показателей отчета. Дополняет список показателями, существующими только в
diff --git a/src/CommonModules/ВизуализацияЭДОСлужебный/Ext/Module.bsl b/src/CommonModules/ВизуализацияЭДОСлужебный/Ext/Module.bsl
index 981f94682..2c100b1ff 100644
--- a/src/CommonModules/ВизуализацияЭДОСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ВизуализацияЭДОСлужебный/Ext/Module.bsl
@@ -36,13 +36,14 @@
КонецЕсли;
НаименованиеЗадания = НСтр("ru = 'Получение визуализации электронного документа'");
- ВыполняемыйМетод = "ВизуализацияЭДОСлужебный.ПолучениеВизуализацииЭлектронныхДокументовЭДО";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияПроцедуры();
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.КлючФоновогоЗадания = КлючФоновогоЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, ВыполняемыйМетод);
+ ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения,
+ "ВизуализацияЭДОСлужебный.ПолучениеВизуализацииЭлектронныхДокументовЭДО");
+
КонецПроцедуры
// Получить визуализацию из кэша.
@@ -142,7 +143,22 @@
Возврат;
КонецЕсли;
ОсновнойФайл = ЭлектронныеДокументыЭДО.ОсновнойФайлИнформацииОтправителя(ДокументЭДО);
+ Если Не ЗначениеЗаполнено(ОсновнойФайл) Тогда
+ ТекстСообщения = НСтр("ru = 'Основной файл документа не доступен или удален.'");
+ ЗаписатьОшибкуВЖурналРегистрации(ДокументЭДО, ТекстСообщения);
+ Возврат;
+ КонецЕсли;
СвойстваОсновнойФайл = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ОсновнойФайл, "Расширение, Размер");
+ Если СвойстваОсновнойФайл.Размер = Неопределено Тогда
+ ТекстСообщения = НСтр("ru = 'Основной файл документа не доступен. Не удалось прочитать размер файла.'");
+ ЗаписатьОшибкуВЖурналРегистрации(ДокументЭДО, ТекстСообщения);
+ Возврат;
+ КонецЕсли;
+ Если Не ЗначениеЗаполнено(СвойстваОсновнойФайл.Расширение) Тогда
+ ТекстСообщения = НСтр("ru = 'Расширение основного файла не заполнено.'");
+ ЗаписатьОшибкуВЖурналРегистрации(ДокументЭДО, ТекстСообщения);
+ Возврат;
+ КонецЕсли;
ДопустимыйРазмерФайла = Интеграция1СШтампСлужебныйКлиентСервер.ДопустимыйРазмерИсходящегоТелаЗапроса();
Если СвойстваОсновнойФайл.Размер > ДопустимыйРазмерФайла Тогда
@@ -173,14 +189,8 @@
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
- ТекстСообщения = НСтр("ru = 'Не удалось обновить кэш визуализации по причине:'")
- + Символы.ПС + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- ПараметрыЗаписи = ОбщегоНазначенияБЭД.НовыеПараметрыЗаписиВЖурналРегистрации();
- ПараметрыЗаписи.Данные = ДокументЭДО;
- ПараметрыЗаписи.ОбъектМетаданных = ДокументЭДО.Метаданные();
- ОбщегоНазначенияБЭД.ЗаписатьВЖурналРегистрации(ТекстСообщения,
- ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().ОбменСКонтрагентами,
- УровеньЖурналаРегистрации.Ошибка);
+ ТекстСообщения = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ ЗаписатьОшибкуВЖурналРегистрации(ДокументЭДО, ТекстСообщения);
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
@@ -192,7 +202,9 @@
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(
Метаданные.РегламентныеЗадания.ПолучитьДанныеВизуализацииЭДО);
-
+
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ПолучениеВизуализацииЭлектронныхДокументовЭДО");
+ СчетчикДокументов = 0;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 100
| ОчередьЗапросовВизуализации.ВладелецФайла КАК ДокументЭДО,
@@ -234,11 +246,13 @@
ПараметрыВыполнения.Вставить("ИмяФайла");
ЗаполнитьЗначенияСвойств(ПараметрыВыполнения, Выборка);
ОбновитьВизуализациюДокументаЭДОИзОчереди(ПараметрыВыполнения);
+ СчетчикДокументов = СчетчикДокументов + 1;
КонецЦикла;
Запрос.УстановитьПараметр("ТекущаяУниверсальнаяДата", ТекущаяУниверсальнаяДата());
Результат = Запрос.Выполнить();
КонецЦикла;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПолучениеВизуализацииЭлектронныхДокументовЭДО", ОписаниеЗамера,
+ СчетчикДокументов);
КонецПроцедуры
// Получение визуализации электронных документов ЭДО.
@@ -246,7 +260,7 @@
// Параметры:
// ДокументЭДО - ОпределяемыйТип.ВладелецФайлаВизуализацииЭДО - Документ ЭДО
Процедура ОбновитьКэшВизуализацииЭлектронногоДокументаЭДО(ДокументЭДО) Экспорт
-
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ПолучениеВизуализацииЭлектронныхДокументовЭДО");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| &ЭлектронныйДокумент КАК ДокументЭДО,
@@ -277,7 +291,7 @@
ЗаполнитьЗначенияСвойств(ПараметрыВыполнения, Выборка);
ОбновитьВизуализациюДокументаЭДОИзОчереди(ПараметрыВыполнения);
КонецЕсли;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПолучениеВизуализацииЭлектронныхДокументовЭДО", ОписаниеЗамера, 1);
КонецПроцедуры
// Возвращает проштампованный файл.
@@ -302,13 +316,16 @@
Если Не ЗначениеЗаполнено(СообщениеЭДО) Тогда
Возврат СтруктураВозврата;
КонецЕсли;
-
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ПолучениеВизуализацииPdfИзКэша.ФоновоеЗадание");
ЭлектронныйДокумент = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СообщениеЭДО, "ЭлектронныйДокумент");
НастройкиПредставления = ВизуализацияЭДО.НовыеНастройкиПредставления();
КэшВизуализации = ПолучитьВизуализациюИзКэша(ЭлектронныйДокумент, НастройкиПредставления);
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПолучениеВизуализацииPdfИзКэша.ФоновоеЗадание", ОписаниеЗамера);
Если КэшВизуализации.ТребуетсяОбновить Тогда
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ОбновлениеКэшаPdf.ФоновоеЗадание");
ОбновитьКэшВизуализации(ЭлектронныйДокумент);
КэшВизуализации = ПолучитьВизуализациюИзКэша(ЭлектронныйДокумент, НастройкиПредставления);
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ОбновлениеКэшаPdf.ФоновоеЗадание", ОписаниеЗамера);
КонецЕсли;
СтруктураВозврата.Успех = КэшВизуализации.ПросмотрДоступен;
СтруктураВозврата.ПредставлениеДокумента = КэшВизуализации.ПредставлениеДокумента;
@@ -492,6 +509,7 @@
// * ПодсказкаQRКода - Строка - текст подсказки QR кода.
// * ПубличнаяСсылкаQRКода - Строка - текст публичной ссылки QR кода.
// * Формат - Строка
+// * ВыводитьШтампыПодписей - Булево
//
Функция НовыеПараметрыВизуализацииДокумента() Экспорт
@@ -503,6 +521,7 @@
ПараметрыВизуализацииДокумента.Вставить("ПодсказкаQRКода", "");
ПараметрыВизуализацииДокумента.Вставить("ПубличнаяСсылкаQRКода", "");
ПараметрыВизуализацииДокумента.Вставить("Формат", "");
+ ПараметрыВизуализацииДокумента.Вставить("ВыводитьШтампыПодписей", Истина);
Возврат ПараметрыВизуализацииДокумента;
@@ -600,6 +619,10 @@
НастройкиПредставления.ЕстьИдДокумента = ПараметрыВизуализации.ВыводитьШапкуСИдДокумента;
НастройкиПредставления.ЕстьQRКод = ЗначениеЗаполнено(ПараметрыВизуализации.ПубличнаяСсылкаQRКода);
+ Если Не ПараметрыВизуализации.ВыводитьШтампыПодписей Тогда
+ Возврат ВизуализацияДокументаБезШтампов(ДанныеДокумента, ПараметрыВизуализации, НастройкиПредставления);
+ КонецЕсли;
+
КэшВизуализации = ПолучитьВизуализациюИзКэша(ДанныеДокумента.Ссылка, НастройкиПредставления);
Если ТребуетсяОбновитьКэш Тогда
КэшВизуализации.ТребуетсяОбновить = ТребуетсяОбновитьКэш;
@@ -1273,8 +1296,11 @@
ПараметрыДобавленияФайла.РасширениеБезТочки = РасширениеБезТочки;
ПараметрыДобавленияФайла.Служебный = Истина;
НоваяСсылкаНаФайл = Справочники.КэшВизуализацииДокументовЭДОПрисоединенныеФайлы.ПолучитьСсылку();
+ КлючЗамера = "РаботаСФайлами.ДобавитьФайлЭДО";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
СвойстваВизуализации.ФайлВизуализации = РаботаСФайлами.ДобавитьФайл(ПараметрыДобавленияФайла,
АдресФайлаВоВременномХранилище, , , НоваяСсылкаНаФайл);
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
@@ -2206,6 +2232,122 @@
КонецПроцедуры
+// Готовит визуализацию документа без штампов и возвращает результат
+// Параметры:
+// ДанныеДокумента - См. НовыеСвойстваДокументаДляФормированияВизуализации
+// ПараметрыВизуализации - См. НовыеПараметрыВизуализацииДокумента
+// НастройкиПредставления - см. ВизуализацияЭДО.НовыеНастройкиПредставления
+//
+// Возвращаемое значение:
+// См. НовыйРезультатПредставленияДанныхСообщения
+Функция ВизуализацияДокументаБезШтампов(ДанныеДокумента, ПараметрыВизуализации, НастройкиПредставления)
+ Результат = НовыйРезультатПредставленияДанныхСообщения();
+ ДанныеДокументаДляПроверкиРаспознавания = НовыеДанныеДокументаДляПроверкиРаспознавания();
+ ЗаполнитьЗначенияСвойств(ДанныеДокументаДляПроверкиРаспознавания.ПроверкаЗаписанногоДокумента, ДанныеДокумента);
+ ДанныеДокументаДляПроверкиРаспознавания.ПроверкаЗаписанногоДокумента.ТипЭлементаРегламента =
+ Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя;
+
+ Если Не ДокументРаспознан(ДанныеДокументаДляПроверкиРаспознавания) Тогда
+ Результат = ПредставлениеДанныхСообщенияПоФайлу(ДанныеДокумента.Ссылка);
+ Если Не РаботаСФайламиБЭДКлиентСервер.ЭтоРасширениеФайлаPDF(Результат.РасширениеФайла)
+ И ФайлПодходитДляОбработкиЧерезСервис1СШтамп(Результат.РасширениеФайла,
+ Результат.РазмерФайла) Тогда
+
+ РезультатШтампования = ВизуализацияДокументаЭДОСПомощьюСервиса1СШтамп(
+ Результат.ПредставлениеДокумента,
+ Результат.РасширениеФайла,
+ БиблиотекаКартинок.Пустая);
+
+ Если Не РезультатШтампования.ЕстьОшибки Тогда
+ Результат.ПредставлениеДокумента = РезультатШтампования.ДвоичныеДанные;
+ КонецЕсли;
+ КонецЕсли;
+ Возврат Результат;
+ КонецЕсли;
+
+ ПараметрыПолученияПредставления = НовыеПараметрыПолученияПредставленияДанныхСообщенияПоСсылке();
+ ПараметрыПолученияПредставления.ПараметрыВизуализации = ПараметрыВизуализации;
+
+ СвойстваСообщений = ЭлектронныеДокументыЭДОПовтИспНаВызов.СвойстваСообщенийПросмотраКарточкиДокумента(
+ ДанныеДокумента.Ссылка);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСГИСЭПД") Тогда
+ МодульОбменСГИСЭПД = ОбщегоНазначения.ОбщийМодуль("ОбменСГИСЭПД");
+ ПредставлениеДанных = МодульОбменСГИСЭПД.ПриВизуализацииДокумента(ПараметрыПолученияПредставления,
+ СвойстваСообщений);
+ Если ПредставлениеДанных <> Неопределено Тогда
+ ЗаполнитьЗначенияСвойств(Результат, ПредставлениеДанных);
+ Возврат Результат;
+ КонецЕсли;
+ КонецЕсли;
+
+ ВизуализацияСтроитсяПоОтветномуТитулу =
+ ДляТипаДокументаВизуализацияСтроитсяПоОтветномуТитулу(ДанныеДокумента.ТипДокумента)
+ И СвойстваСообщений.Количество() > 1;
+
+ Для Каждого СвойстваСообщения Из СвойстваСообщений Цикл
+
+ Если СвойстваСообщения.Статус = Перечисления.СтатусыСообщенийЭДО.НеСформирован Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Если ВизуализацияСтроитсяПоОтветномуТитулу
+ И СвойстваСообщения.ТипЭлементаРегламента =
+ Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя Тогда
+
+ ПараметрыПолученияПредставления.СообщениеЗапроса = СвойстваСообщения.Ссылка;
+
+ ИначеЕсли СвойстваСообщения.ТипЭлементаРегламента =
+ Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя Тогда
+
+ ПараметрыПолученияПредставления.Сообщение = СвойстваСообщения.Ссылка;
+
+ ИначеЕсли ВизуализацияСтроитсяПоОтветномуТитулу
+ И СвойстваСообщения.ТипЭлементаРегламента =
+ Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияПолучателя Тогда
+
+ ПараметрыПолученияПредставления.Сообщение = СвойстваСообщения.Ссылка;
+
+ Иначе
+
+ ПараметрыПолученияПредставления.СообщениеОтвета = СвойстваСообщения.Ссылка;
+
+ КонецЕсли;
+
+ КонецЦикла;
+ ПараметрыПолученияПредставления.ВыводитьШтампыПодписей = Ложь;
+ Результат = ПредставлениеДанныхСообщенияПоСсылке(ПараметрыПолученияПредставления);
+
+ Возврат Результат;
+КонецФункции
+
+// Параметры:
+// ДокументЭДО - ОпределяемыйТип.ВладелецФайлаВизуализацииЭДО
+// ПричинаОшибки - Строка
+Процедура ЗаписатьОшибкуВЖурналРегистрации(ДокументЭДО, ПричинаОшибки)
+ ТекстСообщения = СтрШаблон(НСтр("ru = 'Не удалось обновить кэш визуализации для документа %1 по причине:'")
+ + Символы.ПС + ПричинаОшибки,
+ ДокументЭДО);
+
+ Если Не ТранзакцияАктивна() Тогда
+ ПараметрыЗаписи = ОбщегоНазначенияБЭД.НовыеПараметрыЗаписиВЖурналРегистрации();
+ ПараметрыЗаписи.Данные = ДокументЭДО;
+ ПараметрыЗаписи.ОбъектМетаданных = ДокументЭДО.Метаданные();
+ Иначе
+ ПараметрыЗаписи = Неопределено;
+ КонецЕсли;
+ ОбщегоНазначенияБЭД.ЗаписатьВЖурналРегистрации(ТекстСообщения,
+ ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().ОбменСКонтрагентами,
+ УровеньЖурналаРегистрации.Ошибка, ПараметрыЗаписи);
+КонецПроцедуры
+
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПолучениеВизуализацииЭлектронныхДокументовЭДО", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ВозвратТоваровОтКлиентаЛокализация/Ext/Module.bsl b/src/CommonModules/ВозвратТоваровОтКлиентаЛокализация/Ext/Module.bsl
index 8972d7f6d..1ad3804f6 100644
--- a/src/CommonModules/ВозвратТоваровОтКлиентаЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/ВозвратТоваровОтКлиентаЛокализация/Ext/Module.bsl
@@ -1456,6 +1456,7 @@
| Товары.ТипНоменклатуры КАК ТипНоменклатуры,
| ЕСТЬNULL(ВтПодакцизныеТовары.ПодакцизныйТовар, ЛОЖЬ) КАК ПодакцизныйТовар,
| Товары.ОсобенностьУчета КАК ОсобенностьУчета,
+ | ЕСТЬNULL(ОписаниеНоменклатурыИС.КлючВидовПродукции, ЗНАЧЕНИЕ(Справочник.КлючиВидовПродукцииИС.ПустаяСсылка)) КАК ВидПродукцииИС,
| Товары.НоменклатураНаименование КАК НоменклатураНаименование,
| Товары.ХарактеристикаНаименование КАК ХарактеристикаНаименование,
| Товары.УпаковкаНаименование КАК УпаковкаНаименование,
@@ -1484,6 +1485,8 @@
| И (ШтрихкодыНоменклатуры.Упаковка = Товары.Упаковка)
| ЛЕВОЕ СОЕДИНЕНИЕ ВтПодакцизныеТовары КАК ВтПодакцизныеТовары
| ПО Товары.Номенклатура = ВтПодакцизныеТовары.Номенклатура
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОписаниеНоменклатурыИС КАК ОписаниеНоменклатурыИС
+ | ПО Товары.Номенклатура = ОписаниеНоменклатурыИС.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
@@ -1511,6 +1514,7 @@
| Товары.Упаковка,
| Товары.БазоваяУпаковка,
| Товары.ОсобенностьУчета,
+ | Товары.ВидПродукцииИС КАК ВидПродукцииИС,
| Товары.Номенклатура,
| Товары.НоменклатураНаименование,
| Товары.Характеристика КАК Характеристика,
diff --git a/src/CommonModules/ВыгрузкаЗагрузкаДанных/Ext/Module.bsl b/src/CommonModules/ВыгрузкаЗагрузкаДанных/Ext/Module.bsl
index 99c41f948..e8b7cf1ae 100644
--- a/src/CommonModules/ВыгрузкаЗагрузкаДанных/Ext/Module.bsl
+++ b/src/CommonModules/ВыгрузкаЗагрузкаДанных/Ext/Module.bsl
@@ -700,4 +700,11 @@
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПоместитьОшибкиВыгружаемыхДанныхВоВременноеХранилище", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ВыгрузкаЗагрузкаДанныхСлужебный/Ext/Module.bsl b/src/CommonModules/ВыгрузкаЗагрузкаДанныхСлужебный/Ext/Module.bsl
index e229f12bc..725cf9cd2 100644
--- a/src/CommonModules/ВыгрузкаЗагрузкаДанныхСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ВыгрузкаЗагрузкаДанныхСлужебный/Ext/Module.bsl
@@ -1507,7 +1507,7 @@
Для НомерПотока = 1 По ПараметрыПотоков.КоличествоПотоков Цикл
Задание = ФоновыеЗадания.Выполнить(
- ИмяМетодаВыгрузкиЗагрузкиДанныхВПотоке(),
+ "ВыгрузкаЗагрузкаДанныхСлужебный.ВыгрузкаЗагрузкаДанныхИнформационнойБазыВПотоке",
ПараметрыЗадания,
КлючЗаданияВыгрузкиЗагрузкиДанных(Контейнер),
НаименованиеЗадания);
@@ -1859,10 +1859,8 @@
ПараметрыЗадания.Добавить(ПараметрыЗагрузки);
ПараметрыЗадания.Добавить(АдресРезультата);
- ИмяМетода = "ВыгрузкаЗагрузкаДанныхСлужебный.НачатьЗагрузкуДанныхТекущейОбластиИзАрхива";
-
- Задание = ТехнологияСервиса.ВыполнитьЗаданиеСРасширениями(
- ИмяМетода,
+ Задание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
+ "ВыгрузкаЗагрузкаДанныхСлужебный.НачатьЗагрузкуДанныхТекущейОбластиИзАрхива",
ПараметрыЗадания,
Новый УникальныйИдентификатор,
НСтр("ru = 'Восстановление области данных из архива'"))
@@ -2092,6 +2090,11 @@
СобытиеЖурналаРегистрации,
УровеньЖурналаРегистрации.Предупреждение,,,
ТекстПредупреждения);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
+ МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
+ МодульУправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Истина, Ложь);
+ КонецЕсли;
ВыборкаОбъектов.Сбросить();
@@ -3119,4 +3122,12 @@
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВыгрузкаЗагрузкаДанныхИнформационнойБазыВПотоке", Истина);
+ Методы.Вставить("НачатьЗагрузкуДанныхТекущейОбластиИзАрхива", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/ВыгрузкаЗагрузкаНеразделенныхДанных/Ext/Module.bsl b/src/CommonModules/ВыгрузкаЗагрузкаНеразделенныхДанных/Ext/Module.bsl
index 678295dad..ba9abd52c 100644
--- a/src/CommonModules/ВыгрузкаЗагрузкаНеразделенныхДанных/Ext/Module.bsl
+++ b/src/CommonModules/ВыгрузкаЗагрузкаНеразделенныхДанных/Ext/Module.bsl
@@ -596,14 +596,6 @@
Возврат;
КонецЕсли;
- Если ОбщегоНазначенияБТС.ЭтоСсылочныеДанныеПоддерживающиеПредопределенныеЭлементы(ОбъектМетаданных) Тогда
- Если ПроверяемаяСсылка.Предопределенный Тогда
- // Сопоставление ссылок на предопределенные элементы выполняется отдельным механизмом
- // (см. общий модуль ВыгрузкаЗагрузкаПредопределенныхДанных).
- Возврат;
- КонецЕсли;
- КонецЕсли;
-
Если ОбъектМетаданныхРазделенХотьОднимРазделителем(ОбъектМетаданных, Контейнер.ДополнительныеСвойства.ЛокальныйКэшСоставовРазделителей) Тогда
// Разделенные данные будут загружены с сохранением оригинальных уникальных идентификаторов (для объектов,
// разделенных разделителями с типом разделения "Независимо и совместно" все ссылки будут сгенерированы заново).
@@ -622,6 +614,14 @@
Возврат;
КонецЕсли;
+ Если ОбщегоНазначенияБТС.ЭтоСсылочныеДанныеПоддерживающиеПредопределенныеЭлементы(ОбъектМетаданных) Тогда
+ Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПроверяемаяСсылка, "Предопределенный") Тогда //@skip-check bsl-legacy-check-string-literal
+ // Сопоставление ссылок на предопределенные элементы выполняется отдельным механизмом
+ // (см. общий модуль ВыгрузкаЗагрузкаПредопределенныхДанных).
+ Возврат;
+ КонецЕсли;
+ КонецЕсли;
+
ШаблонОшибки =
НСтр("ru = 'Объект метаданных %1 включен в перечень объектов, для которых не требуется сопоставление ссылок при выгрузке / загрузке
|данных (в переопределяемой процедуре
diff --git a/src/CommonModules/ВыгрузкаЗагрузкаНеразделенныхПредопределенныхДанных/Ext/Module.bsl b/src/CommonModules/ВыгрузкаЗагрузкаНеразделенныхПредопределенныхДанных/Ext/Module.bsl
index 8998307ae..6a70a7843 100644
--- a/src/CommonModules/ВыгрузкаЗагрузкаНеразделенныхПредопределенныхДанных/Ext/Module.bsl
+++ b/src/CommonModules/ВыгрузкаЗагрузкаНеразделенныхПредопределенныхДанных/Ext/Module.bsl
@@ -132,22 +132,29 @@
// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер контейнера.
Процедура ПередЗагрузкойДанных(Контейнер) Экспорт
- Если Не ОбщегоНазначения.РазделениеВключено() Тогда
-
- ИмяФайла = Контейнер.ПолучитьПроизвольныйФайл(ТипДанныхДляТаблицыДополнительноВыгружаемыхДанных());
- ИменаДополнительноЗагружаемых = ВыгрузкаЗагрузкаДанных.ПрочитатьОбъектИзФайла(ИмяФайла);
- УдалитьФайлы(ИмяФайла);
-
- ПараметрыЗагрузки = Новый Структура(Контейнер.ПараметрыЗагрузки()); // см. ВыгрузкаЗагрузкаДанных.ЗагрузитьДанныеТекущейОбластиИзАрхива.ПараметрыЗагрузки
-
- Для Каждого ИмяДополнительноЗагружаемогоОбъекта Из ИменаДополнительноЗагружаемых Цикл
- ПараметрыЗагрузки.ЗагружаемыеТипы.Добавить(Метаданные.НайтиПоПолномуИмени(ИмяДополнительноЗагружаемогоОбъекта));
- КонецЦикла;
-
- Контейнер.УстановитьПараметрыЗагрузки(ПараметрыЗагрузки);
-
+ Если ОбщегоНазначения.РазделениеВключено() Тогда
+ Возврат;
КонецЕсли;
+ ИмяФайла = Контейнер.ПолучитьПроизвольныйФайл(ТипДанныхДляТаблицыДополнительноВыгружаемыхДанных());
+ ИменаДополнительноЗагружаемых = ВыгрузкаЗагрузкаДанных.ПрочитатьОбъектИзФайла(ИмяФайла);
+ УдалитьФайлы(ИмяФайла);
+
+ Если Не ЗначениеЗаполнено(ИменаДополнительноЗагружаемых) Тогда
+ Возврат;
+ КонецЕсли;
+
+ ДополнительноЗагружаемыеТипы = Новый Массив();
+
+ Для Каждого ИмяДополнительноЗагружаемогоОбъекта Из ИменаДополнительноЗагружаемых Цикл
+ ДополнительноЗагружаемыеТипы.Добавить(Метаданные.НайтиПоПолномуИмени(ИмяДополнительноЗагружаемогоОбъекта));
+ КонецЦикла;
+
+ ПараметрыЗагрузки = Новый Структура(Контейнер.ПараметрыЗагрузки()); // см. ВыгрузкаЗагрузкаДанных.ЗагрузитьДанныеТекущейОбластиИзАрхива.ПараметрыЗагрузки
+ ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ПараметрыЗагрузки.ЗагружаемыеТипы, ДополнительноЗагружаемыеТипы, Истина);
+
+ Контейнер.УстановитьПараметрыЗагрузки(ПараметрыЗагрузки);
+
КонецПроцедуры
#Область ОбработчикиСлужебныхСобытий
diff --git a/src/CommonModules/ВыгрузкаЗагрузкаОбластейДанных/Ext/Module.bsl b/src/CommonModules/ВыгрузкаЗагрузкаОбластейДанных/Ext/Module.bsl
index 308ad0a2b..6e8dbd189 100644
--- a/src/CommonModules/ВыгрузкаЗагрузкаОбластейДанных/Ext/Module.bsl
+++ b/src/CommonModules/ВыгрузкаЗагрузкаОбластейДанных/Ext/Module.bsl
@@ -326,6 +326,8 @@
РезультатЗагрузкиДифференциальногоАрхива.Удалить("СоответствиеСсылок");
+ ПоместитьРезультатЗагрузкиВоВременноеХранилище(ПараметрыЗагрузки, РезультатЗагрузкиДифференциальногоАрхива);
+
Возврат РезультатЗагрузкиДифференциальногоАрхива;
КонецФункции
@@ -682,4 +684,12 @@
ПоместитьВоВременноеХранилище(РезультатЗагрузки, АдресХранилищаРезультата);
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВыгрузитьТекущуюОбластьВАрхив", Истина);
+ Методы.Вставить("ЗагрузитьОбластьИзАрхива", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ВыгрузкаЗагрузкаУзловПлановОбменов/Ext/Module.bsl b/src/CommonModules/ВыгрузкаЗагрузкаУзловПлановОбменов/Ext/Module.bsl
index eadd8ce55..77d549396 100644
--- a/src/CommonModules/ВыгрузкаЗагрузкаУзловПлановОбменов/Ext/Module.bsl
+++ b/src/CommonModules/ВыгрузкаЗагрузкаУзловПлановОбменов/Ext/Module.bsl
@@ -144,7 +144,7 @@
|ГДЕ
| ТИПЗНАЧЕНИЯ(ТаблицаИзменения.Узел) В (&ТипыВыгружаемыхПлановОбмена)");
- Запрос.Текст = СтрЗаменить(Запрос.Текст, "#ТаблицаИзменения", ОбъектМетаданных.ПолноеИмя() + ".Изменения");
+ Запрос.Текст = СтрЗаменить(Запрос.Текст, "#ТаблицаИзменения", СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), ".Перерасчет.", ".") + ".Изменения");
Запрос.УстановитьПараметр("ТипыВыгружаемыхПлановОбмена", ТипыВыгружаемыхПлановОбмена);
РезультатЗапроса = Запрос.Выполнить();
diff --git a/src/CommonModules/ДатыЗапретаИзмененияЛокализация/Ext/Module.bsl b/src/CommonModules/ДатыЗапретаИзмененияЛокализация/Ext/Module.bsl
index 4da879f7c..851e67a09 100644
--- a/src/CommonModules/ДатыЗапретаИзмененияЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/ДатыЗапретаИзмененияЛокализация/Ext/Module.bsl
@@ -42,6 +42,12 @@
"Дата",
"Закупки",
"Организация");
+
+ ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных,
+ Метаданные.Документы.ДокументОПредстоящейПоставке.ПолноеИмя(),
+ "Дата",
+ "Закупки",
+ "Организация");
#КонецОбласти
diff --git a/src/CommonModules/ДенежныеСредстваСерверЛокализация/Ext/Module.bsl b/src/CommonModules/ДенежныеСредстваСерверЛокализация/Ext/Module.bsl
index 32c98974a..d36d91b6f 100644
--- a/src/CommonModules/ДенежныеСредстваСерверЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/ДенежныеСредстваСерверЛокализация/Ext/Module.bsl
@@ -2095,6 +2095,11 @@
Функция ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(ЭтоПлательщик, ДокументОбъект, РеквизитыСтороны, ВыводитьСообщение, Отказ = Ложь) Экспорт
ОшибкиЗаполнения = Новый Массив;
+
+ Если Не ЗначениеЗаполнено(РеквизитыСтороны.Объект) Тогда
+ Возврат ОшибкиЗаполнения;
+ КонецЕсли;
+
ИНН = СокрЛП(РеквизитыСтороны.ИНН);
КПП = СокрЛП(РеквизитыСтороны.КПП);
diff --git a/src/CommonModules/ДеревоЭлектронногоДокументаБЭД/Ext/Module.bsl b/src/CommonModules/ДеревоЭлектронногоДокументаБЭД/Ext/Module.bsl
index 1b9b8e374..10391f05f 100644
--- a/src/CommonModules/ДеревоЭлектронногоДокументаБЭД/Ext/Module.bsl
+++ b/src/CommonModules/ДеревоЭлектронногоДокументаБЭД/Ext/Module.bsl
@@ -192,7 +192,7 @@
//
// Параметры:
// Дерево - ДеревоЗначений - дерево данных, в котором необходимо сохранить данные
-// Коллекция - Структура, Выборка, СтрокаТаблицыЗначений - коллекция для сохранения в дереве
+// Коллекция - Структура, ВыборкаИзРезультатаЗапроса, СтрокаТаблицыЗначений - коллекция для сохранения в дереве
// НазваниеТаблицы - Строка - название таблицы в дереве.
//
Процедура ДобавитьЗаписьВТаблицуДерева(Дерево, Коллекция, НазваниеТаблицы) Экспорт
diff --git a/src/CommonModules/ДиагностикаЭДОСлужебный/Ext/Module.bsl b/src/CommonModules/ДиагностикаЭДОСлужебный/Ext/Module.bsl
index b52758600..b8cabf000 100644
--- a/src/CommonModules/ДиагностикаЭДОСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ДиагностикаЭДОСлужебный/Ext/Module.bsl
@@ -1930,4 +1930,11 @@
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВыполнитьДиагностику", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ДлительныеОперации/Ext/Module.bsl b/src/CommonModules/ДлительныеОперации/Ext/Module.bsl
index 61c79f532..f452a1ae7 100644
--- a/src/CommonModules/ДлительныеОперации/Ext/Module.bsl
+++ b/src/CommonModules/ДлительныеОперации/Ext/Module.bsl
@@ -1662,8 +1662,7 @@
КраткоеПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(Результат.ИнформацияОбОшибке);
// АПК:1405-выкл - требуется для быстрого определения причины ошибки
- СтрокаПоиска = НСтр("ru = 'Задание с таким значением ключа уже выполняется';
- |en = 'A job with the same key value is performed already'");
+ СтрокаПоиска = НСтр("ru = 'Задание с таким значением ключа уже выполняется'");
// АПК:1405-вкл
Если ЗначениеЗаполнено(СтрокаПоиска) И СтрНачинаетсяС(КраткоеПредставлениеОшибки, СтрокаПоиска) Тогда
Возврат Истина;
diff --git a/src/CommonModules/ДоставкаТоваров/Ext/Module.bsl b/src/CommonModules/ДоставкаТоваров/Ext/Module.bsl
index e3719228b..99cdde68c 100644
--- a/src/CommonModules/ДоставкаТоваров/Ext/Module.bsl
+++ b/src/CommonModules/ДоставкаТоваров/Ext/Module.bsl
@@ -87,16 +87,8 @@
//
Процедура ПроверитьЗаполнениеДанныхДоставки(Настройки, МассивНепроверяемыхРеквизитов, Отказ) Экспорт
- Если ДоставкаТоваровКлиентСервер.ИспользуетсяДоставка20() Тогда
-
- ПроверитьЗаполнениеРеквизитовДоставки(
- Настройки.ДокументОбъект,
- МассивНепроверяемыхРеквизитов,
- Отказ,
- Настройки.НакладнаяПоЗаказам);
-
+ Если ДоставкаТоваровКлиентСервер.ИспользуетсяДоставка20() Тогда
Возврат;
-
КонецЕсли;
// Для совместимости с Доставка 2.0 требуется сохранить платформенную проверку,
@@ -9270,11 +9262,11 @@
ШаблонЗапроса =
"ВЫБРАТЬ
| ИСТИНА КАК ДополненнаяСтрока,
- | НедостающиеПлечиТ2.Регистратор КАК Регистратор,
+ | Т2.Регистратор КАК Регистратор,
| 0 КАК НомерСтроки,
- | НедостающиеПлечиТ2.Период КАК Период,
- | НедостающиеПлечиТ2.Организация КАК Организация,
- | НедостающиеПлечиТ2.ТипДоставки КАК ТипДоставки,
+ | Т2.Период КАК Период,
+ | Т2.Организация КАК Организация,
+ | Т2.ТипДоставки КАК ТипДоставки,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДатаОтгрузки,
| ЗНАЧЕНИЕ(Перечисление.СпособыДоставки25.ПустаяСсылка) КАК СпособДоставки,
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Отправитель,
@@ -9283,31 +9275,30 @@
| ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка) КАК Получатель,
| ЗНАЧЕНИЕ(Справочник.ТочкиДоставки.ПустаяСсылка) КАК ТочкаПолучателя,
| ЗНАЧЕНИЕ(Справочник.ЗоныДоставки.ПустаяСсылка) КАК ЗонаПолучателя,
- | НедостающиеПлечиТ2.Распоряжение КАК Распоряжение,
- | НедостающиеПлечиТ2.Номенклатура КАК Номенклатура,
- | НедостающиеПлечиТ2.Характеристика КАК Характеристика,
- | НедостающиеПлечиТ2.Серия КАК Серия,
- | НедостающиеПлечиТ2.КодСтроки КАК КодСтроки,
- | НедостающиеПлечиТ2.Плечо КАК Плечо,
+ | Т2.Распоряжение КАК Распоряжение,
+ | Т2.Номенклатура КАК Номенклатура,
+ | Т2.Характеристика КАК Характеристика,
+ | Т2.Серия КАК Серия,
+ | Т2.КодСтроки КАК КодСтроки,
+ | ПлечиТ1.Плечо КАК Плечо,
| ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка) КАК Перевозчик,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
- | НедостающиеПлечиТ2.УровеньОперации КАК УровеньОперации,
- | НедостающиеПлечиТ2.ДокументПланирования КАК ДокументПланирования,
+ | Т2.УровеньОперации КАК УровеньОперации,
+ | Т2.ДокументПланирования КАК ДокументПланирования,
| ЛОЖЬ КАК ЭтоКонечноеПлечо,
| 0 КАК НомерМинимальногоПлеча,
- | НедостающиеПлечиТ2.Количество КАК Количество
+ | Т2.Количество КАК Количество
|ДОБАВИТЬ ТаблицаНазначение
|ИЗ
- | &ТаблицаНедостающиеПлечиТ2 КАК НедостающиеПлечиТ2
- | ЛЕВОЕ СОЕДИНЕНИЕ &ТаблицаИсточникТ2 КАК Т2
- | ПО НедостающиеПлечиТ2.Распоряжение = Т2.Распоряжение
- | И НедостающиеПлечиТ2.КодСтроки = Т2.КодСтроки
- | И НедостающиеПлечиТ2.ДокументПланирования = Т2.ДокументПланирования
- | И НедостающиеПлечиТ2.Регистратор = Т2.Регистратор
- | И НедостающиеПлечиТ2.Плечо = Т2.Плечо
+ | &ТаблицаИсточникТ2 КАК Т2
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ &ТаблицаНедостающиеПлечиТ2 КАК ПлечиТ1
+ | ПО Т2.Распоряжение = ПлечиТ1.Распоряжение
+ | И Т2.КодСтроки = ПлечиТ1.КодСтроки
+ | И Т2.ДокументПланирования = ПлечиТ1.ДокументПланирования
+ | И Т2.Плечо < ПлечиТ1.Плечо
+ | И Т2.ЭтоКонечноеПлечо
|ГДЕ
- | Т2.Плечо ЕСТЬ NULL
- | И &ВыражениеОтбор";
+ | &ВыражениеОтбор";
Возврат ШаблонЗапроса;
@@ -9318,7 +9309,7 @@
ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2();
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТТекущийУровеньТ2");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТНедостающиеПлечиТекущегоУровняТ2");
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТПлечиПредыдущегоУровняТ1");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТТекущийУровеньТ2"); // @Query-part-1, @Query-part-2
ТекстЗапроса = СтрЗаменить(
@@ -9386,7 +9377,7 @@
ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2();
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТПредыдущийУровеньТ1");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТНедостающиеПлечиПредыдущегоУровняТ1");
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТПлечиТекущегоУровняТ2");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТПредыдущийУровеньТ1"); // @Query-part-1, @Query-part-2
ТекстЗапроса = СтрЗаменить(
@@ -9826,7 +9817,7 @@
ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2();
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТСледующийУровеньТ2");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТНедостающиеПлечиСледующегоУровняТ2");
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТПлечиТекущегоУровняТ1");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТСледующийУровеньТ2"); // @Query-part-1, @Query-part-2
ТекстЗапроса = СтрЗаменить(
@@ -9929,7 +9920,7 @@
ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2();
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТТекущийУровеньТ1");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТНедостающиеПлечиТекущегоУровняТ1");
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТПлечиСледующегоУровняТ2");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТТекущийУровеньТ1"); // @Query-part-1, @Query-part-2
ТекстЗапроса = СтрЗаменить(
diff --git a/src/CommonModules/ЗакрытиеМесяцаСервер/Ext/Module.bsl b/src/CommonModules/ЗакрытиеМесяцаСервер/Ext/Module.bsl
index 248480f0b..155b25da7 100644
--- a/src/CommonModules/ЗакрытиеМесяцаСервер/Ext/Module.bsl
+++ b/src/CommonModules/ЗакрытиеМесяцаСервер/Ext/Module.bsl
@@ -3844,6 +3844,7 @@
|УчетНДСЛокализация.СоздатьЭлементыСтавкиНДС
|РегистрыСведений.ОчередьПереоформленияРасходныхОрдеров.ОбработатьДанныеДляПереходаНаНовуюВерсию
|Справочники.НомераГТД.ОбработатьДанныеДляПереходаНаНовуюВерсию
+ |РегистрыСведений.РаспоряженияНаОтгрузкуИВозвратКВыполнению.ОбработатьДанныеДляПереходаНаНовуюВерсию
|";
ЗакрытиеМесяцаЛокализация.ОбработчикиОбновленияНеВлияющиеНаЗакрытиеМесяца(Обработчики);
diff --git a/src/CommonModules/ЗакупкиСервер/Ext/Module.bsl b/src/CommonModules/ЗакупкиСервер/Ext/Module.bsl
index 96f72d747..caa88ba55 100644
--- a/src/CommonModules/ЗакупкиСервер/Ext/Module.bsl
+++ b/src/CommonModules/ЗакупкиСервер/Ext/Module.bsl
@@ -9369,7 +9369,7 @@
| И &ПроверкаНаПустоеЗначениеВСоглашении // Значение в соглашении заполнено
| И &ПроверкаНаПустоеЗначениеВДокументе // Значение в документе заполнено
| И СоглашениеСПоставщиком.ИмяРеквизита <> ДокументЗакупки.ИмяРеквизита КАК ИмяПоляЕстьОшибки,
- | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.ИмяРеквизита) КАК ИмяРеквизитаСоглашение,
+ | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.ИмяРеквизита) КАК ПсевдонимРеквизитаСоглашения,
| ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.ИмяРеквизита) КАК ИмяРеквизита"; // @query-part
ЗаменяемаяСтрока = "&ПроверкаНаПустоеЗначениеВСоглашении";
@@ -9396,6 +9396,10 @@
ТекстУсловия = СтрЗаменить(ТекстУсловия, "ДокументЗакупки", "ВременнаяТаблицаТовары");
КонецЕсли;
+ ТекстУсловия = СтрЗаменить(ТекстУсловия,
+ "ПсевдонимРеквизитаСоглашения",
+ ОписаниеПроверки.ПсевдонимРеквизитаСоглашения);
+
ТекстУсловия = СтрЗаменить(ТекстУсловия, "ИмяПоляЕстьОшибки", ОписаниеПроверки.ИмяПоляЕстьОшибки);
ТекстУсловия = СтрЗаменить(ТекстУсловия, "ИмяРеквизита", ИмяРеквизита);
@@ -9468,7 +9472,7 @@
| ЛОЖЬ
| КОНЕЦ КАК ЕстьОшибкиЗаполненияХозяйственнаяОперация,
| ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.ХозяйственнаяОперация) КАК ХозяйственнаяОперация,
- | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.ХозяйственнаяОперация) КАК ХозяйственнаяОперацияСоглашение"); // @query-part
+ | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.ХозяйственнаяОперация) КАК ХозяйственнаяОперацияСоглашения"); // @query-part
КонецЕсли;
#КонецОбласти
@@ -9481,9 +9485,9 @@
"СоглашениеСПоставщиком.Склад ЕСТЬ НЕ NULL
| И СоглашениеСПоставщиком.Склад <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| И СкладыКорректныеПоСоглашению.Склад ЕСТЬ NULL КАК ЕстьОшибкиЗаполненияСклад,
- | ЕСТЬNULL(СоглашениеСПоставщиком.Склад.ЭтоГруппа, ЛОЖЬ) КАК СкладСоглашениеЕстьГруппа,
+ | ЕСТЬNULL(СоглашениеСПоставщиком.Склад.ЭтоГруппа, ЛОЖЬ) КАК СкладСоглашенияЕстьГруппа,
| ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.Склад) КАК Склад,
- | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Склад) КАК СкладСоглашение"); // @query-part
+ | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Склад) КАК СкладСоглашения"); // @query-part
ИначеЕсли ИмяТаблицы = "Документ.ЗаявкаНаЗакупку" Тогда
// Проверка склада в ТЧ по соглашению в ТЧ:
ВыбираемыеПоля.Добавить(
@@ -9491,10 +9495,10 @@
| И СоглашениеСПоставщиком.Склад ЕСТЬ НЕ NULL
| И СоглашениеСПоставщиком.Склад <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| И СкладыКорректныеПоСоглашениям.Склад ЕСТЬ NULL КАК ЕстьОшибкиЗаполненияСклад,
- | ЕСТЬNULL(СоглашениеСПоставщиком.Склад.ЭтоГруппа, ЛОЖЬ) КАК СкладСоглашениеЕстьГруппа,
+ | ЕСТЬNULL(СоглашениеСПоставщиком.Склад.ЭтоГруппа, ЛОЖЬ) КАК СкладСоглашенияЕстьГруппа,
| ЕСТЬNULL(ДокументЗакупки.Склад.ЭтоГруппа, ЛОЖЬ) КАК СкладВШапкеГруппа,
| ПРЕДСТАВЛЕНИЕ(ВременнаяТаблицаТовары.Склад) КАК Склад,
- | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Склад) КАК СкладСоглашение"); // @query-part
+ | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Склад) КАК СкладСоглашения"); // @query-part
ПроверятьСкладПоСоглашениюВТабличнойЧасти = Истина;
КонецЕсли;
@@ -9514,7 +9518,7 @@
| КОГДА СоглашениеСПоставщиком.ИспользуютсяДоговорыКонтрагентов
| ТОГДА ДокументЗакупки.Договор.ПорядокРасчетов
| ИНАЧЕ СоглашениеСПоставщиком.ПорядокРасчетов
- | КОНЕЦ) КАК ПорядокРасчетовСоглашение,
+ | КОНЕЦ) КАК ПорядокРасчетовСоглашения,
| СоглашениеСПоставщиком.ИспользуютсяДоговорыКонтрагентов КАК ИспользуютсяДоговорыКонтрагентов"); // @query-part
#КонецОбласти
КонецЕсли;
@@ -9529,7 +9533,7 @@
| И ДокументЗакупки.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи)
| КАК ЕстьОшибкиЗаполненияВалютаВзаиморасчетов,
| ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.ВалютаВзаиморасчетов) КАК ВалютаВзаиморасчетов,
- | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Валюта) КАК ВалютаВзаиморасчетовСоглашение"); // @query-part
+ | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Валюта) КАК ВалютаВзаиморасчетовСоглашения"); // @query-part
#КонецОбласти
КонецЕсли;
@@ -9738,6 +9742,7 @@
// Возвращаемое значение:
// ТаблицаЗначений:
// * ИмяРеквизита - Строка - Имя реквизита документа и соглашения.
+// * ПсевдонимРеквизитаСоглашения - Строка - Псевдоним для поля запроса, содержащего представление реквизита соглашения.
// * ИмяПоляЕстьОшибки - Строка - Псевдоним для поля запроса, содержащего флаг (булево) наличия найденных в проверке ошибок.
// * ПредставлениеРеквизита - Строка - Представление имени реквизита для вывода в отчет.
// * ПустоеЗначениеВЗапросе - Строка - Если не пустая, то проверка реквизита выполняется только при
@@ -9768,6 +9773,7 @@
ВозвращаемоеЗначение = Новый ТаблицаЗначений;
ВозвращаемоеЗначение.Колонки.Добавить("ИмяРеквизита", ОписаниеТипаСтрока150);
+ ВозвращаемоеЗначение.Колонки.Добавить("ПсевдонимРеквизитаСоглашения", ОписаниеТипаСтрока150);
ВозвращаемоеЗначение.Колонки.Добавить("ИмяПоляЕстьОшибки", ОписаниеТипаСтрока150);
ВозвращаемоеЗначение.Колонки.Добавить("ПредставлениеРеквизита", ОписаниеТипаСтрока150);
ВозвращаемоеЗначение.Колонки.Добавить("ПустоеЗначениеВЗапросе", ОписаниеТипаСтрока150);
@@ -9785,6 +9791,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"ХозяйственнаяОперация",
+ "ХозяйственнаяОперацияСоглашения",
"ЕстьОшибкиЗаполненияХозяйственнаяОперация",
НСтр("ru = 'Операция'"));
ОписаниеПроверки.ПереопределенРасчетУсловий = Истина;
@@ -9798,6 +9805,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"ВалютаВзаиморасчетов",
+ "ВалютаВзаиморасчетовСоглашения",
"ЕстьОшибкиЗаполненияВалютаВзаиморасчетов",
НСтр("ru = 'Валюта взаиморасчетов'"));
ОписаниеПроверки.ПереопределенРасчетУсловий = Истина;
@@ -9811,6 +9819,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"Партнер",
+ "ПартнерСоглашения",
"ЕстьОшибкиЗаполненияПартнер",
НСтр("ru = 'Партнер'"),
"ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка)");
@@ -9825,6 +9834,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"Контрагент",
+ "КонтрагентСоглашения",
"ЕстьОшибкиЗаполненияКонтрагент",
НСтр("ru = 'Контрагент'"),
"ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)");
@@ -9839,6 +9849,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"Организация",
+ "ОрганизацияСоглашения",
"ЕстьОшибкиЗаполненияОрганизация",
НСтр("ru = 'Организация'"),
"ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
@@ -9853,6 +9864,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"Валюта",
+ "ВалютаСоглашения",
"ЕстьОшибкиЗаполненияВалюта",
НСтр("ru = 'Валюта'"));
ОписаниеПроверки.ШаблонОшибкиВШапке = НСтр("ru = 'Валюта не должна отличаться от значения в соглашении ""%ЗначениеРеквизитаСоглашения%""'");
@@ -9865,6 +9877,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"ФормаОплаты",
+ "ФормаОплатыСоглашения",
"ЕстьОшибкиЗаполненияФормаОплаты",
НСтр("ru = 'Форма оплаты'"),
"ЗНАЧЕНИЕ(Перечисление.ФормыОплаты.ПустаяСсылка)");
@@ -9878,6 +9891,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"ЦенаВключаетНДС",
+ "ЦенаВключаетНДССоглашения",
"ЕстьОшибкиЗаполненияЦенаВключаетНДС",
НСтр("ru = 'Признак ""Цена включает НДС""'"));
ОписаниеПроверки.ШаблонОшибкиВШапке = НСтр("ru = 'Признак ""Цена включает НДС"" не должен отличаться от значения в соглашении ""%ЗначениеРеквизитаСоглашения%""'");
@@ -9890,6 +9904,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"ВидЦеныПоставщика",
+ "ВидЦеныПоставщикаСоглашения",
"ЕстьОшибкиЗаполненияВидЦеныПоставщика",
НСтр("ru = 'Вид цен поставщика'"),
"ЗНАЧЕНИЕ(Справочник.ВидыЦенПоставщиков.ПустаяСсылка)");
@@ -9905,11 +9920,14 @@
КонецФункции
-Функция НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ОписаниеПроверок, ИмяРеквизита, ИмяПоляЕстьОшибки, ПредставлениеРеквизита, ПустоеЗначениеВЗапросе = "")
+Функция НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ОписаниеПроверок, ИмяРеквизита, ПсевдонимРеквизитаСоглашения,
+ ИмяПоляЕстьОшибки,
+ ПредставлениеРеквизита, ПустоеЗначениеВЗапросе = "")
ОписаниеПроверки = ОписаниеПроверок.Добавить();
ОписаниеПроверки.ИмяРеквизита = ИмяРеквизита;
+ ОписаниеПроверки.ПсевдонимРеквизитаСоглашения = ПсевдонимРеквизитаСоглашения;
ОписаниеПроверки.ИмяПоляЕстьОшибки = ИмяПоляЕстьОшибки;
ОписаниеПроверки.ПредставлениеРеквизита = ПредставлениеРеквизита;
ОписаниеПроверки.ПустоеЗначениеВЗапросе = ПустоеЗначениеВЗапросе;
@@ -10809,7 +10827,7 @@
ТекстОшибки = СтрЗаменить(ТекстОшибки,
"%ЗначениеРеквизитаСоглашения%",
- Выборка[ОписаниеПроверки.ИмяРеквизита + "Соглашение"]);
+ Выборка[ОписаниеПроверки.ПсевдонимРеквизитаСоглашения]);
ТекстОшибки = СтрЗаменить(ТекстОшибки,
"%ИмяТабличнойЧасти%",
@@ -10843,10 +10861,10 @@
Если ЭтоЗаявкаНаЗакупку Тогда
- Если Выборка.СкладСоглашениеЕстьГруппа Тогда
- ТекстОшибки = НСтр("ru = 'Группа складов соглашения ""%СкладСоглашение%"" не содержит склад-получатель ""%Склад%""%АдресОшибки%'");
+ Если Выборка.СкладСоглашенияЕстьГруппа Тогда
+ ТекстОшибки = НСтр("ru = 'Группа складов соглашения ""%СкладСоглашения%"" не содержит склад-получатель ""%Склад%""%АдресОшибки%'");
Иначе
- ТекстОшибки = НСтр("ru = 'Склад соглашения ""%СкладСоглашение%"" не должен отличаться от значения в документе ""%Склад%""%АдресОшибки%'");
+ ТекстОшибки = НСтр("ru = 'Склад соглашения ""%СкладСоглашения%"" не должен отличаться от значения в документе ""%Склад%""%АдресОшибки%'");
КонецЕсли;
ТекстОшибки = СтрЗаменить(ТекстОшибки,
@@ -10854,20 +10872,20 @@
?(ВыводитьВОтчет, "", АдресОшибки));
ИначеЕсли НЕ ВыводитьВОтчет Тогда
- Если Выборка.СкладСоглашениеЕстьГруппа Тогда
- ТекстОшибки = НСтр("ru = 'Склад должен входить в группу складов ""%СкладСоглашение%""'");
+ Если Выборка.СкладСоглашенияЕстьГруппа Тогда
+ ТекстОшибки = НСтр("ru = 'Склад должен входить в группу складов ""%СкладСоглашения%""'");
Иначе
- ТекстОшибки = НСтр("ru = 'Склад не должен отличаться от значения в соглашении ""%СкладСоглашение%""'");
+ ТекстОшибки = НСтр("ru = 'Склад не должен отличаться от значения в соглашении ""%СкладСоглашения%""'");
КонецЕсли;
Иначе
- Если Выборка.СкладСоглашениеЕстьГруппа Тогда
- ТекстОшибки = НСтр("ru = '""%Склад%"" должен входить в группу складов соглашения ""%СкладСоглашение%""'");
+ Если Выборка.СкладСоглашенияЕстьГруппа Тогда
+ ТекстОшибки = НСтр("ru = '""%Склад%"" должен входить в группу складов соглашения ""%СкладСоглашения%""'");
Иначе
- ТекстОшибки = НСтр("ru = '""%Склад%"" отличается от склада в соглашении ""%СкладСоглашение%""'");
+ ТекстОшибки = НСтр("ru = '""%Склад%"" отличается от склада в соглашении ""%СкладСоглашения%""'");
КонецЕсли;
КонецЕсли;
- ТекстОшибки = СтрЗаменить(ТекстОшибки, "%СкладСоглашение%", Выборка.СкладСоглашение);
+ ТекстОшибки = СтрЗаменить(ТекстОшибки, "%СкладСоглашения%", Выборка.СкладСоглашения);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Склад%", Выборка.Склад);
СообщитьОбОшибкеВУсловииЗакупки(ПараметрыВыводаОшибок,
@@ -10968,7 +10986,7 @@
Если НаличиеПроверок.ЕстьОшибкиЗаполненияПорядокРасчетов И Выборка.ЕстьОшибкиЗаполненияПорядокРасчетов Тогда
Если Выборка.ИспользуютсяДоговорыКонтрагентов Тогда
ТекстОшибки = НСтр("ru = 'Порядок расчетов не должен отличаться от значения в договоре ""%ПорядокРасчетов%""'");
- ТекстОшибки = СтрЗаменить(ТекстОшибки, "%ПорядокРасчетов%", Выборка.ПорядокРасчетовСоглашение);
+ ТекстОшибки = СтрЗаменить(ТекстОшибки, "%ПорядокРасчетов%", Выборка.ПорядокРасчетовСоглашения);
Если НЕ ВыводитьВОтчет Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
ТекстОшибки,
@@ -10985,7 +11003,7 @@
Иначе
ТекстОшибки = НСтр("ru = 'Порядок расчетов не должен отличаться от значения в соглашении ""%ПорядокРасчетов%""'");
КонецЕсли;
- ТекстОшибки = СтрЗаменить(ТекстОшибки, "%ПорядокРасчетов%", Выборка.ПорядокРасчетовСоглашение);
+ ТекстОшибки = СтрЗаменить(ТекстОшибки, "%ПорядокРасчетов%", Выборка.ПорядокРасчетовСоглашения);
Если НЕ ВыводитьВОтчет Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
diff --git a/src/CommonModules/ЗапасыСервер/Ext/Module.bsl b/src/CommonModules/ЗапасыСервер/Ext/Module.bsl
index 341f564e2..4631c3f59 100644
--- a/src/CommonModules/ЗапасыСервер/Ext/Module.bsl
+++ b/src/CommonModules/ЗапасыСервер/Ext/Module.bsl
@@ -17797,6 +17797,28 @@
|;
|
|////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ТаблицаТоваров.ДокументПоступления КАК ДокументПоступления,
+ | ТаблицаТоваров.Номенклатура КАК Номенклатура,
+ | ТаблицаТоваров.Характеристика КАК Характеристика,
+ | ТаблицаТоваров.Назначение КАК Назначение,
+ | ТаблицаТоваров.Серия КАК Серия,
+ | ТаблицаТоваров.СтатусУказанияСерий КАК СтатусУказанияСерий,
+ | СУММА(ТаблицаТоваров.Количество) КАК Количество
+ |ПОМЕСТИТЬ ВтТаблицаТоваровВозврат
+ |ИЗ
+ | ТаблицаТоваров КАК ТаблицаТоваров
+ |
+ |СГРУППИРОВАТЬ ПО
+ | ТаблицаТоваров.ДокументПоступления,
+ | ТаблицаТоваров.Номенклатура,
+ | ТаблицаТоваров.Характеристика,
+ | ТаблицаТоваров.Назначение,
+ | ТаблицаТоваров.Серия,
+ | ТаблицаТоваров.СтатусУказанияСерий
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТоваров.ДокументПоступления КАК ДокументПоступления,
| АналитикиУчета.КлючАналитики КАК АналитикаУчетаНоменклатуры,
@@ -18382,6 +18404,7 @@
| ПринятыеТовары.НомерГТД КАК НомерГТД,
| СУММА(ПринятыеТовары.Количество) КАК КоличествоОстаток,
| СУММА(ПринятыеТовары.КоличествоПоРНПТ) КАК КоличествоПоРНПТОстаток
+ | ПОМЕСТИТЬ ВтПринятыеТовары
|ИЗ
| ПринятыеТовары КАК ПринятыеТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаДанныхДокумента КАК ДанныеДокумента
@@ -18434,6 +18457,39 @@
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
+ | ПринятыеТовары.Организация КАК Организация,
+ | ПринятыеТовары.ДокументПоступления КАК ДокументПоступления,
+ | ПринятыеТовары.ВидЗапасов КАК ВидЗапасов,
+ | ПринятыеТовары.Номенклатура КАК Номенклатура,
+ | ПринятыеТовары.Характеристика КАК Характеристика,
+ | ПринятыеТовары.Серия КАК Серия,
+ | ПринятыеТовары.Назначение КАК Назначение,
+ | ПринятыеТовары.НомерГТД КАК НомерГТД,
+ | ВЫБОР
+ | КОГДА ПринятыеТовары.КоличествоОстаток > ТаблицаТоваровВозврат.Количество
+ | ТОГДА ТаблицаТоваровВозврат.Количество
+ | ИНАЧЕ ПринятыеТовары.КоличествоОстаток
+ | КОНЕЦ КАК КоличествоОстаток,
+ | ВЫБОР
+ | КОГДА ПринятыеТовары.КоличествоОстаток > ТаблицаТоваровВозврат.Количество
+ | ТОГДА (ПринятыеТовары.КоличествоПоРНПТОстаток / ПринятыеТовары.КоличествоОстаток) * ТаблицаТоваровВозврат.Количество
+ | ИНАЧЕ ПринятыеТовары.КоличествоПоРНПТОстаток
+ | КОНЕЦ КАК КоличествоПоРНПТОстаток
+ |
+ |ИЗ
+ | ВТПринятыеТовары КАК ПринятыеТовары
+ |
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаТоваровВозврат КАК ТаблицаТоваровВозврат
+ | ПО ТаблицаТоваровВозврат.Номенклатура = ПринятыеТовары.Номенклатура
+ | И ТаблицаТоваровВозврат.Характеристика = ПринятыеТовары.Характеристика
+ | И (ТаблицаТоваровВозврат.Серия = ПринятыеТовары.Серия
+ | ИЛИ ТаблицаТоваровВозврат.СтатусУказанияСерий <> 14)
+ | И ТаблицаТоваровВозврат.Назначение = ПринятыеТовары.Назначение
+ | И ТаблицаТоваровВозврат.ДокументПоступления = ПринятыеТовары.ДокументПоступления
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДанныеДокумента.Организация КАК Организация,
| ТаблицаТоваров.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры
|ПОМЕСТИТЬ ВтТаблицаТоваровПоАналитики
diff --git a/src/CommonModules/ЗаявкаНаРасходованиеДенежныхСредствЛокализация/Ext/Module.bsl b/src/CommonModules/ЗаявкаНаРасходованиеДенежныхСредствЛокализация/Ext/Module.bsl
index 146c778eb..d9abb0ce3 100644
--- a/src/CommonModules/ЗаявкаНаРасходованиеДенежныхСредствЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/ЗаявкаНаРасходованиеДенежныхСредствЛокализация/Ext/Module.bsl
@@ -167,10 +167,7 @@
Иначе
ДенежныеСредстваСерверЛокализация.ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(Истина, Объект, РеквизитыПлательщика, Истина);
-
- Если ЗначениеЗаполнено(ДанныеПолучателя.Получатель) Тогда
- ДенежныеСредстваСерверЛокализация.ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(Ложь, Объект, РеквизитыПолучателя, Истина);
- КонецЕсли;
+ ДенежныеСредстваСерверЛокализация.ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(Ложь, Объект, РеквизитыПолучателя, Истина);
КонецЕсли;
diff --git a/src/CommonModules/ЗаявлениеОВвозеЛокализация/Ext/Module.bsl b/src/CommonModules/ЗаявлениеОВвозеЛокализация/Ext/Module.bsl
index 65b4f66d4..49f765b16 100644
--- a/src/CommonModules/ЗаявлениеОВвозеЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/ЗаявлениеОВвозеЛокализация/Ext/Module.bsl
@@ -321,6 +321,22 @@
КонецПроцедуры
+//++ Локализация
+
+// Процедура дополняет тексты запросов проведения документа.
+//
+// Параметры:
+// Запрос - Запрос - Общий запрос проведения документа.
+// ТекстыЗапроса - СписокЗначений - Список текстов запроса проведения.
+// Регистры - Строка, Структура - Список регистров проведения документа через запятую или в ключах структуры.
+//
+Процедура ДополнитьТекстыЗапросовПроведенияДОПП(Запрос, ТекстыЗапроса, Регистры) Экспорт
+
+
+КонецПроцедуры
+
+//-- Локализация
+
// Процедура пересчитывает значения строк таблицы значений для округления итоговой суммы колонки по целых единиц.
//
// Параметры:
diff --git a/src/CommonModules/Интеграция1СШтампСлужебный/Ext/Module.bsl b/src/CommonModules/Интеграция1СШтампСлужебный/Ext/Module.bsl
index e2be1e161..3ac7b6c85 100644
--- a/src/CommonModules/Интеграция1СШтампСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/Интеграция1СШтампСлужебный/Ext/Module.bsl
@@ -98,12 +98,24 @@
ПараметрыУстановкиШтампов.ПараметрыРезультата.ФорматРезультата = РасширениеФайлаРезультата;
СлужебнаяИнформацияЗапроса = СлужебнаяИнформацияЗапроса(ПользовательскийСценарий, НовыйИдентификаторТрассировки());
+ Результат = НовыйРезультатОбработкиДокумента();
+
+ // Создаем ссылку для загрузки файла
+ Ответ = СсылкаДляЗагрузки(СлужебнаяИнформацияЗапроса);
+
+ Если Ответ.Отказ Тогда
+ Результат.ЕстьОшибки = Истина;
+ Результат.ИнформацияОбОшибках = Ответ.ТекстОшибки;
+ Возврат Результат;
+ КонецЕсли;
+
+ URLДляЗагрузки = Ответ.URLРедиректа;
+
// Создаем задание в очередь в сервисе
ОтветСервиса = РезультатВыполненияЗапросаСоздатьЗаданиеВСервисеНаУстановкуШтамповВДокумент(
ПараметрыУстановкиШтампов,
- СлужебнаяИнформацияЗапроса);
-
- Результат = НовыйРезультатОбработкиДокумента();
+ СлужебнаяИнформацияЗапроса,
+ URLДляЗагрузки);
Если Не ОтветСервиса.КодСостояния = Интеграция1СШтампСлужебныйКлиентСервер.КодСостоянияОжидание() Тогда
Результат.ЕстьОшибки = Истина;
@@ -259,17 +271,35 @@
#Область МетодыОбращенияКСервису
-// Возвращает результат создания задания в очереди сервиса.
+// Возвращает ссылку для загрузки файла в сервис.
//
// Параметры:
-// ПараметрыДобавленияШтампов - См. Интеграция1СШтампКлиентСервер.НовыеПараметрыДобавленияШтамповВДокумент
// СлужебнаяИнформацияЗапроса - См. СлужебнаяИнформацияЗапроса
//
// Возвращаемое значение:
// См. НовыйРезультатВыполненияЗапроса
//
+Функция СсылкаДляЗагрузки(Знач СлужебнаяИнформацияЗапроса)
+
+ ЗапросКСервису = ЗапросКСервисуСсылкаДляЗагрузки(СлужебнаяИнформацияЗапроса);
+ Результат = ВыполнитьЗапрос(ЗапросКСервису);
+
+ Возврат Результат;
+
+КонецФункции
+
+// Возвращает результат создания задания в очереди сервиса.
+//
+// Параметры:
+// ПараметрыДобавленияШтампов - См. Интеграция1СШтампКлиентСервер.НовыеПараметрыДобавленияШтамповВДокумент
+// СлужебнаяИнформацияЗапроса - См. СлужебнаяИнформацияЗапроса
+// URLДляЗагрузки - Строка - URL-адрес файла для загрузки
+//
+// Возвращаемое значение:
+// См. НовыйРезультатВыполненияЗапроса
+//
Функция РезультатВыполненияЗапросаСоздатьЗаданиеВСервисеНаУстановкуШтамповВДокумент(
- Знач ПараметрыДобавленияШтампов, Знач СлужебнаяИнформацияЗапроса)
+ Знач ПараметрыДобавленияШтампов, Знач СлужебнаяИнформацияЗапроса, URLДляЗагрузки)
ДвоичныеДанные = ДвоичныеДанныеАрхиваСФайламиДляШтампированияДокумента(ПараметрыДобавленияШтампов);
Результат = РезультатВыполненияПрикладныхПроверокПередОтправкойЗапроса(ДвоичныеДанные);
@@ -278,7 +308,7 @@
Возврат Результат;
КонецЕсли;
- ЗапросКСервису = ЗапросКСервисуДобавитьШтампыВДокумент(ДвоичныеДанные, СлужебнаяИнформацияЗапроса);
+ ЗапросКСервису = ЗапросКСервисуДобавитьШтампыВДокумент(URLДляЗагрузки, ДвоичныеДанные, СлужебнаяИнформацияЗапроса);
Результат = ВыполнитьЗапрос(ЗапросКСервису);
Возврат Результат;
@@ -327,12 +357,30 @@
#Область ВыполнениеЗапросов
-Функция ЗапросКСервисуДобавитьШтампыВДокумент(Знач ДвоичныеДанные, Знач СлужебнаяИнформацияЗапроса)
+Функция ЗапросКСервисуСсылкаДляЗагрузки(СлужебнаяИнформацияЗапроса)
ЗапросСервиса = НовыйЗапросСервиса();
- ЗапросСервиса.СтрокаЗапроса = АдресЗапросаДобавитьШтамп();
+ ЗапросСервиса.СтрокаЗапроса = "/v2/stamp";
ЗапросСервиса.ТипПередаваемогоКонтента = ТипИсходящегоКонтентаДанныеДокументаИШтампов();
ЗапросСервиса.Метод = "POST";
+ ЗапросСервиса.Наименование = НСтр(
+ "ru = 'Получение ссылки для загрузки файла'",
+ ОбщегоНазначения.КодОсновногоЯзыка());
+
+ ЗапросСервиса.ДопустимыеКодыСостояния.Добавить(
+ Интеграция1СШтампСлужебныйКлиентСервер.КодСостоянияРедиректаЗапроса());
+ УстановитьЗаголовкиЗапроса(ЗапросСервиса, СлужебнаяИнформацияЗапроса);
+
+ Возврат ЗапросСервиса;
+
+КонецФункции
+
+Функция ЗапросКСервисуДобавитьШтампыВДокумент(Знач URLДляЗагрузки, Знач ДвоичныеДанные, Знач СлужебнаяИнформацияЗапроса)
+
+ ЗапросСервиса = НовыйЗапросСервиса();
+ ЗапросСервиса.СтрокаЗапроса = URLДляЗагрузки;
+ ЗапросСервиса.ТипПередаваемогоКонтента = ТипИсходящегоКонтентаДанныеДокументаИШтампов();
+ ЗапросСервиса.Метод = "PUT";
ЗапросСервиса.Данные = ДвоичныеДанные;
ЗапросСервиса.Наименование = НСтр(
"ru = 'Добавление штампов в документ в сервисе 1С:Штамп'",
@@ -428,6 +476,7 @@
ОбщегоНазначения.КодОсновногоЯзыка());
РезультатВыполнения.ТекстОшибки = ЗафиксироватьОшибкуВЗапросе(ПараметрыСоединения, ЗапросСервиса, ТекстОшибки);
РезультатВыполнения.КодСостояния = Интеграция1СШтампСлужебныйКлиентСервер.КодСостоянияСервисНеОтвечает();
+ РезультатВыполнения.Отказ = Истина;
Возврат РезультатВыполнения;
КонецПопытки;
@@ -464,6 +513,7 @@
ПодробноеОписаниеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
РезультатВыполнения.ТекстОшибки = ЗафиксироватьОшибкуВЗапросе(Соединение, ЗапросСервиса, ПодробноеОписаниеОшибки, Отказ);
РезультатВыполнения.КодСостояния = Интеграция1СШтампСлужебныйКлиентСервер.КодСостоянияСервисНеОтвечает();
+ РезультатВыполнения.Отказ = Истина;
Возврат РезультатВыполнения;
КонецПопытки;
@@ -476,6 +526,7 @@
Если Отказ Тогда
РезультатВыполнения.ТекстОшибки = ЗафиксироватьОшибкуВЗапросе(ПараметрыСоединения, ЗапросСервиса, РезультатВыполнения.ТекстОшибки);
+ РезультатВыполнения.Отказ = Истина;
Возврат РезультатВыполнения;
КонецЕсли;
@@ -1130,6 +1181,7 @@
Результат.Вставить("URLРедиректа" , "");
Результат.Вставить("Интервал" , 0);
Результат.Вставить("ТекстОшибки" , "");
+ Результат.Вставить("Отказ" , Ложь);
Возврат Результат;
@@ -1207,12 +1259,6 @@
КонецФункции
-Функция АдресЗапросаДобавитьШтамп()
-
- Возврат "stamp";
-
-КонецФункции
-
#КонецОбласти
#Область Словарь
diff --git a/src/CommonModules/Интеграция1СШтампСлужебныйКлиентСервер/Ext/Module.bsl b/src/CommonModules/Интеграция1СШтампСлужебныйКлиентСервер/Ext/Module.bsl
index 8044d43a6..94545f619 100644
--- a/src/CommonModules/Интеграция1СШтампСлужебныйКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/Интеграция1СШтампСлужебныйКлиентСервер/Ext/Module.bsl
@@ -233,7 +233,7 @@
//
Функция ЗначениеИнтервалаПовторногоОбращенияКСервисуПоУмолчанию() Экспорт
- Возврат 1;
+ Возврат 0;
КонецФункции
diff --git a/src/CommonModules/ИнтеграцияShare/Ext/Module.bsl b/src/CommonModules/ИнтеграцияShare/Ext/Module.bsl
index 81555d2eb..99655befb 100644
--- a/src/CommonModules/ИнтеграцияShare/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияShare/Ext/Module.bsl
@@ -502,6 +502,21 @@
#КонецОбласти
+#Область ИнтеграцияПодсистемБСП
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОпубликованныеДанныеДокумента", Истина);
+ Методы.Вставить("ДанныеЭлектронногоДокументаПоИдентификатору", Истина);
+ Методы.Вставить("ЗагрузитьЭлектронныйДокументВОбъектУчета", Истина);
+ Методы.Вставить("СоздатьВУчетеЭлектронныйДокумент", Истина);
+ Методы.Вставить("ДвоичныеДанныеФайлаПоВнешнейСсылке", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область ИнтеграцияСервиса
#Область ПубликацияДокумента
diff --git a/src/CommonModules/ИнтеграцияБРОЭДО/Ext/Module.bsl b/src/CommonModules/ИнтеграцияБРОЭДО/Ext/Module.bsl
index 6cff2807b..cbd394a84 100644
--- a/src/CommonModules/ИнтеграцияБРОЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияБРОЭДО/Ext/Module.bsl
@@ -1,5 +1,49 @@
#Область СлужебныйПрограммныйИнтерфейс
+#Область ВыгрузкаЭлектронныхДокументовДляФНС
+
+// Возвращает новую структуру для данных документа для выгрузки в ФНС.
+//
+// Возвращаемое значение:
+// Структура - Новая структура данные документа для выгрузки:
+// * ЭлектронныйДокумент - ДокументСсылка.ЭлектронныйДокументВходящийЭДО,ДокументСсылка.ЭлектронныйДокументИсходящийЭДО
+// * Организация - ОпределяемыйТип.Организация - организация электронного документа
+// * Контрагент - ОпределяемыйТип.КонтрагентБЭД - контрагент электронного документа
+// * НомерДокумента - Строка - номер электронного документа
+// * ДатаДокумента - Дата - дата электронного документа
+// * ТипРегламента - ПеречислениеСсылка.ТипыРегламентовЭДО - тип регламента электронного документа
+// * ТипДокумента - ПеречислениеСсылка.ТипыДокументовЭДО - тип электронного документа
+// * ТипДокументаНеПодходитДляВыгрузки - Булево - информация о возможности выгрузки документа для ФНС
+// * НаправлениеЭДО - ПеречислениеСсылка.НаправленияЭДО - направление сообщения электронного документа
+// * ТипЭлементаРегламента - ПеречислениеСсылка.ТипыЭлементовРегламентаЭДО - тип регламента электронного документа
+// * ТипДокументаЭДО - ПеречислениеСсылка.ТипыДокументовЭДО - тип документа сообщения электронного документа
+// * ФорматОсновногоТитула - Строка
+// * ИдентификаторКонтрагента - Строка
+//
+Функция НовыеДанныеДокументаДляВыгрузки() Экспорт
+
+ ДанныеДокументаДляВыгрузки = Новый Структура;
+
+ ДанныеДокументаДляВыгрузки.Вставить("ЭлектронныйДокумент");
+ ДанныеДокументаДляВыгрузки.Вставить("Организация", ИнтеграцияЭДО.ПустаяСсылкаОрганизации());
+ ДанныеДокументаДляВыгрузки.Вставить("Контрагент", ИнтеграцияЭДО.ПустаяСсылкаКонтрагента());
+ ДанныеДокументаДляВыгрузки.Вставить("НомерДокумента", "");
+ ДанныеДокументаДляВыгрузки.Вставить("ДатаДокумента", Дата(1, 1, 1));
+ ДанныеДокументаДляВыгрузки.Вставить("ТипРегламента", Перечисления.ТипыРегламентовЭДО.ПустаяСсылка());
+ ДанныеДокументаДляВыгрузки.Вставить("ТипДокумента", Перечисления.ТипыДокументовЭДО.ПустаяСсылка());
+ ДанныеДокументаДляВыгрузки.Вставить("ТипДокументаНеПодходитДляВыгрузки", Ложь);
+ ДанныеДокументаДляВыгрузки.Вставить("НаправлениеЭДО", Перечисления.НаправленияЭДО.ПустаяСсылка());
+ ДанныеДокументаДляВыгрузки.Вставить("ТипЭлементаРегламента", Перечисления.ТипыЭлементовРегламентаЭДО.ПустаяСсылка());
+ ДанныеДокументаДляВыгрузки.Вставить("ТипДокументаЭДО", Перечисления.ТипыДокументовЭДО.ПустаяСсылка());
+ ДанныеДокументаДляВыгрузки.Вставить("ФорматОсновногоТитула", "");
+ ДанныеДокументаДляВыгрузки.Вставить("ИдентификаторКонтрагента", "");
+
+ Возврат ДанныеДокументаДляВыгрузки;
+
+КонецФункции
+
+#КонецОбласти
+
// Проверяет необходимость переиздания указанного сертификата для использования в ЭДО.
//
// Параметры:
@@ -406,7 +450,12 @@
ДобавитьДокументВПакетСОшибкой(ПакетыДокументовДляВыгрузки, ДанныеДокумента.ЭлектронныйДокумент, ТекстОшибки);
Возврат;
КонецПопытки;
-
+
+ Если ТрансграничныйЭДО.ЭтоИностранныйОператор(ДанныеДокумента.ИдентификаторКонтрагента) Тогда
+ ПакетыДокументовДляВыгрузки.НеформализованныеPDF.Добавить(ДанныеДокумента);
+ Возврат;
+ КонецЕсли;
+
Если ДанныеДокумента.ТипРегламента = Перечисления.ТипыРегламентовЭДО.Неформализованный
И ЭлектронныеДокументыЭДО.ВозможнаВыгрузкаТолькоПоФормализованномуРегламенту(ДанныеДокумента.ТипДокумента) Тогда
@@ -416,8 +465,9 @@
СодержаниеСообщения = ЭлектронныеДокументыЭДО.СодержаниеСообщения(ОписаниеФайла);
Если ЗначениеЗаполнено(СодержаниеСообщения) Тогда
- ФорматыCML = ФорматыЭДО_CML.ПоддерживаемыеФорматы();
- Если СодержаниеСообщения.Формат = ФорматыCML.CML208 Или СодержаниеСообщения.Формат = ФорматыCML.CML402 Тогда
+ ПоддерживаемыеФорматы = ФорматыЭДО.ПоддерживаемыеФорматы();
+ Если СодержаниеСообщения.Формат = ПоддерживаемыеФорматы.CML208
+ Или СодержаниеСообщения.Формат = ПоддерживаемыеФорматы.CML402 Тогда
ШаблонОшибки =
НСтр("ru = 'В формате CML тип документа ""%1"" не предназначен для предоставления в ФНС.'");
ТекстОшибки = СтрШаблон(ШаблонОшибки, ДанныеДокумента.ТипДокумента);
@@ -668,6 +718,8 @@
ЗаполнитьЗначенияСвойств(ЭлементОписи, ДанныеДокумента);
ЗаполнитьНомерДатаОснованияВЭлементеОписи(ЭлементОписи, ДанныеОбъектовУчета, Документ);
+ ТрансграничныйЭДО.ДополнитьВыгрузкуДляФНС(ДанныеДокумента, ОписьВыгрузки, АдресКаталога, ЭлементОписи);
+
КонецЦикла;
Иначе
@@ -926,7 +978,7 @@
// * РазмерФайлаДанных - Число - Размер файла информации отправителя
// * ИмяФайлаПодписи - Строка - Наименование файла подписи информации отправителя
//
-Функция НоваяОписьВыгрузкиДокументыPDF()
+Функция НоваяОписьВыгрузкиДокументыPDF() Экспорт
ТаблицаОписи = Новый ТаблицаЗначений;
@@ -1009,42 +1061,6 @@
КонецФункции
-// Возвращает новую структуру для данных документа для выгрузки в ФНС.
-//
-// Возвращаемое значение:
-// Структура - Новая структура данные документа для выгрузки:
-// * ЭлектронныйДокумент - ДокументСсылка.ЭлектронныйДокументВходящийЭДО,ДокументСсылка.ЭлектронныйДокументИсходящийЭДО
-// * Организация - ОпределяемыйТип.Организация - организация электронного документа
-// * Контрагент - ОпределяемыйТип.КонтрагентБЭД - контрагент электронного документа
-// * НомерДокумента - Строка - номер электронного документа
-// * ДатаДокумента - Дата - дата электронного документа
-// * ТипРегламента - ПеречислениеСсылка.ТипыРегламентовЭДО - тип регламента электронного документа
-// * ТипДокумента - ПеречислениеСсылка.ТипыДокументовЭДО - тип электронного документа
-// * ТипДокументаНеПодходитДляВыгрузки - Булево - информация о возможности выгрузки документа для ФНС
-// * НаправлениеЭДО - ПеречислениеСсылка.НаправленияЭДО - направление сообщения электронного документа
-// * ТипЭлементаРегламента - ПеречислениеСсылка.ТипыЭлементовРегламентаЭДО - тип регламента электронного документа
-// * ТипДокументаЭДО - ПеречислениеСсылка.ТипыДокументовЭДО - тип документа сообщения электронного документа
-//
-Функция НовыеДанныеДокументаДляВыгрузки()
-
- ДанныеДокументаДляВыгрузки = Новый Структура;
-
- ДанныеДокументаДляВыгрузки.Вставить("ЭлектронныйДокумент");
- ДанныеДокументаДляВыгрузки.Вставить("Организация", ИнтеграцияЭДО.ПустаяСсылкаОрганизации());
- ДанныеДокументаДляВыгрузки.Вставить("Контрагент", ИнтеграцияЭДО.ПустаяСсылкаКонтрагента());
- ДанныеДокументаДляВыгрузки.Вставить("НомерДокумента", "");
- ДанныеДокументаДляВыгрузки.Вставить("ДатаДокумента", Дата(1, 1, 1));
- ДанныеДокументаДляВыгрузки.Вставить("ТипРегламента", Перечисления.ТипыРегламентовЭДО.ПустаяСсылка());
- ДанныеДокументаДляВыгрузки.Вставить("ТипДокумента", Перечисления.ТипыДокументовЭДО.ПустаяСсылка());
- ДанныеДокументаДляВыгрузки.Вставить("ТипДокументаНеПодходитДляВыгрузки", Ложь);
- ДанныеДокументаДляВыгрузки.Вставить("НаправлениеЭДО", Перечисления.НаправленияЭДО.ПустаяСсылка());
- ДанныеДокументаДляВыгрузки.Вставить("ТипЭлементаРегламента", Перечисления.ТипыЭлементовРегламентаЭДО.ПустаяСсылка());
- ДанныеДокументаДляВыгрузки.Вставить("ТипДокументаЭДО", Перечисления.ТипыДокументовЭДО.ПустаяСсылка());
-
- Возврат ДанныеДокументаДляВыгрузки;
-
-КонецФункции
-
// Возвращает новую структуру для необработанных документы.
//
// Возвращаемое значение:
@@ -1325,7 +1341,7 @@
КонецЕсли;
РаботаСФайламиБЭД.ЗаполнитьСвойствоXDTO(
- ЭлементДокумент, "ИмяФайлаПодписи", СтрокаОписи.ИмяФайлаПодписи, Истина, Ошибки);
+ ЭлементДокумент, "ИмяФайлаПодписи", СтрокаОписи.ИмяФайлаПодписи, Ложь, Ошибки);
ЭлементДанныеФайла = РаботаСФайламиБЭД.ПолучитьОбъектТипаCML("Файл.Документ.Файл", ПространствоИменСхемы);
diff --git a/src/CommonModules/ИнтеграцияБСПБЭД/Ext/Module.bsl b/src/CommonModules/ИнтеграцияБСПБЭД/Ext/Module.bsl
index 546d34c15..39a6351fc 100644
--- a/src/CommonModules/ИнтеграцияБСПБЭД/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияБСПБЭД/Ext/Module.bsl
@@ -885,8 +885,7 @@
КонецФункции
-
-#Область СервисМояПодпись
+#Область СервисыМобильногоПодписания
// Возвращает массив зарегистрированных сертификатов в сервисе ЭДО
// Параметры:
@@ -895,13 +894,14 @@
// * ИННФЛ - Строка - ИНН ФЛ
// * Организация - СправочникСсылка.Организации - Организация подписанта
// * НомерТелефона - Строка - Номер телефона подписанта
+// ВидМобильнойПодписи - ПеречислениеСсылка.ВидыМобильныхПодписей - Вид мобильной подписи
// Возвращаемое значение:
// Массив из СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//
-Функция ЗарегистрированныеВЭДОСертификаты(ПараметрыПодписанта) Экспорт
+Функция ЗарегистрированныеВЭДОСертификаты(ПараметрыПодписанта, ВидМобильнойПодписи) Экспорт
- Если Не ИнтеграцияБСПБЭДПовтИсп.ДоступноИспользованиеСервисаМояПодпись() Тогда
- ВызватьИсключение НСтр("ru='Сервис мобильной подписи не используется или не доступен'");
+ Если Не ДоступноИспользованиеСервисовМобильногоПодписания() Тогда
+ ВызватьИсключение НСтр("ru='Сервисы мобильного подписания не используются или не доступны'");
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
@@ -911,7 +911,8 @@
| СертификатыПодписантовМобильнойПодписи.Сертификат КАК Сертификат
|ИЗ
| РегистрСведений.СертификатыПодписантовМобильнойПодписиБЭД КАК СертификатыПодписантовМобильнойПодписи
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК СертификатыКлючейЭлектроннойПодписиИШифрования
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК
+ | СертификатыКлючейЭлектроннойПодписиИШифрования
| ПО СертификатыПодписантовМобильнойПодписи.Сертификат = СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СертификатыУчетныхЗаписейЭДО КАК СертификатыУчетныхЗаписейЭДО
| ПО СертификатыПодписантовМобильнойПодписи.Сертификат = СертификатыУчетныхЗаписейЭДО.Сертификат
@@ -921,7 +922,8 @@
| СертификатыКлючейЭлектроннойПодписиИШифрования.ДействителенДо >= &ДействителенДо
| И НЕ ПодписантыСервисаМобильнойПодписи.ПометкаУдаления
| И НЕ СертификатыКлючейЭлектроннойПодписиИШифрования.ПометкаУдаления
- | И &ОтборПодписанта";
+ | И &ОтборПодписанта
+ | И СертификатыПодписантовМобильнойПодписи.ВидМобильнойПодписи = &ВидМобильнойПодписи";
ТекстОтбораПодписанта = "ПодписантыСервисаМобильнойПодписи.ИНН = &ИНН
| И ПодписантыСервисаМобильнойПодписи.ИННФЛ = &ИННФЛ
@@ -938,14 +940,72 @@
Запрос.УстановитьПараметр("Организация", ПараметрыПодписанта.Организация);
Запрос.УстановитьПараметр("НомерТелефона", ПараметрыПодписанта.НомерТелефона);
+ Если ИнтеграцияБСПБЭДСлужебныйКлиентСервер.ВерсияБСППоддерживаетГосключ(
+ СтандартныеПодсистемыСервер.ВерсияБиблиотеки()) Тогда
+
+ Запрос.УстановитьПараметр("ВидМобильнойПодписи", ВидМобильнойПодписи);
+
+ КонецЕсли;
+
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Сертификат");
КонецФункции
-#КонецОбласти
+// Определяет доступно ли использование сервисов мобильного подписания
+// Возвращаемое значение:
+// Булево - доступно или не доступно
+//
+Функция ДоступноИспользованиеСервисовМобильногоПодписания() Экспорт
+
+ Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда
+ Возврат Ложь;
+ КонецЕсли;
+ Возврат ДоступноИспользованиеСервисаМояПодпись()
+ Или ДоступноИспользованиеСервисаГосключ();
+
+КонецФункции
+
+// Определяет доступно ли использование сервиса Моя подпись
+// Возвращаемое значение:
+// Булево - доступно или не доступно
+//
+Функция ДоступноИспользованиеСервисаМояПодпись() Экспорт
+
+ Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ МодульСервисМобильнойПодписи = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписи");
+
+ Возврат МодульСервисМобильнойПодписи.ИспользоватьСервисМобильнойПодписи();
+
+КонецФункции
+
+// Определяет доступно ли использование сервиса Госключ
+// Возвращаемое значение:
+// Булево - доступно или не доступно
+//
+Функция ДоступноИспользованиеСервисаГосключ() Экспорт
+
+ Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Если Не ИнтеграцияБСПБЭДСлужебныйКлиентСервер.ВерсияБСППоддерживаетГосключ(
+ СтандартныеПодсистемыСервер.ВерсияБиблиотеки()) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ МодульСервисМобильнойПодписи = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписи");
+
+ Возврат МодульСервисМобильнойПодписи.ИспользоватьГосключ();
+
+КонецФункции
+
+#КонецОбласти
#КонецОбласти
diff --git a/src/CommonModules/ИнтеграцияБСПБЭДВызовСервера/Ext/Module.bsl b/src/CommonModules/ИнтеграцияБСПБЭДВызовСервера/Ext/Module.bsl
index 84d98848a..f6120194e 100644
--- a/src/CommonModules/ИнтеграцияБСПБЭДВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияБСПБЭДВызовСервера/Ext/Module.bsl
@@ -189,7 +189,7 @@
КонецФункции
-#Область СервисМояПодпись
+#Область СервисыМобильногоПодписания
// Возвращает параметры подписанта
// Параметры:
@@ -211,26 +211,67 @@
//
Функция ПараметрыПодписантаМобильнойПодписи(Подписант) Экспорт
- Если Не ИнтеграцияБСПБЭДПовтИсп.ДоступноИспользованиеСервисаМояПодпись() Тогда
- ВызватьИсключение НСтр("ru='Сервис мобильной подписи не используется или не доступен'");
+ Если Не ИнтеграцияБСПБЭД.ДоступноИспользованиеСервисовМобильногоПодписания() Тогда
+ ВызватьИсключение НСтр("ru='Сервисы мобильного подписания не используются или не доступны'");
КонецЕсли;
+ ПараметрыПодписанта = Новый Структура;
+
МодульСервисМобильнойПодписиКлиентСервер =
ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписиКлиентСервер");
Если МодульСервисМобильнойПодписиКлиентСервер <> Неопределено Тогда
-
- ПараметрыПодписанта = МодульСервисМобильнойПодписиКлиентСервер.ПараметрыПодписанта();
-
- Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Подписант,
- "ИНН, НомерТелефона, ИННФЛ, ОГРН, Имя, Отчество, Фамилия, Должность, Организация, НаименованиеОрганизации, ФизическоеЛицо, Наименование");
- ЗаполнитьЗначенияСвойств(ПараметрыПодписанта, Реквизиты);
-
- Возврат ПараметрыПодписанта;
-
+ ПараметрыПодписанта = МодульСервисМобильнойПодписиКлиентСервер.ПараметрыПодписанта();
+
+ РеквизитыПодписанта = Новый Структура();
+
+ Если ИнтеграцияБСПБЭДСлужебныйКлиентСервер.ВерсияБСППоддерживаетГосключ(
+ СтандартныеПодсистемыСервер.ВерсияБиблиотеки()) Тогда
+
+ РеквизитыПодписанта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Подписант,
+ "Наименование,
+ |НомерТелефона,
+ |ИНН,
+ |ИННФЛ,
+ |СНИЛС,
+ |ОГРН,
+ |НомерЗаписиОбАккредитации,
+ |Фамилия,
+ |Имя,
+ |Отчество,
+ |НаименованиеОрганизации,
+ |Должность,
+ |Организация,
+ |ОтправленВСервис,
+ |ФизическоеЛицо,
+ |МояПодпись,
+ |ГосключУКЭП,
+ |ВидПодписанта");
+ Иначе
+
+ РеквизитыПодписанта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Подписант,
+ "Наименование,
+ |НомерТелефона,
+ |ИНН,
+ |ИННФЛ,
+ |ОГРН,
+ |Фамилия,
+ |Имя,
+ |Отчество,
+ |НаименованиеОрганизации,
+ |Должность,
+ |Организация,
+ |ФизическоеЛицо");
+
+ КонецЕсли;
+
+ ЗаполнитьЗначенияСвойств(ПараметрыПодписанта, РеквизитыПодписанта);
+
КонецЕсли;
+ Возврат ПараметрыПодписанта;
+
КонецФункции
#КонецОбласти
diff --git a/src/CommonModules/ИнтеграцияБСПБЭДПовтИсп/Ext/Module.bsl b/src/CommonModules/ИнтеграцияБСПБЭДПовтИсп/Ext/Module.bsl
index d6f8513d7..c51c159bf 100644
--- a/src/CommonModules/ИнтеграцияБСПБЭДПовтИсп/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияБСПБЭДПовтИсп/Ext/Module.bsl
@@ -37,24 +37,4 @@
КонецФункции
-#Область СервисМояПодпись
-
-// Определяет используется ли сервис "Моя подпись" ФНС
-// Возвращаемое значение:
-// Булево - доступно или не доступно
-//
-Функция ДоступноИспользованиеСервисаМояПодпись() Экспорт
-
- Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СервисМобильнойПодписи") Тогда
- Возврат Ложь;
- КонецЕсли;
-
- МодульСервисМобильнойПодписи = ОбщегоНазначения.ОбщийМодуль("СервисМобильнойПодписи");
-
- Возврат МодульСервисМобильнойПодписи.ИспользоватьСервисМобильнойПодписи();
-
-КонецФункции
-
-#КонецОбласти
-
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ИнтеграцияБСПБЭДСлужебныйКлиент/Ext/Module.bsl b/src/CommonModules/ИнтеграцияБСПБЭДСлужебныйКлиент/Ext/Module.bsl
index 3964989a4..3a93328f4 100644
--- a/src/CommonModules/ИнтеграцияБСПБЭДСлужебныйКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияБСПБЭДСлужебныйКлиент/Ext/Module.bsl
@@ -8,16 +8,38 @@
КонецПроцедуры
-#Область ПодписаниеВМобильномКлиентеЭДО
+#Область СервисыМобильногоПодписания
+// Подписывает данные в сервисах мобильного подписания
+//
+// Параметры:
+// ОписаниеОповещения - ОписаниеОповещения - Описание оповещения при завершении.
+// Контекст - Структура - структура с ключами:
+// * Подписант - СправочникСсылка.ПодписантыСервисаМобильнойПодписи - Подписант
+// * ПараметрыВыполнения - Структура -Параметры выполнения операции подписания:
+// ** Форма - ФормаКлиентскогоПриложения - Форма.
+// ПараметрыПодписания - Структура - Структура с ключами:
+// * ТипПодписи - Строка - Тип подписи.
+// * Доверенность - СправочникСсылка.МашиночитаемыеДоверенностиОрганизаций - Доверенность
+// * ПакетнаяОтправкаНаПодписание - Булево
+// * ТекущаяВерсияБСП - Строка - Текущая версия БСП
+// * ВидМобильнойПодписи - ПеречислениеСсылка.ВидыМобильныхПодписей - Вид мобильной подписи.
+//
Процедура ПодписатьДанныеВСервисеМобильнойПодписи(ОписаниеОповещения, Контекст, ПараметрыПодписания) Экспорт
- МодульСервисМобильнойПодписиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиКлиент");
-
- Если МодульСервисМобильнойПодписиКлиент <> Неопределено Тогда
- МодульСервисМобильнойПодписиКлиент.ПодписатьДанныеВСервисе(ОписаниеОповещения, Контекст, ПараметрыПодписания);
+ Если ИнтеграцияБСПБЭДСлужебныйКлиентСервер.ВерсияБСППоддерживаетГосключ(ПараметрыПодписания.ТекущаяВерсияБСП) Тогда
+ МодульСервисМобильнойПодписиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиСлужебныйКлиент");
+
+ Если МодульСервисМобильнойПодписиСлужебныйКлиент <> Неопределено Тогда
+ МодульСервисМобильнойПодписиСлужебныйКлиент.ПодписатьДанныеВСервисе(ОписаниеОповещения, Контекст, ПараметрыПодписания);
+ КонецЕсли;
+ Иначе
+ МодульСервисМобильнойПодписиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиКлиент");
+ Если МодульСервисМобильнойПодписиКлиент <> Неопределено Тогда
+ МодульСервисМобильнойПодписиКлиент.ПодписатьДанныеВСервисе(ОписаниеОповещения, Контекст, ПараметрыПодписания);
+ КонецЕсли;
КонецЕсли;
-
+
КонецПроцедуры
// Открывает форму выбора сертификата.
@@ -40,6 +62,33 @@
КонецПроцедуры
+// При открытии подписанта.
+//
+// Параметры:
+// Форма - ФормаКлиентскогоПриложения
+// Элемент - ПолеФормы
+// СтандартнаяОбработка - Булево
+//
+Процедура ПодписантПриОткрытии(Форма, Элемент, СтандартнаяОбработка) Экспорт
+
+ Если ИнтеграцияБСПБЭДСлужебныйКлиентСервер.ВерсияБСППоддерживаетГосключ(Форма.ТекущаяВерсияБСП) Тогда
+
+ МодульЭлектроннаяПодписьКлиентЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиентЛокализация");
+ Если МодульЭлектроннаяПодписьКлиентЛокализация <> Неопределено Тогда
+ МодульЭлектроннаяПодписьКлиентЛокализация.ПодписантПриОткрытии(Форма, Элемент, СтандартнаяОбработка);
+ КонецЕсли;
+
+ Иначе
+
+ МодульСервисМобильнойПодписиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисМобильнойПодписиКлиент");
+ Если МодульСервисМобильнойПодписиКлиент <> Неопределено Тогда
+ МодульСервисМобильнойПодписиКлиент.ПодписантПриОткрытии(ЭтотОбъект, Элемент, СтандартнаяОбработка);
+ КонецЕсли;
+
+ КонецЕсли;
+
+КонецПроцедуры
+
#КонецОбласти
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ИнтеграцияБСПБЭДСлужебныйКлиентСервер/Ext/Module.bsl b/src/CommonModules/ИнтеграцияБСПБЭДСлужебныйКлиентСервер/Ext/Module.bsl
index 934ae6052..7284eb03f 100644
--- a/src/CommonModules/ИнтеграцияБСПБЭДСлужебныйКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияБСПБЭДСлужебныйКлиентСервер/Ext/Module.bsl
@@ -21,4 +21,17 @@
Возврат Режимы;
КонецФункции
+// Сравнивает БСП с версией, в которой есть поддержка Госключа
+// Параметры:
+// ТекущаяВерсияБСП - Строка - Текущая версия БСП
+// Возвращаемое значение:
+// Булево - Поддерживает или нет
+//
+Функция ВерсияБСППоддерживаетГосключ(ТекущаяВерсияБСП) Экспорт
+
+ СравнениеВерсий = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ТекущаяВерсияБСП, "3.1.12.175");
+ Возврат СравнениеВерсий >=0;
+
+КонецФункции
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ИнтеграцияИСПереопределяемый/Ext/Module.bsl b/src/CommonModules/ИнтеграцияИСПереопределяемый/Ext/Module.bsl
index 3bd1ed3fc..9746b4cf0 100644
--- a/src/CommonModules/ИнтеграцияИСПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияИСПереопределяемый/Ext/Module.bsl
@@ -129,6 +129,19 @@
Новый Структура("Номенклатура", "ПроизвольнаяЕдиницаУчета"));
КонецЕсли;
+ Если КолонкиРеквизитов.Найти("МаркируемаяПродукция")<> Неопределено Тогда
+ ИмяОбработчика = "ЗаполнитьПризнакМаркируемаяПродукция";
+ Если ПараметрыСканирования<>Неопределено Тогда
+ Если ПараметрыСканирования.ЕГАИС И Не ПараметрыСканирования.ИСМП Тогда
+ ИмяОбработчика = "ЗаполнитьПризнакМаркируемаяПродукцияЕГАИС";
+ ИначеЕсли ПараметрыСканирования.ИСМП И Не ПараметрыСканирования.ЕГАИС Тогда
+ ИмяОбработчика = "ЗаполнитьПризнакМаркируемаяПродукцияГИСМТ";
+ КонецЕсли;
+ КонецЕсли;
+ ПараметрыЗаполненияРеквизитов.Вставить(ИмяОбработчика,
+ Новый Структура("Номенклатура", "МаркируемаяПродукция"));
+ КонецЕсли;
+
Если КолонкиРеквизитов.Найти("НоваяХарактеристикаИспользуется")<> Неопределено Тогда
Если ПараметрыЗаполненияРеквизитов.Свойство("ЗаполнитьПризнакХарактеристикиИспользуются") Тогда
ПараметрыЗаполненияРеквизитов.ЗаполнитьПризнакХарактеристикиИспользуются.Вставить(
diff --git a/src/CommonModules/ИнтеграцияИСУТ/Ext/Module.bsl b/src/CommonModules/ИнтеграцияИСУТ/Ext/Module.bsl
index 4e3eab3c0..b657ff14a 100644
--- a/src/CommonModules/ИнтеграцияИСУТ/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияИСУТ/Ext/Module.bsl
@@ -5404,7 +5404,8 @@
Форма.ЭтоМернаяЕдиницаИС = ДанныеНастройкиВидаУпаковки.МернаяЕдиница;
Если Не ЗначениеЗаполнено(Форма.ПотребительскаяУпаковкаИС)
- И Не ДанныеНастройкиВидаУпаковки.МернаяЕдиница Тогда
+ И Не ДанныеНастройкиВидаУпаковки.МернаяЕдиница
+ И Не Форма.ИмяФормы = "Справочник.НаборыУпаковок.Форма.ФормаЭлемента" Тогда
Форма.ПотребительскаяУпаковкаИС = Объект.ЕдиницаИзмерения;
КонецЕсли;
diff --git a/src/CommonModules/ИнтеграцияИСУТКлиентСервер/Ext/Module.bsl b/src/CommonModules/ИнтеграцияИСУТКлиентСервер/Ext/Module.bsl
index cd5112908..d69f15d3f 100644
--- a/src/CommonModules/ИнтеграцияИСУТКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияИСУТКлиентСервер/Ext/Module.bsl
@@ -1325,6 +1325,14 @@
КонецЕсли;
+ Реквизиты = Новый Структура("ДатаДокумента", ИсточникДанных.Дата);
+
+ Если ИсточникДанных.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОтгрузкаПринятыхСПравомПродажиТоваровСХранения") Тогда
+ Реквизиты.Вставить("Владелец", ИсточникДанных.Контрагент);
+ КонецЕсли;
+
+ ЗаполнитьЗначенияСвойств(ПараметрыСканирования, Реквизиты);
+
#КонецОбласти
КонецПроцедуры
@@ -1375,10 +1383,6 @@
Процедура ЗаполнитьПараметрыСканированияМобильноеРабочееМестоКладовщика(ПараметрыСканирования, Контекст, ВидПродукции)
- Если Не ЗначениеЗаполнено(ВидПродукции) Тогда
- ШтрихкодированиеИСКлиентСервер.ВключитьПоддержкуПрочейПродукции(ПараметрыСканирования);
- КонецЕсли;
-
#Область Метаданные
ПараметрыСканирования.ИмяТабличнойЧастиШтрихкодыУпаковок = "ШтрихкодыУпаковок";
@@ -1386,10 +1390,25 @@
#КонецОбласти
- ШтрихкодированиеОбщегоНазначенияЕГАИСКлиентСервер.ВключитьПоддержкуАлкогольнойПродукции(ПараметрыСканирования, ВидПродукции);
+ #Область ПоддержкаАлкогольнойПродукции
+ Если ШтрихкодированиеОбщегоНазначенияЕГАИСКлиентСервер.ВключитьПоддержкуАлкогольнойПродукции(ПараметрыСканирования, ВидПродукции) Тогда
+
+ ШтрихкодированиеОбщегоНазначенияЕГАИСКлиентСервер.ЗаполнитьБазовыеПараметрыСканирования(
+ ПараметрыСканирования, Контекст);
+
+ КонецЕсли;
+
+ #КонецОбласти
+
+ #Область ПоддержкаПродукцииИСМП
+
+ ШтрихкодированиеИСМПКлиентСервер.ЗаполнитьПараметрыСканированияДокументаОптовойОтгрузки(ПараметрыСканирования, ВидПродукции);
+
+ #КонецОбласти
+
ПараметрыСканирования.СопоставлятьНоменклатуру = Ложь;
- ПараметрыСканирования.СоздаватьШтрихкодУпаковки = Истина;
+ ПараметрыСканирования.СоздаватьШтрихкодУпаковки = Ложь;
КонецПроцедуры
@@ -1527,6 +1546,8 @@
#Область ПоддержкаПродукцииИСМП
+ Реквизиты = Новый Структура("ДатаДокумента", ИсточникДанных.Дата);
+
Если ЭтоРозничныйДокумент(Контекст) Тогда
Если ШтрихкодированиеИСМПКлиентСервер.ЗаполнитьПараметрыСканированияДокументаРозничногоВозврата(ПараметрыСканирования, ВидПродукции) Тогда
@@ -1537,10 +1558,10 @@
Иначе
ШтрихкодированиеИСМПКлиентСервер.ЗаполнитьПараметрыСканированияДокументаОптовогоВозврата(ПараметрыСканирования, ВидПродукции);
+ Реквизиты.Вставить("Владелец", ИсточникДанных.Контрагент);
КонецЕсли;
- Реквизиты = Новый Структура("ДатаДокумента", ИсточникДанных.Дата);
ЗаполнитьЗначенияСвойств(ПараметрыСканирования, Реквизиты);
#КонецОбласти
@@ -1570,13 +1591,19 @@
ПараметрыСканирования.СоздаватьШтрихкодУпаковки = Ложь;
- Реквизиты = Новый Структура("ДатаДокумента", ИсточникДанных.Дата);
+ Реквизиты = Новый Структура("ДатаДокумента, Владелец", ИсточникДанных.Дата, ИсточникДанных.Контрагент);
ЗаполнитьЗначенияСвойств(ПараметрыСканирования, Реквизиты);
КонецПроцедуры
Процедура ЗаполнитьПараметрыСканированияПриемкаТоваровНаХранение(ПараметрыСканирования, Контекст, ВидПродукции)
-
+
+ Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Контекст, "Объект") Тогда
+ ИсточникДанных = Контекст.Объект;
+ Иначе
+ ИсточникДанных = Контекст;
+ КонецЕсли;
+
#Область Метаданные
ПараметрыСканирования.ИмяТабличнойЧастиШтрихкодыУпаковок = "ШтрихкодыУпаковок";
@@ -1592,10 +1619,19 @@
ПараметрыСканирования.СоздаватьШтрихкодУпаковки = Ложь;
+ Реквизиты = Новый Структура("ДатаДокумента, Владелец", ИсточникДанных.Дата, ИсточникДанных.Контрагент);
+ ЗаполнитьЗначенияСвойств(ПараметрыСканирования, Реквизиты);
+
КонецПроцедуры
Процедура ЗаполнитьПараметрыСканированияПоступлениеТоваровОтКлиента(ПараметрыСканирования, Контекст, ВидПродукции)
-
+
+ Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Контекст, "Объект") Тогда
+ ИсточникДанных = Контекст.Объект;
+ Иначе
+ ИсточникДанных = Контекст;
+ КонецЕсли;
+
#Область Метаданные
ПараметрыСканирования.ИмяТабличнойЧастиШтрихкодыУпаковок = "ШтрихкодыУпаковок";
@@ -1611,10 +1647,19 @@
ПараметрыСканирования.СоздаватьШтрихкодУпаковки = Ложь;
+ Реквизиты = Новый Структура("ДатаДокумента, Владелец", ИсточникДанных.Дата, ИсточникДанных.Контрагент);
+ ЗаполнитьЗначенияСвойств(ПараметрыСканирования, Реквизиты);
+
КонецПроцедуры
Процедура ЗаполнитьПараметрыСканированияПоступлениеТоваровОтХранителя(ПараметрыСканирования, Контекст, ВидПродукции)
-
+
+ Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Контекст, "Объект") Тогда
+ ИсточникДанных = Контекст.Объект;
+ Иначе
+ ИсточникДанных = Контекст;
+ КонецЕсли;
+
#Область Метаданные
ПараметрыСканирования.ИмяТабличнойЧастиШтрихкодыУпаковок = "ШтрихкодыУпаковок";
@@ -1640,6 +1685,14 @@
ПараметрыСканирования.СоздаватьШтрихкодУпаковки = Ложь;
+ Реквизиты = Новый Структура("ДатаДокумента", ИсточникДанных.Дата);
+
+ Если ИсточникДанных.ХозяйственнаяОперация <> ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратОтХранителя") Тогда
+ Реквизиты.Вставить("Владелец", ИсточникДанных.Контрагент);
+ КонецЕсли;
+
+ ЗаполнитьЗначенияСвойств(ПараметрыСканирования, Реквизиты);
+
КонецПроцедуры
Процедура ЗаполнитьПараметрыСканированияВозвратТоваровПоставщику(ПараметрыСканирования, Контекст, ВидПродукции)
diff --git a/src/CommonModules/ИнтеграцияПодсистемБИП/Ext/Module.bsl b/src/CommonModules/ИнтеграцияПодсистемБИП/Ext/Module.bsl
index 98c16ae7f..bc1704db2 100644
--- a/src/CommonModules/ИнтеграцияПодсистемБИП/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияПодсистемБИП/Ext/Module.bsl
@@ -1212,7 +1212,7 @@
Если ИнтеграцияПодсистемБИППовтИсп.ПодпискиБСП().ПриЗагрузкеСтатусаОперацииb2b Тогда
МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриЗагрузкеСтатусаОперациииb2b(
+ МодульИнтеграцияПодсистемБСП.ПриЗагрузкеСтатусаОперацииb2b(
ДокументОперации,
НастройкаПодключения,
РезультатОбработки,
@@ -1704,7 +1704,7 @@
Процедура ПриЗаписиДанныхФискализацииЗаказа(ПараметрыФискализации) Экспорт
Если ИнтеграцияПодсистемБИППовтИсп.ПодпискиБСП().ПриЗаписиДанныхФискализацииЗаказа Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ПриЗаписиДанныхФискализацииЗаказа");
+ МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
МодульИнтеграцияПодсистемБСП.ПриЗаписиДанныхФискализацииЗаказа(ПараметрыФискализации);
КонецЕсли;
@@ -2027,35 +2027,6 @@
#КонецОбласти
-#Область Подключение1СТакском
-
-// См. Подключение1СТакскомПереопределяемый.ИспользоватьСервис1СТакском.
-//
-Процедура ИспользоватьСервис1СТакском(Отказ) Экспорт
-
- Если ИнтеграцияПодсистемБИППовтИсп.ПодпискиБСП().ИспользоватьСервис1СТакском Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ИспользоватьСервис1СТакском(
- Отказ);
- КонецЕсли;
-
-КонецПроцедуры
-
-// См. Подключение1СТакскомПереопределяемый.ЗаполнитьРегистрационныеДанныеОрганизации.
-//
-Процедура ЗаполнитьРегистрационныеДанныеОрганизации(Организация, ДанныеОрганизации) Экспорт
-
- Если ИнтеграцияПодсистемБИППовтИсп.ПодпискиБСП().ЗаполнитьРегистрационныеДанныеОрганизации Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ЗаполнитьРегистрационныеДанныеОрганизации(
- Организация,
- ДанныеОрганизации);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
#Область ПодключениеСервисовСопровождения
// См. ПодключениеСервисовСопровожденияПереопределяемый.ПриОпределенииСервисовСопровождения.
@@ -2231,7 +2202,7 @@
#Область ПоставляемыеНастройки
-// См. ПоставляемыеНастройкиСервер.ПриДобавленииНастроек.
+// См. ПоставляемыеНастройкиПереопределяемый.ПриДобавленииНастроек.
//
Процедура ПриДобавленииНастроек(Настройки) Экспорт
@@ -3039,6 +3010,20 @@
#КонецОбласти
+#Область НастройкиПлатежныхСистем
+
+// См. НастройкиПлатежныхСистемПереопределяемый.ПриОпределенииДанныхКассовыхСсылок
+Процедура ПриОпределенииДанныхКассовыхСсылокПлатежныеСистемы(ДанныеКассовыхСсылок, НастройкаПодключения) Экспорт
+
+ Если ИнтеграцияПодсистемБИППовтИсп.ПодпискиБСП().ПриОпределенииДанныхКассовыхСсылокПлатежныеСистемы Тогда
+ МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
+ МодульИнтеграцияПодсистемБСП.ПриОпределенииДанныхКассовыхСсылокПлатежныеСистемы(ДанныеКассовыхСсылок, НастройкаПодключения);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область ПлатежныеСистемы
#Область БазоваяФункциональность
@@ -3125,6 +3110,26 @@
КонецПроцедуры
+// См. ПлатежныеСистемыПереопределяемый.ПриЗагрузкеСтатусаОперации
+//
+Процедура ПриЗагрузкеСтатусаОперацииПлатежныхСистем(
+ ДокументОперации,
+ НастройкаПодключения,
+ ПлатежнаяСистема,
+ РезультатОбработки,
+ Обработан) Экспорт
+
+ Если ИнтеграцияПодсистемБИППовтИсп.ПодпискиБСП().ПриЗагрузкеСтатусаОперацииПлатежныхСистем Тогда
+ МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
+ МодульИнтеграцияПодсистемБСП.ПриЗагрузкеСтатусаОперацииПлатежныхСистем(
+ ДокументОперации,
+ НастройкаПодключения,
+ РезультатОбработки,
+ Обработан);
+ КонецЕсли;
+
+КонецПроцедуры
+
#КонецОбласти
#Область ОзонПэй
@@ -3150,6 +3155,50 @@
#КонецОбласти
+#Область ЯндексПэй
+
+// См. ЯндексПэйПереопределяемый.ПриФормированииЗаказаНаОплату
+//
+Процедура ПриФормированииЗаказаНаОплатуЯндексПэй(
+ ДокументОперации,
+ ЗаказНаОплату,
+ НастройкаПодключения,
+ ДополнительныеПараметры) Экспорт
+
+ Если ИнтеграцияПодсистемБИППовтИсп.ПодпискиБСП().ПриФормированииЗаказаНаОплатуЯндексПэй Тогда
+ МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
+ МодульИнтеграцияПодсистемБСП.ПриФормированииЗаказаНаОплатуЯндексПэй(
+ ДокументОперации,
+ ЗаказНаОплату,
+ НастройкаПодключения,
+ ДополнительныеПараметры);
+ КонецЕсли;
+
+КонецПроцедуры
+
+// См. ЯндексПэйПереопределяемый.ПриФормированииЗаказаНаВозврат
+//
+Процедура ПриФормированииЗаказаНаВозвратЯндексПэй(
+ ДокументОперации,
+ ДокументОплаты,
+ ЗаказНаВозврат,
+ НастройкаПодключения,
+ ДополнительныеПараметры) Экспорт
+
+ Если ИнтеграцияПодсистемБИППовтИсп.ПодпискиБСП().ПриФормированииЗаказаНаВозвратЯндексПэй Тогда
+ МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
+ МодульИнтеграцияПодсистемБСП.ПриФормированииЗаказаНаВозвратЯндексПэй(
+ ДокументОперации,
+ ДокументОплаты,
+ ЗаказНаВозврат,
+ НастройкаПодключения,
+ ДополнительныеПараметры);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#КонецОбласти
@@ -3362,16 +3411,24 @@
События.Вставить("ПриЗагрузкеСтатусаОперацииЭквайринг", Ложь);
События.Вставить("ПриОпределенииОрганизацииЭквайринг", Ложь);
+ // НастройкиПлатежныхСистем
+ События.Вставить("ПриОпределенииДанныхКассовыхСсылокПлатежныеСистемы", Ложь);
+
// Платежные системы
События.Вставить("ПриОпределенииНастроекПодключенияКПлатежнойСистеме", Ложь);
События.Вставить("ПриНастройкеЭлементовФормыПодключенияКПлатежнойСистеме", Ложь);
События.Вставить("ПриЗаполненииФормыНастройкиПодключенияКПлатежнойСистеме", Ложь);
События.Вставить("ПриЗаписиНастроекПодключенияКПлатежнойСистеме", Ложь);
События.Вставить("ПриОпределенииОрганизацииПлатежныхСистем", Ложь);
+ События.Вставить("ПриЗагрузкеСтатусаОперацииПлатежныхСистем", Ложь);
// Платежная система Озон Пэй
События.Вставить("ПриФормированииЗаказаНаВозвратОзонПэй", Ложь);
+ // Платежная система Яндекс Пэй
+ События.Вставить("ПриФормированииЗаказаНаОплатуЯндексПэй", Ложь);
+ События.Вставить("ПриФормированииЗаказаНаВозвратЯндексПэй", Ложь);
+
Возврат События;
КонецФункции
@@ -3419,4 +3476,33 @@
КонецФункции
-#КонецОбласти
\ No newline at end of file
+#КонецОбласти
+
+#Область Подключение1СТакском
+
+// См. Подключение1СТакскомПереопределяемый.ИспользоватьСервис1СТакском.
+//
+Процедура ИспользоватьСервис1СТакском(Отказ) Экспорт
+
+ Если ИнтеграцияПодсистемБИППовтИсп.ПодпискиБСП().ИспользоватьСервис1СТакском Тогда
+ МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
+ МодульИнтеграцияПодсистемБСП.ИспользоватьСервис1СТакском(
+ Отказ);
+ КонецЕсли;
+
+КонецПроцедуры
+
+// См. Подключение1СТакскомПереопределяемый.ЗаполнитьРегистрационныеДанныеОрганизации.
+//
+Процедура ЗаполнитьРегистрационныеДанныеОрганизации(Организация, ДанныеОрганизации) Экспорт
+
+ Если ИнтеграцияПодсистемБИППовтИсп.ПодпискиБСП().ЗаполнитьРегистрационныеДанныеОрганизации Тогда
+ МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
+ МодульИнтеграцияПодсистемБСП.ЗаполнитьРегистрационныеДанныеОрганизации(
+ Организация,
+ ДанныеОрганизации);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git a/src/CommonModules/ИнтеграцияПодсистемБИПКлиент/Ext/Module.bsl b/src/CommonModules/ИнтеграцияПодсистемБИПКлиент/Ext/Module.bsl
index 808720b50..9ebb0940a 100644
--- a/src/CommonModules/ИнтеграцияПодсистемБИПКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияПодсистемБИПКлиент/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -37,7 +37,7 @@
// Варианты отчетов
Подписки.ПриОбработкеВыбораТабличногоДокумента = Истина;
Подписки.ПриОбработкеРасшифровки = Истина;
-
+
Подписки.ПослеНачалаРаботыСистемы = Истина;
КонецПроцедуры
@@ -943,6 +943,27 @@
#КонецОбласти
+#Область НастройкиПлатежныхСистем
+
+// См. НастройкиПлатежныхСистемКлиентПереопределяемый.ПриНастройкеКассовыхСсылок
+//
+Процедура ПриНастройкеКассовыхСсылокПлатежныхСистем(
+ ПараметрыНастройки,
+ ПараметрыОплаты,
+ ОповещениеПослеЗакрытияФормы) Экспорт
+
+ Если ИнтеграцияПодсистемБИПКлиентПовтИсп.ПодпискиБСП().ПриНастройкеКассовыхСсылокПлатежныхСистем Тогда
+ МодульИнтеграцияПодсистемБСПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБСПКлиент");
+ МодульИнтеграцияПодсистемБСПКлиент.ПриНастройкеКассовыхСсылокПлатежныхСистем(
+ ПараметрыНастройки,
+ ПараметрыОплаты,
+ ОповещениеПослеЗакрытияФормы);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -1033,6 +1054,9 @@
События.Вставить("РазрешенаРаботаСНовостямиТекущемуПользователю", Ложь);
События.Вставить("ПереопределитьВремяПодключенияОбработчиковНовостейПриСтартеПрограммы", Ложь);
+ // Настройки платежных систем
+ События.Вставить("ПриНастройкеКассовыхСсылокПлатежныхСистем", Ложь);
+
Возврат События;
КонецФункции
diff --git a/src/CommonModules/ИнтеграцияПодсистемБТС/Ext/Module.bsl b/src/CommonModules/ИнтеграцияПодсистемБТС/Ext/Module.bsl
index 5e610956d..47b103c47 100644
--- a/src/CommonModules/ИнтеграцияПодсистемБТС/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияПодсистемБТС/Ext/Module.bsl
@@ -211,9 +211,7 @@
КонецЕсли;
МиграцияПриложений.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры);
-
ВыгрузкаЗагрузкаДанныхСлужебный.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры);
-
ВидыПриложенийСлужебный.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры);
КонецПроцедуры
@@ -231,16 +229,6 @@
КонецПроцедуры
-// См. РаботаВМоделиСервисаПереопределяемый.ПриЗаполненииИсключенийОчисткиДанныхИБ
-Процедура ПриЗаполненииИсключенийОчисткиДанныхИБ(ИсключенияОчистки) Экспорт
-
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриЗаполненииИсключенийОчисткиДанныхИБ Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриЗаполненииИсключенийОчисткиДанныхИБ(ИсключенияОчистки);
- КонецЕсли;
-
-КонецПроцедуры
-
#КонецОбласти
#Область ГрупповоеИзменениеОбъектов
@@ -534,40 +522,40 @@
#Область СлужебныйПрограммныйИнтерфейс
-// Определяет события, на которые могут подписаться другие библиотеки.
+// События, на которые могут подписаться другие библиотеки.
//
// Возвращаемое значение:
-// Структура - ключами свойств структуры являются имена событий, на которые могут быть подписаны библиотеки. Описание:
-// * ПередВыгрузкойДанных - Булево
-// * ПередЗагрузкойДанных - Булево
-// * ПослеВыгрузкиДанных - Булево
-// * ПослеЗагрузкиДанных - Булево
-// * ПослеЗагрузкиПользователейИнформационнойБазы - Булево
-// * ПослеЗагрузкиПользователяИнформационнойБазы - Булево
-// * ПриДобавленииОбработчиковОбновленияБТС - Булево
-// * ПриЗагрузкеПользователяИнформационнойБазы - Булево
-// * ПриЗаполненииИсключенийОчисткиДанныхИБ - Булево
-// * ПриЗаполненииТаблицыПараметровИБ - Булево
-// * ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки - Булево
-// * ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке - Булево
-// * ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке - Булево
-// * ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке - Булево
-// * ПриОбновленииПараметровТекущейОбластиДанных - Булево
-// * ПриОпределенииВерсииИнтерфейсаКорреспондента - Булево
-// * ПриОпределенииИсключенийНеразделенныхДанных - Булево
-// * ПриОпределенииИспользованияРегламентныхЗаданий - Булево
-// * ПриОпределенииОбработчиковКаналовСообщений - Булево
-// * ПриОпределенииОбработчиковОшибок - Булево
-// * ПриОпределенииОбработчиковПоставляемыхДанных - Булево
-// * ПриОпределенииПсевдонимаПользователя - Булево
-// * ПриОпределенииПсевдонимовОбработчиков - Булево
-// * ПриПолученииСпискаШаблонов - Булево
-// * ПриРегистрацииОбработчиковВыгрузкиДанных - Булево
-// * ПриРегистрацииОбработчиковЗагрузкиДанных - Булево
-// * ПриУстановкеЗначенийПараметровИБ - Булево
-// * ПриФормированииСпискаУслуг - Булево
-// * РегистрацияИнтерфейсовОтправляемыхСообщений - Булево
-// * РегистрацияИнтерфейсовПринимаемыхСообщений - Булево
+// Структура - имена событий, на которые могут быть подписаны библиотеки:
+// * ПриДобавленииОбработчиковОбновленияБТС - Булево
+// * ПриЗаполненииИсключенийОчисткиДанныхИБ - Булево
+// * ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке - Булево
+// * ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке - Булево
+// * ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке - Булево
+// * ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки - Булево
+// * ПриРегистрацииОбработчиковВыгрузкиДанных - Булево
+// * ПриРегистрацииОбработчиковЗагрузкиДанных - Булево
+// * ПередВыгрузкойДанных - Булево
+// * ПослеВыгрузкиДанных - Булево
+// * ПередЗагрузкойДанных - Булево
+// * ПослеЗагрузкиДанных - Булево
+// * ПриЗагрузкеПользователяИнформационнойБазы - Булево
+// * ПослеЗагрузкиПользователяИнформационнойБазы - Булево
+// * ПослеЗагрузкиПользователейИнформационнойБазы - Булево
+// * ПриЗаполненииТаблицыПараметровИБ - Булево
+// * ПриОпределенииПсевдонимаПользователя - Булево
+// * ПриОпределенииИсключенийНеразделенныхДанных - Булево
+// * ПриУстановкеЗначенийПараметровИБ - Булево
+// * ПриОбновленииПараметровТекущейОбластиДанных - Булево
+// * ПриОпределенииОбработчиковКаналовСообщений - Булево
+// * РегистрацияИнтерфейсовПринимаемыхСообщений - Булево
+// * РегистрацияИнтерфейсовОтправляемыхСообщений - Булево
+// * ПриОпределенииВерсииИнтерфейсаКорреспондента - Булево
+// * ПриПолученииСпискаШаблонов - Булево
+// * ПриОпределенииПсевдонимовОбработчиков - Булево
+// * ПриОпределенииОбработчиковОшибок - Булево
+// * ПриОпределенииИспользованияРегламентныхЗаданий - Булево
+// * ПриОпределенииОбработчиковПоставляемыхДанных - Булево
+// * ПриФормированииСпискаУслуг - Булево
Функция СобытияБТС() Экспорт
События = Новый Структура;
@@ -626,15 +614,42 @@
Процедура ПриДобавленииОбработчиковОбновленияБТС(Обработчики) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриДобавленииОбработчиковОбновленияБТС Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриДобавленииОбработчиковОбновленияБТС(Обработчики);
+ МодульИнтеграцияБСП().ПриДобавленииОбработчиковОбновленияБТС(Обработчики);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриДобавленииОбработчиковОбновленияБТС Тогда
+ МодульИнтеграцияБИП().ПриДобавленииОбработчиковОбновленияБТС(Обработчики);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриДобавленииОбработчиковОбновленияБТС Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриДобавленииОбработчиковОбновленияБТС(Обработчики);
+ МодульИнтеграцияПлюс().ПриДобавленииОбработчиковОбновленияБТС(Обработчики);
КонецЕсли;
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриДобавленииОбработчиковОбновленияБТС Тогда
+ МодульИнтеграцияБЭД().ПриДобавленииОбработчиковОбновленияБТС(Обработчики);
+ КонецЕсли;
+
+КонецПроцедуры
+
+// См. РаботаВМоделиСервисаПереопределяемый.ПриЗаполненииИсключенийОчисткиДанныхИБ
+Процедура ПриЗаполненииИсключенийОчисткиДанныхИБ(ИсключенияОчистки) Экспорт
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриЗаполненииИсключенийОчисткиДанныхИБ Тогда
+ МодульИнтеграцияБСП().ПриЗаполненииИсключенийОчисткиДанныхИБ(ИсключенияОчистки);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриЗаполненииИсключенийОчисткиДанныхИБ Тогда
+ МодульИнтеграцияБИП().ПриЗаполненииИсключенийОчисткиДанныхИБ(ИсключенияОчистки);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриЗаполненииИсключенийОчисткиДанныхИБ Тогда
+ МодульИнтеграцияПлюс().ПриЗаполненииИсключенийОчисткиДанныхИБ(ИсключенияОчистки);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриЗаполненииИсключенийОчисткиДанныхИБ Тогда
+ МодульИнтеграцияБЭД().ПриЗаполненииИсключенийОчисткиДанныхИБ(ИсключенияОчистки);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
@@ -646,18 +661,19 @@
Процедура ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы);
+ МодульИнтеграцияБСП().ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы);
+ МодульИнтеграцияБИП().ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы);
+ МодульИнтеграцияПлюс().ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке Тогда
+ МодульИнтеграцияБЭД().ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы);
КонецЕсли;
КонецПроцедуры
@@ -667,18 +683,19 @@
Процедура ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы);
+ МодульИнтеграцияБСП().ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы);
+ МодульИнтеграцияБИП().ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы);
+ МодульИнтеграцияПлюс().ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке Тогда
+ МодульИнтеграцияБЭД().ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы);
КонецЕсли;
КонецПроцедуры
@@ -688,18 +705,19 @@
Процедура ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы);
+ МодульИнтеграцияБСП().ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы);
+ МодульИнтеграцияБИП().ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы);
+ МодульИнтеграцияПлюс().ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке Тогда
+ МодульИнтеграцияБЭД().ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы);
КонецЕсли;
КонецПроцедуры
@@ -715,18 +733,19 @@
РазмерПриложений.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
+ МодульИнтеграцияБСП().ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
+ МодульИнтеграцияБИП().ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
+ МодульИнтеграцияПлюс().ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки Тогда
+ МодульИнтеграцияБЭД().ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
КонецЕсли;
КонецПроцедуры
@@ -736,18 +755,19 @@
Процедура ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриРегистрацииОбработчиковВыгрузкиДанных Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков);
+ МодульИнтеграцияБСП().ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриРегистрацииОбработчиковВыгрузкиДанных Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков);
+ МодульИнтеграцияБИП().ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриРегистрацииОбработчиковВыгрузкиДанных Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков);
+ МодульИнтеграцияПлюс().ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриРегистрацииОбработчиковВыгрузкиДанных Тогда
+ МодульИнтеграцияБЭД().ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков);
КонецЕсли;
КонецПроцедуры
@@ -757,18 +777,19 @@
Процедура ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриРегистрацииОбработчиковЗагрузкиДанных Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков);
+ МодульИнтеграцияБСП().ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриРегистрацииОбработчиковЗагрузкиДанных Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков);
+ МодульИнтеграцияБИП().ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриРегистрацииОбработчиковЗагрузкиДанных Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков);
+ МодульИнтеграцияПлюс().ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриРегистрацииОбработчиковЗагрузкиДанных Тогда
+ МодульИнтеграцияБЭД().ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков);
КонецЕсли;
КонецПроцедуры
@@ -778,18 +799,19 @@
Процедура ПередВыгрузкойДанных(Контейнер) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПередВыгрузкойДанных Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПередВыгрузкойДанных(Контейнер);
+ МодульИнтеграцияБСП().ПередВыгрузкойДанных(Контейнер);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПередВыгрузкойДанных Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПередВыгрузкойДанных(Контейнер);
+ МодульИнтеграцияБИП().ПередВыгрузкойДанных(Контейнер);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПередВыгрузкойДанных Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПередВыгрузкойДанных(Контейнер);
+ МодульИнтеграцияПлюс().ПередВыгрузкойДанных(Контейнер);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПередВыгрузкойДанных Тогда
+ МодульИнтеграцияБЭД().ПередВыгрузкойДанных(Контейнер);
КонецЕсли;
КонецПроцедуры
@@ -799,19 +821,19 @@
Процедура ПослеВыгрузкиДанных(Контейнер) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПослеВыгрузкиДанных Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- // @skip-warning МетодНеОбнаружен - особенность реализации подписок БСП.
- МодульИнтеграцияПодсистемБСП.ПослеВыгрузкиДанных(Контейнер);
+ МодульИнтеграцияБСП().ПослеВыгрузкиДанных(Контейнер);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПослеВыгрузкиДанных Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПослеВыгрузкиДанных(Контейнер);
+ МодульИнтеграцияБИП().ПослеВыгрузкиДанных(Контейнер);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПослеВыгрузкиДанных Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПослеВыгрузкиДанных(Контейнер);
+ МодульИнтеграцияПлюс().ПослеВыгрузкиДанных(Контейнер);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПослеВыгрузкиДанных Тогда
+ МодульИнтеграцияБЭД().ПослеВыгрузкиДанных(Контейнер);
КонецЕсли;
КонецПроцедуры
@@ -820,19 +842,20 @@
// Контейнер - см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПередЗагрузкойДанных.Контейнер
Процедура ПередЗагрузкойДанных(Контейнер) Экспорт
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПередВыгрузкойДанных Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПередЗагрузкойДанных(Контейнер);
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПередЗагрузкойДанных Тогда
+ МодульИнтеграцияБСП().ПередЗагрузкойДанных(Контейнер);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПередЗагрузкойДанных Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПередЗагрузкойДанных(Контейнер);
+ МодульИнтеграцияБИП().ПередЗагрузкойДанных(Контейнер);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПередЗагрузкойДанных Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПередЗагрузкойДанных(Контейнер);
+ МодульИнтеграцияПлюс().ПередЗагрузкойДанных(Контейнер);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПередЗагрузкойДанных Тогда
+ МодульИнтеграцияБЭД().ПередЗагрузкойДанных(Контейнер);
КонецЕсли;
КонецПроцедуры
@@ -844,18 +867,19 @@
РаботаВМоделиСервиса.ПослеЗагрузкиДанных(Контейнер);
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПослеЗагрузкиДанных Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПослеЗагрузкиДанных(Контейнер);
+ МодульИнтеграцияБСП().ПослеЗагрузкиДанных(Контейнер);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПослеЗагрузкиДанных Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПослеЗагрузкиДанных(Контейнер);
+ МодульИнтеграцияБИП().ПослеЗагрузкиДанных(Контейнер);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПослеЗагрузкиДанных Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПослеЗагрузкиДанных(Контейнер);
+ МодульИнтеграцияПлюс().ПослеЗагрузкиДанных(Контейнер);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПослеЗагрузкиДанных Тогда
+ МодульИнтеграцияБЭД().ПослеЗагрузкиДанных(Контейнер);
КонецЕсли;
КонецПроцедуры
@@ -869,18 +893,19 @@
ПользовательИБ, Отказ) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриЗагрузкеПользователяИнформационнойБазы Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриЗагрузкеПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ, Отказ);
+ МодульИнтеграцияБСП().ПриЗагрузкеПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ, Отказ);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриЗагрузкеПользователяИнформационнойБазы Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриЗагрузкеПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ, Отказ);
+ МодульИнтеграцияБИП().ПриЗагрузкеПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ, Отказ);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриЗагрузкеПользователяИнформационнойБазы Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриЗагрузкеПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ, Отказ);
+ МодульИнтеграцияПлюс().ПриЗагрузкеПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ, Отказ);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриЗагрузкеПользователяИнформационнойБазы Тогда
+ МодульИнтеграцияБЭД().ПриЗагрузкеПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ, Отказ);
КонецЕсли;
КонецПроцедуры
@@ -893,18 +918,19 @@
ПользовательИБ) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПослеЗагрузкиПользователяИнформационнойБазы Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПослеЗагрузкиПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ);
+ МодульИнтеграцияБСП().ПослеЗагрузкиПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПослеЗагрузкиПользователяИнформационнойБазы Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПослеЗагрузкиПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ);
+ МодульИнтеграцияБИП().ПослеЗагрузкиПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПослеЗагрузкиПользователяИнформационнойБазы Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПослеЗагрузкиПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ);
+ МодульИнтеграцияПлюс().ПослеЗагрузкиПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПослеЗагрузкиПользователяИнформационнойБазы Тогда
+ МодульИнтеграцияБЭД().ПослеЗагрузкиПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ);
КонецЕсли;
КонецПроцедуры
@@ -914,18 +940,19 @@
Процедура ПослеЗагрузкиПользователейИнформационнойБазы(Контейнер) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПослеЗагрузкиПользователейИнформационнойБазы Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПослеЗагрузкиПользователейИнформационнойБазы(Контейнер);
+ МодульИнтеграцияБСП().ПослеЗагрузкиПользователейИнформационнойБазы(Контейнер);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПослеЗагрузкиПользователейИнформационнойБазы Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПослеЗагрузкиПользователейИнформационнойБазы(Контейнер);
+ МодульИнтеграцияБИП().ПослеЗагрузкиПользователейИнформационнойБазы(Контейнер);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПослеЗагрузкиПользователейИнформационнойБазы Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПослеЗагрузкиПользователейИнформационнойБазы(Контейнер);
+ МодульИнтеграцияПлюс().ПослеЗагрузкиПользователейИнформационнойБазы(Контейнер);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПослеЗагрузкиПользователейИнформационнойБазы Тогда
+ МодульИнтеграцияБЭД().ПослеЗагрузкиПользователейИнформационнойБазы(Контейнер);
КонецЕсли;
КонецПроцедуры
@@ -951,18 +978,19 @@
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриЗаполненииТаблицыПараметровИБ Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров)
+ МодульИнтеграцияБСП().ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриЗаполненииТаблицыПараметровИБ Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров);
+ МодульИнтеграцияБИП().ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриЗаполненииТаблицыПараметровИБ Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров);
+ МодульИнтеграцияПлюс().ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриЗаполненииТаблицыПараметровИБ Тогда
+ МодульИнтеграцияБЭД().ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров);
КонецЕсли;
КонецПроцедуры
@@ -973,18 +1001,19 @@
Процедура ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриОпределенииПсевдонимаПользователя Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним)
+ МодульИнтеграцияБСП().ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриОпределенииПсевдонимаПользователя Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним);
+ МодульИнтеграцияБИП().ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриОпределенииПсевдонимаПользователя Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним);
+ МодульИнтеграцияПлюс().ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриОпределенииПсевдонимаПользователя Тогда
+ МодульИнтеграцияБЭД().ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним);
КонецЕсли;
КонецПроцедуры
@@ -1002,19 +1031,19 @@
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриОпределенииИсключенийНеразделенныхДанных Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- // @skip-warning МетодНеОбнаружен - особенность реализации подписок БСП.
- МодульИнтеграцияПодсистемБСП.ПриОпределенииИсключенийНеразделенныхДанных(Исключения);
+ МодульИнтеграцияБСП().ПриОпределенииИсключенийНеразделенныхДанных(Исключения);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриОпределенииИсключенийНеразделенныхДанных Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриОпределенииИсключенийНеразделенныхДанных(Исключения);
+ МодульИнтеграцияБИП().ПриОпределенииИсключенийНеразделенныхДанных(Исключения);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриОпределенииИсключенийНеразделенныхДанных Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриОпределенииИсключенийНеразделенныхДанных(Исключения);
+ МодульИнтеграцияПлюс().ПриОпределенииИсключенийНеразделенныхДанных(Исключения);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриОпределенииИсключенийНеразделенныхДанных Тогда
+ МодульИнтеграцияБЭД().ПриОпределенииИсключенийНеразделенныхДанных(Исключения);
КонецЕсли;
РаботаВМоделиСервиса.ПриОпределенииИсключенийНеразделенныхДанных(Исключения);
@@ -1035,19 +1064,19 @@
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриУстановкеЗначенийПараметровИБ Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- // @skip-warning МетодНеОбнаружен - особенность реализации подписок БСП.
- МодульИнтеграцияПодсистемБСП.ПриУстановкеЗначенийПараметровИБ(ЗначенияПараметров);
+ МодульИнтеграцияБСП().ПриУстановкеЗначенийПараметровИБ(ЗначенияПараметров);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриУстановкеЗначенийПараметровИБ Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриУстановкеЗначенийПараметровИБ(ЗначенияПараметров);
+ МодульИнтеграцияБИП().ПриУстановкеЗначенийПараметровИБ(ЗначенияПараметров);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриУстановкеЗначенийПараметровИБ Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриУстановкеЗначенийПараметровИБ(ЗначенияПараметров);
+ МодульИнтеграцияПлюс().ПриУстановкеЗначенийПараметровИБ(ЗначенияПараметров);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриУстановкеЗначенийПараметровИБ Тогда
+ МодульИнтеграцияБЭД().ПриУстановкеЗначенийПараметровИБ(ЗначенияПараметров);
КонецЕсли;
КонецПроцедуры
@@ -1056,19 +1085,19 @@
Процедура ПриОбновленииПараметровТекущейОбластиДанных() Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриОбновленииПараметровТекущейОбластиДанных Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- // @skip-warning МетодНеОбнаружен - особенность реализации подписок БСП.
- МодульИнтеграцияПодсистемБСП.ПриОбновленииПараметровТекущейОбластиДанных();
+ МодульИнтеграцияБСП().ПриОбновленииПараметровТекущейОбластиДанных();
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриОбновленииПараметровТекущейОбластиДанных Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриОбновленииПараметровТекущейОбластиДанных();
+ МодульИнтеграцияБИП().ПриОбновленииПараметровТекущейОбластиДанных();
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриОбновленииПараметровТекущейОбластиДанных Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриОбновленииПараметровТекущейОбластиДанных();
+ МодульИнтеграцияПлюс().ПриОбновленииПараметровТекущейОбластиДанных();
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриОбновленииПараметровТекущейОбластиДанных Тогда
+ МодульИнтеграцияБЭД().ПриОбновленииПараметровТекущейОбластиДанных();
КонецЕсли;
КонецПроцедуры
@@ -1077,12 +1106,29 @@
#Область РаботаВМоделиСервиса_ОбменСообщениями
-// @skip-warning ПустойМетод - особенность реализации.
-//
-// Параметры:
+// См. ОбменСообщениямиПереопределяемый.ПолучитьОбработчикиКаналовСообщений
+//
+// Параметры:
// Обработчики - см. ОбменСообщениямиПереопределяемый.ПолучитьОбработчикиКаналовСообщений.Обработчики
//
Процедура ПриОпределенииОбработчиковКаналовСообщений(Обработчики) Экспорт
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриОпределенииОбработчиковКаналовСообщений Тогда
+ МодульИнтеграцияБСП().ПриОпределенииОбработчиковКаналовСообщений(Обработчики);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриОпределенииОбработчиковКаналовСообщений Тогда
+ МодульИнтеграцияБИП().ПриОпределенииОбработчиковКаналовСообщений(Обработчики);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриОпределенииОбработчиковКаналовСообщений Тогда
+ МодульИнтеграцияПлюс().ПриОпределенииОбработчиковКаналовСообщений(Обработчики);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриОпределенииОбработчиковКаналовСообщений Тогда
+ МодульИнтеграцияБЭД().ПриОпределенииОбработчиковКаналовСообщений(Обработчики);
+ КонецЕсли;
+
КонецПроцедуры
// См. ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиПринимаемыхСообщений
@@ -1103,16 +1149,6 @@
КонецЕсли;
РезервноеКопированиеОбластейДанных.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков);
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().РегистрацияИнтерфейсовПринимаемыхСообщений Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков);
- КонецЕсли;
-
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().РегистрацияИнтерфейсовПринимаемыхСообщений Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков);
- КонецЕсли;
-
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.СводныеПриложения") Тогда
МодульСводныеПриложения = ОбщегоНазначения.ОбщийМодуль("СводныеПриложения");
МодульСводныеПриложения.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков);
@@ -1122,14 +1158,25 @@
МодульОповещениеПользователейБТС = ОбщегоНазначения.ОбщийМодуль("ОповещениеПользователейБТС");
МодульОповещениеПользователейБТС.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков);
КонецЕсли;
-
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().РегистрацияИнтерфейсовПринимаемыхСообщений Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков);
- КонецЕсли;
-
+
ВидыПриложенийСлужебный.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков);
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().РегистрацияИнтерфейсовПринимаемыхСообщений Тогда
+ МодульИнтеграцияБСП().РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().РегистрацияИнтерфейсовПринимаемыхСообщений Тогда
+ МодульИнтеграцияБИП().РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().РегистрацияИнтерфейсовПринимаемыхСообщений Тогда
+ МодульИнтеграцияПлюс().РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().РегистрацияИнтерфейсовПринимаемыхСообщений Тогда
+ МодульИнтеграцияБЭД().РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков);
+ КонецЕсли;
+
КонецПроцедуры
// См. ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиОтправляемыхСообщений
@@ -1144,28 +1191,29 @@
МодульТарификация.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
КонецЕсли;
РезервноеКопированиеОбластейДанных.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
-
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().РегистрацияИнтерфейсовОтправляемыхСообщений Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
- КонецЕсли;
-
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().РегистрацияИнтерфейсовОтправляемыхСообщений Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
- КонецЕсли;
-
+
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.СводныеПриложения") Тогда
МодульСводныеПриложения = ОбщегоНазначения.ОбщийМодуль("СводныеПриложения");
МодульСводныеПриложения.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
КонецЕсли;
+
+ ВидыПриложенийСлужебный.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().РегистрацияИнтерфейсовОтправляемыхСообщений Тогда
+ МодульИнтеграцияБСП().РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().РегистрацияИнтерфейсовОтправляемыхСообщений Тогда
+ МодульИнтеграцияБИП().РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
+ КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().РегистрацияИнтерфейсовОтправляемыхСообщений Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
+ МодульИнтеграцияПлюс().РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().РегистрацияИнтерфейсовОтправляемыхСообщений Тогда
+ МодульИнтеграцияБЭД().РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
КонецЕсли;
-
- ВидыПриложенийСлужебный.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков);
КонецПроцедуры
@@ -1173,27 +1221,29 @@
Процедура ПриОпределенииВерсииИнтерфейсаКорреспондента(Знач ИнтерфейсСообщения,
Знач ПараметрыПодключения, Знач ПредставлениеПолучателя, Результат) Экспорт
- ДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриОпределенииВерсииИнтерфейсаКорреспондента(ИнтерфейсСообщения, ПараметрыПодключения, ПредставлениеПолучателя, Результат);
+ ДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриОпределенииВерсииИнтерфейсаКорреспондента(
+ ИнтерфейсСообщения, ПараметрыПодключения, ПредставлениеПолучателя, Результат);
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриОпределенииВерсииИнтерфейсаКорреспондента Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- // @skip-warning МетодНеОбнаружен - особенность реализации подписок БСП.
- МодульИнтеграцияПодсистемБСП.ПриОпределенииВерсииИнтерфейсаКорреспондента(
+ МодульИнтеграцияБСП().ПриОпределенииВерсииИнтерфейсаКорреспондента(
ИнтерфейсСообщения, ПараметрыПодключения, ПредставлениеПолучателя, Результат);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриОпределенииВерсииИнтерфейсаКорреспондента Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриОпределенииВерсииИнтерфейсаКорреспондента(
+ МодульИнтеграцияБИП().ПриОпределенииВерсииИнтерфейсаКорреспондента(
ИнтерфейсСообщения, ПараметрыПодключения, ПредставлениеПолучателя, Результат);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриОпределенииВерсииИнтерфейсаКорреспондента Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриОпределенииВерсииИнтерфейсаКорреспондента(
+ МодульИнтеграцияПлюс().ПриОпределенииВерсииИнтерфейсаКорреспондента(
ИнтерфейсСообщения, ПараметрыПодключения, ПредставлениеПолучателя, Результат);
КонецЕсли;
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриОпределенииВерсииИнтерфейсаКорреспондента Тогда
+ МодульИнтеграцияБЭД().ПриОпределенииВерсииИнтерфейсаКорреспондента(
+ ИнтерфейсСообщения, ПараметрыПодключения, ПредставлениеПолучателя, Результат);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
@@ -1204,18 +1254,19 @@
Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриПолученииСпискаШаблонов Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриПолученииСпискаШаблонов(ШаблоныЗаданий);
+ МодульИнтеграцияБСП().ПриПолученииСпискаШаблонов(ШаблоныЗаданий);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриПолученииСпискаШаблонов Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриПолученииСпискаШаблонов(ШаблоныЗаданий);
+ МодульИнтеграцияБИП().ПриПолученииСпискаШаблонов(ШаблоныЗаданий);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриПолученииСпискаШаблонов Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриПолученииСпискаШаблонов(ШаблоныЗаданий);
+ МодульИнтеграцияПлюс().ПриПолученииСпискаШаблонов(ШаблоныЗаданий);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриПолученииСпискаШаблонов Тогда
+ МодульИнтеграцияБЭД().ПриПолученииСпискаШаблонов(ШаблоныЗаданий);
КонецЕсли;
КонецПроцедуры
@@ -1250,25 +1301,26 @@
ПоставляемыеДанные.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
РаботаВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
РезервноеКопированиеОбластейДанных.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
-
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриОпределенииПсевдонимовОбработчиков Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
- КонецЕсли;
-
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриОпределенииПсевдонимовОбработчиков Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
- КонецЕсли;
-
+
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.СводныеПриложения") Тогда
МодульСводныеПриложения = ОбщегоНазначения.ОбщийМодуль("СводныеПриложения");
МодульСводныеПриложения.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
КонецЕсли;
-
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриОпределенииПсевдонимовОбработчиков Тогда
+ МодульИнтеграцияБСП().ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриОпределенииПсевдонимовОбработчиков Тогда
+ МодульИнтеграцияБИП().ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
+ КонецЕсли;
+
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриОпределенииПсевдонимовОбработчиков Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
+ МодульИнтеграцияПлюс().ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриОпределенииПсевдонимовОбработчиков Тогда
+ МодульИнтеграцияБЭД().ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
КонецЕсли;
КонецПроцедуры
@@ -1279,19 +1331,19 @@
РезервноеКопированиеОбластейДанных.ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок);
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриОпределенииОбработчиковОшибок Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- // @skip-warning МетодНеОбнаружен - особенность реализации подписок БСП.
- МодульИнтеграцияПодсистемБСП.ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок);
+ МодульИнтеграцияБСП().ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриОпределенииОбработчиковОшибок Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок);
+ МодульИнтеграцияБИП().ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриОпределенииОбработчиковОшибок Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок);
+ МодульИнтеграцияПлюс().ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриОпределенииОбработчиковОшибок Тогда
+ МодульИнтеграцияБЭД().ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок);
КонецЕсли;
КонецПроцедуры
@@ -1307,18 +1359,19 @@
РаботаВМоделиСервиса.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования);
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриОпределенииИспользованияРегламентныхЗаданий Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования);
+ МодульИнтеграцияБСП().ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриОпределенииИспользованияРегламентныхЗаданий Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования);
+ МодульИнтеграцияБИП().ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриОпределенииИспользованияРегламентныхЗаданий Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования);
+ МодульИнтеграцияПлюс().ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриОпределенииИспользованияРегламентныхЗаданий Тогда
+ МодульИнтеграцияБЭД().ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования);
КонецЕсли;
КонецПроцедуры
@@ -1329,30 +1382,31 @@
// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных
Процедура ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики) Экспорт
-
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриОпределенииОбработчиковПоставляемыхДанных Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
- КонецЕсли;
-
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриОпределенииОбработчиковПоставляемыхДанных Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- МодульИнтеграцияПодсистемБСП.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
- КонецЕсли;
-
+
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ИнформационныйЦентр") Тогда
МодульИнформационныйЦентрСлужебный = ОбщегоНазначения.ОбщийМодуль("ИнформационныйЦентрСлужебный");
МодульИнформационныйЦентрСлужебный.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
КонецЕсли;
-
- Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриОпределенииОбработчиковПоставляемыхДанных Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
- КонецЕсли;
РасширенияВМоделиСервиса.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
РаботаВМоделиСервиса.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриОпределенииОбработчиковПоставляемыхДанных Тогда
+ МодульИнтеграцияБСП().ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриОпределенииОбработчиковПоставляемыхДанных Тогда
+ МодульИнтеграцияБИП().ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриОпределенииОбработчиковПоставляемыхДанных Тогда
+ МодульИнтеграцияПлюс().ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриОпределенииОбработчиковПоставляемыхДанных Тогда
+ МодульИнтеграцияБЭД().ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
@@ -1362,19 +1416,19 @@
Процедура ПриФормированииСпискаУслуг(ПоставщикиУслуг) Экспорт
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБСП().ПриФормированииСпискаУслуг Тогда
- МодульИнтеграцияПодсистемБСП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
- // @skip-warning МетодНеОбнаружен - особенность реализации подписок БСП.
- МодульИнтеграцияПодсистемБСП.ПриФормированииСпискаУслуг(ПоставщикиУслуг);
+ МодульИнтеграцияБСП().ПриФормированииСпискаУслуг(ПоставщикиУслуг);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБИП().ПриФормированииСпискаУслуг Тогда
- МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль(ИмяМодуляИнтеграцииБИП());
- МодульИнтеграцияПодсистемБИП.ПриФормированииСпискаУслуг(ПоставщикиУслуг);
+ МодульИнтеграцияБИП().ПриФормированииСпискаУслуг(ПоставщикиУслуг);
КонецЕсли;
Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиПлюс().ПриФормированииСпискаУслуг Тогда
- МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПлюс();
- МодульИнтеграцияПодсистемПлюс.ПриФормированииСпискаУслуг(ПоставщикиУслуг);
+ МодульИнтеграцияПлюс().ПриФормированииСпискаУслуг(ПоставщикиУслуг);
+ КонецЕсли;
+
+ Если ИнтеграцияПодсистемБТСПовтИсп.ПодпискиБЭД().ПриФормированииСпискаУслуг Тогда
+ МодульИнтеграцияБЭД().ПриФормированииСпискаУслуг(ПоставщикиУслуг);
КонецЕсли;
КонецПроцедуры
@@ -1437,15 +1491,31 @@
#Область СлужебныеПроцедурыИФункции
+Функция МодульИнтеграцияБСП()
+
+ //@skip-check bsl-legacy-check-string-literal
+ Возврат ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБСП");
+
+КонецФункции
+
+Функция МодульИнтеграцияБИП()
+
+ //@skip-check bsl-legacy-check-string-literal
+ Возврат ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
+
+КонецФункции
+
Функция МодульИнтеграцияПлюс()
+ //@skip-check bsl-legacy-check-string-literal
Возврат ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемПлюс");
КонецФункции
-Функция ИмяМодуляИнтеграцииБИП()
+Функция МодульИнтеграцияБЭД()
- Возврат "ИнтеграцияПодсистемБИП";
+ //@skip-check bsl-legacy-check-string-literal
+ Возврат ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБЭД");
КонецФункции
diff --git a/src/CommonModules/ИнтеграцияПодсистемБТСПовтИсп/Ext/Module.bsl b/src/CommonModules/ИнтеграцияПодсистемБТСПовтИсп/Ext/Module.bsl
index e121bf1c5..f2e462b2a 100644
--- a/src/CommonModules/ИнтеграцияПодсистемБТСПовтИсп/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияПодсистемБТСПовтИсп/Ext/Module.bsl
@@ -1,49 +1,11 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2019, ООО 1С-Софт
-// Все права защищены. Эта программа и сопроводительные материалы предоставляются
-// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
-// Текст лицензии доступен по ссылке:
-// https://creativecommons.org/licenses/by/4.0/legalcode
-///////////////////////////////////////////////////////////////////////////////////////////////////////
-// strict-types
+// strict-types
#Область СлужебныйПрограммныйИнтерфейс
-// Подписки БСП
+// Подписки БСП.
//
-// Возвращаемое значение:
-// Структура:
-// * ПередВыгрузкойДанных - Булево
-// * ПередЗагрузкойДанных - Булево
-// * ПослеВыгрузкиДанных - Булево
-// * ПослеЗагрузкиДанных - Булево
-// * ПослеЗагрузкиПользователейИнформационнойБазы - Булево
-// * ПослеЗагрузкиПользователяИнформационнойБазы - Булево
-// * ПриДобавленииОбработчиковОбновленияБТС - Булево
-// * ПриЗагрузкеПользователяИнформационнойБазы - Булево
-// * ПриЗаполненииИсключенийОчисткиДанныхИБ - Булево
-// * ПриЗаполненииТаблицыПараметровИБ - Булево
-// * ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки - Булево
-// * ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке - Булево
-// * ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке - Булево
-// * ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке - Булево
-// * ПриОбновленииПараметровТекущейОбластиДанных - Булево
-// * ПриОпределенииВерсииИнтерфейсаКорреспондента - Булево
-// * ПриОпределенииИсключенийНеразделенныхДанных - Булево
-// * ПриОпределенииИспользованияРегламентныхЗаданий - Булево
-// * ПриОпределенииОбработчиковКаналовСообщений - Булево
-// * ПриОпределенииОбработчиковОшибок - Булево
-// * ПриОпределенииОбработчиковПоставляемыхДанных - Булево
-// * ПриОпределенииПсевдонимаПользователя - Булево
-// * ПриОпределенииПсевдонимовОбработчиков - Булево
-// * ПриПолученииСпискаШаблонов - Булево
-// * ПриРегистрацииОбработчиковВыгрузкиДанных - Булево
-// * ПриРегистрацииОбработчиковЗагрузкиДанных - Булево
-// * ПриУстановкеЗначенийПараметровИБ - Булево
-// * ПриФормированииСпискаУслуг - Булево
-// * РегистрацияИнтерфейсовОтправляемыхСообщений - Булево
-// * РегистрацияИнтерфейсовПринимаемыхСообщений - Булево
-// (См. ИнтеграцияПодсистемБТС.СобытияБТС)
+// Возвращаемое значение:
+// См. ИнтеграцияПодсистемБТС.СобытияБТС
Функция ПодпискиБСП() Экспорт
Подписки = ИнтеграцияПодсистемБТС.СобытияБТС();
@@ -53,41 +15,10 @@
КонецФункции
-// Подписки БИП
+// Подписки БИП.
//
// Возвращаемое значение:
-// Структура:
-// * ПередВыгрузкойДанных - Булево
-// * ПередЗагрузкойДанных - Булево
-// * ПослеВыгрузкиДанных - Булево
-// * ПослеЗагрузкиДанных - Булево
-// * ПослеЗагрузкиПользователейИнформационнойБазы - Булево
-// * ПослеЗагрузкиПользователяИнформационнойБазы - Булево
-// * ПриДобавленииОбработчиковОбновленияБТС - Булево
-// * ПриЗагрузкеПользователяИнформационнойБазы - Булево
-// * ПриЗаполненииИсключенийОчисткиДанныхИБ - Булево
-// * ПриЗаполненииТаблицыПараметровИБ - Булево
-// * ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки - Булево
-// * ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке - Булево
-// * ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке - Булево
-// * ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке - Булево
-// * ПриОбновленииПараметровТекущейОбластиДанных - Булево
-// * ПриОпределенииВерсииИнтерфейсаКорреспондента - Булево
-// * ПриОпределенииИсключенийНеразделенныхДанных - Булево
-// * ПриОпределенииИспользованияРегламентныхЗаданий - Булево
-// * ПриОпределенииОбработчиковКаналовСообщений - Булево
-// * ПриОпределенииОбработчиковОшибок - Булево
-// * ПриОпределенииОбработчиковПоставляемыхДанных - Булево
-// * ПриОпределенииПсевдонимаПользователя - Булево
-// * ПриОпределенииПсевдонимовОбработчиков - Булево
-// * ПриПолученииСпискаШаблонов - Булево
-// * ПриРегистрацииОбработчиковВыгрузкиДанных - Булево
-// * ПриРегистрацииОбработчиковЗагрузкиДанных - Булево
-// * ПриУстановкеЗначенийПараметровИБ - Булево
-// * ПриФормированииСпискаУслуг - Булево
-// * РегистрацияИнтерфейсовОтправляемыхСообщений - Булево
-// * РегистрацияИнтерфейсовПринимаемыхСообщений - Булево
-// (См. ИнтеграцияПодсистемБТС.СобытияБТС)
+// См. ИнтеграцияПодсистемБТС.СобытияБТС
Функция ПодпискиБИП() Экспорт
Подписки = ИнтеграцияПодсистемБТС.СобытияБТС();
@@ -100,6 +31,10 @@
КонецФункции
+// Подписки Плюс.
+//
+// Возвращаемое значение:
+// См. ИнтеграцияПодсистемБТС.СобытияБТС
Функция ПодпискиПлюс() Экспорт
Подписки = ИнтеграцияПодсистемБТС.СобытияБТС();
@@ -112,4 +47,30 @@
КонецФункции
+// Подписки БЭД.
+//
+// Возвращаемое значение:
+// См. ИнтеграцияПодсистемБТС.СобытияБТС
+Функция ПодпискиБЭД() Экспорт
+
+ Подписки = ИнтеграцияПодсистемБТС.СобытияБТС();
+ Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие") Тогда
+ Если Метаданные.ОбщиеМодули.Найти("ОбновлениеИнформационнойБазыБЭД") = Неопределено Тогда
+ Возврат Подписки;
+ КонецЕсли;
+ МодульОбновлениеИнформационнойБазыБЭД = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыБЭД");
+ ВерсияБЭД = МодульОбновлениеИнформационнойБазыБЭД.ВерсияБиблиотеки();
+ Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБЭД, "1.9.16.1") >= 0 Тогда
+ Если Метаданные.ОбщиеМодули.Найти("ИнтеграцияПодсистемБЭД") = Неопределено Тогда
+ Возврат Подписки;
+ КонецЕсли;
+ МодульИнтеграцияПодсистемБЭД = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБЭД");
+ МодульИнтеграцияПодсистемБЭД.ПриОпределенииПодписокНаСобытияБТС(Подписки);
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат Подписки;
+
+КонецФункции
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ИнтеграцияПодсистемБЭД/Ext/Module.bsl b/src/CommonModules/ИнтеграцияПодсистемБЭД/Ext/Module.bsl
index 7d4a7b967..410a3c86f 100644
--- a/src/CommonModules/ИнтеграцияПодсистемБЭД/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияПодсистемБЭД/Ext/Module.bsl
@@ -19,6 +19,8 @@
Подписки.ПриПериодическомПолученииДанныхКлиентаНаСервере = Истина;
+ Подписки.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод = Истина;
+
КонецПроцедуры
// Обработка программных событий, возникающих в подсистемах БТС.
@@ -110,4 +112,19 @@
КонецПроцедуры
+// См. ИнтеграцияПодсистемБСП.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
+Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСБанками") Тогда
+ МодульОбменСБанкамиСлужебный = ОбщегоНазначения.ОбщийМодуль("ОбменСБанкамиСлужебный");
+ МодульОбменСБанкамиСлужебный.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
+ КонецЕсли;
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.СервисДоставки") Тогда
+ МодульСервисДоставки = ОбщегоНазначения.ОбщийМодуль("СервисДоставки");
+ МодульСервисДоставки.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
+ КонецЕсли;
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ИнтеграцияС1СДокументооборот3Клиент/Ext/Module.bsl b/src/CommonModules/ИнтеграцияС1СДокументооборот3Клиент/Ext/Module.bsl
index b8ea85efa..de26cf04e 100644
--- a/src/CommonModules/ИнтеграцияС1СДокументооборот3Клиент/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияС1СДокументооборот3Клиент/Ext/Module.bsl
@@ -2320,11 +2320,12 @@
Форма.ЕстьЭтапы = Истина;
Элементы.Участники.ТекущаяСтрока = СтрокаЭтап.ПолучитьИдентификатор();
- ПараметрыОповещения = НовыеПараметрыОповещенияИзмененияУчастников();
- ПараметрыОповещения.ТекущиеДанные = ТекущиеДанные;
- ПараметрыОповещения.ВидИзменения = ВидыИзмененийУчастниковДействия().ДобавлениеЭтапа;
+ ПараметрыОповещенияИзмененияУчастников = НовыеПараметрыОповещенияИзмененияУчастников();
+ ПараметрыОповещенияИзмененияУчастников.ТекущиеДанные = ТекущиеДанные;
+ ПараметрыОповещенияИзмененияУчастников.ВидИзменения = ВидыИзмененийУчастниковДействия().ДобавлениеЭтапа;
- Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещения, Форма.УникальныйИдентификатор);
+ Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещенияИзмененияУчастников,
+ Форма.УникальныйИдентификатор);
КонецПроцедуры
@@ -2699,11 +2700,12 @@
КонецЕсли;
- ПараметрыОповещения = НовыеПараметрыОповещенияИзмененияУчастников();
- ПараметрыОповещения.ТекущиеДанные = ТекущиеДанные;
- ПараметрыОповещения.ВидИзменения = ВидыИзмененийУчастниковДействия().ПеремещениеВверх;
+ ПараметрыОповещенияИзмененияУчастников = НовыеПараметрыОповещенияИзмененияУчастников();
+ ПараметрыОповещенияИзмененияУчастников.ТекущиеДанные = ТекущиеДанные;
+ ПараметрыОповещенияИзмененияУчастников.ВидИзменения = ВидыИзмененийУчастниковДействия().ПеремещениеВверх;
- Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещения, Форма.УникальныйИдентификатор);
+ Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещенияИзмененияУчастников,
+ Форма.УникальныйИдентификатор);
УчастникиДействияПриАктивизацииСтроки(Форма);
КонецПроцедуры
@@ -2764,11 +2766,11 @@
КонецЕсли;
- ПараметрыОповещения = НовыеПараметрыОповещенияИзмененияУчастников();
- ПараметрыОповещения.ТекущиеДанные = ТекущиеДанные;
- ПараметрыОповещения.ВидИзменения = ВидыИзмененийУчастниковДействия().ПеремещениеВниз;
+ ПараметрыОповещенияИзмененияУчастников = НовыеПараметрыОповещенияИзмененияУчастников();
+ ПараметрыОповещенияИзмененияУчастников.ТекущиеДанные = ТекущиеДанные;
+ ПараметрыОповещенияИзмененияУчастников.ВидИзменения = ВидыИзмененийУчастниковДействия().ПеремещениеВниз;
- Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещения, Форма.УникальныйИдентификатор);
+ Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещенияИзмененияУчастников, Форма.УникальныйИдентификатор);
УчастникиДействияПриАктивизацииСтроки(Форма);
КонецПроцедуры
@@ -2957,11 +2959,12 @@
ТекущиеДанные.ОсновнойОбъектАдресацииУчастник,
ТекущиеДанные.ДополнительныйОбъектАдресацииУчастник);
- ПараметрыОповещения = НовыеПараметрыОповещенияИзмененияУчастников();
- ПараметрыОповещения.ТекущиеДанные = ТекущиеДанные;
- ПараметрыОповещения.ВидИзменения = ВидыИзмененийУчастниковДействия().ИзменениеИсполнителя;
+ ПараметрыОповещенияИзмененияУчастников = НовыеПараметрыОповещенияИзмененияУчастников();
+ ПараметрыОповещенияИзмененияУчастников.ТекущиеДанные = ТекущиеДанные;
+ ПараметрыОповещенияИзмененияУчастников.ВидИзменения = ВидыИзмененийУчастниковДействия().ИзменениеИсполнителя;
- Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещения, ПараметрыОповещения.Форма.УникальныйИдентификатор);
+ Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещенияИзмененияУчастников,
+ ПараметрыОповещения.Форма.УникальныйИдентификатор);
ПараметрыОповещения.Форма.Модифицированность = Истина;
КонецПроцедуры
@@ -2995,11 +2998,11 @@
ТекущиеДанные.ОсновнойОбъектАдресацииУчастник,
ТекущиеДанные.ДополнительныйОбъектАдресацииУчастник);
- ПараметрыОповещения = НовыеПараметрыОповещенияИзмененияУчастников();
- ПараметрыОповещения.ТекущиеДанные = ТекущиеДанные;
- ПараметрыОповещения.ВидИзменения = ВидыИзмененийУчастниковДействия().ИзменениеИсполнителя;
+ ПараметрыОповещенияИзмененияУчастников = НовыеПараметрыОповещенияИзмененияУчастников();
+ ПараметрыОповещенияИзмененияУчастников.ТекущиеДанные = ТекущиеДанные;
+ ПараметрыОповещенияИзмененияУчастников.ВидИзменения = ВидыИзмененийУчастниковДействия().ИзменениеИсполнителя;
- Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещения, Форма.УникальныйИдентификатор);
+ Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещенияИзмененияУчастников, Форма.УникальныйИдентификатор);
КонецПроцедуры
@@ -3065,12 +3068,12 @@
ТекущиеДанные.ОсновнойОбъектАдресацииУчастник,
ТекущиеДанные.ДополнительныйОбъектАдресацииУчастник);
- ПараметрыОповещения = НовыеПараметрыОповещенияИзмененияУчастников();
- ПараметрыОповещения.ТекущиеДанные = ТекущиеДанные;
- ПараметрыОповещения.ВидИзменения = ВидыИзмененийУчастниковДействия().ИзменениеИсполнителя;
+ ПараметрыОповещенияИзмененияУчастников = НовыеПараметрыОповещенияИзмененияУчастников();
+ ПараметрыОповещенияИзмененияУчастников.ТекущиеДанные = ТекущиеДанные;
+ ПараметрыОповещенияИзмененияУчастников.ВидИзменения = ВидыИзмененийУчастниковДействия().ИзменениеИсполнителя;
Оповестить("ОбновитьПредставленияВДеревеУчастников",
- ПараметрыОповещения, Форма.УникальныйИдентификатор);
+ ПараметрыОповещенияИзмененияУчастников, Форма.УникальныйИдентификатор);
СтандартнаяОбработка = Истина;
КонецЕсли;
@@ -3102,11 +3105,12 @@
ТекущиеДанные.ОсновнойОбъектАдресацииУчастник,
ТекущиеДанные.ДополнительныйОбъектАдресацииУчастник);
- ПараметрыОповещения = НовыеПараметрыОповещенияИзмененияУчастников();
- ПараметрыОповещения.ТекущиеДанные = ТекущиеДанные;
- ПараметрыОповещения.ВидИзменения = ВидыИзмененийУчастниковДействия().ИзменениеИсполнителя;
+ ПараметрыОповещенияИзмененияУчастников = НовыеПараметрыОповещенияИзмененияУчастников();
+ ПараметрыОповещенияИзмененияУчастников.ТекущиеДанные = ТекущиеДанные;
+ ПараметрыОповещенияИзмененияУчастников.ВидИзменения = ВидыИзмененийУчастниковДействия().ИзменениеИсполнителя;
- Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещения, Форма.УникальныйИдентификатор);
+ Оповестить("ОбновитьПредставленияВДеревеУчастников", ПараметрыОповещенияИзмененияУчастников,
+ Форма.УникальныйИдентификатор);
Форма.Модифицированность = Истина;
КонецПроцедуры
diff --git a/src/CommonModules/ИнтеграцияСМаркетплейсамиКлиент/Ext/Module.bsl b/src/CommonModules/ИнтеграцияСМаркетплейсамиКлиент/Ext/Module.bsl
index 70ff3c0cb..269f70d45 100644
--- a/src/CommonModules/ИнтеграцияСМаркетплейсамиКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияСМаркетплейсамиКлиент/Ext/Module.bsl
@@ -1554,9 +1554,9 @@
Или ИмяЭлемента = "ТоварнаяКатегория" Тогда
НоменклатураКонтрагента = ПредопределенноеЗначение("Справочник.НоменклатураКонтрагентов.ПустаяСсылка");
- Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ВходящиеПараметры, "СопоставлениеНоменклатурыКонтрагентов")
- И ЗначениеЗаполнено(ВходящиеПараметры.СопоставлениеНоменклатурыКонтрагентов) Тогда
- НоменклатураКонтрагента = ВходящиеПараметры.СопоставлениеНоменклатурыКонтрагентов.НоменклатураКонтрагента;
+ Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ВходящиеПараметры, "НоменклатураКонтрагента")
+ И ЗначениеЗаполнено(ВходящиеПараметры.НоменклатураКонтрагента) Тогда
+ НоменклатураКонтрагента = ВходящиеПараметры.НоменклатураКонтрагента;
КонецЕсли;
ИнтеграцияСМаркетплейсамиКлиентСервер.ЗаполнитьРеквизитыНоменклатурыПоКатегорииСервиса(
@@ -2781,10 +2781,7 @@
НаборНоменклатурыКонтрагентов);
КонецЕсли;
- СопоставлениеНоменклатурыКонтрагентов = Новый Структура;
- СопоставлениеНоменклатурыКонтрагентов.Вставить("НоменклатураКонтрагента", НаборНоменклатурыКонтрагентов[0]);
-
- ДополнительныеПараметры.Вставить("СопоставлениеНоменклатурыКонтрагентов", СопоставлениеНоменклатурыКонтрагентов);
+ ДополнительныеПараметры.Вставить("НоменклатураКонтрагента", НаборНоменклатурыКонтрагентов[0]);
ДополнительныеПараметры.Вставить("ФайлОсновногоИзображения", Неопределено);
Возврат ДополнительныеПараметры;
diff --git a/src/CommonModules/ИнтеграцияСМаркетплейсамиСИ/Ext/Module.bsl b/src/CommonModules/ИнтеграцияСМаркетплейсамиСИ/Ext/Module.bsl
index 151139626..19fb76db7 100644
--- a/src/CommonModules/ИнтеграцияСМаркетплейсамиСИ/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияСМаркетплейсамиСИ/Ext/Module.bsl
@@ -35,10 +35,7 @@
КонецПроцедуры
-// При определении методов разрешенных для вызова как произвольный код.
-//
-// Параметры:
-// Методы - Соответствие из Булево - Методы
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить(ИнтеграцияСМаркетплейсамиСИКлиентСервер.МетодМенеджерДлительныхОпераций(), Истина);
@@ -62,7 +59,6 @@
Методы.Вставить(ИнтеграцияСМаркетплейсамиСИКлиентСервер.МетодВыгрузитьОстаткиТоваров(), Истина);
Методы.Вставить(ИнтеграцияСМаркетплейсамиСИКлиентСервер.МетодВыгрузитьПодготовленныеОстаткиТоваров(), Истина);
Методы.Вставить(ИнтеграцияСМаркетплейсамиСИКлиентСервер.МетодПодготовитьОстаткиТоваров(), Истина);
- Методы.Вставить(ИнтеграцияСМаркетплейсамиСИКлиентСервер.МетодПолучитьДанныеПользователяИТС(), Истина);
Методы.Вставить(ИнтеграцияСМаркетплейсамиСИКлиентСервер.МетодПолучитьПодключения(), Истина);
Методы.Вставить(ИнтеграцияСМаркетплейсамиСИКлиентСервер.МетодУстановитьПодключение(), Истина);
Методы.Вставить(ИнтеграцияСМаркетплейсамиСИКлиентСервер.МетодУдалитьПодключение(), Истина);
@@ -83,6 +79,21 @@
КонецПроцедуры
+// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод
+Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
+
+ ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
+ ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ИнтеграцияСМаркетплейсамиСИ";
+ ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьДлительнуюОперацию";
+ ИсключениеПроверки.ФрагментСодержания =
+ "ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетодаКонфигурации)";
+
+ Методы = Новый Соответствие;
+ ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы);
+ Настройки.ИсключенияКогдаУказанныйМетодНеВызывается.Вставить("ОбщийМодуль.ИнтеграцияСМаркетплейсамиСИ", Методы);
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
diff --git a/src/CommonModules/ИнтеграцияСМаркетплейсамиСервер/Ext/Module.bsl b/src/CommonModules/ИнтеграцияСМаркетплейсамиСервер/Ext/Module.bsl
index bc9006e52..114faf9b5 100644
--- a/src/CommonModules/ИнтеграцияСМаркетплейсамиСервер/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияСМаркетплейсамиСервер/Ext/Module.bsl
@@ -1535,14 +1535,14 @@
ВходящиеПараметры = Новый Структура;
ВходящиеПараметры.Вставить("УчетнаяЗапись", Справочники.УчетныеЗаписиМаркетплейсов.ПустаяСсылка());
ВходящиеПараметры.Вставить("ВидНоменклатуры", Справочники.ВидыНоменклатуры.ПустаяСсылка());
- ВходящиеПараметры.Вставить("СопоставлениеНоменклатурыКонтрагентов", Неопределено);
+ ВходящиеПараметры.Вставить("НоменклатураКонтрагента", Неопределено);
ЗаполнитьЗначенияСвойств(ВходящиеПараметры, Форма.Параметры);
ЗаполнитьЗначенияСвойств(ВходящиеПараметры, Форма.ПараметрыСоздания);
Если ЗначениеЗаполнено(ВходящиеПараметры.УчетнаяЗапись) Тогда
- Если ЗначениеЗаполнено(ВходящиеПараметры.СопоставлениеНоменклатурыКонтрагентов) Тогда
- НоменклатураКонтрагента = ВходящиеПараметры.СопоставлениеНоменклатурыКонтрагентов.НоменклатураКонтрагента;
+ Если ЗначениеЗаполнено(ВходящиеПараметры.НоменклатураКонтрагента) Тогда
+ НоменклатураКонтрагента = ВходящиеПараметры.НоменклатураКонтрагента;
Иначе
НоменклатураКонтрагента = Справочники.НоменклатураКонтрагентов.ПустаяСсылка();
КонецЕсли;
@@ -1810,6 +1810,13 @@
КонецПроцедуры
+// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод
+Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
+
+ ИнтеграцияСМаркетплейсамиСИ.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
+
+КонецПроцедуры
+
#КонецОбласти
#КонецОбласти
diff --git a/src/CommonModules/ИнтеграцияСМаркетплейсомOzonСервер/Ext/Module.bsl b/src/CommonModules/ИнтеграцияСМаркетплейсомOzonСервер/Ext/Module.bsl
index 2d2d481f9..e8d138875 100644
--- a/src/CommonModules/ИнтеграцияСМаркетплейсомOzonСервер/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияСМаркетплейсомOzonСервер/Ext/Module.bsl
@@ -20899,17 +20899,58 @@
Возврат "";
КонецЕсли;
- ТекущийТипТарифа = ИнформацияОТарификации["current_tariff_type"];
- ТекущийПроцентТарифа = ИнформацияОТарификации["current_tariff_rate"];
- ТекущаяСуммаТарифа = ИнформацияОТарификации["current_tariff_charge"];
- ТекущаяВалютаТарифа = ИнформацияОТарификации["current_tariff_charge_currency_code"];
+ ОжидаемыеПоля = Новый Соответствие;
+ ОжидаемыеПоля.Вставить("current_tariff_type", "");
+ ОжидаемыеПоля.Вставить("current_tariff_rate", 0);
+ ОжидаемыеПоля.Вставить("current_tariff_charge", Новый Соответствие);
+ ОжидаемыеПоля.Вставить("current_tariff_charge_currency_code", "");
- ДатаИзмененияТарифа = ИнформацияОТарификации["next_tariff_starts_at"];
+ ОжидаемыеПоля.Вставить("next_tariff_starts_at", Дата(1,1,1));
- СледующийТипТарифа = ИнформацияОТарификации["next_tariff_type"];
- СледующийПроцентТарифа = ИнформацияОТарификации["next_tariff_rate"];
- СледующаяСуммаТарифа = ИнформацияОТарификации["next_tariff_charge"];
- СледующаяВалютаТарифа = ИнформацияОТарификации["next_tariff_charge_currency_code"];
+ ОжидаемыеПоля.Вставить("next_tariff_type", "");
+ ОжидаемыеПоля.Вставить("next_tariff_rate", 0);
+ ОжидаемыеПоля.Вставить("next_tariff_charge", Новый Соответствие);
+ ОжидаемыеПоля.Вставить("next_tariff_charge_currency_code", "");
+
+ ПолучитьОжидаемыеЗначенияИзОтветаСервиса(ОжидаемыеПоля, ИнформацияОТарификации);
+
+ ТекущийТипТарифа = ОжидаемыеПоля["current_tariff_type"];
+ ТекущийПроцентТарифа = ОжидаемыеПоля["current_tariff_rate"];
+
+ ИнформацияОТекущейСкидкеНадбавке = ОжидаемыеПоля["current_tariff_charge"];
+ Если ТипЗнч(ИнформацияОТекущейСкидкеНадбавке) = Тип("Соответствие") Тогда
+ ОжидаемыеСвойства = Новый Соответствие;
+ ОжидаемыеСвойства.Вставить("amount", 0);
+ ОжидаемыеСвойства.Вставить("currency", "");
+
+ ПолучитьОжидаемыеЗначенияИзОтветаСервиса(ОжидаемыеСвойства, ИнформацияОТекущейСкидкеНадбавке);
+
+ ТекущаяСуммаТарифа = ОжидаемыеСвойства["amount"];
+ ТекущаяВалютаТарифа = ОжидаемыеСвойства["currency"];
+ Иначе
+ ТекущаяСуммаТарифа = ОжидаемыеПоля["current_tariff_charge"];
+ ТекущаяВалютаТарифа = ОжидаемыеПоля["current_tariff_charge_currency_code"];
+ КонецЕсли;
+
+ ДатаИзмененияТарифа = ОжидаемыеПоля["next_tariff_starts_at"];
+
+ СледующийТипТарифа = ОжидаемыеПоля["next_tariff_type"];
+ СледующийПроцентТарифа = ОжидаемыеПоля["next_tariff_rate"];
+
+ ИнформацияОСледующейСкидкеНадбавке = ОжидаемыеПоля["next_tariff_charge"];
+ Если ТипЗнч(ИнформацияОСледующейСкидкеНадбавке) = Тип("Соответствие") Тогда
+ ОжидаемыеСвойства = Новый Соответствие;
+ ОжидаемыеСвойства.Вставить("amount", 0);
+ ОжидаемыеСвойства.Вставить("currency", "");
+
+ ПолучитьОжидаемыеЗначенияИзОтветаСервиса(ОжидаемыеСвойства, ИнформацияОСледующейСкидкеНадбавке);
+
+ СледующаяСуммаТарифа = ОжидаемыеСвойства["amount"];
+ СледующаяВалютаТарифа = ОжидаемыеСвойства["currency"];
+ Иначе
+ СледующаяСуммаТарифа = ОжидаемыеПоля["next_tariff_charge"];
+ СледующаяВалютаТарифа = ОжидаемыеПоля["next_tariff_charge_currency_code"];
+ КонецЕсли;
ТекущийТипТарифаПредставление = ПредставлениеПоЗначению(ТекущийТипТарифа, "ТипТарифаОтгрузки");
СледующийТипТарифаПредставление = ПредставлениеПоЗначению(СледующийТипТарифа, "ТипТарифаОтгрузки");
@@ -39015,8 +39056,8 @@
СтрокаТаблицыЗначений.ДополнительныеСведения = СведенияОТарификацииОтправления(
ЭлементОтветаСервиса["tariffication"],
Перечисления.СтатусыЗаказовТорговыхПлощадок.ПолучитьПоПредставлению(
- СтрокаТаблицыЗначений.СтатусОтправления,
- СтрокаТаблицыЗначений.ПодстатусОтправления,
+ ЭлементОтветаСервиса["status"],
+ ЭлементОтветаСервиса["substatus"],
Перечисления.ВидыМаркетплейсов.МаркетплейсOzon));
СтрокаТаблицыЗначений.СписокДоступныхДействий =
diff --git a/src/CommonModules/ИнтеграцияСЭлектроннымиТорговымиПлощадками/Ext/Module.bsl b/src/CommonModules/ИнтеграцияСЭлектроннымиТорговымиПлощадками/Ext/Module.bsl
index c90e7fdd2..537b339c5 100644
--- a/src/CommonModules/ИнтеграцияСЭлектроннымиТорговымиПлощадками/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияСЭлектроннымиТорговымиПлощадками/Ext/Module.bsl
@@ -2031,6 +2031,23 @@
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПроверитьСвязьСЭТПБидзаарДляПоставщиков", Истина);
+ Методы.Вставить("ПроверитьСвязьСЭТПБидзаарДляПокупателей", Истина);
+ Методы.Вставить("ПубликацияТоваровИУслугБидзаар", Истина);
+ Методы.Вставить("ПубликацияЗапросаКоммерческихПредложенийБидзаар", Истина);
+ Методы.Вставить("ОбновлениеЗапросаКоммерческихПредложенийБидзаар", Истина);
+ Методы.Вставить("ПолучениеФайловКоммерческихПредложенийБидзаар", Истина);
+ Методы.Вставить("ЗапросТекущихСостоянийОпубликованныхДокументовБидзаар", Истина);
+ Методы.Вставить("ПолучениеДанныхКоммерческихПредложенийПоЗапросуБидзаар", Истина);
+ Методы.Вставить("ПолучениеДанныхУчастниковПоЗапросуБидзаар", Истина);
+ Методы.Вставить("ПодборКлючевыхСловДляЗапросаКоммерческихПредложенийБидзаар", Истина);
+ Методы.Вставить("КлючевыеСловаБидзаар", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
#КонецОбласти
diff --git a/src/CommonModules/ИнтеграцияСЭлектроннымиТорговымиПлощадкамиВызовСервера/Ext/Module.bsl b/src/CommonModules/ИнтеграцияСЭлектроннымиТорговымиПлощадкамиВызовСервера/Ext/Module.bsl
index c48f047a3..fed81386a 100644
--- a/src/CommonModules/ИнтеграцияСЭлектроннымиТорговымиПлощадкамиВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияСЭлектроннымиТорговымиПлощадкамиВызовСервера/Ext/Module.bsl
@@ -52,10 +52,8 @@
Если ПараметрыОперации.ВидЭТП = Перечисления.ВидыЭлектронныхТорговыхПлощадок.БидзаарПокупатели Тогда
ИспользоватьИнтеграцию = ПолучитьФункциональнуюОпцию("ИспользоватьИнтеграциюСЭТПБидзаарДляПокупателей");
- ИмяПроцедуры = "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПроверитьСвязьСЭТПБидзаарДляПокупателей";
ИначеЕсли ПараметрыОперации.ВидЭТП = Перечисления.ВидыЭлектронныхТорговыхПлощадок.БидзаарПоставщики Тогда
ИспользоватьИнтеграцию = ПолучитьФункциональнуюОпцию("ИспользоватьИнтеграциюСЭТПБидзаарДляПоставщиков");
- ИмяПроцедуры = "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПроверитьСвязьСЭТПБидзаарДляПоставщиков";
КонецЕсли;
Если Не ИспользоватьИнтеграцию Тогда
@@ -66,9 +64,19 @@
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Проверка связи с ЭТП Бидзаар'");
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
-
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыОперации, ПараметрыВыполнения);
-
+
+ Если ПараметрыОперации.ВидЭТП = Перечисления.ВидыЭлектронныхТорговыхПлощадок.БидзаарПокупатели Тогда
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПроверитьСвязьСЭТПБидзаарДляПокупателей",
+ ПараметрыОперации, ПараметрыВыполнения);
+ ИначеЕсли ПараметрыОперации.ВидЭТП = Перечисления.ВидыЭлектронныхТорговыхПлощадок.БидзаарПоставщики Тогда
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПроверитьСвязьСЭТПБидзаарДляПоставщиков",
+ ПараметрыОперации, ПараметрыВыполнения);
+ Иначе
+ Возврат Неопределено;
+ КонецЕсли;
+
КонецФункции
// Формирует фоновое задание, позволяющее опубликовать запрос коммерческих предложений
@@ -81,8 +89,6 @@
//
Функция ПубликацияЗапросаКоммерческихПредложенийБидзаарВФоне(Знач ЗапросКоммерческихПредложений, ПараметрыЗапроса) Экспорт
- ИмяПроцедуры = "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПубликацияЗапросаКоммерческихПредложенийБидзаар";
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Публикация запроса коммерческих предложений.'");
ПараметрыВыполнения.КлючФоновогоЗадания = XMLСтрока(ЗапросКоммерческихПредложений);
@@ -95,7 +101,9 @@
ПараметрыОперации.Вставить("ОтклонитьПредложения", ПараметрыЗапроса.ОтклонитьПредложения);
ПараметрыОперации.Вставить("ПодобратьКлючевыеСлова", ПараметрыЗапроса.ПодобратьКлючевыеСлова);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыОперации, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПубликацияЗапросаКоммерческихПредложенийБидзаар",
+ ПараметрыОперации, ПараметрыВыполнения);
КонецФункции
@@ -110,8 +118,6 @@
//
Функция ОбновлениеЗапросаКоммерческихПредложенийБидзаарВФоне(Знач ЗапросКоммерческихПредложений, ПараметрыЗапроса) Экспорт
- ИмяПроцедуры = "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ОбновлениеЗапросаКоммерческихПредложенийБидзаар";
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Публикация запроса коммерческих предложений.'");
ПараметрыВыполнения.КлючФоновогоЗадания = XMLСтрока(ЗапросКоммерческихПредложений);
@@ -124,7 +130,9 @@
ПараметрыОперации.Вставить("ОтклонитьПредложения", ПараметрыЗапроса.ОтклонитьПредложения);
ПараметрыОперации.Вставить("ПодобратьКлючевыеСлова", ПараметрыЗапроса.ПодобратьКлючевыеСлова);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыОперации, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ОбновлениеЗапросаКоммерческихПредложенийБидзаар",
+ ПараметрыОперации, ПараметрыВыполнения);
КонецФункции
@@ -150,20 +158,19 @@
Возврат Результат;
КонецЕсли;
- ИмяПроцедуры = "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ЗапросТекущихСостоянийОпубликованныхДокументовБидзаар";
-
ИдентификаторФормы = Новый УникальныйИдентификатор;
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Запрос текущих состояний опубликованных документов.'");
ПараметрыВыполнения.КлючФоновогоЗадания = Строка(ИдентификаторФормы);
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
-
+
ПараметрыОперации = Новый Структура;
ПараметрыОперации.Вставить("ОпубликованныеДокументы", ОпубликованныеДокументы);
ПараметрыОперации.Вставить("ТолькоПобедители", Истина);
- Результат.ДанныеДлительнойОперации = ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыОперации,
- ПараметрыВыполнения);
+ Результат.ДанныеДлительнойОперации = ДлительныеОперации.ВыполнитьВФоне(
+ "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ЗапросТекущихСостоянийОпубликованныхДокументовБидзаар",
+ ПараметрыОперации, ПараметрыВыполнения);
Возврат Результат;
@@ -179,8 +186,6 @@
//
Функция ПолучениеДанныхКоммерческихПредложенийПоЗапросуБидзаарВФоне(Знач ЗапросКоммерческихПредложений) Экспорт
- ИмяПроцедуры = "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПолучениеДанныхКоммерческихПредложенийПоЗапросуБидзаар";
-
ИдентификаторФормы = Новый УникальныйИдентификатор;
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Получение данных коммерческих предложений по запросу Бидзаар.'");
@@ -190,7 +195,9 @@
ПараметрыОперации = Новый Структура("ЗапросКоммерческихПредложений", ЗапросКоммерческихПредложений);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыОперации, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПолучениеДанныхКоммерческихПредложенийПоЗапросуБидзаар",
+ ПараметрыОперации, ПараметрыВыполнения);
КонецФункции
@@ -205,8 +212,6 @@
//
Функция ПолучениеДанныхУчастниковПоЗапросуБидзаарВФоне(Знач ЗапросКоммерческихПредложений, ТолькоПобедители) Экспорт
- ИмяПроцедуры = "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПолучениеДанныхУчастниковПоЗапросуБидзаар";
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Получение данных участников по запросу Бидзаар.'");
ПараметрыВыполнения.КлючФоновогоЗадания = XMLСтрока(ЗапросКоммерческихПредложений);
@@ -216,7 +221,9 @@
ПараметрыОперации = Новый Структура("ЗапросКоммерческихПредложений, ТолькоПобедители",
ЗапросКоммерческихПредложений, ТолькоПобедители);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыОперации, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПолучениеДанныхУчастниковПоЗапросуБидзаар",
+ ПараметрыОперации, ПараметрыВыполнения);
КонецФункции
@@ -230,8 +237,6 @@
//
Функция ПодборКлючевыхСловДляЗапросаКоммерческихПредложенийБидзаарВФоне(Знач ЗапросКоммерческихПредложений) Экспорт
- ИмяПроцедуры = "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПодборКлючевыхСловДляЗапросаКоммерческихПредложенийБидзаар";
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Подбор ключевых слов для запроса коммерческих предложений.'");
ПараметрыВыполнения.КлючФоновогоЗадания = XMLСтрока(ЗапросКоммерческихПредложений);
@@ -241,7 +246,9 @@
ПараметрыОперации = Новый Структура;
ПараметрыОперации.Вставить("ЗапросКоммерческихПредложений", ЗапросКоммерческихПредложений);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыОперации, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ИнтеграцияСЭлектроннымиТорговымиПлощадками.ПодборКлючевыхСловДляЗапросаКоммерческихПредложенийБидзаар",
+ ПараметрыОперации, ПараметрыВыполнения);
КонецФункции
@@ -257,8 +264,6 @@
//
Функция КлючевыеСловаБидзаарВФоне(Знач УчетнаяЗапись, Знач МенеджерEmail, Знач СтрокаПоиска = "") Экспорт
- ИмяПроцедуры = "ИнтеграцияСЭлектроннымиТорговымиПлощадками.КлючевыеСловаБидзаар";
-
ИдентификаторФормы = Новый УникальныйИдентификатор;
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Получение ключевых слов сервиса Бидзаары.'");
@@ -271,7 +276,8 @@
ПараметрыОперации.Вставить("МенеджерEmail", МенеджерEmail);
ПараметрыОперации.Вставить("СтрокаПоиска", СтрокаПоиска);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыОперации, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ИнтеграцияСЭлектроннымиТорговымиПлощадками.КлючевыеСловаБидзаар",
+ ПараметрыОперации, ПараметрыВыполнения);
КонецФункции
diff --git a/src/CommonModules/ИнтеграцияСЯндексМаркетСервер/Ext/Module.bsl b/src/CommonModules/ИнтеграцияСЯндексМаркетСервер/Ext/Module.bsl
index 0eb91ed90..6d39d9c32 100644
--- a/src/CommonModules/ИнтеграцияСЯндексМаркетСервер/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияСЯндексМаркетСервер/Ext/Module.bsl
@@ -1716,6 +1716,7 @@
ИначеЕсли СокращенияЕдИзмОбъем = "LTR" Тогда //л (дм3)
ОбъемЧислитель = ВыборкаДанных.ОбъемЧислитель;
ОбъемЗнаменатель = ВыборкаДанных.ОбъемЗнаменатель;
+ Объем = ОбъемЧислитель / ОбъемЗнаменатель;
ОбъемВСм3 = Объем*1000;
Высота = ОбъемВСм3 /(Длина*Ширина);
Иначе
diff --git a/src/CommonModules/ИнтеграцияЦентраЭДО/Ext/Module.bsl b/src/CommonModules/ИнтеграцияЦентраЭДО/Ext/Module.bsl
index 3ed88a7ba..45bb5003b 100644
--- a/src/CommonModules/ИнтеграцияЦентраЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияЦентраЭДО/Ext/Module.bsl
@@ -1682,4 +1682,12 @@
#КонецОбласти
-#КонецОбласти // СлужебныеПроцедурыИФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПолнаяСинхронизацияОбъектов", Истина);
+ Методы.Вставить("ПроверитьВыполнениеАсинхронныхОпераций", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git a/src/CommonModules/ИнтеграцияЭДО/Ext/Module.bsl b/src/CommonModules/ИнтеграцияЭДО/Ext/Module.bsl
index de06eb335..6376376f8 100644
--- a/src/CommonModules/ИнтеграцияЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияЭДО/Ext/Module.bsl
@@ -56,6 +56,8 @@
//
// Параметры:
// ОбъектыУчета - Массив Из ОпределяемыйТип.ОснованияЭлектронныхДокументовЭДО
+// Направление - ПеречислениеСсылка.НаправленияЭДО
+// поддерживаются значения Перечисления.НаправленияЭДО.Исходящий или Перечисления.НаправленияЭДО.Входящий
//
// Возвращаемое значение:
// ТаблицаЗначений:
@@ -66,9 +68,10 @@
// * Контрагент - ОпределяемыйТип.УчастникЭДО - контрагент в электронном документе.
// * ДоговорКонтрагента - ОпределяемыйТип.ДоговорСКонтрагентомЭДО - договор контрагента в электронном документе.
//
-Функция АктуальныеЭлектронныеДокументы(Знач ОбъектыУчета) Экспорт
+Функция АктуальныеЭлектронныеДокументы(Знач ОбъектыУчета, Направление = Неопределено) Экспорт
Запрос = Новый Запрос;
+ Запрос.Параметры.Вставить("ОбъектУчета", ОбъектыУчета);
Запрос.Текст =
"ВЫБРАТЬ
| ОбъектыУчетаДокументовЭДО.ОбъектУчета КАК ОбъектУчета,
@@ -81,8 +84,20 @@
| РегистрСведений.ОбъектыУчетаДокументовЭДО КАК ОбъектыУчетаДокументовЭДО
|ГДЕ
| ОбъектыУчетаДокументовЭДО.ОбъектУчета В (&ОбъектУчета)
- | И ОбъектыУчетаДокументовЭДО.Актуальный";
- Запрос.Параметры.Вставить("ОбъектУчета", ОбъектыУчета);
+ | И ОбъектыУчетаДокументовЭДО.Актуальный
+ | И &УсловиеНаправление
+ |";
+
+ Если Направление = Перечисления.НаправленияЭДО.Исходящий
+ Или Направление = Перечисления.НаправленияЭДО.Входящий Тогда
+
+ Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеНаправление",
+ "ОбъектыУчетаДокументовЭДО.ЭлектронныйДокумент Ссылка " +
+ ЭлектронныеДокументыЭДО.ИмяТаблицыДокументаЭДО(Направление = Перечисления.НаправленияЭДО.Входящий));
+
+ Иначе
+ Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеНаправление", "Истина");
+ КонецЕсли;
Возврат Запрос.Выполнить().Выгрузить();
@@ -202,9 +217,13 @@
Если ТипЗнч(ЭлектронныйДокумент) = Тип("ДокументСсылка.ЭлектронныйДокументВходящийЭДО")
И ЕстьПодсистемаОтражениеВУчетеЭДО() Тогда
-
- ОбщийМодульОтражениеВУчетеЭДО().ВыполнитьКонтрольОтраженияВУчете(
- ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ЭлектронныйДокумент));
+ СвойстваДокумента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭлектронныйДокумент, "ФорматОсновногоТитула,
+ |ВидДокумента.ТипДокумента");
+ Если ОбщийМодульОтражениеВУчетеЭДО().ДоступноОтражениеВУчете(СвойстваДокумента.ФорматОсновногоТитула,
+ СвойстваДокумента.ВидДокументаТипДокумента) Тогда
+ ОбщийМодульОтражениеВУчетеЭДО().ВыполнитьКонтрольОтраженияВУчете(
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ЭлектронныйДокумент));
+ КонецЕсли;
КонецЕсли;
Если Не Отказ Тогда
@@ -336,7 +355,9 @@
Запрос.Текст = СтрСоединить(ТекстыЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов());
+ УстановитьПривилегированныйРежим(Истина);
Выборка = Запрос.Выполнить().Выгрузить();
+ УстановитьПривилегированныйРежим(Ложь);
Если Выборка.Количество() Тогда
ДокументСВидомПоУмолчанию = Выборка.Найти(Истина, "ЭтоОсновнойВидДокумента");
Если ДокументСВидомПоУмолчанию <> Неопределено Тогда
@@ -3624,6 +3645,15 @@
Возврат;
КонецЕсли;
+ ТипыДокументовПоВиду = ЭлектронныеДокументыЭДО.ТипыДокументовПоВиду();
+ СвойстваДокумента =
+ ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭлектронныйДокумент, "ВидДокумента, ФорматОсновногоТитула");
+ ТипДокумента = ТипыДокументовПоВиду[СвойстваДокумента.ВидДокумента];
+
+ Если Не ОтражениеВУчетеЭДО.ДоступноОтражениеВУчете(СвойстваДокумента.ФорматОсновногоТитула, ТипДокумента) Тогда
+ Возврат;
+ КонецЕсли;
+
Документ = Новый Структура("СпособОбработки");
Настройки = Новый Структура("ОтражатьТолькоСопоставленные", Истина);
СопоставлениеНоменклатурыКонтрагентовПереопределяемый.ПриОтраженииВУчетеЭлектронногоДокументаСНоменклатурой(
@@ -5134,7 +5164,9 @@
ОписаниеИзменений = ОписаниеИзмененийОснованияЭлектронногоДокумента(Источник, Отказ, ЗаписьЭлементаСправочника);
- Если Не ДокументооборотНастроен Тогда
+ ЭтоЗаписьОбъектаПриСинхронизацииДанных = Не УчетныеЗаписиЭДО.ЕстьУчетныеЗаписиЭДО();
+
+ Если Не ДокументооборотНастроен И Не ЭтоЗаписьОбъектаПриСинхронизацииДанных Тогда
ОписаниеИзменений.УчаствуетВОбмене = Ложь;
КонецЕсли;
@@ -5328,10 +5360,11 @@
Если НЕ ОписаниеИзменений.СостояниеЭлектронногоДокумента = ЭлектронныеДокументыЭДО.НачальноеСостояниеДокумента() Тогда
// Электронный документ создан, но не соответствует основанию.
ЗакрытьПринудительноЭлектронныйДокумент(ОбъектУчета);
+ Иначе
+ ОчиститьАктуальныйЭлектронныйДокумент(ОбъектУчета.Ссылка);
+ УстановитьОснованиеНовогоЭлектронногоДокумента(ОбъектУчета.Ссылка);
КонецЕсли;
- ОчиститьАктуальныйЭлектронныйДокумент(ОбъектУчета.Ссылка);
- УстановитьОснованиеНовогоЭлектронногоДокумента(ОбъектУчета.Ссылка);
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
@@ -5924,7 +5957,8 @@
// Проверяем состояния документов.
- АктуальныеЭлектронныеДокументы = АктуальныеЭлектронныеДокументы(Источник.Ссылка).ВыгрузитьКолонку("ЭлектронныйДокумент");
+ АктуальныеЭлектронныеДокументы = АктуальныеЭлектронныеДокументы(
+ Источник.Ссылка, Перечисления.НаправленияЭДО.Исходящий).ВыгрузитьКолонку("ЭлектронныйДокумент");
Если АктуальныеЭлектронныеДокументы.Количество() = 0 Тогда
Возврат;
@@ -6168,42 +6202,31 @@
НаборОбъектовУчета = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОбъектыУчета);
КонецЕсли;
- ОтборАктуальныхЭД = НовыйОтборАктуальныхЭлектронныхДокументов();
- ОтборАктуальныхЭД.ОбъектыУчета = "&ОбъектыУчета";
- ТекстЗапросаАктуальныхЭД = ЗапросАктуальныхЭлектронныхДокументов("АктуальныеЭД", ОтборАктуальныхЭД).Текст;
-
- ИмяТаблицыСостоянийЭлектронныхДокументов = "СостоянияЭлектронныхДокументов";
- УсловиеВыбораСостоянийЭлектронныхДокументов = "ВЫБРАТЬ АктуальныеЭД.ЭлектронныйДокумент ИЗ АктуальныеЭД";
-
- ТекстСостоянийЭлектронныхДокументов = ЭлектронныеДокументыЭДО.ЗапросСостоянийДокументов(
- ИмяТаблицыСостоянийЭлектронныхДокументов, УсловиеВыбораСостоянийЭлектронныхДокументов).Текст;
-
- ТекстЗапросаИтоговыхДанных =
- "ВЫБРАТЬ
- | ЕСТЬNULL(СостоянияЭДО.Состояние, ЗНАЧЕНИЕ(Перечисление.СостоянияДокументовЭДО.НеСформирован)) КАК СостояниеЭД
- |ИЗ
- | АктуальныеЭД КАК АктуальныеЭД
- | ЛЕВОЕ СОЕДИНЕНИЕ СостоянияЭлектронныхДокументов КАК СостоянияЭДО
- | ПО АктуальныеЭД.ЭлектронныйДокумент = СостоянияЭДО.Ссылка
- |ГДЕ
- | &УсловиеПоВиду";
-
- Запросы = Новый Массив;
- Запросы.Добавить(ТекстЗапросаАктуальныхЭД);
- Запросы.Добавить(ТекстСостоянийЭлектронныхДокументов);
- Запросы.Добавить(ТекстЗапросаИтоговыхДанных);
- ИтоговыйЗапрос = СтрСоединить(Запросы, ОбщегоНазначения.РазделительПакетаЗапросов());
-
- Запрос = Новый Запрос;
- Запрос.Текст = ИтоговыйЗапрос;
+ Запрос = Новый Запрос(
+ "ВЫБРАТЬ
+ | ЕСТЬNULL(СостоянияДокументовЭДО.Состояние, ЗНАЧЕНИЕ(Перечисление.СостоянияДокументовЭДО.НеСформирован)) КАК
+ | СостояниеЭД
+ |ИЗ
+ | РегистрСведений.ОбъектыУчетаДокументовЭДО КАК ОбъектыУчетаДокументовЭДО
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияДокументовЭДО КАК СостоянияДокументовЭДО
+ | ПО СостоянияДокументовЭДО.ЭлектронныйДокумент = ОбъектыУчетаДокументовЭДО.ЭлектронныйДокумент
+ |ГДЕ
+ | ОбъектыУчетаДокументовЭДО.ОбъектУчета В (&ОбъектыУчета)
+ | И ОбъектыУчетаДокументовЭДО.Актуальный
+ | И ОбъектыУчетаДокументовЭДО.ЭлектронныйДокумент.ВидДокумента = &ВидДокумента");
Запрос.Параметры.Вставить("ОбъектыУчета", НаборОбъектовУчета);
- УсловиеПоВиду = "ИСТИНА";
+ ЗаменяемаяЧастьТекстаЗапроса = "И ОбъектыУчетаДокументовЭДО.ЭлектронныйДокумент.ВидДокумента = &ВидДокумента";
+ Если Не СтрНайти(Запрос.Текст, ЗаменяемаяЧастьТекстаЗапроса) Тогда
+ // Запрос всегда должен быть в консистентном состоянии с частью текста запроса.
+ ВызватьИсключение НСтр("ru = 'Не найдена заменяемая часть текста запроса.'");
+ КонецЕсли;
Если ЗначениеЗаполнено(ВидДокумента) Тогда
- УсловиеПоВиду = "АктуальныеЭД.ЭлектронныйДокумент.ВидДокумента = &ВидДокумента";
Запрос.Параметры.Вставить("ВидДокумента", ВидДокумента);
- КонецЕсли;
- Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеПоВиду", УсловиеПоВиду);
+ Иначе
+ ТекстЗамены = "";
+ Запрос.Текст = СтрЗаменить(Запрос.Текст, ЗаменяемаяЧастьТекстаЗапроса, ТекстЗамены);
+ КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
СостоянияЭД = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("СостояниеЭД");
diff --git a/src/CommonModules/ИнтеграцияЭДОКлиент/Ext/Module.bsl b/src/CommonModules/ИнтеграцияЭДОКлиент/Ext/Module.bsl
index 035bccf8d..769736cda 100644
--- a/src/CommonModules/ИнтеграцияЭДОКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ИнтеграцияЭДОКлиент/Ext/Module.bsl
@@ -333,12 +333,17 @@
ОбщегоНазначенияБЭДКлиент.ВыполнитьПроверкуПроведенияДокументов(НаборОбъектовУчета, Оповещение);
Возврат;
КонецЕсли;
-
+ КлючЗамера = "СформироватьПодписатьОтправитьЗавершить";
+ ОписаниеЗамера = ОбщегоНазначенияБЭДКлиент.НачатьЗамерДлительнойОперации(КлючЗамера);
+ КоличествоДанных = НаборОбъектовУчета.Количество();
+ ОповещениеОЗавершенииЗамера = ОбщегоНазначенияБЭДКлиент.ОповещениеОЗавершенииЗамераДлительнойОперации(КлючЗамера,
+ ОписаниеЗамера, КоличествоДанных, ПараметрыДействия.ОбработчикЗавершения);
СтандартнаяОбработка = Истина;
- ОбменСКонтрагентамиКлиентПереопределяемый.ПриПроверкеГотовностиКДокументообороту(НаборОбъектовУчета, ПараметрыДействия.ОбработчикЗавершения, СтандартнаяОбработка);
+ ОбменСКонтрагентамиКлиентПереопределяемый.ПриПроверкеГотовностиКДокументообороту(НаборОбъектовУчета,
+ ОповещениеОЗавершенииЗамера, СтандартнаяОбработка);
Если СтандартнаяОбработка = Истина Тогда
- ВыполнитьОбработкуОповещения(ПараметрыДействия.ОбработчикЗавершения, НаборОбъектовУчета);
+ ВыполнитьОбработкуОповещения(ОповещениеОЗавершенииЗамера, НаборОбъектовУчета);
КонецЕсли;
КонецПроцедуры
diff --git a/src/CommonModules/ИнтернетПоддержкаПользователей/Ext/Module.bsl b/src/CommonModules/ИнтернетПоддержкаПользователей/Ext/Module.bsl
index 8993e1090..5a2900eb6 100644
--- a/src/CommonModules/ИнтернетПоддержкаПользователей/Ext/Module.bsl
+++ b/src/CommonModules/ИнтернетПоддержкаПользователей/Ext/Module.bsl
@@ -371,7 +371,6 @@
Методы.Вставить("ОбновлениеИнформационнойБазы_ЗаменитьИдентификаторПодсистемыВБезопасномХранилищеДанных_2_1_8_14");
Методы.Вставить("ОбновлениеИнформационнойБазы_ПереместитьПараметрыИнтернетПоддержкиВБезопасноеХранилищеДанных_2_1_7_1");
- Методы.Вставить("Пауза", Истина);
КонецПроцедуры
diff --git a/src/CommonModules/ИнтернетПоддержкаПользователейКлиентСервер/Ext/Module.bsl b/src/CommonModules/ИнтернетПоддержкаПользователейКлиентСервер/Ext/Module.bsl
index bc4d9f38e..c1ef7dfde 100644
--- a/src/CommonModules/ИнтернетПоддержкаПользователейКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ИнтернетПоддержкаПользователейКлиентСервер/Ext/Module.bsl
@@ -25,7 +25,7 @@
//
Функция ВерсияБиблиотеки() Экспорт
- Возврат "2.8.4.29";
+ Возврат "2.8.4.33";
КонецФункции
diff --git a/src/CommonModules/ИнтернетЭквайрингСлужебный/Ext/Module.bsl b/src/CommonModules/ИнтернетЭквайрингСлужебный/Ext/Module.bsl
index e033df270..2821355a4 100644
--- a/src/CommonModules/ИнтернетЭквайрингСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ИнтернетЭквайрингСлужебный/Ext/Module.bsl
@@ -24,23 +24,6 @@
#Область СлужебныйПрограммныйИнтерфейс
-#Область ИнтеграцияСБиблиотекойСтандартныхПодсистем
-
-// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
-//
-Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
-
- Методы.Вставить("ЗапроситьТокенПриЗаписиНастройкиВФоне", Истина);
- Методы.Вставить("ЗапросТокенаПриСозданииНастройкиВФоне", Истина);
- Методы.Вставить("ОтзывТокенаПриСозданииНастройкиВФоне", Истина);
- Методы.Вставить("ОтозватьТокенПриОтключенииНастройкиВФоне", Истина);
- Методы.Вставить("ПараметрыУчастникаПоИдентификаторуВФоне", Истина);
- Методы.Вставить("ПолучитьУчастниковВФоне", Истина);
-
-КонецПроцедуры
-
-#КонецОбласти
-
#Область ОбщиеНастройкиПодсистем
// Формирует дерево для формы общих настроек платежных систем
@@ -213,7 +196,12 @@
// **Идентификатор - Строка - идентификатор операции;
// **ИдентификаторОплаты - Строка - идентификатор операции оплаты;
// **ИдентификаторОперации - Строка - идентификатор текущей операции;
-// **ДатаОперации - Дата - фактическая дата оплаты в UTC;
+// **ДатаОперации - Дата - фактическая дата оплаты в UTC.
+// * ОплатаЯндексПэй - Структура, Неопределено - Содержит данные операции оплаты, в том случае когда
+// значение Свойства СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй:
+// ** ИдентификаторОплаты - Строка - идентификатор операции оплаты;
+// ** ИдентификаторОперации - Строка - идентификатор текущей операции;
+// ** ДатаОперации - Дата - фактическая дата оплаты в UTC.
// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКИнтернетЭквайрингу, Неопределено - Настройка
// подключения указанная в настройке страницы онлайн-заказов, Неопределено в том случае, если настройка не
// определена.
@@ -1285,7 +1273,7 @@
Или РезультатОперации.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиОшибкаСервиса()
Или РезультатОперации.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиОшибкаПодключения()
Или РезультатОперации.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиБлокировкаСервисовИПП()) Тогда
-
+
РегистрыСведений.ИдентификаторыОперацийИнтернетЭквайринга.ЗаписатьСтатусОперацииОшибка(
ДокументВозврата,
НастройкиПлатежныхСистемСлужебный.ИдентификаторСтатусаОшибка());
@@ -1491,7 +1479,7 @@
ДокументыОплаты.Добавить(ОтложеннаяОперация.ДокументОперации);
КонецЦикла;
-
+
// Параметры нескольких настроек
ПараметрыНастроекПодключения = РегистрыСведений.ИдентификаторыОперацийИнтернетЭквайринга.ПараметрыНастроекПодключенияПоДокументам(ДокументыОплаты);
@@ -1528,7 +1516,7 @@
РегистрыСведений.ИдентификаторыОперацийИнтернетЭквайринга.УвеличитьКоличествоПопытокЗапросаСтатуса(
ОтложеннаяОперация.ДокументОперации);
МаксимальноеКоличествоПопыток = НастройкиПлатежныхСистемСлужебный.МаксимальноеКоличествоПопытокЗапросаСтатуса(
- "ИнтернетЭквайринг",
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг(),
Ложь);
Если ОтложеннаяОперация.КоличествоПопыток >= МаксимальноеКоличествоПопыток Тогда
ПриЗагрузкеСтатусаОперации(
@@ -1682,6 +1670,7 @@
Или СтатусОперацииСервис = НастройкиПлатежныхСистемСлужебный.ИдентификаторСтатусаОшибка() Тогда
СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОшибка();
Иначе
+
ЗаписатьИнформациюВЖурналРегистрации(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Передан не валидный статус операции %1 в отложенную обработку.'"),
@@ -1690,6 +1679,8 @@
ИнтернетЭквайринг.УстановитьОтложенноеПолучениеСтатуса(
ДокументОперации,
Ложь);
+ Возврат;
+
КонецЕсли;
Попытка
@@ -3421,9 +3412,9 @@
Иначе
НовоеПоле.Вид = ВидПоляФормы.ПолеВвода;
КонецЕсли;
- НовоеПоле.ПутьКДанным = ОписаниеРеквизита.ИмяРеквизита;
+ НовоеПоле.ПутьКДанным = ОписаниеРеквизита.ИмяРеквизита;
НовоеПоле.АвтоОтметкаНезаполненного = ОписаниеРеквизита.ПроверкаЗаполнения;
- НовоеПоле.РежимПароля = ОписаниеРеквизита.РежимПароля;
+ НовоеПоле.РежимПароля = ОписаниеРеквизита.РежимПароля;
// АПК:280 -выкл
//@skip-check empty-except-statement
@@ -3780,3 +3771,20 @@
#КонецОбласти
#КонецОбласти
+
+#Область ИнтеграцияСБиблиотекойСтандартныхПодсистем
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+//
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗапроситьТокенПриЗаписиНастройкиВФоне", Истина);
+ Методы.Вставить("ЗапросТокенаПриСозданииНастройкиВФоне", Истина);
+ Методы.Вставить("ОтзывТокенаПриСозданииНастройкиВФоне", Истина);
+ Методы.Вставить("ОтозватьТокенПриОтключенииНастройкиВФоне", Истина);
+ Методы.Вставить("ПараметрыУчастникаПоИдентификаторуВФоне", Истина);
+ Методы.Вставить("ПолучитьУчастниковВФоне", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git a/src/CommonModules/ИнтернетЭквайрингСобытия/Ext/Module.bsl b/src/CommonModules/ИнтернетЭквайрингСобытия/Ext/Module.bsl
index 039d3fbaf..9904523d9 100644
--- a/src/CommonModules/ИнтернетЭквайрингСобытия/Ext/Module.bsl
+++ b/src/CommonModules/ИнтернетЭквайрингСобытия/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -36,7 +36,7 @@
ВсеКоманды,
ДоступныеКоманды) Экспорт
- Если КешПараметров.ДоступностьНастроек.Получить(НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг()) Тогда
+ Если КешПараметров.ДоступностьНастроек.Получить(НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг()) Тогда
ДоступныеКоманды.Добавить("ОткрытьШаблоныНазначения");
КонецЕсли;
diff --git a/src/CommonModules/ИнтерфейсДокументовЭДО/Ext/Module.bsl b/src/CommonModules/ИнтерфейсДокументовЭДО/Ext/Module.bsl
index a2141a771..627b9b1c9 100644
--- a/src/CommonModules/ИнтерфейсДокументовЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ИнтерфейсДокументовЭДО/Ext/Module.bsl
@@ -1200,8 +1200,8 @@
// ** ТекстСообщения - ПолеВвода
// ЭлементТитулаСхемы - ДанныеФормыЭлементДерева
Процедура НастроитьСтраницуСообщений(Форма, ЭлементТитулаСхемы) Экспорт
-
- Если Не Форма.ИспользуютсяУниверсальныеСообщения Тогда
+
+ Если Не ВыводитьЧатУниверсальныхСообщений() Тогда
Форма.Элементы.СтраницаСообщения.Видимость = Ложь;
Возврат;
КонецЕсли;
@@ -1904,6 +1904,7 @@
ИмяФайла = РаботаСФайламиБЭДКлиентСервер.ДопустимоеИмяФайла(ДанныеПечатнойФормы.СинонимМакета, Истина);
ПолноеИмяФайла = АдресКаталога + ИмяФайла + ".pdf";
+ РаботаСФайламиБЭД.СократитьИмяФайла(ПолноеИмяФайла);
ПолноеИмяФайла = РаботаСФайламиБЭДКлиентСервер.ОпределитьУникальноеИмяФайла(ПолноеИмяФайла);
ДанныеПечатнойФормы.ТабличныйДокумент.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.PDF);
@@ -1954,6 +1955,7 @@
ПолноеИмяФайла = АдресКаталога + НСтр("ru = 'Реестр электронных документов'") + ".pdf";
ТабличныйДокумент = СформироватьРеестрЭлектронныхДокументов(ЭлектронныеДокументы,
КоличествоФайловДокументов);
+ РаботаСФайламиБЭД.СократитьИмяФайла(ПолноеИмяФайла);
ТабличныйДокумент.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.PDF);
МассивФайлов.Добавить(ПолноеИмяФайла);
@@ -2056,7 +2058,8 @@
ДанныеФайла = РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл);
- ИмяФайла = КаталогСообщения + ПолныеИменаФайлов[ПрисоединенныйФайл];
+ ИмяФайла = КаталогСообщения
+ + ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ПолныеИменаФайлов[ПрисоединенныйФайл]).Имя;
ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла);
ДвоичныеДанныеФайла.Записать(ИмяФайла);
@@ -4528,6 +4531,8 @@
ОписаниеФайла.ИмяФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "ПолноеИмяФайла");
СодержаниеСообщения = ЭлектронныеДокументыЭДО.СодержаниеСообщения(ОписаниеФайла);
+ ОрганизацияОтправитель = Неопределено;
+
Если СодержаниеСообщения <> Неопределено Тогда
Получатель = СодержаниеСообщения.Получатель;
Отправитель = СодержаниеСообщения.Отправитель;
@@ -4551,12 +4556,13 @@
КлючКонтрагента.КПП = Отправитель.КПП;
Контрагент =
ПриглашенияЭДО.УчастникЭДОПоКлючуИПриглашению(ПараметрыПриглашения, КлючКонтрагента).Ссылка;
- Иначе
- ОбменМеждуСобственнымиОрганизациями =
- СинхронизацияЭДО.ЭтоИнтеркампани(ПараметрыПриглашения.ИдентификаторОрганизации);
- ТипОбъектаОтправителя = ?(ОбменМеждуСобственнымиОрганизациями, "Организации", "Контрагенты");
- Контрагент = ИнтеграцияЭДО.СсылкаНаОбъектПоИННКПП(ТипОбъектаОтправителя, Отправитель.ИНН,
- Отправитель.КПП, ТекущаяДатаСеанса());
+ КонецЕсли;
+
+ ИспользоватьИнтеркампани =
+ ОбщегоНазначенияБЭД.ЗначениеФункциональнойОпции("ИспользоватьОбменЭДМеждуОрганизациями");
+ Если ИспользоватьИнтеркампани Тогда
+ ОрганизацияОтправитель =
+ ИнтеграцияЭДО.СсылкаНаОбъектПоИННКПП("Организации", Отправитель.ИНН, Отправитель.КПП);
КонецЕсли;
КонецЕсли;
@@ -4564,6 +4570,11 @@
КонецЕсли;
+ Отправители = Новый Массив();
+ Если ЗначениеЗаполнено(Контрагент) И ЗначениеЗаполнено(ОрганизацияОтправитель) Тогда
+ Отправители = ОбщегоНазначенияБЭДКлиентСервер.МассивЗначений(Контрагент, ОрганизацияОтправитель);
+ КонецЕсли;
+
Если Не ЗначениеЗаполнено(Организация) Или Не ЗначениеЗаполнено(Контрагент) Тогда
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭлектронныйДокумент, "Организация, Контрагент");
Организация = ?(ЗначениеЗаполнено(Организация), Организация, ЗначенияРеквизитов.Организация);
@@ -4571,7 +4582,7 @@
КонецЕсли;
Настройки.Вставить("Организация", Организация);
- Настройки.Вставить("Контрагент", Контрагент);
+ Настройки.Вставить("Контрагент", ?(Отправители.Количество(), Отправители, Контрагент));
Возврат Настройки;
@@ -4590,6 +4601,7 @@
// * ИспользуетсяОтправкаПолучениеСОтборомПоОрганизации - Булево, Неопределено -
// * ДанныеОтбораНастройкиОтправкиПолучения - см. ДанныеОтбораНастройкиОтправкиПолучения
// * ВключатьАвтоматическоеПолучениеЭДО - Булево
+// * ПоказыватьСписокДокументовТакскомТребующихЗавершения - Булево
Функция ПараметрыОтправкиПолученияДокументовЭДО(УчетныеЗаписиОбмена = Неопределено) Экспорт
ПараметрыВыполненияДействий = ПараметрыВыполненияДействийПриОтправкеПолученииДокументовЭДО();
@@ -4607,10 +4619,20 @@
ПараметрыОтправкиПолучения.УчетныеЗаписиЭДОБезПринятыхУсловийСервиса =
УчетныеЗаписиЭДО.УчетныеЗаписиЭДОБезПринятыхУсловийСервиса(ИдентификаторыОрганизаций);
+ СкрыватьВопросСпискаДокументовТакскомКЗавершению = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
+ "ПереводИзТакскомКлючНастроек",
+ "НеПоказыватьВопросСпискаДокументовТакскомКЗавершению",
+ Ложь);
+
+ ПоказыватьСписокДокументовТакскомТребующихЗавершения = Не СкрыватьВопросСпискаДокументовТакскомКЗавершению
+ И УчетныеЗаписиЭДО.ПоказыватьСписокДокументовТакскомТребующихЗавершения();
+ ПараметрыОтправкиПолучения.Вставить("ПоказыватьСписокДокументовТакскомТребующихЗавершения",
+ ПоказыватьСписокДокументовТакскомТребующихЗавершения);
+
ВключатьАвтоматическоеПолучениеЭДО = АвтоматическоеПолучениеЭДО.ВключатьАвтоматическиДляУчетныхЗаписейЭДО(
ПараметрыВыполненияДействий.ОбъектыДействий.ИдентификаторыОрганизаций);
ПараметрыОтправкиПолучения.Вставить("ВключатьАвтоматическоеПолучениеЭДО", ВключатьАвтоматическоеПолучениеЭДО);
-
+
Возврат ПараметрыОтправкиПолучения;
КонецФункции
@@ -4770,6 +4792,12 @@
КонецФункции
+// Возвращаемое значение:
+// Булево
+Функция ВыводитьЧатУниверсальныхСообщений() Экспорт
+ Возврат Ложь; //Отключено до поддержки сервисом нескольких сообщений формата 4002
+КонецФункции
+
// Параметры:
// ИмяОткрываемойФормы - Строка
// ВыбранныйВариантИнтерфейса - Строка
@@ -5645,13 +5673,19 @@
"ВЫБРАТЬ
| Сумма(ВЫБОР
| КОГДА
- | ЭлектронныйДокументИсходящийЭДО.ВидДокумента.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ТипыДокументовЭДО.ТоварнаяНакладная)
+ | ЭлектронныйДокументИсходящийЭДО.ВидДокумента.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ТипыДокументовЭДО.СчетФактура)
+ | ИЛИ ЭлектронныйДокументИсходящийЭДО.ВидДокумента.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ТипыДокументовЭДО.КорректировочныйСчетФактура)
+ | ИЛИ ЭлектронныйДокументИсходящийЭДО.ВидДокумента.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ТипыДокументовЭДО.УПД)
+ | ИЛИ ЭлектронныйДокументИсходящийЭДО.ВидДокумента.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ТипыДокументовЭДО.УКД)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК СЧФ,
| Сумма(ВЫБОР
| КОГДА
- | ЭлектронныйДокументИсходящийЭДО.ВидДокумента.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ТипыДокументовЭДО.ТоварнаяНакладная)
+ | ЭлектронныйДокументИсходящийЭДО.ВидДокумента.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ТипыДокументовЭДО.СчетФактура)
+ | ИЛИ ЭлектронныйДокументИсходящийЭДО.ВидДокумента.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ТипыДокументовЭДО.КорректировочныйСчетФактура)
+ | ИЛИ ЭлектронныйДокументИсходящийЭДО.ВидДокумента.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ТипыДокументовЭДО.УПД)
+ | ИЛИ ЭлектронныйДокументИсходящийЭДО.ВидДокумента.ТипДокумента = ЗНАЧЕНИЕ(Перечисление.ТипыДокументовЭДО.УКД)
| ТОГДА 0
| ИНАЧЕ 1
| КОНЕЦ) КАК НеСЧФ,
@@ -5677,7 +5711,7 @@
| ВЫБОР
| КОГДА ЕСТЬNULL(ОтправленныеПоВидамЭД.НеСЧФ, 0) > 2 * ЕСТЬNULL(ОтправленныеПоВидамЭД.СЧФ, 0)
| И ЕСТЬNULL(ОтправленныеПоВидамЭД.НеСЧФ, 0) > 0
- | ТОГДА ОКР(ЕСТЬNULL(ОтправленныеПоВидамЭД.НеСЧФ, 0) / 2)
+ | ТОГДА ОКР((ЕСТЬNULL(ОтправленныеПоВидамЭД.НеСЧФ, 0) + 1) / 2)
| ИНАЧЕ ЕСТЬNULL(ОтправленныеПоВидамЭД.СЧФ, 0)
| КОНЕЦ КАК РасчетныйТрафикОтправленныхЗаМесяц
|ИЗ
@@ -9267,4 +9301,16 @@
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ДанныеЗаполненияНастройкиОтправкиПриглашений", Истина);
+ Методы.Вставить("ЗагрузитьФормализованныйДокументПоФайлуXMLВФоне", Истина);
+ Методы.Вставить("ОбновитьДанныеДляНастройкиОтправкиПриглашений", Истина);
+ Методы.Вставить("СформироватьФайлыВыгрузкиЭДВФорматеPDF", Истина);
+ Методы.Вставить("СформироватьФайлыВыгрузкиЭДДляФНС", Истина);
+ Методы.Вставить("ФайлСДаннымиОЗадолженности", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/ИнтерфейсДокументовЭДОВызовСервера/Ext/Module.bsl b/src/CommonModules/ИнтерфейсДокументовЭДОВызовСервера/Ext/Module.bsl
index d6f342c14..afb4553bf 100644
--- a/src/CommonModules/ИнтерфейсДокументовЭДОВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/ИнтерфейсДокументовЭДОВызовСервера/Ext/Module.bsl
@@ -894,4 +894,11 @@
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ДанныеФайла", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ИнтерфейсДокументовЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl b/src/CommonModules/ИнтерфейсДокументовЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
index cee23070c..e40e6e4f9 100644
--- a/src/CommonModules/ИнтерфейсДокументовЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ИнтерфейсДокументовЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
@@ -847,4 +847,12 @@
#КонецОбласти // ПросмотрДокумента
-#КонецОбласти // СлужебныеПроцедурыИФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ДанныеПредварительногоПросмотра", Истина);
+ Методы.Вставить("ДанныеПредварительногоПросмотраПоФайлуXML", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git a/src/CommonModules/ИнтерфейсДокументовЭДОКлиент/Ext/Module.bsl b/src/CommonModules/ИнтерфейсДокументовЭДОКлиент/Ext/Module.bsl
index a3089e942..b46b88c4c 100644
--- a/src/CommonModules/ИнтерфейсДокументовЭДОКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ИнтерфейсДокументовЭДОКлиент/Ext/Module.bsl
@@ -90,12 +90,14 @@
Если ПараметрыОткрытия = Неопределено Тогда
ПараметрыОткрытия = ОбменСКонтрагентамиКлиентСервер.ПараметрыОткрытияФормыТекущиеДелаЭДО();
КонецЕсли;
+ ФормаТекущиеДелаПоЭДО = ФормаТекущиеДелаПоЭДО();
+ КлючЗамера = СтрШаблон("%1.ОткрытиеФормы", ФормаТекущиеДелаПоЭДО);
+ ОписаниеЗамера = ОбщегоНазначенияБЭДКлиент.НачатьЗамер(КлючЗамера);
- ОценкаПроизводительностиКлиент.ЗамерВремени("ОбщийМодуль.ИнтерфейсДокументовЭДОКлиент.ОткрытьТекущиеДелаЭДО");
-
- ОткрытьФорму(ФормаТекущиеДелаПоЭДО(), ПараметрыЗапуска, ПараметрыОткрытия.Владелец, ПараметрыОткрытия.Уникальность,
+ ОткрытьФорму(ФормаТекущиеДелаПоЭДО, ПараметрыЗапуска, ПараметрыОткрытия.Владелец, ПараметрыОткрытия.Уникальность,
ПараметрыОткрытия.Окно, , ОповещениеОЗакрытии, ПараметрыОткрытия.РежимОткрытияОкна);
+ ОбщегоНазначенияБЭДКлиент.ЗакончитьЗамер(ОписаниеЗамера);
КонецПроцедуры
// Возвращает путь к форме текущих дел по ЭДО в зависимости от пользовательской настройки.
@@ -1942,6 +1944,10 @@
Возврат;
КонецЕсли;
+ Если НЕ РаботаСФайламиБЭДКлиент.ФайлМожноОтправитьПоЭДО(ОписаниеФайла.Имя) Тогда
+ Возврат;
+ КонецЕсли;
+
СтруктураИмениФайла = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ОписаниеФайла.Имя);
ОткрытьНовыйЭлектронныйДокументПоФайлу(СтруктураИмениФайла.Имя, ОписаниеФайла.Хранение, Основание);
@@ -2037,6 +2043,10 @@
//
Процедура НачатьСозданиеЭлектронногоДокументаПоФайлу(ОповещениеОЗавершении, ПараметрыФормирования, ПараметрыФайла) Экспорт
+ Если НЕ РаботаСФайламиБЭДКлиент.ФайлМожноОтправитьПоЭДО(ПараметрыФайла.ИмяФайла) Тогда
+ Возврат;
+ КонецЕсли;
+
ОписаниеДокумента = ЭлектронныеДокументыЭДОКлиентСервер.НовоеОписаниеДокументаДляФормированияПоФайлам();
Если ЗначениеЗаполнено(ПараметрыФормирования.ИдентификаторДокумента) Тогда
@@ -2180,6 +2190,7 @@
Элементы.ГруппаСостоянияИСтатусы.ЦветФона = ЦветаФона.ДействительнаяМЧД;
Элементы.ДекорацияВернаКартинка.Картинка = БиблиотекаКартинок.ОформлениеЗнакФлажок;
Элементы.ГруппаОшибкаПроверкиПодписи.Видимость = Ложь;
+ Элементы.ГруппаНастройки.Видимость = Ложь;
Иначе
Элементы.ДекорацияНеверна.Заголовок = НСтр("ru = 'Неверна'");
Элементы.ГруппаСостоянияИСтатусы.ЦветФона = ЦветаФона.НедействительнаяМЧД;
@@ -2197,6 +2208,7 @@
Элементы.ГруппаСостоянияИСтатусы.ЦветФона = ЦветаФона.НедействительнаяМЧД;
Элементы.ДекорацияВернаКартинка.Картинка = БиблиотекаКартинок.ИнформацияБЭД;
Элементы.ГруппаОшибкаПроверкиПодписи.Видимость = Истина;
+ Элементы.ГруппаНастройки.Видимость = Истина;
КонецЕсли;
КонецЕсли;
@@ -2402,7 +2414,8 @@
// Параметры:
// Форма - ФормаКлиентскогоПриложения
-// ОповещениеОЗавершении - Неопределено, ОписаниеОповещения
+// ОповещениеОЗавершении - Неопределено
+// - ОписаниеОповещения
// УчетныеЗаписиОбмена - Неопределено, Массив из Строка - идентификаторы оператора электронного документооборота
Процедура ОтправитьПолучитьДокументыЭДО(Форма, ОповещениеОЗавершении = Неопределено, УчетныеЗаписиОбмена = Неопределено) Экспорт
@@ -2415,23 +2428,70 @@
Контекст.ОповещениеОЗавершении = ОповещениеОЗавершении;
КонецЕсли;
- Если ЗначениеЗаполнено(ПараметрыОтправкиПолучения.УчетныеЗаписиЭДОБезПринятыхУсловийСервиса) Тогда
+ Если ПараметрыОтправкиПолучения.ПоказыватьСписокДокументовТакскомТребующихЗавершения Тогда
- Оповещение = Новый ОписаниеОповещения("ОтправитьПолучитьДокументыЭДОПослеПринятияУсловийСервиса",
- ИнтерфейсДокументовЭДОКлиент, Контекст);
+ ОписаниеОповещенияОЗавершенииВопроса = Новый ОписаниеОповещения(
+ "ПродолжитьПослеПоказаВопросаЗавершенияДокументовТакском",
+ ЭтотОбъект,
+ Контекст);
- ПараметрыФормы = Новый Структура("УчетныеЗаписиЭДО",
- ПараметрыОтправкиПолучения.УчетныеЗаписиЭДОБезПринятыхУсловийСервиса);
+ ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
+ ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Истина;
+ ПараметрыВопроса.Заголовок = НСтр("ru = 'Некоторые документы требуют завершения'");
- ПоказатьУсловияИспользованияСервиса1СЭДО(ПараметрыФормы, Оповещение);
+ СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(
+ ОписаниеОповещенияОЗавершенииВопроса,
+ НСтр("ru = 'Некоторые документы требуют завершения документооборота в связи переключением оператора Такском на платформу 1С:Хаб. Показать список?'"),
+ РежимДиалогаВопрос.ДаНет,
+ ПараметрыВопроса);
+ Иначе
+
+ ОтправитьПолучитьДокументыЭДОСУчетомПринятияУсловийСервиса(Контекст);
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Параметры:
+// РезультатВопроса - Неопределено
+// - Структура:
+// * Значение - КодВозвратаДиалога
+// * БольшеНеЗадаватьЭтотВопрос - Булево
+// Контекст - см. НовыйКонтекстОтправкиПолученияДокументовЭДО
+Процедура ПродолжитьПослеПоказаВопросаЗавершенияДокументовТакском(РезультатВопроса, Контекст) Экспорт
+
+ Если РезультатВопроса = Неопределено Тогда
+ ОтправитьПолучитьДокументыЭДОСУчетомПринятияУсловийСервиса(Контекст);
+ Возврат;
+ КонецЕсли;
+
+ Если РезультатВопроса.БольшеНеЗадаватьЭтотВопрос = Истина Тогда
+ СохранитьНастройкуНеПоказыватьВопросОСпискеДокументовТакском();
+ КонецЕсли;
+
+ Если РезультатВопроса.Значение <> КодВозвратаДиалога.Да Тогда
+ ОтправитьПолучитьДокументыЭДОСУчетомПринятияУсловийСервиса(Контекст);
Возврат;
КонецЕсли;
- ПодготовитьОтборУчетныхЗаписейДляОтправкиПолученияДокументовЭДО(Контекст);
+ ОписаниеОповещенияОЗавершенииПросмотраСписка = Новый ОписаниеОповещения(
+ "ПродолжитьПослеПросмотраСпискаДокументовТакскомКЗавершению",
+ ЭтотОбъект,
+ Контекст);
+
+ ОткрытьФорму("Обработка.ИнтерфейсДокументовЭДО.Форма.СписокДокументовТакскомКЗавершению",,,,,,
+ ОписаниеОповещенияОЗавершенииПросмотраСписка,
+ РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
+// Параметры:
+// Результат - Неопределено
+// Контекст - см. НовыйКонтекстОтправкиПолученияДокументовЭДО
+Процедура ПродолжитьПослеПросмотраСпискаДокументовТакскомКЗавершению(Результат, Контекст) Экспорт
+ ОтправитьПолучитьДокументыЭДОСУчетомПринятияУсловийСервиса(Контекст);
+КонецПроцедуры
+
// Параметры:
// Результат - Структура:
// * Итог - см. ИнтерфейсДокументовЭДОКлиентСервер.НовыйИтогВыполненияДействийПоЭДО
@@ -2541,6 +2601,36 @@
КонецПроцедуры
+// Параметры:
+// Форма - ФормаКлиентскогоПриложения - форма ручного формирования ответного титула:
+// * ЭлектронныйДокумент - ДокументСсылка.ЭлектронныйДокументИсходящийЭДО
+// - ДокументСсылка.ЭлектронныйДокументВходящийЭДО
+// СтруктураОтвета - См. ИнтерфейсДокументовЭДОКлиентСервер.ДанныеРучногоФормированияТитула
+//
+Процедура ПодписатьДокументИзФормыРучногоФормированияОтветногоТитула(Форма, СтруктураОтвета) Экспорт
+
+ НаборДействий = ЭлектронныеДокументыЭДОКлиентСервер.НовыйНаборДействийПоЭДО();
+ ЭлектронныеДокументыЭДОКлиентСервер.ДобавитьДействие(НаборДействий,
+ ПредопределенноеЗначение("Перечисление.ДействияПоЭДО.Утвердить"));
+ ЭлектронныеДокументыЭДОКлиентСервер.ДобавитьДействие(НаборДействий,
+ ПредопределенноеЗначение("Перечисление.ДействияПоЭДО.СформироватьОтвет"));
+ ЭлектронныеДокументыЭДОКлиентСервер.ДобавитьДействие(НаборДействий,
+ ПредопределенноеЗначение("Перечисление.ДействияПоЭДО.Подписать"));
+
+ ПараметрыОповещения = Новый Структура("Форма, ЭлектронныйДокумент", Форма, Форма.ЭлектронныйДокумент);
+ Оповещение = Новый ОписаниеОповещения(
+ "ПослеВыполненияДействияПодписанияИОтправкиИзФормыРучногоФормированияОтветногоТитула",
+ ИнтерфейсДокументовЭДОКлиент, ПараметрыОповещения);
+
+ ПараметрыВыполненияДействийПоЭДО = ЭлектронныеДокументыЭДОКлиентСервер.НовыеПараметрыВыполненияДействийПоЭДО();
+ ПараметрыВыполненияДействийПоЭДО.НаборДействий = НаборДействий;
+ ПараметрыВыполненияДействийПоЭДО.ОбъектыДействий.ЭлектронныеДокументы.Добавить(Форма.ЭлектронныйДокумент);
+ ПараметрыВыполненияДействийПоЭДО.ДанныеРучногоФормированияТитула = СтруктураОтвета;
+
+ ЭлектронныеДокументыЭДОКлиент.НачатьВыполнениеДействийПоЭДО(Оповещение, ПараметрыВыполненияДействийПоЭДО);
+
+КонецПроцедуры
+
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма ручного формирования ответного титула:
// * КодИтога - Строка
@@ -2821,6 +2911,8 @@
// ПараметрыОткрытия - см. НовыеПараметрыОткрытияЭлектронногоДокумента
Процедура ОткрытьЭлектронныйДокументОбъектаУчета(ОбъектУчета, ПараметрыОткрытия = Неопределено) Экспорт
+ КлючЗамера = "ОткрытьЭлектронныйДокументОбъектаУчета";
+ ОписаниеЗамера = ОбщегоНазначенияБЭДКлиент.НачатьЗамер(КлючЗамера);
Если ПараметрыОткрытия = Неопределено Тогда
ПараметрыОткрытия = НовыеПараметрыОткрытияЭлектронногоДокумента();
КонецЕсли;
@@ -2834,7 +2926,7 @@
КонецЕсли;
ОткрытьЭлектронныйДокументПоПараметрамПросмотра(ПараметрыПросмотра, ПараметрыОткрытия);
-
+ ОбщегоНазначенияБЭДКлиент.ЗакончитьЗамер(ОписаниеЗамера);
КонецПроцедуры
Процедура ОткрытьЭлектронныйДокументПоОписанию(ОписаниеЭлектронногоДокументаОбъектаУчета) Экспорт
@@ -3003,9 +3095,10 @@
ИначеЕсли ПараметрыФормы.Свойство("Уникальность") Тогда
Уникальность = ПараметрыФормы.Уникальность;
КонецЕсли;
-
+ КлючЗамера = СтрШаблон("%1.ОткрытиеФормы", ИмяФормы);
+ ОписаниеЗамера = ОбщегоНазначенияБЭДКлиент.НачатьЗамер(КлючЗамера);
ОткрытьФорму(ИмяФормы, ПараметрыФормы, , Уникальность);
-
+ ОбщегоНазначенияБЭДКлиент.ЗакончитьЗамер(ОписаниеЗамера);
КонецПроцедуры
// Параметры:
@@ -3577,6 +3670,16 @@
Возврат;
КонецЕсли;
+ ТипПрочее = ПредопределенноеЗначение("Перечисление.ТипыДокументовЭДО.Прочее");
+ ОписаниеОбъектаУчета = ПредварительныйПросмотр.РезультатПоискаНастроек.ОписаниеОбъектаУчета;
+ Если ОписаниеОбъектаУчета.ТипДокумента = ТипПрочее
+ И Не ПредварительныйПросмотр.РезультатПодготовкиВложения.Успех Тогда
+
+ ОткрытьНовыйПроизвольныйЭлектронныйДокументНаОсновании(ОбъектУчета);
+
+ Возврат;
+ КонецЕсли;
+
Если Не ПредварительныйПросмотр.РезультатПоискаНастроек.Успех Тогда
ПараметрыПоиска = ПредварительныйПросмотр.РезультатПоискаНастроек.ПараметрыПоиска;
@@ -3592,7 +3695,7 @@
ИначеЕсли ПредварительныйПросмотр.РезультатПоискаНастроек.ФормированиеЗапрещено Тогда
Параметры = ИнтерфейсДокументовЭДОКлиентСервер.НовыеПараметрыПроблемПриОбработкеДокументов();
- ОписаниеОбъектаУчета = ПредварительныйПросмотр.РезультатПоискаНастроек.ОписаниеОбъектаУчета;
+
СтруктураОшибки = Новый Структура("ОписаниеОбъектаУчета, ФормированиеЗапрещено", ОписаниеОбъектаУчета, Истина);
ОшибкиФормирования = Новый Массив;
ОшибкиФормирования.Добавить(СтруктураОшибки);
@@ -5299,4 +5402,34 @@
КонецПроцедуры
+// Параметры:
+// Контекст - См. НовыйКонтекстОтправкиПолученияДокументовЭДО
+Процедура ОтправитьПолучитьДокументыЭДОСУчетомПринятияУсловийСервиса(Контекст)
+
+ Если ЗначениеЗаполнено(Контекст.ПараметрыОтправкиПолучения.УчетныеЗаписиЭДОБезПринятыхУсловийСервиса) Тогда
+
+ Оповещение = Новый ОписаниеОповещения("ОтправитьПолучитьДокументыЭДОПослеПринятияУсловийСервиса",
+ ИнтерфейсДокументовЭДОКлиент, Контекст);
+
+ ПараметрыФормы = Новый Структура("УчетныеЗаписиЭДО",
+ Контекст.ПараметрыОтправкиПолучения.УчетныеЗаписиЭДОБезПринятыхУсловийСервиса);
+
+ ПоказатьУсловияИспользованияСервиса1СЭДО(ПараметрыФормы, Оповещение);
+
+ Возврат;
+ КонецЕсли;
+
+ ПодготовитьОтборУчетныхЗаписейДляОтправкиПолученияДокументовЭДО(Контекст);
+
+КонецПроцедуры
+
+Процедура СохранитьНастройкуНеПоказыватьВопросОСпискеДокументовТакском()
+
+ ОбщегоНазначенияКлиент.ХранилищеОбщихНастроекСохранить(
+ "ПереводИзТакскомКлючНастроек",
+ "НеПоказыватьВопросСпискаДокументовТакскомКЗавершению",
+ Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/ИнтерфейсДокументовЭДОКлиентСервер/Ext/Module.bsl b/src/CommonModules/ИнтерфейсДокументовЭДОКлиентСервер/Ext/Module.bsl
index 46e9af2ff..af0c930d8 100644
--- a/src/CommonModules/ИнтерфейсДокументовЭДОКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ИнтерфейсДокументовЭДОКлиентСервер/Ext/Module.bsl
@@ -987,12 +987,13 @@
// ** СведенияОПринятииТоваров - Структура:
// *** КодИтога - Строка
// *** ДатаПолученияТоваров - Дата
-// *** СодержаниеОперации - Строка
+// *** СодержаниеОперации - Строка
+// *** СведенияОВыбытииМаркированныхТоваров - Строка
// *** ДокументОРасхождениях - Структура:
// **** НаименованиеДокумента - Строка
// **** ДатаДокумента - Дата
// **** НомерДокумента - Строка
-// * ЗакупкаДляГосударственныхНужд - Структура:
+// * ЗакупкаДляГосударственныхНужд - Неопределено,Структура:
// ** КодЗакупки - Строка
// ** НомерЛицевогоСчетаПокупателя - Строка
// ** НаименованиеФинансовогоОрганаПокупателя - Строка
@@ -1011,12 +1012,21 @@
// ** КодЦели - Строка
// ** НомерСтрокиИнформацииПродавца - Число
// ** СуммаАванса - Число
+// * ОснованиеСоставителяФайла - Неопределено,Структура:
+// ** НаименованиеДокумента - Строка
+// ** НомерДокумента - Строка
+// ** ДатаДокумента - Дата
//
Функция ДанныеРучногоФормированияОтветногоТитулаУПД_5_02(Форма)
- Данные = ЭлектронныеДокументыЭДОКлиентСервер.НовыеДанныеРучногоФормированияОтветногоТитулаУПД_5_02();
-
+ Данные = Новый Структура;
+ Данные.Вставить("СоставительДокументаНаименование", "");
+ Данные.Вставить("СодержаниеФХЖ", Новый Структура);
+ Данные.Вставить("ЗакупкаДляГосударственныхНужд", Неопределено);
+ Данные.Вставить("ОснованиеСоставителяФайла", Неопределено);
+ Данные.Вставить("ДенежныеОбязательства", Новый Массив);
Данные.Вставить("СоставительДокументаНаименование", Форма.СоставительДокументаНаименование);
+
Если Форма.СоставительДокумента <> Форма.Покупатель Тогда
Данные.Вставить("СоставительДокументаДоверенность", Форма.СоставительДокументаДоверенность);
КонецЕсли;
@@ -1025,6 +1035,7 @@
СведенияОПринятииТоваров.Вставить("КодИтога", Форма.КодИтога);
СведенияОПринятииТоваров.Вставить("ДатаПолученияТоваров", Форма.ДатаПолученияТоваров);
СведенияОПринятииТоваров.Вставить("СодержаниеОперации", Форма.СодержаниеОперации);
+ СведенияОПринятииТоваров.Вставить("СведенияОВыбытииМаркированныхТоваров", Форма.СведенияОВыбытииМаркированныхТоваров);
Если Форма.ЕстьДокументОРасхождениях Тогда
ДокументОРасхождениях = Новый Структура("НаименованиеДокумента, НомерДокумента, ДатаДокумента");
@@ -1073,6 +1084,7 @@
Данные.Вставить("ДенежныеОбязательства", ДенежныеОбязательства);
Данные.Вставить("ЗакупкаДляГосударственныхНужд", ЗакупкаДляГосударственныхНужд);
+
КонецЕсли;
Если ЗначениеЗаполнено(Форма.ОснованиеСоставителяНаименование)
diff --git a/src/CommonModules/ИнформационныйЦентрКлиент/Ext/Module.bsl b/src/CommonModules/ИнформационныйЦентрКлиент/Ext/Module.bsl
index ce348ea39..095be112a 100644
--- a/src/CommonModules/ИнформационныйЦентрКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ИнформационныйЦентрКлиент/Ext/Module.bsl
@@ -13,7 +13,9 @@
Если Гиперссылка <> Неопределено Тогда
// Локализация
- Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.БазоваяФункциональностьБИП") Тогда
+ //@skip-check bsl-legacy-check-string-literal
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.БазоваяФункциональностьБИП") И
+ СтрНачинаетсяС(Элемент.Имя, "_") Тогда
МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент");
МодульИнтернетПоддержкаПользователейКлиент.ОткрытьСтраницуИнтегрированногоСайта(Гиперссылка.Представление);
diff --git a/src/CommonModules/ИнформационныйЦентрСервер/Ext/Module.bsl b/src/CommonModules/ИнформационныйЦентрСервер/Ext/Module.bsl
index 0c9a88f2e..f31ffcc61 100644
--- a/src/CommonModules/ИнформационныйЦентрСервер/Ext/Module.bsl
+++ b/src/CommonModules/ИнформационныйЦентрСервер/Ext/Module.bsl
@@ -1119,6 +1119,10 @@
КонецЦикла;
+ // Локализация
+ СайтыСАвторизацией = СайтыСДополнительнойАвторизацией();
+ // Конец Локализация
+
Для Итерация = 1 По КоличествоСсылок Цикл
ГруппаСсылки = ПолучитьГруппуСсылок(Форма, КоличествоГрупп, НеполноеНаименованиеГруппы, Итерация);
@@ -1126,9 +1130,18 @@
ДанныеСсылки = ТаблицаСсылок.Получить(Итерация - 1);
ИмяСсылки = ДанныеСсылки.Наименование;
Адрес = ДанныеСсылки.Адрес;
+ ИмяЭлементы = "ЭлементСсылки";
+ // Локализация
+ Для каждого Сайт Из СайтыСАвторизацией Цикл
+ Если СтрНайти(Адрес, Сайт) > 0 Тогда
+ ИмяЭлементы = "_ЭлементСсылки";
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ // Конец Локализация
ЭлементСсылки =
- Форма.Элементы.Добавить("ЭлементСсылки" + Строка(Итерация), Тип("ДекорацияФормы"), ГруппаСсылки);
+ Форма.Элементы.Добавить(ИмяЭлементы + Формат(Итерация, "ЧГ=;"), Тип("ДекорацияФормы"), ГруппаСсылки);
ЭлементСсылки.Вид = ВидДекорацииФормы.Надпись;
ЭлементСсылки.Заголовок = ИмяСсылки;
ЭлементСсылки.АвтоМаксимальнаяШирина = Ложь;
@@ -1294,4 +1307,25 @@
КонецФункции
+// Локализация
+Функция СайтыСДополнительнойАвторизацией()
+
+ Сайты = Новый Массив();
+
+ Сайты.Добавить("its.1c.ru");
+ Сайты.Добавить("portal.1c.ru");
+ Сайты.Добавить("releases.1c.ru");
+
+ Возврат Сайты;
+КонецФункции
+// Конец Локализация
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОпределитьСостояниеПодключенияВФоне", Истина);
+ Методы.Вставить("ЧтениеНовостейСлужбыПоддержки", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/ИнформационныйЦентрСлужебный/Ext/Module.bsl b/src/CommonModules/ИнформационныйЦентрСлужебный/Ext/Module.bsl
index c0c0d6adb..3daf065d5 100644
--- a/src/CommonModules/ИнформационныйЦентрСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ИнформационныйЦентрСлужебный/Ext/Module.bsl
@@ -131,31 +131,15 @@
//
Процедура ЗарегистрироватьОбработчикиОбновления(Обработчики) Экспорт
- Если РаботаВМоделиСервиса.РазделениеВключено() Тогда
-
- Обработчик = Обработчики.Добавить();
- Обработчик.Версия = "*";
- Обработчик.МонопольныйРежим = Ложь;
- Обработчик.ОбщиеДанные = Истина;
- Обработчик.НачальноеЗаполнение = Истина;
- Обработчик.Процедура = "ИнформационныйЦентрСлужебный.СформироватьСловарьПолныхПутейКФормамВМоделиСервиса";
- Обработчик.Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Сформировать словарь полных путей к формам в справочнике ""%1"".'"),
- Метаданные.Справочники.ПолныеПутиКФормам);
-
- Иначе
-
- Обработчик = Обработчики.Добавить();
- Обработчик.Версия = "*";
- Обработчик.Идентификатор = Новый УникальныйИдентификатор("f93cd97f-a84c-4a28-bda3-7c39d4fa55fd");
- Обработчик.НачальноеЗаполнение = Истина;
- Обработчик.РежимВыполнения = "Отложенно";
- Обработчик.Процедура = "ИнформационныйЦентрСлужебный.СформироватьСловарьПолныхПутейКФормам";
- Обработчик.Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Сформировать словарь полных путей к формам в справочнике ""%1"".'"),
- Метаданные.Справочники.ПолныеПутиКФормам);
-
- КонецЕсли;
+ Обработчик = Обработчики.Добавить();
+ Обработчик.Версия = "*";
+ Обработчик.МонопольныйРежим = Ложь;
+ Обработчик.ОбщиеДанные = Истина;
+ Обработчик.НачальноеЗаполнение = Истина;
+ Обработчик.Процедура = "ИнформационныйЦентрСлужебный.СформироватьСловарьПолныхПутейКФормам";
+ Обработчик.Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Сформировать словарь полных путей к формам в справочнике ""%1"".'"),
+ Метаданные.Справочники.ПолныеПутиКФормам);
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "1.0.5.12";
@@ -203,12 +187,6 @@
#Область СлужебныйПрограммныйИнтерфейс
-Процедура СформироватьСловарьПолныхПутейКФормамВМоделиСервиса(Параметры = Неопределено) Экспорт
-
- СформироватьСловарьПолныхПутейКФормам(Параметры);
-
-КонецПроцедуры
-
// Заполняет справочник "ПолныеПутиКФормам" полными путями к формам.
//
Процедура СформироватьСловарьПолныхПутейКФормам(Параметры = Неопределено) Экспорт
@@ -1010,4 +988,15 @@
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗаполнитьИнформационнуюСсылкуИзКонфигурации");
+ Методы.Вставить("ЗаполнитьДатуОкончанияАктуальностиИнформационныхСсылок");
+ Методы.Вставить("ЗаполнитьХешПолногоПутиКФорме");
+ Методы.Вставить("ОбновитьИнформационныеСсылкиДляФормВЛокальномРежиме");
+ Методы.Вставить("СформироватьСловарьПолныхПутейКФормам");
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/ИнцидентыЦККСервер/Ext/Module.bsl b/src/CommonModules/ИнцидентыЦККСервер/Ext/Module.bsl
index 062432d0f..61a01937c 100644
--- a/src/CommonModules/ИнцидентыЦККСервер/Ext/Module.bsl
+++ b/src/CommonModules/ИнцидентыЦККСервер/Ext/Module.bsl
@@ -145,4 +145,11 @@
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВыполнитьМониторингЦКК", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/КаталогРасширений/Ext/Module.bsl b/src/CommonModules/КаталогРасширений/Ext/Module.bsl
index 599f12141..ec4da2e07 100644
--- a/src/CommonModules/КаталогРасширений/Ext/Module.bsl
+++ b/src/CommonModules/КаталогРасширений/Ext/Module.bsl
@@ -243,4 +243,11 @@
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("СостояниеРасширения", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/КлиентБанкСервер/Ext/Module.bsl b/src/CommonModules/КлиентБанкСервер/Ext/Module.bsl
index 0a9964ae0..f22f32d89 100644
--- a/src/CommonModules/КлиентБанкСервер/Ext/Module.bsl
+++ b/src/CommonModules/КлиентБанкСервер/Ext/Module.bsl
@@ -307,6 +307,7 @@
// Контрагенты, счета контрагентов
Отбор = Новый Структура;
Отбор.Вставить("Загружать", Истина);
+ Отбор.Вставить("НайденСчетКонтрагента", Ложь);
СтрокиКЗагрузке = ДокументыКЗагрузке.НайтиСтроки(Отбор);
ТаблицаДокументов = ДокументыКЗагрузке.Скопировать(
СтрокиКЗагрузке,
@@ -465,9 +466,12 @@
Если РеквизитыХозОперации.Найти("БанковскийСчетКонтрагента") <> Неопределено И Не ЗначениеЗаполнено(ДокументОбъект.БанковскийСчетКонтрагента) Тогда
Если ЗначениеЗаполнено(СтрокаДокумента.СчетКонтрагента) Тогда
УстановитьСвойство(ДокументОбъект, "БанковскийСчетКонтрагента", СтрокаДокумента.СчетКонтрагента);
- ИначеЕсли ЗначениеЗаполнено(ДокументОбъект.Контрагент) Тогда
+
+ // Не заполнен счет, но указан контрагент, у которого нет дублей счета по платежу из выписки - создание счета или подбор созданного в процессе загрузки
+ // Если указан контрагент, у которого есть дубли счета по платежу, тогда выбор счета выполняется вручную.
+ ИначеЕсли ЗначениеЗаполнено(ДокументОбъект.Контрагент) И СтрокаДокумента.СоздаватьКонтрагента Тогда
УстановитьСвойство(ДокументОбъект, "БанковскийСчетКонтрагента",
- СоздатьБанковскийСчетКонтрагента(ДокументыКЗагрузке, СтрокаДокумента, ДокументОбъект.Контрагент));
+ СоздатьБанковскийСчетКонтрагента(ДокументыКЗагрузке, СтрокаДокумента, ДокументОбъект.Контрагент));
КонецЕсли;
КонецЕсли;
@@ -866,7 +870,7 @@
КонецФункции
-// Создает элемент справочника "БанковскиеСчетаКонтрагентов"
+// Создает новый элемент справочника "БанковскиеСчетаКонтрагентов" или подбирает из уже созданного при загрузке текущей выписки.
//
// Параметры:
// ДокументыКЗагрузке - ТаблицаЗначений - Таблица документов выписки
@@ -1052,6 +1056,7 @@
Возврат СтрокаДокумента.СчетКонтрагента;
КонецЕсли;
+ // Поиск счета, созданного в процессе текущей загрузки выписки, и создание счета при отсутствии такого счета
Счет = НайтиСоздатьБанковскийСчетКонтрагента(ДанныеСчета);
// Нужно подставить новый счет в другие строки выписки
@@ -1127,11 +1132,35 @@
Запрос.Выполнить();
Запрос.Текст = "
+ |ВЫБРАТЬ // Контрагент уже заполнен или выбран для загруженного платежа - ищем действующий счет
+ | ТаблицаДокументов.НомерСтроки КАК НомерСтроки,
+ | Контрагенты.Ссылка КАК Контрагент,
+ | ДанныеСправочника.Ссылка КАК СчетКонтрагента,
+ | 0 КАК Приоритет
+ |
+ |ИЗ
+ | ТаблицаДокументов
+ |
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ
+ | Справочник.Контрагенты КАК Контрагенты
+ | ПО
+ | Контрагенты.Ссылка = ТаблицаДокументов.Контрагент
+ |
+ | ЛЕВОЕ СОЕДИНЕНИЕ
+ | Справочник.БанковскиеСчетаКонтрагентов КАК ДанныеСправочника
+ | ПО
+ | ДанныеСправочника.НомерСчета = ТаблицаДокументов.НомерСчета
+ | И ДанныеСправочника.Владелец = Контрагенты.Ссылка
+ | И НЕ ДанныеСправочника.Закрыт
+ |
+ |ОБЪЕДИНИТЬ ВСЕ
+ |
+ |// Контрагент не подобран из справочника или первая загрузка - ищем по реквизитам платежа
|ВЫБРАТЬ
| ТаблицаДокументов.НомерСтроки КАК НомерСтроки,
| ДанныеСправочника.Владелец КАК Контрагент,
| ДанныеСправочника.Ссылка КАК СчетКонтрагента,
- | 0 КАК Приоритет
+ | 5 КАК Приоритет
|
|ИЗ
| ТаблицаДокументов
@@ -1156,29 +1185,6 @@
|
|ОБЪЕДИНИТЬ ВСЕ
|
- |ВЫБРАТЬ // Контрагент уже найден, ищем счет
- | ТаблицаДокументов.НомерСтроки КАК НомерСтроки,
- | Контрагенты.Ссылка КАК Контрагент,
- | ДанныеСправочника.Ссылка КАК СчетКонтрагента,
- | 5 КАК Приоритет
- |
- |ИЗ
- | ТаблицаДокументов
- |
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ
- | Справочник.Контрагенты КАК Контрагенты
- | ПО
- | Контрагенты.Ссылка = ТаблицаДокументов.Контрагент
- |
- | ЛЕВОЕ СОЕДИНЕНИЕ
- | Справочник.БанковскиеСчетаКонтрагентов КАК ДанныеСправочника
- | ПО
- | ДанныеСправочника.НомерСчета = ТаблицаДокументов.НомерСчета
- | И ДанныеСправочника.Владелец = Контрагенты.Ссылка
- | И НЕ ДанныеСправочника.Закрыт
- |
- |ОБЪЕДИНИТЬ ВСЕ
- |
|ВЫБРАТЬ
| ТаблицаДокументов.НомерСтроки КАК НомерСтроки,
| ДанныеСправочника.Владелец КАК Контрагент,
@@ -1366,6 +1372,9 @@
СтрокаДокумента.СчетКонтрагента = Выборка.СчетКонтрагента;
СтрокаДокумента.НайденСчетКонтрагента = Истина;
КонецЕсли;
+
+ СтрокаДокумента.СоздаватьКонтрагента = Не (СтрокаДокумента.НайденКонтрагент И СтрокаДокумента.НайденСчетКонтрагента);
+
КонецЕсли;
КонецЦикла;
@@ -2463,6 +2472,7 @@
Функция НайтиСоздатьБанковскийСчетКонтрагента(Отбор)
+ // Поиск счета, созданного в процессе текущей загрузки выписки
Результат = СсылкаИзТаблицыСОтбором("Справочник.БанковскиеСчетаКонтрагентов", Отбор);
Если Не ЗначениеЗаполнено(Результат) Тогда
@@ -2644,7 +2654,18 @@
| ТаблицаДокументов.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Проведен КАК Проведен,
- | ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация
+ | ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
+ | ВЫБОР
+ | КОГДА ЕСТЬNULL(ДанныеДокумента.БанковскийСчетПолучатель, ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)
+ | ТОГДА ДанныеДокумента.Контрагент
+ | ИНАЧЕ ДанныеДокумента.БанковскийСчетПолучатель.Владелец
+ | КОНЕЦ КАК Контрагент,
+ | ДанныеДокумента.ПодотчетноеЛицо КАК ПодотчетноеЛицо,
+ | ВЫБОР
+ | КОГДА ЕСТЬNULL(ДанныеДокумента.БанковскийСчетПолучатель, ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)
+ | ТОГДА ДанныеДокумента.БанковскийСчетКонтрагента
+ | ИНАЧЕ ДанныеДокумента.БанковскийСчетПолучатель
+ | КОНЕЦ КАК СчетКонтрагента
|
|ИЗ
| ТаблицаДокументов
@@ -2702,7 +2723,18 @@
| ТаблицаДокументов.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Проведен КАК Проведен,
- | ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация
+ | ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
+ | ВЫБОР
+ | КОГДА ЕСТЬNULL(ДанныеДокумента.БанковскийСчетОтправитель, ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)
+ | ТОГДА ДанныеДокумента.Контрагент
+ | ИНАЧЕ ДанныеДокумента.БанковскийСчетОтправитель.Владелец
+ | КОНЕЦ КАК Контрагент,
+ | ДанныеДокумента.ПодотчетноеЛицо КАК ПодотчетноеЛицо,
+ | ВЫБОР
+ | КОГДА ЕСТЬNULL(ДанныеДокумента.БанковскийСчетОтправитель, ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)
+ | ТОГДА ДанныеДокумента.БанковскийСчетКонтрагента
+ | ИНАЧЕ ДанныеДокумента.БанковскийСчетОтправитель
+ | КОНЕЦ КАК СчетКонтрагента
|
|ИЗ
| ТаблицаДокументов
@@ -2793,7 +2825,18 @@
| ТаблицаДокументов.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Проведен КАК Проведен,
- | ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация
+ | ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
+ | ВЫБОР
+ | КОГДА ЕСТЬNULL(ДанныеДокумента.БанковскийСчетОтправитель, ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)
+ | ТОГДА ДанныеДокумента.Контрагент
+ | ИНАЧЕ ДанныеДокумента.БанковскийСчетОтправитель.Владелец
+ | КОНЕЦ КАК Контрагент,
+ | ДанныеДокумента.ПодотчетноеЛицо КАК ПодотчетноеЛицо,
+ | ВЫБОР
+ | КОГДА ЕСТЬNULL(ДанныеДокумента.БанковскийСчетОтправитель, ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)
+ | ТОГДА ДанныеДокумента.БанковскийСчетКонтрагента
+ | ИНАЧЕ ДанныеДокумента.БанковскийСчетОтправитель
+ | КОНЕЦ КАК СчетКонтрагента
|
|ИЗ
| ТаблицаДокументов
@@ -2817,7 +2860,18 @@
| ТаблицаДокументов.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Проведен КАК Проведен,
- | ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация
+ | ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
+ | ВЫБОР
+ | КОГДА ЕСТЬNULL(ДанныеДокумента.БанковскийСчетОтправитель, ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)
+ | ТОГДА ДанныеДокумента.Контрагент
+ | ИНАЧЕ ДанныеДокумента.БанковскийСчетОтправитель.Владелец
+ | КОНЕЦ КАК Контрагент,
+ | ДанныеДокумента.ПодотчетноеЛицо КАК ПодотчетноеЛицо,
+ | ВЫБОР
+ | КОГДА ЕСТЬNULL(ДанныеДокумента.БанковскийСчетОтправитель, ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка)
+ | ТОГДА ДанныеДокумента.БанковскийСчетКонтрагента
+ | ИНАЧЕ ДанныеДокумента.БанковскийСчетОтправитель
+ | КОНЕЦ КАК СчетКонтрагента
|
|ИЗ
| ТаблицаДокументов
@@ -2861,6 +2915,12 @@
СтрокаДокумента.Документ = Выборка.Ссылка;
СтрокаДокумента.НайденДокументВБазе = Истина;
СтрокаДокумента.ВидОперации = Выборка.ХозяйственнаяОперация;
+ СтрокаДокумента.Контрагент = Выборка.Контрагент;
+ СтрокаДокумента.ПодотчетноеЛицо = Выборка.ПодотчетноеЛицо;
+ СтрокаДокумента.СчетКонтрагента = Выборка.СчетКонтрагента;
+ СтрокаДокумента.НайденКонтрагент = (ЗначениеЗаполнено(СтрокаДокумента.Контрагент) Или ЗначениеЗаполнено(СтрокаДокумента.ПодотчетноеЛицо));
+ СтрокаДокумента.НайденСчетКонтрагента = (ЗначениеЗаполнено(СтрокаДокумента.СчетКонтрагента));
+ СтрокаДокумента.СоздаватьКонтрагента = Не (СтрокаДокумента.НайденКонтрагент И СтрокаДокумента.НайденСчетКонтрагента);
КонецЕсли;
КонецЦикла;
@@ -4407,9 +4467,21 @@
Для Каждого СтрокаТаблицы Из СтрокиКЗагрузке Цикл
Если СтрокаТаблицы.Исходящий Тогда
- СтрокаТаблицы.ВидОперации = Перечисления.ХозяйственныеОперации.ОплатаПоставщику;
+
+ Если ТипЗнч(СтрокаТаблицы.Контрагент) = Тип("СправочникСсылка.ФизическиеЛица") Тогда
+ СтрокаТаблицы.ВидОперации = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику;
+ Иначе
+ СтрокаТаблицы.ВидОперации = Перечисления.ХозяйственныеОперации.ОплатаПоставщику;
+ КонецЕсли;
+
Иначе
- СтрокаТаблицы.ВидОперации = Перечисления.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента;
+
+ Если ТипЗнч(СтрокаТаблицы.Контрагент) = Тип("СправочникСсылка.ФизическиеЛица") Тогда
+ СтрокаТаблицы.ВидОперации = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствОтПодотчетника;
+ Иначе
+ СтрокаТаблицы.ВидОперации = Перечисления.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента;
+ КонецЕсли;
+
КонецЕсли;
КонецЦикла;
diff --git a/src/CommonModules/КоммерческиеПредложенияДокументы/Ext/Module.bsl b/src/CommonModules/КоммерческиеПредложенияДокументы/Ext/Module.bsl
index 55cc876c2..057fb41c9 100644
--- a/src/CommonModules/КоммерческиеПредложенияДокументы/Ext/Module.bsl
+++ b/src/CommonModules/КоммерческиеПредложенияДокументы/Ext/Module.bsl
@@ -1115,6 +1115,16 @@
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗарегистрироватьВариантыОтчетов");
+ Методы.Вставить("СохранитьПользовательскиеИзмененияВДокументахИсточниках", Истина);
+
+КонецПроцедуры
+
+// Конец ЭлектронноеВзаимодействие.ИнтеграцияСЭлектроннымиТорговымиПлощадками
+
#КонецОбласти
#КонецОбласти
diff --git a/src/CommonModules/КоммерческиеПредложенияСлужебный/Ext/Module.bsl b/src/CommonModules/КоммерческиеПредложенияСлужебный/Ext/Module.bsl
index 3a4b7f081..a1d3f4ac6 100644
--- a/src/CommonModules/КоммерческиеПредложенияСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/КоммерческиеПредложенияСлужебный/Ext/Module.bsl
@@ -41,8 +41,9 @@
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Результат.ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыОтправки,
- ПараметрыВыполнения);
+ Результат.ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(
+ "КоммерческиеПредложенияСлужебный.ОтправитьЗапросКоммерческихПредложений",
+ ПараметрыОтправки, ПараметрыВыполнения);
КонецЕсли;
@@ -1085,8 +1086,9 @@
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Результат.ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыОтправки,
- ПараметрыВыполнения);
+ Результат.ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(
+ "КоммерческиеПредложенияСлужебный.ОтменитьЗапросКоммерческихПредложений",
+ ПараметрыОтправки, ПараметрыВыполнения);
КонецЕсли;
@@ -2939,6 +2941,19 @@
#КонецОбласти
+#Область ДляВызоваИзДругихПодсистем
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОтправитьЗапросКоммерческихПредложений", Истина);
+ Методы.Вставить("ОтменитьЗапросКоммерческихПредложений", Истина);
+ Методы.Вставить("СохранитьВыбранныеИзображенияТоварныхПозицийЗКП", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git a/src/CommonModules/КонвертацияЭДО/Ext/Module.bsl b/src/CommonModules/КонвертацияЭДО/Ext/Module.bsl
index 44ec78d51..106e78b89 100644
--- a/src/CommonModules/КонвертацияЭДО/Ext/Module.bsl
+++ b/src/CommonModules/КонвертацияЭДО/Ext/Module.bsl
@@ -1680,4 +1680,13 @@
#КонецОбласти
-#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВыполнитьЗаполнениеПравилПреобразования");
+ Методы.Вставить("ЗаполнитьПереченьСпециальныхОбстоятельствДокументаЭДО");
+ Методы.Вставить("ОбработатьДанныеДляПереходаНаНовуюВерсиюНачальноеЗаполнение");
+
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/КорректировкаРеализацииЛокализация/Ext/Module.bsl b/src/CommonModules/КорректировкаРеализацииЛокализация/Ext/Module.bsl
index bcce361cf..07b055b30 100644
--- a/src/CommonModules/КорректировкаРеализацииЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/КорректировкаРеализацииЛокализация/Ext/Module.bsl
@@ -5030,6 +5030,7 @@
| Товары.ТипНоменклатуры КАК ТипНоменклатуры,
| Товары.ПодакцизныйТовар КАК ПодакцизныйТовар,
| Товары.ОсобенностьУчета КАК ОсобенностьУчета,
+ | Товары.ВидПродукцииИС КАК ВидПродукцииИС,
| Товары.Агент КАК Агент,
| Товары.НоменклатураНаименование КАК НоменклатураНаименование,
| Товары.ХарактеристикаНаименование КАК ХарактеристикаНаименование,
@@ -5096,6 +5097,7 @@
| Товары.ТипНоменклатуры КАК ТипНоменклатуры,
| Товары.ПодакцизныйТовар КАК ПодакцизныйТовар,
| Товары.ОсобенностьУчета КАК ОсобенностьУчета,
+ | Товары.ВидПродукцииИС КАК ВидПродукцииИС,
| Товары.Агент КАК Агент,
| Товары.НоменклатураНаименование КАК НоменклатураНаименование,
| Товары.ХарактеристикаНаименование КАК ХарактеристикаНаименование,
diff --git a/src/CommonModules/КриптографияБЭД/Ext/Module.bsl b/src/CommonModules/КриптографияБЭД/Ext/Module.bsl
index 3b2b90d28..ae4af2610 100644
--- a/src/CommonModules/КриптографияБЭД/Ext/Module.bsl
+++ b/src/CommonModules/КриптографияБЭД/Ext/Module.bsl
@@ -100,6 +100,17 @@
#КонецОбласти
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПрограммыЭлектроннойПодписиИШифрованияНачальноеЗаполнение");
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#КонецОбласти
@@ -194,6 +205,8 @@
//
Функция Расшифровать(Данные, Пароль, КонтекстДиагностики, Программа = Неопределено) Экспорт
+ КлючЗамера = "КриптографияБЭД.Расшифровать.Сервер";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
ВидОперации = НСтр("ru = 'Расшифровка маркера'");
ПодробноеПредставлениеОшибки = "";
МенеджерКриптографии = ЭлектроннаяПодпись.МенеджерКриптографии("Расшифровка", Истина, ПодробноеПредставлениеОшибки, Программа);
@@ -201,6 +214,7 @@
КраткоеПредставлениеОшибки = ОбработкаНеисправностейБЭД.ПолучитьСообщениеОбОшибкеДругойСистемы("110");
ОбработатьОшибкиКриптографическойОперации(ВидОперации, КонтекстДиагностики,
ПодробноеПредставлениеОшибки, КраткоеПредставлениеОшибки);
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера, 0, КраткоеПредставлениеОшибки);
Возврат Неопределено;
КонецЕсли;
@@ -217,7 +231,9 @@
ПодробноеПредставлениеОшибки, КраткоеПредставлениеОшибки);
Возврат Неопределено;
КонецПопытки;
-
+
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
+
Возврат РасшифрованныеДвоичныеДанные;
КонецФункции
@@ -240,7 +256,8 @@
// - Неопределено -
// - См. НовоеОписаниеПодписываемыхДанных
Функция Подписать(ОписаниеДанных, КонтекстДиагностики, ПаролиСертификатов = Неопределено, МенеджерКриптографии = Неопределено) Экспорт
-
+ КлючЗамера = "КриптографияБЭД.Подписать.Сервер.Базовая";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
Если ПаролиСертификатов = Неопределено Тогда
ПаролиСертификатов = НовыеПаролиСертификатов();
КонецЕсли;
@@ -303,7 +320,8 @@
ДанныеНабора.Вставить("ВыбранныйСертификат", ОписаниеДанных.Сертификат);
КонецЦикла;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера,
+ ОписаниеДанных.НаборДанных.Количество());
Возврат ОписаниеДанных;
КонецФункции
@@ -331,16 +349,25 @@
// ИсходныеДанные - ДвоичныеДанные - исходные данные для проверки
// Подпись - ДвоичныеДанные - подпись для проверки
// КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
+// ИспользоватьДополнительныеПараметрыПроверки - Булево - определяет необходимость заполнения словаря дополнительных
+// параметров проверки подписи через сервис DSS.
// Возвращаемое значение:
// см. КриптографияБЭДКлиентСервер.НовыйРезультатПроверкиПодписи
-Функция ПроверитьПодпись(МенеджерКриптографии, ИсходныеДанные, Подпись, КонтекстДиагностики) Экспорт
+Функция ПроверитьПодпись(МенеджерКриптографии, ИсходныеДанные, Подпись, КонтекстДиагностики,
+ ИспользоватьДополнительныеПараметрыПроверки = Истина) Экспорт
Если ДоступнаПроверкаПодписиВОблаке() Тогда
- РезультатПроверки = ПроверитьПодписьЧерезСервисDSS(ИсходныеДанные, Подпись, КонтекстДиагностики);
+ КлючЗамера = "КриптографияБЭД.ПроверитьПодпись.DSS";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
+ РезультатПроверки = ПроверитьПодписьЧерезСервисDSS(ИсходныеДанные, Подпись, КонтекстДиагностики,,
+ ИспользоватьДополнительныеПараметрыПроверки);
Иначе
+ КлючЗамера = "КриптографияБЭД.ПроверитьПодпись.Сервер";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
РезультатПроверки = ПроверитьПодписьЧерезКриптопровайдер(
МенеджерКриптографии, ИсходныеДанные, Подпись, КонтекстДиагностики);
КонецЕсли;
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
РезультатПроверки.СвойстваПодписи.Вставить("ПропуститьПриПродлении", Истина);
Возврат РезультатПроверки;
@@ -1840,6 +1867,78 @@
Возврат Результат;
КонецФункции
+// Определяет, возникли ли ошибки при проверке подписи.
+//
+// Параметры:
+// Подпись - см. ЭлектронныеДокументыЭДОКлиентСервер.НовыеДанныеПодписиСУчетомДоверенности
+//
+// Возвращаемое значение:
+// Булево
+Функция ПриПроверкеПодписиВозниклиОшибки(Подпись) Экспорт
+
+ ПодписьВерна = Подпись.СвойстваПодписи.ПодписьВерна;
+
+ ПроверкаДоверенностиВыполненаВручную = ПроверкаДоверенностиВыполненаВручную(Подпись);
+
+ СертификатОтозванИлиИстек = Ложь;
+ РежимСтрогойПроверкиДоверенностейОтключен = Ложь;
+ ПроверкаПолномочийВыполненаУспешно = Ложь;
+ ПроверкаМЧДВыполненаУспешно = Ложь;
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами") Тогда
+
+ МодульМашиночитаемыеДоверенности =
+ ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенности");
+
+ РежимСтрогойПроверкиДоверенностейОтключен =
+ МодульМашиночитаемыеДоверенности.РежимСтрогойПроверкиДоверенностейОтключен();
+
+ ПротоколПроверкиПодписиМЧД =
+ МодульМашиночитаемыеДоверенности.ПротоколПроверкиПодписиМЧД(Подпись.СвойстваДоверенности);
+
+ Если Подпись.РезультатПроверкиПоМЧД <> Неопределено
+ И Подпись.РезультатПроверкиПоМЧД.Свойство("ПротоколПроверки")
+ И Подпись.РезультатПроверкиПоМЧД.ПротоколПроверки <> Неопределено Тогда
+
+ ПроверкаМЧД = Подпись.РезультатПроверкиПоМЧД.ПротоколПроверки.ПроверкаМЧД;
+
+ ПроверкаПолномочийВыполненаУспешно =
+ МодульМашиночитаемыеДоверенности.ПроверкаПолномочийВыполненаУспешно(ПроверкаМЧД);
+
+ ПроверкаМЧДВыполненаУспешно =
+ МодульМашиночитаемыеДоверенности.ПроверкаМЧДВыполненаУспешно(ПроверкаМЧД);
+
+ КонецЕсли;
+
+ Если ПротоколПроверкиПодписиМЧД <> Неопределено Тогда
+
+ МодульМашиночитаемыеДоверенностиКлиентСервер =
+ ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенностиКлиентСервер");
+
+ СертификатОтозванИлиИстек =
+ МодульМашиночитаемыеДоверенностиКлиентСервер.СертификатОтозванИлиИстек(ПротоколПроверкиПодписиМЧД);
+
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Результат =
+ Не ПодписьВерна
+ Или (Не ПроверкаДоверенностиВыполненаВручную
+ И Подпись.ЭтоПодписьПоДоверенности
+ И ЕстьОшибкаВДоверенности(Подпись.РезультатПроверкиПоМЧД));
+
+ Если Результат И РежимСтрогойПроверкиДоверенностейОтключен Тогда
+ Если ПроверкаМЧДВыполненаУспешно
+ И (СертификатОтозванИлиИстек Или Не ПроверкаПолномочийВыполненаУспешно) Тогда
+ Результат = Ложь;
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти
#Область Настройки
@@ -2369,78 +2468,6 @@
#Область СлужебныеПроцедурыИФункции
-// Определяет, возникли ли ошибки при проверке подписи.
-//
-// Параметры:
-// Подпись - см. ЭлектронныеДокументыЭДОКлиентСервер.НовыеДанныеПодписиСУчетомДоверенности
-//
-// Возвращаемое значение:
-// Булево
-Функция ПриПроверкеПодписиВозниклиОшибки(Подпись)
-
- ПодписьВерна = Подпись.СвойстваПодписи.ПодписьВерна;
-
- ПроверкаДоверенностиВыполненаВручную = ПроверкаДоверенностиВыполненаВручную(Подпись);
-
- СертификатОтозванИлиИстек = Ложь;
- РежимСтрогойПроверкиДоверенностейОтключен = Ложь;
- ПроверкаПолномочийВыполненаУспешно = Ложь;
- ПроверкаМЧДВыполненаУспешно = Ложь;
-
- Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСКонтрагентами") Тогда
-
- МодульМашиночитаемыеДоверенности =
- ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенности");
-
- РежимСтрогойПроверкиДоверенностейОтключен =
- МодульМашиночитаемыеДоверенности.РежимСтрогойПроверкиДоверенностейОтключен();
-
- ПротоколПроверкиПодписиМЧД =
- МодульМашиночитаемыеДоверенности.ПротоколПроверкиПодписиМЧД(Подпись.СвойстваДоверенности);
-
- Если Подпись.РезультатПроверкиПоМЧД <> Неопределено
- И Подпись.РезультатПроверкиПоМЧД.Свойство("ПротоколПроверки")
- И Подпись.РезультатПроверкиПоМЧД.ПротоколПроверки <> Неопределено Тогда
-
- ПроверкаМЧД = Подпись.РезультатПроверкиПоМЧД.ПротоколПроверки.ПроверкаМЧД;
-
- ПроверкаПолномочийВыполненаУспешно =
- МодульМашиночитаемыеДоверенности.ПроверкаПолномочийВыполненаУспешно(ПроверкаМЧД);
-
- ПроверкаМЧДВыполненаУспешно =
- МодульМашиночитаемыеДоверенности.ПроверкаМЧДВыполненаУспешно(ПроверкаМЧД);
-
- КонецЕсли;
-
- Если ПротоколПроверкиПодписиМЧД <> Неопределено Тогда
-
- МодульМашиночитаемыеДоверенностиКлиентСервер =
- ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенностиКлиентСервер");
-
- СертификатОтозванИлиИстек =
- МодульМашиночитаемыеДоверенностиКлиентСервер.СертификатОтозванИлиИстек(ПротоколПроверкиПодписиМЧД);
-
- КонецЕсли;
-
- КонецЕсли;
-
- Результат =
- Не ПодписьВерна
- Или (Не ПроверкаДоверенностиВыполненаВручную
- И Подпись.ЭтоПодписьПоДоверенности
- И ЕстьОшибкаВДоверенности(Подпись.РезультатПроверкиПоМЧД));
-
- Если Результат И РежимСтрогойПроверкиДоверенностейОтключен Тогда
- Если ПроверкаМЧДВыполненаУспешно
- И (СертификатОтозванИлиИстек Или Не ПроверкаПолномочийВыполненаУспешно) Тогда
- Результат = Ложь;
- КонецЕсли;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
// Определяет, выполнялась ли проверка доверенности вручную.
//
// Параметры:
@@ -2633,8 +2660,12 @@
ПодписьВерна = СвойстваПодписи.ПодписьВерна;
- Сертификат = Неопределено;
- ДанныеСертификата = СвойстваПодписи.Сертификат.Получить();
+ Сертификат = Неопределено;
+ Если СвойстваПодписи.Сертификат = Неопределено Тогда
+ ДанныеСертификата = Неопределено;
+ Иначе
+ ДанныеСертификата = СвойстваПодписи.Сертификат.Получить();
+ КонецЕсли;
Если ДанныеСертификата <> Неопределено Тогда
Сертификат = Новый СертификатКриптографии(ДанныеСертификата);
КонецЕсли;
@@ -2724,6 +2755,8 @@
ЗначенияПараметров.Вставить("НомерСертификата", Сертификат.СерийныйНомер);
ЗначенияПараметров.Вставить("ВыдалСертификат", Сертификат.Издатель.CN);
ЗначенияПараметров.Вставить("СрокДействия", СрокДействия);
+ Иначе
+ ЗначенияПараметров.Вставить("ОрганизацияПодписант", СвойстваПодписи.Владелец);
КонецЕсли;
ЗначенияПараметров.Вставить("ТекстОтметки", ТекстОтметки);
@@ -3462,10 +3495,12 @@
// КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
// НастройкиСервисаОблачнойПодписи - Структура, СправочникСсылка.УчетныеЗаписиDSS -
// см. СервисКриптографииDSS.НастройкиПроизвольногоПодключения
+// ИспользоватьДополнительныеПараметрыПроверки - Булево - определяет необходимость заполнения словаря дополнительных
+// параметров проверки подписи (VerifyParams).
// Возвращаемое значение:
// см. КриптографияБЭДКлиентСервер.НовыйРезультатПроверкиПодписи
Функция ПроверитьПодписьЧерезСервисDSS(ИсходныеДанные, Подпись, КонтекстДиагностики,
- НастройкиСервисаОблачнойПодписи = Неопределено)
+ НастройкиСервисаОблачнойПодписи = Неопределено, ИспользоватьДополнительныеПараметрыПроверки = Истина)
РезультатПроверки = КриптографияБЭДКлиентСервер.НовыйРезультатПроверкиПодписи();
ТекстОшибкиПроверки = "";
@@ -3476,7 +3511,12 @@
Если ЗначениеЗаполнено(НастройкиСервисаОблачнойПодписи) Тогда
МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS");
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
- СвойстваПроверкиПодписи = МодульСервисКриптографииDSSКлиентСервер.ПолучитьСвойстваПроверкиПодписи(Ложь);
+
+ СвойстваПроверкиПодписи = Неопределено;
+ Если ИспользоватьДополнительныеПараметрыПроверки Тогда
+ СвойстваПроверкиПодписи = МодульСервисКриптографииDSSКлиентСервер.ПолучитьСвойстваПроверкиПодписи(Ложь);
+ КонецЕсли;
+
РезультатПроверкиDSS = МодульСервисКриптографииDSS.ПроверитьПодпись(
НастройкиСервисаОблачнойПодписи, Подпись, ИсходныеДанные, "CMS", СвойстваПроверкиПодписи);
Если РезультатПроверкиDSS.Выполнено И РезультатПроверкиDSS.Свойство("Сертификаты") Тогда
@@ -3487,6 +3527,7 @@
Сертификаты.Добавить(Новый СертификатКриптографии(ДанныеПроверки.Сертификат));
КонецЦикла;
ТекстОшибкиПроверки = РезультатПроверкиDSS.Ошибка;
+ РезультатПроверки.ОписаниеОшибки = РезультатПроверкиDSS.Ошибка;
Иначе
РезультатПроверки.ОшибкаИнициализацииПроверки = Истина;
РезультатПроверки.ОписаниеОшибки = РезультатПроверкиDSS.Ошибка;
diff --git a/src/CommonModules/КриптографияБЭДКлиент/Ext/Module.bsl b/src/CommonModules/КриптографияБЭДКлиент/Ext/Module.bsl
index 390c5be2b..33349f01b 100644
--- a/src/CommonModules/КриптографияБЭДКлиент/Ext/Module.bsl
+++ b/src/CommonModules/КриптографияБЭДКлиент/Ext/Module.bsl
@@ -13,8 +13,10 @@
// * ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта ОписаниеОповещения.
//
Процедура ПолучитьОтпечаткиСертификатов(Оповещение) Экспорт
+ КлючЗамера = ОбщегоНазначенияБЭДКлиент.НачатьЗамер("ПолучитьХранилищеСертификатов.Клиент");
+ ОповещениеОЗавершенииЗамера = ОбщегоНазначенияБЭДКлиент.ОповещениеОЗавершенииЗамера(КлючЗамера, Оповещение);
- КриптографияБЭДСлужебныйКлиент.ПолучитьОтпечаткиСертификатов(Оповещение, Истина);
+ КриптографияБЭДСлужебныйКлиент.ПолучитьОтпечаткиСертификатов(ОповещениеОЗавершенииЗамера, Истина);
КонецПроцедуры
@@ -34,7 +36,21 @@
// ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии
Процедура Подписать(ОписаниеДанных, КонтекстДиагностики, Форма = Неопределено, Оповещение = Неопределено,
ПаролиСертификатов = Неопределено, ТипПодписи = Неопределено) Экспорт
-
+
+ Если ЭтоТипПодписиCAdESBES(ТипПодписи) Тогда
+ КлючЗамера = "КриптографияБЭД.Подписать.Клиент.Базовая";
+ Иначе
+ КлючЗамера = "КриптографияБЭД.Подписать.Клиент.Усовершенствованная";
+ КонецЕсли;
+
+ КоличествоДанных = 1;
+ Если ОписаниеДанных.Свойство("НаборДанных") И ТипЗнч(ОписаниеДанных.НаборДанных) = Тип("Массив") Тогда
+ КоличествоДанных = ОписаниеДанных.НаборДанных.Количество();
+ КонецЕсли;
+ ОписаниеЗамера = ОбщегоНазначенияБЭДКлиент.НачатьЗамерДлительнойОперации(КлючЗамера);
+ ОповещениеОЗавершенииЗамера = ОбщегоНазначенияБЭДКлиент.ОповещениеОЗавершенииЗамераДлительнойОперации(КлючЗамера,
+ ОписаниеЗамера, КоличествоДанных, Оповещение);
+
ПередВыполнениемКриптографическойОперации(ОписаниеДанных, ПаролиСертификатов);
СледующийОбработчик = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ОписаниеДанных, "ПередВыполнением");
@@ -43,7 +59,7 @@
Контекст = Новый Структура;
Контекст.Вставить("ВидОперации", НСтр("ru = 'Подписание данных'"));
- Контекст.Вставить("Оповещение", Оповещение);
+ Контекст.Вставить("Оповещение", ОповещениеОЗавершенииЗамера);
Контекст.Вставить("КонтекстДиагностики", КонтекстДиагностики);
Контекст.Вставить("ПаролиСертификатов", ПаролиСертификатов);
СлужебноеОповещение = Новый ОписаниеОповещения("ПослеВыполненияКриптографическойОперации",
@@ -78,7 +94,10 @@
//
Процедура ПроверитьСертификат(ОбработчикРезультатаПроверки, Сертификат, КонтекстДиагностики, Подпись = Неопределено,
МенеджерКриптографии = Неопределено) Экспорт
- КриптографияБЭДСлужебныйКлиент.ПроверитьСертификат(ОбработчикРезультатаПроверки, Сертификат, КонтекстДиагностики,
+ КлючЗамера = ОбщегоНазначенияБЭДКлиент.НачатьЗамер("КриптографияБЭД.ПроверитьСертификат.Клиент");
+ ОповещениеОЗавершенииЗамера = ОбщегоНазначенияБЭДКлиент.ОповещениеОЗавершенииЗамера(КлючЗамера,
+ ОбработчикРезультатаПроверки);
+ КриптографияБЭДСлужебныйКлиент.ПроверитьСертификат(ОповещениеОЗавершенииЗамера, Сертификат, КонтекстДиагностики,
МенеджерКриптографии, Подпись);
КонецПроцедуры
@@ -108,10 +127,13 @@
СлужебноеОповещение = Новый ОписаниеОповещения("ПослеВыполненияКриптографическойОперации",
КриптографияБЭДСлужебныйКлиент, Контекст);
+ КлючЗамера = ОбщегоНазначенияБЭДКлиент.НачатьЗамер("КриптографияБЭД.Расшифровать.Клиент");
+ ОповещениеОЗавершенииЗамера = ОбщегоНазначенияБЭДКлиент.ОповещениеОЗавершенииЗамера(КлючЗамера,
+ СлужебноеОповещение);
#Если Не МобильныйКлиент Тогда
- ЭлектроннаяПодписьКлиент.Расшифровать(ОписаниеДанных, Форма, СлужебноеОповещение);
+ ЭлектроннаяПодписьКлиент.Расшифровать(ОписаниеДанных, Форма, ОповещениеОЗавершенииЗамера);
#Иначе
- МобильныйЭДОКлиент.Расшифровать(ОписаниеДанных, Форма, СлужебноеОповещение);
+ МобильныйЭДОКлиент.Расшифровать(ОписаниеДанных, Форма, ОповещениеОЗавершенииЗамера);
#КонецЕсли
КонецПроцедуры
@@ -130,11 +152,17 @@
// МенеджерКриптографии - см. ЭлектроннаяПодписьКлиент.ПроверитьПодпись.МенеджерКриптографии
Процедура ПроверитьПодпись(ОповещениеОЗавершении, ИсходныеДанные, Подпись, КонтекстДиагностики, МенеджерКриптографии = Неопределено) Экспорт
+ КлючЗамера = "КриптографияБЭД.ПроверитьПодпись.Клиент";
+ ОписаниеЗамера = ОбщегоНазначенияБЭДКлиент.НачатьЗамерДлительнойОперации(КлючЗамера);
+
+ ОповещениеОЗавершенииЗамера = ОбщегоНазначенияБЭДКлиент.ОповещениеОЗавершенииЗамераДлительнойОперации(КлючЗамера,
+ ОписаниеЗамера, 1, ОповещениеОЗавершении);
+
Контекст = КриптографияБЭДСлужебныйКлиент.НовыйКонтекстПроверкиПодписи();
Контекст.Подпись = Подпись;
Контекст.ИсходныеДанные = ИсходныеДанные;
Контекст.МенеджерКриптографии = МенеджерКриптографии;
- Контекст.ОповещениеОЗавершении = ОповещениеОЗавершении;
+ Контекст.ОповещениеОЗавершении = ОповещениеОЗавершенииЗамера;
Контекст.КонтекстДиагностики = КонтекстДиагностики;
Если МенеджерКриптографии <> Неопределено Тогда
@@ -224,8 +252,14 @@
// НаборДанныхДляРасшифровки - см. КриптографияБЭДКлиентСервер.НовыйНаборДанныхДляРасшифровки
// ПараметрыРасшифровки - см. НовыеПараметрыРасшифровкиНабораДанных
Процедура НачатьРасшифровкуНабораДанных(Оповещение, НаборДанныхДляРасшифровки, ПараметрыРасшифровки = Неопределено) Экспорт
+
+ КлючЗамера = "КриптографияБЭД.НачатьРасшифровкуНабораДанных.Клиент";
+ ОписаниеЗамера = ОбщегоНазначенияБЭДКлиент.НачатьЗамерДлительнойОперации(КлючЗамера);
+ КоличествоДанных = НаборДанныхДляРасшифровки.Количество();
+ ОповещениеОЗавершенииЗамера = ОбщегоНазначенияБЭДКлиент.ОповещениеОЗавершенииЗамераДлительнойОперации(КлючЗамера,
+ ОписаниеЗамера, КоличествоДанных, Оповещение);
КонтекстРасшифровки = КриптографияБЭДСлужебныйКлиент.НовыйКонтекстРасшифровкиНабораДанных();
- КонтекстРасшифровки.ОповещениеОЗавершении = Оповещение;
+ КонтекстРасшифровки.ОповещениеОЗавершении = ОповещениеОЗавершенииЗамера;
КонтекстРасшифровки.КлючиДанных = ОбщегоНазначенияБЭДКлиент.ВыгрузитьКолонку(НаборДанныхДляРасшифровки, "Ключ");
КонтекстРасшифровки.НаборДанныхДляРасшифровки = НаборДанныхДляРасшифровки;
Если ЗначениеЗаполнено(ПараметрыРасшифровки) Тогда
diff --git a/src/CommonModules/КриптографияБЭДКлиентСервер/Ext/Module.bsl b/src/CommonModules/КриптографияБЭДКлиентСервер/Ext/Module.bsl
index fde75fd16..2829f29a2 100644
--- a/src/CommonModules/КриптографияБЭДКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/КриптографияБЭДКлиентСервер/Ext/Module.bsl
@@ -519,6 +519,27 @@
КонецФункции
+// Возвращает данные сертификата из двоичных данных подписи.
+//
+// Параметры:
+// Подпись - ДвоичныеДанные
+//
+// Возвращаемое значение:
+// Неопределено,
+// ДвоичныеДанные
+Функция ДанныеСертификатаИзДвоичныхДанныхПодписи(Подпись) Экспорт
+
+ Если Подпись = Неопределено Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ // АПК:277-выкл Не проверять вызов служебной процедуры или функции другой подсистемы.
+ СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных(Подпись, РазницаСУниверсальнымВременем());
+ // АПК:277-вкл
+ Возврат СвойстваПодписи.СертификатПодписи;
+
+КонецФункции
+
#Область ОбработкаНеисправностей
// Возвращает вид ошибки, возникающей при проблемах с криптографией.
diff --git a/src/CommonModules/КриптографияБЭДСлужебный/Ext/Module.bsl b/src/CommonModules/КриптографияБЭДСлужебный/Ext/Module.bsl
index 96e5b77d4..dc2ecbc5f 100644
--- a/src/CommonModules/КриптографияБЭДСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/КриптографияБЭДСлужебный/Ext/Module.bsl
@@ -1,5 +1,4 @@
-
-#Область СлужебныеПроцедурыИФункции
+#Область СлужебныеПроцедурыИФункции
// Возвращает признак использования сертификатов пользователя в облачном сервисе.
//
@@ -83,7 +82,8 @@
РезультатПолучения.Доступность = Ложь;
Возврат РезультатПолучения;
КонецЕсли;
-
+ КлючЗамера = "ПолучитьХранилищеСертификатов.Сервер";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
ТекущаяДата = ТекущаяДатаСеанса(); // Используется для выявления истекших сертификатов, которые хранятся на клиентском компьютере.
ХранилищеСертификатовКриптографии = МенеджерКриптографии.ПолучитьХранилищеСертификатов(
@@ -99,7 +99,7 @@
РезультатПолучения.Отпечатки.Добавить(СтрокаОтпечатка);
КонецЦикла;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
Возврат РезультатПолучения;
КонецФункции
@@ -177,6 +177,8 @@
// См. КриптографияБЭД.ПроверитьСертификат
Функция ПроверитьСертификат(МенеджерКриптографии, Сертификат, КонтекстДиагностики, Подпись = Неопределено) Экспорт
+ КлючЗамера = "КриптографияБЭД.ПроверитьСертификат.Сервер";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
РежимыПроверки = КриптографияБЭДСлужебныйКлиентСервер.РежимыПроверкиСертификата();
ПараметрыПроверки = Новый Структура;
ПараметрыПроверки.Вставить("ИгнорироватьПроверкуВСпискеОтозванныхСертификатов", Ложь);
@@ -197,6 +199,7 @@
ОбработкаНеисправностейБЭД.ДобавитьОшибку(
КонтекстДиагностики, Ошибка, ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().Криптография);
КонецЕсли;
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
Возврат РезультатПроверки;
КонецФункции
@@ -1238,4 +1241,11 @@
#КонецОбласти
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПолучитьДистрибутивCryptoProCSP", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти // СлужебныеПроцедурыИФункции
diff --git a/src/CommonModules/КриптографияБЭДСлужебныйВызовСервера/Ext/Module.bsl b/src/CommonModules/КриптографияБЭДСлужебныйВызовСервера/Ext/Module.bsl
index 2c501ae23..9c8da878a 100644
--- a/src/CommonModules/КриптографияБЭДСлужебныйВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/КриптографияБЭДСлужебныйВызовСервера/Ext/Module.bsl
@@ -191,17 +191,20 @@
КонецПроцедуры
-#Область СервисМояПодпись
+#Область СервисМобильнойПодписи
// Находит/добавляет сертификат подписания в Регистр СертификатыПодписантовМобильнойПодписиБЭД
// Параметры:
-// СвойстваПодписи - Структура - Свойства подписи, полученные в сервисе "Моя Подпись" с ключами:
+// СвойстваПодписи - Структура - Свойства подписи, полученные в сервисе мобильной подписи с ключами:
// *Сертификат - ДвоичныеДанные - Сертификат
// Подписант - СправочникСсылка.ПодписантыСервисаМобильнойПодписи - Подписант
+// ВидМобильнойПодписи - ПеречислениеСсылка.ВидыМобильныхПодписей - Вид мобильной подписи
// Возвращаемое значение:
// СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//
-Функция НайтиСоздатьСертификатПодписантаИзСвойствПодписи(Знач СвойстваПодписи, Знач Подписант) Экспорт
+Функция НайтиСоздатьСертификатПодписантаИзСвойствПодписи(Знач СвойстваПодписи,
+ Знач Подписант,
+ Знач ВидМобильнойПодписи) Экспорт
ПараметрыПодписанта = ИнтеграцияБСПБЭДВызовСервера.ПараметрыПодписантаМобильнойПодписи(Подписант);
@@ -209,7 +212,9 @@
СсылкаНаСертификат = КриптографияБЭД.НайтиСоздатьСертификатЭП(СвойстваПодписи.Сертификат,
ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыПодписанта, "Организация"));
- РегистрыСведений.СертификатыПодписантовМобильнойПодписиБЭД.ДобавитьЗапись(Подписант, СсылкаНаСертификат);
+ РегистрыСведений.СертификатыПодписантовМобильнойПодписиБЭД.ДобавитьЗапись(Подписант,
+ СсылкаНаСертификат,
+ ВидМобильнойПодписи);
Возврат СсылкаНаСертификат;
@@ -222,12 +227,13 @@
// * ИННФЛ - Строка - ИНН ФЛ
// * Организация - ОпределяемыйТип.Организация - Организация подписанта
// * НомерТелефона - Строка - Номер телефона подписанта
-// Возвращаемое значение:
+// ВидМобильнойПодписи - ПеречислениеСсылка.ВидыМобильныхПодписей - Вид мобильной подписи
+// Возвращаемое значение:
// Массив из СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//
-Функция ЗарегистрированныеВЭДОСертификаты(ПараметрыПодписанта) Экспорт
+Функция ЗарегистрированныеВЭДОСертификаты(ПараметрыПодписанта, ВидМобильнойПодписи) Экспорт
- Возврат ИнтеграцияБСПБЭД.ЗарегистрированныеВЭДОСертификаты(ПараметрыПодписанта);
+ Возврат ИнтеграцияБСПБЭД.ЗарегистрированныеВЭДОСертификаты(ПараметрыПодписанта, ВидМобильнойПодписи);
КонецФункции
diff --git a/src/CommonModules/КриптографияБЭДСлужебныйКлиент/Ext/Module.bsl b/src/CommonModules/КриптографияБЭДСлужебныйКлиент/Ext/Module.bsl
index 630b567e5..a0e0f2903 100644
--- a/src/CommonModules/КриптографияБЭДСлужебныйКлиент/Ext/Module.bsl
+++ b/src/CommonModules/КриптографияБЭДСлужебныйКлиент/Ext/Module.bsl
@@ -1737,7 +1737,7 @@
КонецПроцедуры
-#Область СервисМояПодпись
+#Область СервисМобильнойПодписи
// Выполняет обработку выбора подписанта
// Параметры:
@@ -1748,6 +1748,7 @@
// *** ИННФЛ - Строка - ИНН ФЛ
// *** Организация - ОпределяемыйТип.Организация - Организация подписанта
// *** НомерТелефона - Строка - Номер телефона подписанта
+// ** ВидМобильнойПодписи - ПеречислениеСсылка.ВидыМобильныхПодписей - Вид мобильной подписи
// ** НаборДанных - Массив из Структура - Набор данных в виде структур:
// *** Данные - ОписаниеОповещения, ДвоичныеДанные - данные для подписания
// *** ИсходныеДвоичныеДанные - ДвоичныеДанные - исходные двоичные данные для подписания
@@ -1767,8 +1768,12 @@
Если ОписаниеДанных.Свойство("ПрекратитьВыполнение") Тогда
ОписаниеДанных.Удалить("ПрекратитьВыполнение");
КонецЕсли;
-
- СертификатыЭДО = КриптографияБЭДСлужебныйВызовСервера.ЗарегистрированныеВЭДОСертификаты(ОписаниеДанных.ВыбранныйПодписант);
+
+ ВидМобильнойПодписи = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ОписаниеДанных, "ВидМобильнойПодписи");
+
+ СертификатыЭДО = КриптографияБЭДСлужебныйВызовСервера.ЗарегистрированныеВЭДОСертификаты(
+ ОписаниеДанных.ВыбранныйПодписант,
+ ВидМобильнойПодписи);
Если СертификатыЭДО.Количество() = 0 Тогда
@@ -1792,16 +1797,19 @@
// Добавляет сертификат подписания в Регистр СертификатыПодписантовМобильнойПодписиБЭД
// Параметры:
-// СвойстваПодписи - Структура - Свойства подписи, полученные в сервисе "Моя Подпись"
+// СвойстваПодписи - Структура - Свойства подписи, полученные в сервисе мобильной подписи
// Подписант - СправочникСсылка.ПодписантыСервисаМобильнойПодписи - Подписант
-// Возвращаемое значение:
-// СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
+// ВидМобильнойПодписи - ПеречислениеСсылка.ВидыМобильныхПодписей - Вид мобильной подписи
//
-Функция НайтиСоздатьСертификатПодписантаИзСвойствПодписи(СвойстваПодписи, Подписант) Экспорт
+// Возвращаемое значение:
+// СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования.
+//
+Функция НайтиСоздатьСертификатПодписантаИзСвойствПодписи(СвойстваПодписи, Подписант, ВидМобильнойПодписи) Экспорт
Возврат КриптографияБЭДСлужебныйВызовСервера.НайтиСоздатьСертификатПодписантаИзСвойствПодписи(
СвойстваПодписи,
- Подписант);
+ Подписант,
+ ВидМобильнойПодписи);
КонецФункции
diff --git a/src/CommonModules/ЛегкийИнтерфейсДокументовЭДО/Ext/Module.bsl b/src/CommonModules/ЛегкийИнтерфейсДокументовЭДО/Ext/Module.bsl
index 35df115a8..950e4f699 100644
--- a/src/CommonModules/ЛегкийИнтерфейсДокументовЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ЛегкийИнтерфейсДокументовЭДО/Ext/Module.bsl
@@ -83,6 +83,7 @@
// * ЭтоИнтеркампани - Булево
// * ТипДокумента - ПеречислениеСсылка.ТипыДокументовЭДО
// * ЭтоПрикладнойВидДокумента - Булево
+// * ТребуетсяОднородностьОтвета - Булево
Функция НовыеДанныеКомпонентаПанельКомандВходящегоДокумента() Экспорт
Возврат ЛегкийИнтерфейсДокументовЭДОСлужебный.НовыеДанныеКомпонентаПанельКомандВходящегоДокумента();
КонецФункции
@@ -269,6 +270,7 @@
// - УникальныйИдентификатор
// * СостояниеПакета - ПеречислениеСсылка.СостоянияДокументовЭДО
// * СостоянияПакетаОднородно - Булево
+// * ИспользуетсяКонтрольОтраженияВУчетеЭДО - Булево
Функция НовыеДанныеКомпонентаПанельПакета() Экспорт
Возврат ЛегкийИнтерфейсДокументовЭДОСлужебный.НовыеДанныеКомпонентаПанельПакета();
КонецФункции
@@ -337,8 +339,10 @@
// Структура:
// * СостояниеЭДО - ПеречислениеСсылка.СостоянияДокументовЭДО
// * КомментарийКСостояниюЭДО - Строка
-// * КонтрольОтраженияВУчете - См. НовыеДанныеКонтроляОтраженияВУчете
+// * КонтрольОтраженияВУчете - См. ЛегкийИнтерфейсДокументовЭДОСлужебный.НовыеДанныеКонтроляОтраженияВУчете
// * ОшибкиВПодписях - Булево
+// * ЭтоПакетДокументов - Булево
+// * ТребуетсяОднородностьОтвета - Булево
Функция НовыеДанныеКомпонентаПанельСостояния() Экспорт
Возврат ЛегкийИнтерфейсДокументовЭДОСлужебный.НовыеДанныеКомпонентаПанельСостояния();
КонецФункции
@@ -375,8 +379,10 @@
КонецФункции
-// См. ЛегкийИнтерфейсДокументовЭДОСлужебный.НовоеДополнительноеСостояние
+// Конструктор дополнительного состояния.
//
+// Возвращаемое значение:
+// См. ЛегкийИнтерфейсДокументовЭДОСлужебный.НовоеДополнительноеСостояние
Функция НовоеДополнительноеСостояние() Экспорт
Возврат ЛегкийИнтерфейсДокументовЭДОСлужебный.НовоеДополнительноеСостояние();
@@ -558,7 +564,7 @@
// * АсинхронноеПолучение - Булево
// * КоличествоПодписей - Число
// * КоличествоСопроводительныхЗаписок - Число
-// * ИспользоватьУниверсальныеСообщения - Булево
+// * ВыводитьЧатУниверсальныхСообщений - Булево
Функция НовыеДанныеКомпонентаПанельЗакладокВходящегоДокумента() Экспорт
Возврат ЛегкийИнтерфейсДокументовЭДОСлужебный.НовыеДанныеКомпонентаПанельЗакладокВходящегоДокумента();
КонецФункции
@@ -1119,6 +1125,18 @@
#КонецОбласти // ИнтеграцияЦентраЭДО
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ДанныеФайлаИнформацииОтправителяДокументаПоИнтеграциям", Истина);
+ Методы.Вставить("ЗаполнитьДанныеКомпонентовПросмотраДокументаАсинхронно", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти // ДляВызоваИзДругихПодсистем
#КонецОбласти // ПрограммныйИнтерфейс
@@ -2769,6 +2787,7 @@
// * ИспользуетсяОтложеннаяОтправка - Булево
// * ЕстьПравоВыполненияОбмена - Булево
// * ЕстьПравоОбработкиДокументов - Булево
+// * ТребуетсяОднородностьОтвета - Булево
// ДанныеКомпонента - См. НовыеДанныеКомпонентаПанельКомандВходящегоДокумента
Процедура НастроитьПанельКомандКарточкиВходящегоДокумента(Форма, ДанныеКомпонента)
@@ -2777,6 +2796,7 @@
Форма.ИспользуетсяОтложеннаяОтправка = ДанныеКомпонента.ИспользуетсяОтложеннаяОтправка;
Форма.ЕстьПравоВыполненияОбмена = ДанныеКомпонента.ЕстьПравоВыполненияОбмена;
Форма.ЕстьПравоОбработкиДокументов = ДанныеКомпонента.ЕстьПравоОбработкиДокументов;
+ Форма.ТребуетсяОднородностьОтвета = ДанныеКомпонента.ТребуетсяОднородностьОтвета;
НастроитьПанельКомандВыполнениеДействийПоЭДОКарточкиДокумента(Форма, ДанныеКомпонента);
@@ -2948,6 +2968,7 @@
// ** ИдентификаторСостоянияДокумента - Число
// ** ВидДокумента - СправочникСсылка.ВидыДокументовЭДО
// ** ПредставлениеДокумента - Строка
+// ** ВУчете - Строка
// * ТекущийДокументПакета - ДокументСсылка.ЭлектронныйДокументИсходящийЭДО,ДокументСсылка.ЭлектронныйДокументВходящийЭДО
// * ТекущийИдентификаторДокумента - УникальныйИдентификатор
// * РежимСозданияПакетаПоПредварительнымДанным - Булево
@@ -2986,6 +3007,14 @@
ДанныеДокументаПакета.ВидДокумента = ДокументСоставаПакета.ВидДокумента;
ДанныеДокументаПакета.ПредставлениеДокумента = ПредставлениеДокументаПакета(ДокументСоставаПакета);
+
+ Если ЭтоВходящийЭДО(ДанныеДокументаПакета.ЭлектронныйДокумент)
+ И ДанныеКомпонента.ИспользуетсяКонтрольОтраженияВУчетеЭДО Тогда
+ ШаблонСтроки = НСтр("ru = 'Учтен (%1)'");
+ КоличествоОснований = ДокументСоставаПакета.ПолноеСостояние.КонтрольОтраженияВУчете.КоличествоОснований;
+ ДанныеДокументаПакета.ВУчете = СтрШаблон(ШаблонСтроки, КоличествоОснований);
+ КонецЕсли;
+
ЦветСостояния = ЦветПанелиСостоянияПоДаннымКомпонентаПанельСостояния(
ДокументСоставаПакета.ПолноеСостояние);
ДанныеДокументаПакета.ИдентификаторСостоянияДокумента =
@@ -3005,6 +3034,13 @@
ДанныеДокументаПакета.ЭлектронныйДокумент.УникальныйИдентификатор());
НовыйДокументСоставаПакета.ПредставлениеДокумента = ПредставлениеДокументаПакета(ДанныеДокументаПакета);
+ Если ЭтоВходящийЭДО(ДанныеДокументаПакета.ЭлектронныйДокумент)
+ И ДанныеКомпонента.ИспользуетсяКонтрольОтраженияВУчетеЭДО Тогда
+ ШаблонСтроки = НСтр("ru = 'Учтен (%1)'");
+ КоличествоОснований = ДанныеДокументаПакета.ПолноеСостояние.КонтрольОтраженияВУчете.КоличествоОснований;
+ НовыйДокументСоставаПакета.ВУчете = СтрШаблон(ШаблонСтроки, КоличествоОснований);
+ КонецЕсли;
+
ЦветСостояния = ЦветПанелиСостоянияПоДаннымКомпонентаПанельСостояния(
ДанныеДокументаПакета.ПолноеСостояние);
НовыйДокументСоставаПакета.ИдентификаторСостоянияДокумента =
@@ -3145,16 +3181,26 @@
ПредставлениеСостоянияПоДаннымКонтроляОтраженияВУчетеИПредставлениюСостоянияЭДО(
ДанныеКомпонента.КонтрольОтраженияВУчете, ПредставлениеПоСостояниюЭДО);
ПредставленияТребующиеОтраженияВУчете = ПредставленияСостоянияПоСостояниямЭДОТребующиеОтраженияВУчете();
-
+
+ ПредставлениеДляЗакрытогоПакета =
+ ПредставлениеСостоянияЗакрытогоПакетаПоПредставлениюСостоянияЭДО(ПредставлениеПоСостояниюЭДО);
+ ТекстСостояния = ?(ДанныеКомпонента.ТребуетсяОднородностьОтвета,
+ ПредставлениеДляЗакрытогоПакета, ПредставлениеПоСостояниюЭДО);
+
+ ПредставлениеПоОтражениюВУчетеЗакрытогоПакета =
+ ПредставлениеСостоянияКонтроляОтраженияВУчетеЗакрытогоПакета(ПредставлениеПоОтражениюВУчете);
+ ТекстОтраженияВУчете = ?(ДанныеКомпонента.ТребуетсяОднородностьОтвета,
+ ПредставлениеПоОтражениюВУчетеЗакрытогоПакета, ПредставлениеПоОтражениюВУчете);
+
Если ДанныеКомпонента.ОшибкиВПодписях Тогда
Форма.ТекстПанелиСостояния = НСтр("ru='Подпись не прошла проверку'");
ИначеЕсли ЭтоВходящийЭДО
И ЗначениеЗаполнено(ПредставлениеПоОтражениюВУчете)
И ПредставленияТребующиеОтраженияВУчете.Найти(ПредставлениеПоСостояниюЭДО) <> Неопределено Тогда
Форма.ТекстПанелиСостояния =
- СтрШаблон("%1, %2", ПредставлениеПоСостояниюЭДО, НРег(ПредставлениеПоОтражениюВУчете));
+ СтрШаблон("%1, %2", ТекстСостояния, НРег(ТекстОтраженияВУчете));
Иначе
- Форма.ТекстПанелиСостояния = ПредставлениеПоСостояниюЭДО;
+ Форма.ТекстПанелиСостояния = ТекстСостояния;
КонецЕсли;
Форма.Элементы.ГруппаПанельСостояния.Видимость = ЗначениеЗаполнено(Форма.ТекстПанелиСостояния);
@@ -3303,8 +3349,14 @@
Представление = ВариантыПредставлений.НеПринятКУчету;
ИначеЕсли ДанныеПринятияКУчету.ТребуетсяОтражениеВУчете
И Не ДанныеПринятияКУчету.СозданУчетныйДокумент
- И Не Аннулирован Тогда
+ И Не Аннулирован
+ И Не ДанныеПринятияКУчету.ТребуетЗаполнениеОтветногоТитула Тогда
Представление = ВариантыПредставлений.СоздатьУчетныйДокумент;
+ ИначеЕсли ДанныеПринятияКУчету.ТребуетсяОтражениеВУчете
+ И Не ДанныеПринятияКУчету.СозданУчетныйДокумент
+ И Не Аннулирован
+ И ДанныеПринятияКУчету.ТребуетЗаполнениеОтветногоТитула Тогда
+ Представление = ВариантыПредставлений.СоздатьУчетныйДокументЗаполнитьОтветныйТитул;
ИначеЕсли ДанныеПринятияКУчету.ТребуетсяОтражениеВУчете
И ДанныеПринятияКУчету.СозданУчетныйДокумент
И Не ДанныеПринятияКУчету.ПроведенУчетныйДокумент
@@ -3485,6 +3537,7 @@
// * ПринятКУчету - Строка
// * НеПринятКУчету - Строка
// * СоздатьУчетныйДокумент - Строка
+// * СоздатьУчетныйДокументЗаполнитьОтветныйТитул - Строка
// * ПровестиУчетныйДокумент - Строка
Функция ПредставленияСостоянияПоДаннымКонтроляОтраженияВУчете()
@@ -3492,11 +3545,35 @@
Представления.Вставить("ПринятКУчету", НСтр("ru = 'Документ принят к учету'"));
Представления.Вставить("НеПринятКУчету", НСтр("ru = 'Документ не принят к учету'"));
Представления.Вставить("СоздатьУчетныйДокумент", НСтр("ru = 'Принять к учету'"));
+ Представления.Вставить("СоздатьУчетныйДокументЗаполнитьОтветныйТитул", НСтр("ru = 'Принять к учету'"));
Представления.Вставить("ПровестиУчетныйДокумент", НСтр("ru = 'Провести учетный документ'"));
Возврат Представления;
КонецФункции
+// Параметры:
+// ПредставлениеПоОтражениюВУчете - Строка
+//
+// Возвращаемое значение:
+// Строка
+Функция ПредставлениеСостоянияКонтроляОтраженияВУчетеЗакрытогоПакета(ПредставлениеПоОтражениюВУчете)
+
+ Представления = Новый Структура;
+ Представления.Вставить("ПринятКУчету", НСтр("ru = 'Все документы в пакете приняты к учету'"));
+ Представления.Вставить("НеПринятКУчету", НСтр("ru = 'Не все документы в пакете приняты к учету'"));
+ Представления.Вставить("СоздатьУчетныйДокумент", НСтр("ru = 'Принять к учету документы в пакете'"));
+ Представления.Вставить("ПровестиУчетныйДокумент", НСтр("ru = 'Провести учетные документы'"));
+
+ СопоставленныеПредставления = Новый Соответствие();
+ Для Каждого КлючИЗначение Из ПредставленияСостоянияПоДаннымКонтроляОтраженияВУчете() Цикл
+ СопоставленныеПредставления.Вставить(КлючИЗначение.Значение,
+ ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Представления, КлючИЗначение.Ключ, КлючИЗначение.Значение));
+ КонецЦикла;
+
+ Возврат СопоставленныеПредставления[ПредставлениеПоОтражениюВУчете];
+
+КонецФункции
+
// Возвращаемое значение:
// Структура:
// * Аннулирован - Строка
@@ -3551,6 +3628,45 @@
КонецФункции
+// Параметры:
+// ПредставлениеПоСостояниюЭДО - Строка
+//
+// Возвращаемое значение:
+// Строка
+Функция ПредставлениеСостоянияЗакрытогоПакетаПоПредставлениюСостоянияЭДО(ПредставлениеПоСостояниюЭДО)
+
+ Представления = Новый Структура;
+ Представления.Вставить("Аннулирован", НСтр("ru = 'Пакет аннулирован'"));
+ Представления.Вставить("Завершен", НСтр("ru = 'Документооборот пакета завершен'"));
+ Представления.Вставить("Отменен", НСтр("ru = 'Пакет закрыт принудительно'"));
+ Представления.Вставить("Отклонен", НСтр("ru = 'Пакет отклонен'"));
+ Представления.Вставить("ЗавершенОшибка", НСтр("ru = 'Завершен (не удалось отправить)'"));
+ Представления.Вставить("ЖдатьОтветНаПриглашение", НСтр("ru = 'Ожидать ответ на приглашение от контрагента'"));
+ Представления.Вставить("Отправлен", НСтр("ru = 'Отправлен контрагенту, ожидать ответ'"));
+ Представления.Вставить("ОтправленДляИсправления",
+ НСтр("ru = 'Пакет отправлен контрагенту для исправления, ожидать ответ'"));
+ Представления.Вставить("ОтправленДляАннулирования",
+ НСтр("ru = 'Пакет отправлен контрагенту для аннулирования, ожидать ответ'"));
+ Представления.Вставить("Отправить", НСтр("ru = 'Отправить пакет'"));
+ Представления.Вставить("ОтправитьПовторно", НСтр("ru = 'Оправить пакет повторно'"));
+ Представления.Вставить("Подписать", НСтр("ru = 'Подписать пакет'"));
+ Представления.Вставить("Утвердить", НСтр("ru = 'Утвердить пакет'"));
+ Представления.Вставить("Отклонить", НСтр("ru = 'Отклонить пакет'"));
+ Представления.Вставить("Исправить", НСтр("ru = 'Исправить пакет'"));
+ Представления.Вставить("Аннулировать", НСтр("ru = 'Аннулировать пакет'"));
+ Представления.Вставить("ПодтвердитьАннулирование", НСтр("ru = 'Подтвердить аннулирование пакета'"));
+ Представления.Вставить("Создать", НСтр("ru = 'Сохранить документ'"));
+
+ СопоставленныеПредставления = Новый Соответствие();
+ Для Каждого КлючИЗначение Из ПредставленияСостоянияПоДаннымСостоянияЭДО() Цикл
+ СопоставленныеПредставления.Вставить(КлючИЗначение.Значение,
+ ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Представления, КлючИЗначение.Ключ, КлючИЗначение.Значение));
+ КонецЦикла;
+
+ Возврат СопоставленныеПредставления[ПредставлениеПоСостояниюЭДО];
+
+КонецФункции
+
// Возвращаемое значение:
// Строка
Функция ТекстПанельСостоянияПодписьНеПрошлаПроверку()
@@ -4026,7 +4142,7 @@
Форма.Элементы.СтраницаПодписи.Заголовок = ЗаголовокСтраницыПодписи;
- Если ДанныеКомпонента.ИспользоватьУниверсальныеСообщения Тогда
+ Если ДанныеКомпонента.ВыводитьЧатУниверсальныхСообщений Тогда
Форма.Элементы.СтраницаСопроводительнаяЗаписка.Видимость = Ложь;
Форма.Элементы.СтраницаСообщения.Видимость = Истина;
Иначе
@@ -4085,7 +4201,7 @@
Форма.Элементы.СтраницаСопроводительнаяЗаписка.Заголовок = ?(ЕстьСопроводительныеЗаписки,
НСтр("ru='Сопроводительная записка (есть)'"), НСтр("ru='Сопроводительная записка (нет)'"));
- Если ДанныеКомпонента.ИспользоватьУниверсальныеСообщения Тогда
+ Если ДанныеКомпонента.ВыводитьЧатУниверсальныхСообщений Тогда
Форма.Элементы.СтраницаСопроводительнаяЗаписка.Видимость = Ложь;
Форма.Элементы.СтраницаСообщения.Видимость = Истина;
Иначе
@@ -4122,7 +4238,7 @@
Форма.Элементы.СтраницаСопроводительнаяЗаписка.Заголовок = ?(ЕстьСопроводительныеЗаписки,
НСтр("ru='Сопроводительная записка (есть)'"), НСтр("ru='Сопроводительная записка (нет)'"));
- Если ДанныеКомпонента.ИспользоватьУниверсальныеСообщения Тогда
+ Если ДанныеКомпонента.ВыводитьЧатУниверсальныхСообщений Тогда
Форма.Элементы.СтраницаСопроводительнаяЗаписка.Видимость = Ложь;
Форма.Элементы.СтраницаСообщения.Видимость = Истина;
Иначе
@@ -4778,6 +4894,7 @@
// * ИспользуетсяОтложеннаяОтправка - Булево
// * ЭтоИнтеркампани - Булево
// * ЭтоПакетДокументов - Булево
+// * ТребуетсяОднородностьОтвета - Булево
Процедура НастроитьПанельКомандВыполнениеДействийПоЭДОКарточкиДокумента(Форма, ДанныеКомпонента)
ДействияНаЭтапе = ДанныеКомпонента.ДоступныеДействияПоЭДОДляДокумента;
@@ -4971,6 +5088,7 @@
Форма.Элементы.КнопкаСменитьОтветственногоДокумент.Видимость = Ложь;
Форма.Элементы.КнопкаСоздатьПроизвольныйДокумент.Видимость = Ложь;
Форма.Элементы.КнопкаНастройкиОтраженияВУчете.Видимость = Ложь;
+ Форма.Элементы.КнопкаПометитьНаУдаление.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
@@ -4990,6 +5108,12 @@
Форма.Элементы.КнопкаВыполнитьОтправкуПолучение.Видимость = Ложь;
Форма.Элементы.СоставПакетаГруппаДействияСПакетом.Видимость = Ложь;
Форма.Элементы.СоставПакетаГруппаДействияСДокументом.Видимость = Ложь;
+ Форма.Элементы.ГруппаСохранитьДобавитьВПакет.Видимость = Ложь;
+ Форма.Элементы.КнопкаЗаписатьДокументПодменюЕще.Видимость = Ложь;
+ Форма.Элементы.КнопкаЗагрузитьФормализованныйДокументСДиска.Видимость = Ложь;
+ Форма.Элементы.КнопкаПометитьНаУдаление.Видимость = Ложь;
+ Форма.Элементы.ГруппаНастройкиОтраженияВУчете.Видимость = Ложь;
+ Форма.Элементы.ОчиститьЗаписку.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
@@ -5170,6 +5294,9 @@
// * ТекстСообщения - Строка
// ДанныеКомпонента - См. НовыеДанныеКомпонентаПанельСообщений
Процедура НастроитьПанельСообщений(Форма, ДанныеКомпонента)
+ Если Не ИнтерфейсДокументовЭДО.ВыводитьЧатУниверсальныхСообщений() Тогда
+ Возврат;
+ КонецЕсли;
Форма.Элементы.ОтправитьСообщение.Доступность = ДанныеКомпонента.ДоступнаОтправка;
Форма.Элементы.ТекстСообщения.Доступность = ДанныеКомпонента.ДоступнаОтправка;
diff --git a/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОКлиент/Ext/Module.bsl b/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОКлиент/Ext/Module.bsl
index 8d50e95bb..7f1623a62 100644
--- a/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОКлиент/Ext/Module.bsl
@@ -2578,6 +2578,13 @@
Возврат;
КонецЕсли;
+ РезультатОперации = РаботаСФайламиБЭДКлиентСервер.ИсключитьНедопустимыеФайлы(ПомещенныеФайлы);
+ РаботаСФайламиБЭДКлиент.ПоказатьПредупреждениеОНедопустимыхФайлах(РезультатОперации);
+
+ Если НЕ ЗначениеЗаполнено(ПомещенныеФайлы) Тогда
+ Возврат;
+ КонецЕсли;
+
Если ПомещенныеФайлы.Количество() = 1 Тогда
СоздатьДокументыПоФайлам(ПомещенныеФайлы);
Возврат;
diff --git a/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОКлиентСервер/Ext/Module.bsl b/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОКлиентСервер/Ext/Module.bsl
index ade9667e8..2d04808d7 100644
--- a/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОКлиентСервер/Ext/Module.bsl
@@ -45,7 +45,7 @@
КонецЕсли;
Если ЗначениеЗаполнено(ДанныеКомпонента.СуммаДокумента) Тогда
- Результат.СуммаДокументаСтрокой = СтрШаблон("%1 %2", Строка(ДанныеКомпонента.СуммаДокумента),
+ Результат.СуммаДокументаСтрокой = СтрШаблон("%1 %2", Формат(ДанныеКомпонента.СуммаДокумента, "ЧДЦ=2; ЧН=0;"),
?(ЗначениеЗаполнено(ЗнакВалюты), ЗнакВалюты, ЗнакВалютыПоУмолчанию));
КонецЕсли;
@@ -53,7 +53,8 @@
Если НРег(ДанныеКомпонента.СтавкаНДСДокумента) = НСтр("ru ='без ндс'") Тогда
Результат.НДСДокументаСтрокой = ДанныеКомпонента.СтавкаНДСДокумента;
Иначе
- Результат.НДСДокументаСтрокой = СтрШаблон(НСтр("ru='НДС: %1'"), ДанныеКомпонента.СуммаНДСДокумента);
+ Результат.НДСДокументаСтрокой = СтрШаблон(НСтр("ru='НДС: %1'"),
+ Формат(ДанныеКомпонента.СуммаНДСДокумента, "ЧДЦ=2; ЧН=0;"));
КонецЕсли;
КонецЕсли;
diff --git a/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОСлужебный/Ext/Module.bsl b/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОСлужебный/Ext/Module.bsl
index 5a47114b5..32801894f 100644
--- a/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ЛегкийИнтерфейсДокументовЭДОСлужебный/Ext/Module.bsl
@@ -473,6 +473,7 @@
// * ЭтоИнтеркампани - Булево
// * ТипДокумента - ПеречислениеСсылка.ТипыДокументовЭДО
// * ЭтоПрикладнойВидДокумента - Булево
+// * ТребуетсяОднородностьОтвета - Булево
Функция НовыеДанныеКомпонентаПанельКомандВходящегоДокумента() Экспорт
ДанныеКомпонента = Новый Структура;
@@ -485,6 +486,7 @@
ДанныеКомпонента.Вставить("ЭтоИнтеркампани", Ложь);
ДанныеКомпонента.Вставить("ТипДокумента", Перечисления.ТипыДокументовЭДО.ПустаяСсылка());
ДанныеКомпонента.Вставить("ЭтоПрикладнойВидДокумента", Ложь);
+ ДанныеКомпонента.Вставить("ТребуетсяОднородностьОтвета", Ложь);
Возврат ДанныеКомпонента;
КонецФункции
@@ -658,6 +660,7 @@
// * ТипДокумента - ПеречислениеСсылка.ТипыДокументовЭДО
// * ЭтоПрикладнойВидДокумента - Булево
// * ОбъектыУчетаДокумента - Массив из См. НовыеДанныеОбъектаУчетаДокумента
+// * ТребуетсяОднородностьОтвета - Булево
Функция НовыеДанныеКомпонентаПанельКомандВходящегоДокументаЛегкийКлиентЭДО() Экспорт
ДанныеКомпонента = Новый Структура;
@@ -671,6 +674,7 @@
ДанныеКомпонента.Вставить("ТипДокумента", Перечисления.ТипыДокументовЭДО.ПустаяСсылка());
ДанныеКомпонента.Вставить("ЭтоПрикладнойВидДокумента", Ложь);
ДанныеКомпонента.Вставить("ОбъектыУчетаДокумента", Новый Массив);
+ ДанныеКомпонента.Вставить("ТребуетсяОднородностьОтвета", Ложь);
Возврат ДанныеКомпонента;
@@ -1000,6 +1004,7 @@
ДанныеКомпонента.ИдентификаторПакета = ДанныеДокументовПакета.ИдентификаторПакета;
ДанныеКомпонента.СостояниеПакета = ПакетыДокументовЭДО.СостояниеПакета(СостоянияДокументовПакета);
ДанныеКомпонента.СостоянияПакетаОднородно = ЗначениеЗаполнено(ДанныеКомпонента.СостояниеПакета);
+ ДанныеКомпонента.ИспользуетсяКонтрольОтраженияВУчетеЭДО = ОтражениеВУчетеЭДО.ТребуетсяКонтрольОтраженияВУчете();
КонецПроцедуры
@@ -1013,6 +1018,7 @@
// - УникальныйИдентификатор
// * СостояниеПакета - ПеречислениеСсылка.СостоянияДокументовЭДО
// * СостоянияПакетаОднородно - Булево
+// * ИспользуетсяКонтрольОтраженияВУчетеЭДО - Булево
Функция НовыеДанныеКомпонентаПанельПакета() Экспорт
ДанныеКомпонента = Новый Структура;
@@ -1021,6 +1027,7 @@
ДанныеКомпонента.Вставить("ИдентификаторПакета", Неопределено);
ДанныеКомпонента.Вставить("СостояниеПакета", Перечисления.СостоянияДокументовЭДО.ПустаяСсылка());
ДанныеКомпонента.Вставить("СостоянияПакетаОднородно", Ложь);
+ ДанныеКомпонента.Вставить("ИспользуетсяКонтрольОтраженияВУчетеЭДО", Ложь);
Возврат ДанныеКомпонента;
КонецФункции
@@ -1134,46 +1141,90 @@
Возврат;
КонецЕсли;
+ Если СвойстваДокумента.ЭтоВходящийЭДО Тогда
+ ЗаполнитьДанныеПоПакетуВходящегоДокументаВДанныхКомпонента(ДанныеКомпонента, СвойстваДокумента);
+ КонецЕсли;
+
ТекстыЗапроса = Новый Массив; // Массив Из Строка
- ТекстыЗапроса.Добавить(ЭлектронныеДокументыЭДО.ТекстЗапросаСостоянияДокумента());
+ ТекстыЗапроса.Добавить(ЭлектронныеДокументыЭДО.ТекстЗапросаСостоянийДокументов());
ТекстыЗапроса.Добавить(ИнтеграцияЭДО.ТекстЗапросаОбъектовУчетаЭлектронныхДокументов());
ТекстыЗапроса.Добавить(ОтражениеВУчетеЭДО.ТекстЗапросаДанныхКонтроляОтраженияВУчете());
ТекстыЗапроса.Добавить(ТекстЗапросаНевалидныхПодписейПоМЧДЭлектронныхДокументов());
Запрос = Новый Запрос;
Запрос.Текст = СтрСоединить(ТекстыЗапроса, ОбщегоНазначения.РазделительПакетаЗапросов());
- Запрос.УстановитьПараметр("ЭлектронныйДокумент", СвойстваДокумента.Ссылка);
-
+ Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ЭлектронныйДокумент", "&ЭлектронныеДокументы");
+
УстановитьПривилегированныйРежим(Истина);
+
+ ЭлектронныеДокументы = Новый Массив;
+ Если ДанныеКомпонента.ТребуетсяОднородностьОтвета Тогда
+ ИдентификаторПакета = ПакетыДокументовЭДОПовтИспНаВызов.ИдентификаторПакетаДокумента(СвойстваДокумента.Ссылка);
+ ЭлектронныеДокументы = ПакетыДокументовЭДОПовтИспНаВызов.ДокументыПакета(Строка(ИдентификаторПакета));
+ ВидИРегламентПоДокументу = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(ЭлектронныеДокументы,
+ "ТипРегламента, ВидДокумента");
+ Иначе
+ ЭлектронныеДокументы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СвойстваДокумента.Ссылка);
+ ВидИРегламентПоДокументу = Новый Соответствие();
+ ВидИРегламентПоДокументу.Вставить(СвойстваДокумента.Ссылка,
+ Новый Структура("ТипРегламента, ВидДокумента",
+ СвойстваДокумента.ТипРегламента, СвойстваДокумента.ВидДокумента));
+ КонецЕсли;
+
+ Запрос.УстановитьПараметр("ЭлектронныеДокументы", ЭлектронныеДокументы);
+
РезультатыЗапросов = Запрос.ВыполнитьПакет();
УстановитьПривилегированныйРежим(Ложь);
- ВыборкаДанныхПоСостоянию = РезультатыЗапросов[0].Выбрать();
- Если ВыборкаДанныхПоСостоянию.Следующий() Тогда
- ЗаполнитьДанныеКомпонентаПанельСостоянияПоСостояниюЭДО(ДанныеКомпонента, ВыборкаДанныхПоСостоянию.Состояние,
- ВыборкаДанныхПоСостоянию.Комментарий);
+ СостоянияДокументовСКомментарием = РезультатыЗапросов[0].Выгрузить();
+ Если Не РезультатыЗапросов[0].Пустой() Тогда
+ СводноеСостояние =
+ ПакетыДокументовЭДО.СостояниеПакета(СостоянияДокументовСКомментарием.ВыгрузитьКолонку("Состояние"));
+ СтрокаСостояния = СостоянияДокументовСКомментарием.Найти(СводноеСостояние, "Состояние");
+ ЗаполнитьДанныеКомпонентаПанельСостоянияПоСостояниюЭДО(ДанныеКомпонента, СводноеСостояние,
+ СтрокаСостояния.Комментарий);
КонецЕсли;
ВыборкаДанныхПоОбъектамУчета = РезультатыЗапросов[1].Выбрать();
- Если ВыборкаДанныхПоОбъектамУчета.Следующий() Тогда
+ ДокументыОтраженныеВУчете = Новый Соответствие();
+ Пока ВыборкаДанныхПоОбъектамУчета.Следующий() Цикл
ЗаполнитьДанныеКомпонентаПанельСостоянияДляПринятогоКУчетуДокумента(ДанныеКомпонента);
- КонецЕсли;
+ ДокументыОтраженныеВУчете.Вставить(ВыборкаДанныхПоОбъектамУчета.ЭлектронныйДокумент, Истина);
+ КонецЦикла;
ВыборкаДанныхПоОтражениюВУчете = РезультатыЗапросов[2].Выбрать();
- Если ВыборкаДанныхПоОтражениюВУчете.Следующий() Тогда
+ Пока ВыборкаДанныхПоОтражениюВУчете.Следующий() Цикл
ДанныеКонтроля = НовыеДанныеКонтроляОтраженияВУчете();
ДанныеКонтроля.ПроведенУчетныйДокумент = Не ВыборкаДанныхПоОтражениюВУчете.ПровестиУчетныйДокумент;
ДанныеКонтроля.СозданУчетныйДокумент = Не ВыборкаДанныхПоОтражениюВУчете.СоздатьУчетныйДокумент;
ЗаполнитьДанныеКомпонентаПанельСостоянияПоДаннымКонтроляОтраженияВУчете(ДанныеКомпонента, ДанныеКонтроля);
- КонецЕсли;
+ КонецЦикла;
ВыборкаДанныхНевалидныхПодписей = РезультатыЗапросов[3].Выбрать();
Пока ВыборкаДанныхНевалидныхПодписей.Следующий() Цикл
ЗаполнитьДанныеКомпонентаПанельСостоянияПоНаличиюНевалидныхПодписей(ДанныеКомпонента,
ВыборкаДанныхНевалидныхПодписей.ЕстьНевалидныеПодписиПоМЧД);
КонецЦикла;
-
+
+ ВидыДокументовПоТипам = ЭлектронныеДокументыЭДО.ТипыДокументовПоВиду();
+ Для Каждого ЭлектронныйДокумент Из ЭлектронныеДокументы Цикл
+ РегламентИВидДокумента = ВидИРегламентПоДокументу.Получить(ЭлектронныйДокумент);
+ Если Не ДокументыОтраженныеВУчете.Получить(ЭлектронныйДокумент) = Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+ Если Не СвойстваДокумента.ЭтоВходящийЭДО Тогда
+ Продолжить;
+ КонецЕсли;
+ СтрокаСостояния = СостоянияДокументовСКомментарием.Найти(ЭлектронныйДокумент, "ЭлектронныйДокумент");
+ СостояниеДокумента = ?(СтрокаСостояния = Неопределено,
+ Перечисления.СостоянияДокументовЭДО.ПустаяСсылка(), СтрокаСостояния.Состояние);
+
+ ДанныеКомпонента.КонтрольОтраженияВУчете.ТребуетЗаполнениеОтветногоТитула =
+ РегламентыЭДО.ТребуетсяЗаполненияОтветногоТитула(СостояниеДокумента,
+ РегламентИВидДокумента.ТипРегламента, ВидыДокументовПоТипам[РегламентИВидДокумента.ВидДокумента]);
+ КонецЦикла;
+
КонецПроцедуры
// См. ЛегкийИнтерфейсДокументовЭДО.НовыеДанныеКомпонентаПанельСостояния
@@ -1184,6 +1235,8 @@
// * КомментарийКСостояниюЭДО - Строка
// * КонтрольОтраженияВУчете - См. НовыеДанныеКонтроляОтраженияВУчете
// * ОшибкиВПодписях - Булево
+// * ЭтоПакетДокументов - Булево
+// * ТребуетсяОднородностьОтвета - Булево
Функция НовыеДанныеКомпонентаПанельСостояния() Экспорт
ДанныеКомпонента = Новый Структура;
@@ -1191,6 +1244,8 @@
ДанныеКомпонента.Вставить("КомментарийКСостояниюЭДО", "");
ДанныеКомпонента.Вставить("КонтрольОтраженияВУчете", НовыеДанныеКонтроляОтраженияВУчете());
ДанныеКомпонента.Вставить("ОшибкиВПодписях", Ложь);
+ ДанныеКомпонента.Вставить("ЭтоПакетДокументов", Ложь);
+ ДанныеКомпонента.Вставить("ТребуетсяОднородностьОтвета", Ложь);
Возврат ДанныеКомпонента;
КонецФункции
@@ -1202,12 +1257,16 @@
// * ТребуетсяОтражениеВУчете - Булево
// * СозданУчетныйДокумент - Булево
// * ПроведенУчетныйДокумент - Булево
+// * ТребуетЗаполнениеОтветногоТитула - Булево
+// * КоличествоОснований - Число
Функция НовыеДанныеКонтроляОтраженияВУчете() Экспорт
ДанныеПринятияКУчету = Новый Структура;
ДанныеПринятияКУчету.Вставить("ТребуетсяОтражениеВУчете", Ложь);
ДанныеПринятияКУчету.Вставить("СозданУчетныйДокумент", Ложь);
ДанныеПринятияКУчету.Вставить("ПроведенУчетныйДокумент", Ложь);
+ ДанныеПринятияКУчету.Вставить("ТребуетЗаполнениеОтветногоТитула", Ложь);
+ ДанныеПринятияКУчету.Вставить("КоличествоОснований", 0);
Возврат ДанныеПринятияКУчету;
КонецФункции
@@ -1694,9 +1753,7 @@
ДанныеКомпонента.КоличествоСопроводительныхЗаписок = СопроводительныеЗаписи.Количество();
- ПараметрыОпределенияИспользованияУС = РегламентыЭДО.НовыеПараметрыОпределенияИспользованияУС();
- ЗаполнитьЗначенияСвойств(ПараметрыОпределенияИспользованияУС, СвойстваДокумента);
- ДанныеКомпонента.ИспользоватьУниверсальныеСообщения = РегламентыЭДО.ИспользоватьУниверсальныеСообщения(ПараметрыОпределенияИспользованияУС);
+ ДанныеКомпонента.ВыводитьЧатУниверсальныхСообщений = ИнтерфейсДокументовЭДО.ВыводитьЧатУниверсальныхСообщений();
КонецПроцедуры
@@ -1707,14 +1764,14 @@
// * АсинхронноеПолучение - Булево
// * КоличествоПодписей - Число
// * КоличествоСопроводительныхЗаписок - Число
-// * ИспользоватьУниверсальныеСообщения - Булево
+// * ВыводитьЧатУниверсальныхСообщений - Булево
Функция НовыеДанныеКомпонентаПанельЗакладокВходящегоДокумента() Экспорт
ДанныеКомпонента = Новый Структура;
ДанныеКомпонента.Вставить("АсинхронноеПолучение", Ложь);
ДанныеКомпонента.Вставить("КоличествоПодписей", 0);
ДанныеКомпонента.Вставить("КоличествоСопроводительныхЗаписок", 0);
- ДанныеКомпонента.Вставить("ИспользоватьУниверсальныеСообщения", Ложь);
+ ДанныеКомпонента.Вставить("ВыводитьЧатУниверсальныхСообщений", Ложь);
Возврат ДанныеКомпонента;
КонецФункции
@@ -1749,9 +1806,7 @@
ДанныеКомпонента.СостояниеЭДО = ЭлектронныеДокументыЭДОПовтИспНаВызов.СостояниеДокумента(СвойстваДокумента.Ссылка);
- ПараметрыОпределенияИспользованияУС = РегламентыЭДО.НовыеПараметрыОпределенияИспользованияУС();
- ЗаполнитьЗначенияСвойств(ПараметрыОпределенияИспользованияУС, СвойстваДокумента);
- ДанныеКомпонента.ИспользоватьУниверсальныеСообщения = РегламентыЭДО.ИспользоватьУниверсальныеСообщения(ПараметрыОпределенияИспользованияУС);
+ ДанныеКомпонента.ВыводитьЧатУниверсальныхСообщений = ИнтерфейсДокументовЭДО.ВыводитьЧатУниверсальныхСообщений();
КонецПроцедуры
// См. ЛегкийИнтерфейсДокументовЭДО.НовыеДанныеКомпонентаПанельЗакладокИсходящегоДокумента
@@ -1763,7 +1818,7 @@
// * КоличествоСопроводительныхЗаписок - Число
// * ПредставлениеПрогрессаПодписания - Строка
// * СостояниеЭДО - ПеречислениеСсылка.СостоянияДокументовЭДО
-// * ИспользоватьУниверсальныеСообщения - Булево
+// * ВыводитьЧатУниверсальныхСообщений - Булево
Функция НовыеДанныеКомпонентаПанельЗакладокИсходящегоДокумента() Экспорт
ДанныеКомпонента = Новый Структура;
@@ -1772,7 +1827,7 @@
ДанныеКомпонента.Вставить("КоличествоСопроводительныхЗаписок", 0);
ДанныеКомпонента.Вставить("ПредставлениеПрогрессаПодписания", "");
ДанныеКомпонента.Вставить("СостояниеЭДО", Перечисления.СостоянияДокументовЭДО.ПустаяСсылка());
- ДанныеКомпонента.Вставить("ИспользоватьУниверсальныеСообщения", Ложь);
+ ДанныеКомпонента.Вставить("ВыводитьЧатУниверсальныхСообщений", Ложь);
Возврат ДанныеКомпонента;
@@ -1789,7 +1844,7 @@
// * КоличествоСопроводительныхЗаписок - Число
// * СостояниеЭДО - ПеречислениеСсылка.СостоянияДокументовЭДО
// * ЭтоНовыйДокумент - Булево
-// * ИспользоватьУниверсальныеСообщения - Булево
+// * ВыводитьЧатУниверсальныхСообщений - Булево
//
Функция НовыеДанныеКомпонентаПанельЗакладокИсходящегоДокументаЛегкийКлиентЭДО() Экспорт
@@ -1799,7 +1854,7 @@
ДанныеКомпонента.Вставить("КоличествоСопроводительныхЗаписок", 0);
ДанныеКомпонента.Вставить("СостояниеЭДО", Перечисления.СостоянияДокументовЭДО.ПустаяСсылка());
ДанныеКомпонента.Вставить("ЭтоНовыйДокумент", Ложь);
- ДанныеКомпонента.Вставить("ИспользоватьУниверсальныеСообщения", Ложь);
+ ДанныеКомпонента.Вставить("ВыводитьЧатУниверсальныхСообщений", Ложь);
Возврат ДанныеКомпонента;
@@ -2894,6 +2949,8 @@
ДанныеКомпонента.КонтрольОтраженияВУчете.ТребуетсяОтражениеВУчете = Истина;
ДанныеКомпонента.КонтрольОтраженияВУчете.СозданУчетныйДокумент = Истина;
ДанныеКомпонента.КонтрольОтраженияВУчете.ПроведенУчетныйДокумент = Истина;
+ ДанныеКомпонента.КонтрольОтраженияВУчете.КоличествоОснований =
+ ДанныеКомпонента.КонтрольОтраженияВУчете.КоличествоОснований + 1;
КонецПроцедуры
@@ -2947,11 +3004,18 @@
// Параметры:
// ДанныеКомпонента - Структура:
// * ЭтоПакетДокументов - Булево
+// * ТребуетсяОднородностьОтвета - Булево
// СвойстваДокумента - См. ЛегкийИнтерфейсДокументовЭДО.НовыеСвойстваДокументаДляПолученияДанныхКомпонентовПросмотра
Процедура ЗаполнитьДанныеПоПакетуВходящегоДокументаВДанныхКомпонента(ДанныеКомпонента, СвойстваДокумента)
ИдентификаторПакета = ПакетыДокументовЭДОПовтИспНаВызов.ИдентификаторПакетаДокумента(СвойстваДокумента.Ссылка);
ДанныеКомпонента.ЭтоПакетДокументов = ЗначениеЗаполнено(ИдентификаторПакета);
+
+ Если ЗначениеЗаполнено(ИдентификаторПакета) Тогда
+ ДанныеКомпонента.ТребуетсяОднородностьОтвета =
+ ПакетыДокументовЭДОПовтИспНаВызов.ЭтоЗакрытыйПакет(Строка(ИдентификаторПакета))
+ ИЛИ СинхронизацияЭДО.ТребуетсяОднородностьОтвета(СвойстваДокумента.ИдентификаторКонтрагента);
+ КонецЕсли;
КонецПроцедуры
@@ -2967,17 +3031,34 @@
Процедура ЗаполнитьДанныеПоДоступнымДействиямПоЭДОВходящегоДокументаВДанныхКомпонента(ДанныеКомпонента,
СвойстваДокумента)
- СостояниеЭДОДокумента = ЭлектронныеДокументыЭДОПовтИспНаВызов.СостояниеДокумента(СвойстваДокумента.Ссылка);
-
СвойстваДокументаДляОпределенияДействий =
- ЭлектронныеДокументыЭДО.НовыеСвойстваДокументаДляОпределенияДоступныхДействийПоЭДО();
- ЗаполнитьЗначенияСвойств(СвойстваДокументаДляОпределенияДействий, СвойстваДокумента);
+ ЭлектронныеДокументыЭДО.НовыеСвойстваДокументаДляОпределенияДоступныхДействийПоЭДО();
- ДанныеКомпонента.ДоступныеДействияПоЭДОДляДокумента = ЭлектронныеДокументыЭДО.ДействияПоСостояниюДокумента(
- СостояниеЭДОДокумента, СвойстваДокументаДляОпределенияДействий);
+ Если ДанныеКомпонента.ТребуетсяОднородностьОтвета Тогда
+ ИдентификаторПакета = ПакетыДокументовЭДОПовтИспНаВызов.ИдентификаторПакетаДокумента(СвойстваДокумента.Ссылка);
+ ВсеДокументыПакета = ПакетыДокументовЭДОПовтИспНаВызов.ДокументыПакета(Строка(ИдентификаторПакета));
+ СписокРеквизитов = ОбщегоНазначенияКлиентСервер.КлючиСтруктурыВСтроку(СвойстваДокументаДляОпределенияДействий);
+ СвойстваДокументовПакета = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(ВсеДокументыПакета, СписокРеквизитов);
+ Иначе
+ ЗаполнитьЗначенияСвойств(СвойстваДокументаДляОпределенияДействий, СвойстваДокумента);
+ СвойстваДокументовПакета = Новый Соответствие();
+ СвойстваДокументовПакета.Вставить(СвойстваДокумента.Ссылка, СвойстваДокументаДляОпределенияДействий);
+ КонецЕсли;
+
+ Для Каждого КлючИЗначение Из СвойстваДокументовПакета Цикл
+
+ СостояниеЭДОДокумента = ЭлектронныеДокументыЭДОПовтИспНаВызов.СостояниеДокумента(КлючИЗначение.Ключ);
+ ДоступныеДействияДокумента = ЭлектронныеДокументыЭДО.ДействияПоСостояниюДокумента(СостояниеЭДОДокумента,
+ КлючИЗначение.Значение);
+ ОбщегоНазначенияКлиентСервер.ДополнитьСоответствие(ДанныеКомпонента.ДоступныеДействияПоЭДОДляДокумента,
+ ДоступныеДействияДокумента, Истина);
+
+ КонецЦикла;
ДанныеКомпонента.ДоступныеДействияПоЭДОДляДокументаПакета =
- ОбщегоНазначения.СкопироватьРекурсивно(ДанныеКомпонента.ДоступныеДействияПоЭДОДляДокумента);
+ ?(ДанныеКомпонента.ТребуетсяОднородностьОтвета,
+ Новый Соответствие(),
+ ОбщегоНазначения.СкопироватьРекурсивно(ДанныеКомпонента.ДоступныеДействияПоЭДОДляДокумента));
КонецПроцедуры
@@ -3244,9 +3325,7 @@
ДанныеКомпонента.ЭтоНовыйДокумент = СвойстваДокумента.ЭтоНовыйДокумент;
- ПараметрыОпределенияИспользованияУС = РегламентыЭДО.НовыеПараметрыОпределенияИспользованияУС();
- ЗаполнитьЗначенияСвойств(ПараметрыОпределенияИспользованияУС, СвойстваДокумента);
- ДанныеКомпонента.ИспользоватьУниверсальныеСообщения = РегламентыЭДО.ИспользоватьУниверсальныеСообщения(ПараметрыОпределенияИспользованияУС);
+ ДанныеКомпонента.ВыводитьЧатУниверсальныхСообщений = ИнтерфейсДокументовЭДО.ВыводитьЧатУниверсальныхСообщений();
КонецПроцедуры
@@ -3302,7 +3381,8 @@
ЗаполнитьЗначенияСвойств(ОписаниеПодписи, СвойстваПодписи);
ОписаниеПодписи.ЭтоВходящаяПодпись = СвойстваПодписи.ВходящаяПодпись;
Если ЗначениеЗаполнено(УстановленнаяПодпись.РезультатПроверкиПоМЧД) Тогда
- ОписаниеПодписи.ПодписьПоДоверенностиВерна = УстановленнаяПодпись.РезультатПроверкиПоМЧД.ПодписьВерна;
+ ОписаниеПодписи.ПодписьПоДоверенностиВерна =
+ Не КриптографияБЭД.ПриПроверкеПодписиВозниклиОшибки(УстановленнаяПодпись);
КонецЕсли;
ДанныеДляПолученияПредставления = ИнтерфейсДокументовЭДО.НовыеДанныеДляПолученияПредставленияСостоянияПодписи();
diff --git a/src/CommonModules/МашиночитаемыеДоверенности/Ext/Module.bsl b/src/CommonModules/МашиночитаемыеДоверенности/Ext/Module.bsl
index 3f3a04ad7..be0cfb5e7 100644
--- a/src/CommonModules/МашиночитаемыеДоверенности/Ext/Module.bsl
+++ b/src/CommonModules/МашиночитаемыеДоверенности/Ext/Module.bsl
@@ -1,9 +1,27 @@
-#Область ПрограммныйИнтерфейс
+
+#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
#Область СтандартныеПодсистемы
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВключитьИспользованиеРеестраДоверенностейФНСЭДО");
+ Методы.Вставить("ОтключитьРежимСтрогойПроверкиДоверенностей");
+
+ Методы.Вставить("ОбновитьСтатусМЧДИзРеестраФНС", Истина);
+ Методы.Вставить("ДанныеДляПодписанияДляКлиента", Истина);
+ Методы.Вставить("ЗарегистрироватьВРеестреФНС", Истина);
+ Методы.Вставить("ПодписатьЗарегистрироватьМЧД", Истина);
+ Методы.Вставить("ПодписатьОтменитьМЧД", Истина);
+ Методы.Вставить("ПроверитьПодписиМЧД", Истина);
+ Методы.Вставить("УстановитьПометкуВернаПоМестуОбработкиЭДО", Истина);
+ Методы.Вставить("УстановитьПометкуОтозванаПоМестуОбработкиЭДО", Истина);
+
+КонецПроцедуры
+
#Область ОбновлениеВерсииИБ
// Регистрирует данные к обновлению в плане обмена ОбновлениеИнформационнойБазы
@@ -31,47 +49,15 @@
ПараметрыВыборки = Параметры.ПараметрыВыборки;
ПараметрыВыборки.СпособВыборки = ОбновлениеИнформационнойБазы.СпособВыборкиСсылки();
ПараметрыВыборки.ПолныеИменаОбъектов = СтрСоединить(ПолныеИменаОбъектов, ",");
-
+
+ Если ИспользоватьУпрощенныйРежимРаботыСДоверенностями() Тогда
+ ТекстЗапроса = ТекстЗапросаДляРегистрацииДанныхВУпрощенномРежимРаботыСДоверенностями();
+ Иначе
+ ТекстЗапроса = ТекстЗапросаДляРегистрацииДанныхКОбработке();
+ КонецЕсли;
+
Запрос = Новый Запрос;
- Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1000
- | МЧД003.Ссылка КАК Ссылка
- |ИЗ
- | Справочник.МЧД003 КАК МЧД003
- |ГДЕ
- | МЧД003.Ссылка > &МЧД003
- | И МЧД003.Подписана = ИСТИНА
- | И МЧД003.ХешФайла <> """"
- |
- |УПОРЯДОЧИТЬ ПО
- | Ссылка
- |;
- |
- |////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ ПЕРВЫЕ 1000
- | МашиночитаемыеДоверенностиОрганизаций.Ссылка КАК Ссылка
- |ИЗ
- | Справочник.МашиночитаемыеДоверенностиОрганизаций КАК МашиночитаемыеДоверенностиОрганизаций
- |ГДЕ
- | МашиночитаемыеДоверенностиОрганизаций.Ссылка > &МЧДОрганизаций
- | И МашиночитаемыеДоверенностиОрганизаций.Подписана = ИСТИНА
- | И МашиночитаемыеДоверенностиОрганизаций.ХешФайла <> """"
- |
- |УПОРЯДОЧИТЬ ПО
- | Ссылка
- |;
- |
- |////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ ПЕРВЫЕ 1000
- | МашиночитаемыеДоверенностиКонтрагентов.Ссылка КАК Ссылка
- |ИЗ
- | Справочник.МашиночитаемыеДоверенностиКонтрагентов КАК МашиночитаемыеДоверенностиКонтрагентов
- |ГДЕ
- | МашиночитаемыеДоверенностиКонтрагентов.Ссылка > &МЧДКонтрагентов
- | И МашиночитаемыеДоверенностиКонтрагентов.Подписана = ИСТИНА
- | И МашиночитаемыеДоверенностиКонтрагентов.ХешФайла <> """"
- |
- |УПОРЯДОЧИТЬ ПО
- | Ссылка";
+ Запрос.Текст = ТекстЗапроса;
ОтработаныВсеДанныеМЧД003 = Ложь;
ОтработаныВсеДанныеМЧДОрганизаций = Ложь;
@@ -85,13 +71,15 @@
Или Не ОтработаныВсеДанныеМЧДОрганизаций
Или Не ОтработаныВсеДанныеМЧДКонтрагентов Цикл
- Запрос.УстановитьПараметр("МЧД003", МЧД003);
- Запрос.УстановитьПараметр("МЧДОрганизаций", МЧДОрганизаций);
- Запрос.УстановитьПараметр("МЧДКонтрагентов", МЧДКонтрагентов);
+ Запрос.УстановитьПараметр("МЧД003Ссылка", МЧД003);
+ Запрос.УстановитьПараметр("МЧДОрганизацийСсылка", МЧДОрганизаций);
+ Запрос.УстановитьПараметр("МЧДКонтрагентовСсылка", МЧДКонтрагентов);
- ДанныеМЧД003 = Запрос.ВыполнитьПакет()[0].Выгрузить();
- ДанныеМЧДОрганизаций = Запрос.ВыполнитьПакет()[1].Выгрузить();
- ДанныеМЧДКонтрагентов = Запрос.ВыполнитьПакет()[2].Выгрузить();
+ РезультатыЗапроса = Запрос.ВыполнитьПакет();
+
+ ДанныеМЧД003 = РезультатыЗапроса[0].Выгрузить();
+ ДанныеМЧДОрганизаций = РезультатыЗапроса[1].Выгрузить();
+ ДанныеМЧДКонтрагентов = РезультатыЗапроса[2].Выгрузить();
КоличествоСтрокМЧД003 = ДанныеМЧД003.Количество();
КоличествоСтрокМЧДОрганизаций = ДанныеМЧДОрганизаций.Количество();
@@ -153,6 +141,103 @@
ПараметрыОтметкиВыполнения = ОбновлениеИнформационнойБазы.ДополнительныеПараметрыОтметкиОбработки();
ВыбранныеДанные = ОбновлениеИнформационнойБазы.ДанныеДляОбновленияВМногопоточномОбработчике(Параметры);
+ Если Не ЗначениеЗаполнено(ВыбранныеДанные) Тогда
+ Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(
+ Параметры.Очередь, ИменаМетаданных);
+ Возврат;
+ КонецЕсли;
+
+ ОбъектовОбработано = 0;
+ ПроблемныхОбъектов = 0;
+
+ Для Каждого СтрокаДанных Из ВыбранныеДанные Цикл
+
+ НачатьТранзакцию();
+
+ Попытка
+
+ Записать = Ложь;
+
+ Объект = ОбщегоНазначенияБЭД.ОбъектПоСсылкеДляИзменения(СтрокаДанных.Ссылка);
+
+ Если Объект <> Неопределено Тогда
+
+ ВыполнитьПроверкуПодписиДоверенности(Объект, Записать);
+
+ КонецЕсли;
+
+ Если Записать Тогда
+ ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Объект);
+ Иначе
+ ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СтрокаДанных.Ссылка, ПараметрыОтметкиВыполнения);
+ КонецЕсли;
+
+ ОбъектовОбработано = ОбъектовОбработано + 1;
+
+ ЗафиксироватьТранзакцию();
+
+ Исключение
+
+ ОтменитьТранзакцию();
+
+ ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
+
+ ТекстСообщения = СтрШаблон(НСтр("ru = 'Не удалось обработать машиночитаемую доверенность: %1 по причине:
+ |%2'"), СтрокаДанных.Ссылка, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
+ ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
+ УровеньЖурналаРегистрации.Ошибка,, СтрокаДанных.Ссылка, ТекстСообщения);
+
+ КонецПопытки;
+
+ КонецЦикла;
+
+ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
+ ШаблонСообщения = НСтр("ru = 'Не удалось обработать некоторые машиночитаемые доверенности (пропущены): %1'");
+ ТекстСообщения = СтрШаблон(ШаблонСообщения, ПроблемныхОбъектов);
+ ВызватьИсключение ТекстСообщения;
+ Иначе
+ ШаблонСообщения = НСтр("ru = 'Обработана очередная порция машиночитаемых довереностей: %1'");
+ ТекстСообщения = СтрШаблон(ШаблонСообщения, ОбъектовОбработано);
+ ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
+ УровеньЖурналаРегистрации.Информация,,, ТекстСообщения);
+ КонецЕсли;
+
+ Параметры.ПрогрессВыполнения.ОбработаноОбъектов =
+ Параметры.ПрогрессВыполнения.ОбработаноОбъектов + ОбъектовОбработано;
+
+ Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(
+ Параметры.Очередь, ИменаМетаданных);
+
+КонецПроцедуры
+
+// Обрабатывает данные, зарегистрированные в плане обмена ОбновлениеИнформационнойБазы
+// см. Стандарты и методики разработки прикладных решений: Параллельный режим отложенного обновления.
+//
+// Параметры:
+// Параметры - см. ОбновлениеИнформационнойБазы.ОсновныеПараметрыОтметкиКОбработке
+//
+Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию_КонвертацияПравилПроверки(Параметры) Экспорт
+
+ ИменаМетаданных = Новый Массив;
+ ИменаМетаданных.Добавить("Справочник.МЧД003");
+ ИменаМетаданных.Добавить("Справочник.МашиночитаемыеДоверенностиОрганизаций");
+ ИменаМетаданных.Добавить("Справочник.МашиночитаемыеДоверенностиКонтрагентов");
+
+ ИменаБлокированныхМетаданных = Новый Массив();
+ ИменаБлокированныхМетаданных.Добавить("Справочник.МЧД003");
+ ИменаБлокированныхМетаданных.Добавить("Справочник.МашиночитаемыеДоверенностиОрганизаций");
+ ИменаБлокированныхМетаданных.Добавить("Справочник.МашиночитаемыеДоверенностиКонтрагентов");
+
+ Если ОбновлениеИнформационнойБазы.ЕстьЗаблокированныеПредыдущимиОчередямиДанные(
+ Параметры.Очередь, ИменаБлокированныхМетаданных) Тогда
+ Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(
+ Параметры.Очередь, ИменаМетаданных);
+ Возврат;
+ КонецЕсли;
+
+ ПараметрыОтметкиВыполнения = ОбновлениеИнформационнойБазы.ДополнительныеПараметрыОтметкиОбработки();
+ ВыбранныеДанные = ОбновлениеИнформационнойБазы.ДанныеДляОбновленияВМногопоточномОбработчике(Параметры);
+
Если Не ЗначениеЗаполнено(ВыбранныеДанные) Тогда
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(
Параметры.Очередь, ИменаМетаданных);
@@ -292,72 +377,6 @@
КонецПроцедуры
-// Отключает использование режима строгой проверки доверенностей.
-//
-// Параметры:
-// Параметры - Структура - параметры обработчика обновления.
-// См. документацию по подсистеме СтандартныеПодсистемы.ОбновлениеВерсииИБ.
-//
-Процедура ОтключитьРежимСтрогойПроверкиДоверенностей(Параметры) Экспорт
-
- ОбработкаЗавершена = Ложь;
-
- МетаданныеОбъекта = Метаданные.Константы.РежимСтрогойПроверкиДоверенностейОтключенЭДО;
- ПолноеИмяОбъекта = МетаданныеОбъекта.ПолноеИмя();
- ПараметрыОтметкиВыполнения = ОбновлениеИнформационнойБазы.ДополнительныеПараметрыОтметкиОбработки();
-
- НачатьТранзакцию();
- Попытка
-
- Блокировка = Новый БлокировкаДанных;
- ЭлементБлокировки = Блокировка.Добавить(ПолноеИмяОбъекта);
- ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
- Блокировка.Заблокировать();
-
- Записать = Ложь;
-
- МенеджерЗначения = Константы.РежимСтрогойПроверкиДоверенностейОтключенЭДО.СоздатьМенеджерЗначения();
- МенеджерЗначения.Прочитать();
-
- Если Не МенеджерЗначения.Значение Тогда
- МенеджерЗначения.Значение = Истина;
- Записать = Истина;
- КонецЕсли;
-
- Если Записать Тогда
- ОбновлениеИнформационнойБазы.ЗаписатьДанные(МенеджерЗначения);
- Иначе
- ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(МенеджерЗначения, ПараметрыОтметкиВыполнения);
- КонецЕсли;
-
- ОбработкаЗавершена = Истина;
-
- ЗафиксироватьТранзакцию();
-
- Исключение
-
- ОтменитьТранзакцию();
-
- ТекстСообщения =
- НСтр("ru = 'Не удалось обработать константу ""Отключение режима строгой проверки доверенностей"" по причине:'")
- + Символы.ПС + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
- УровеньЖурналаРегистрации.Предупреждение, МетаданныеОбъекта, , ТекстСообщения);
-
- КонецПопытки;
-
- Если ОбработкаЗавершена Тогда
-
- ТекстСообщения = НСтр("ru = 'Обработана константа ""Отключение режима строгой проверки доверенностей"".'");
- ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
- УровеньЖурналаРегистрации.Информация, МетаданныеОбъекта, , ТекстСообщения);
-
- КонецЕсли;
-
- Параметры.ОбработкаЗавершена = ОбработкаЗавершена;
-
-КонецПроцедуры
-
// См. ОбменСКонтрагентамиИнтеграцияСобытия.ПриОпределенииНастроекРегламентныхЗаданий
Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт
@@ -792,6 +811,22 @@
#КонецОбласти // ЦентрЭДО
+#Область КлиентЭДО
+
+// Возвращает значение настройки использования режима строгой проверки доверенности
+//
+// Возвращаемое значение:
+// Булево
+Функция РежимСтрогойПроверкиДоверенностейОтключен() Экспорт
+
+ УстановитьПривилегированныйРежим(Истина);
+ Результат = Константы.РежимСтрогойПроверкиДоверенностейОтключенЭДО.Получить();
+ УстановитьПривилегированныйРежим(Ложь);
+
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти // ДляВызоваИзДругихПодсистем
#КонецОбласти
@@ -1236,6 +1271,16 @@
#КонецОбласти
+#КонецОбласти
+
+// Возвращаемое значение:
+// Строка
+Функция ПредставлениеМЧДНеПодходит() Экспорт
+ Возврат НСтр("ru = 'Доверенность не подходит'");
+КонецФункции
+
+#Область ПроверкаДоверенности
+
// Проверяет есть ли подпись у доверенности
//
// Параметры:
@@ -2224,25 +2269,6 @@
КонецФункции
-// Структура адреса сервера МЧД.
-//
-// Возвращаемое значение:
-// Структура:
-// * АдресСервера - Строка
-// * РесурсКорняAPI - Строка
-// * ИспользоватьРасширенияAPI - Булево
-//
-Функция СтруктураАдресаСервераМЧД() Экспорт
-
- СтруктураАдреса = Новый Структура();
- СтруктураАдреса.Вставить("АдресСервера", "https://1cpoagate.1c.ru/");
- СтруктураАдреса.Вставить("РесурсКорняAPI", "/applications/MChD/api/clientpoa");
- СтруктураАдреса.Вставить("ИспользоватьРасширенияAPI", Истина);
-
- Возврат СтруктураАдреса;
-
-КонецФункции
-
// Формирует файл заявления на отмену МЧД.
//
// Параметры:
@@ -3261,6 +3287,7 @@
// * Верна - Булево
// * Отозвана - Булево
// * ДатаОтзыва - Дата
+// * ПротоколПроверкиМЧД - ХранилищеЗначения - см. КриптографияБЭДКлиентСервер.НовыйРезультатПроверкиПодписи
// * ПолномочияОграничены - Булево
// * ПолномочияУказаныИзКлассификатора - Булево
// * Полномочия - Массив из См.НовыеПолномочияПредставителя
@@ -3298,7 +3325,7 @@
Сведения.Вставить("Верна", Ложь);
Сведения.Вставить("Отозвана", Ложь);
Сведения.Вставить("ДатаОтзыва", Дата(1, 1, 1));
- Сведения.Вставить("ПротоколПроверкиМЧД", Неопределено);
+ Сведения.Вставить("ПротоколПроверкиМЧД", Новый ХранилищеЗначения(Неопределено, Новый СжатиеДанных(9)));
Сведения.Вставить("ДатаПолученияСведений", Дата(1, 1, 1));
Сведения.Вставить("ПолномочияОграничены", Истина);
Сведения.Вставить("ПолномочияУказаныИзКлассификатора", Ложь);
@@ -3655,8 +3682,24 @@
МЧДОбъект = ОбщегоНазначенияБЭД.ОбъектПоСсылкеДляИзменения(МЧД);
ПроверенаВручную = ПроверенаВручную(МЧДОбъект);
Если Не ПроверенаВручную Или СнятьОтметкуРучнойПроверки Тогда
+
МЧДОбъект.Верна = Результат;
МЧДОбъект.ТекстОшибкиПроверкиМЧД = ТекстОшибки;
+
+ ВариантПроверкиСертификатаДоверителя = ВариантПроверкиСертификатаДоверителя();
+ Если РезультатПроверкиПодписиМЧД <> Неопределено
+ И ВариантПроверкиСертификатаДоверителя =
+ Перечисления.ВариантыПроверкиСертификатовМЧДЭДО.НеПроверятьПоСрокуДействия Тогда
+
+ ПротоколПроверкиПодписиМЧД = РезультатПроверкиПодписиМЧД.СвойстваПодписи.Протокол;
+ Если ПротоколПроверкиПодписиМЧД <> Неопределено
+ И МашиночитаемыеДоверенностиКлиентСервер.СертификатОтозванИлиИстек(ПротоколПроверкиПодписиМЧД)
+ И ПротоколПроверкиПодписиМЧД.Контекст.РезультатПроверкиСредствамиКриптографии = Истина Тогда
+ МЧДОбъект.Верна = Истина;
+ МЧДОбъект.ТекстОшибкиПроверкиМЧД = "";
+ КонецЕсли;
+
+ КонецЕсли;
КонецЕсли;
МЧДОбъект.ПротоколПроверки = Новый ХранилищеЗначения(РезультатПроверкиПодписиМЧД, Новый СжатиеДанных(9));
@@ -3716,6 +3759,9 @@
РезультатПроверкиДоверенности = ПроверитьДоверенность(ДанныеДляПроверки);
РезультатВерна = РезультатПроверкиДоверенности.Результат;
РезультатТекстОшибки = РезультатПроверкиДоверенности.ТекстОшибки;
+ Если РезультатПроверкиДоверенности.Свойство("РезультатПроверкиПодписиМЧД") Тогда
+ РезультатПроверкиНаСервере.РезультатПроверкиПодписиМЧД = РезультатПроверкиДоверенности.РезультатПроверкиПодписиМЧД;
+ КонецЕсли;
Иначе
ТребуетсяПроверкаМЧДНаКлиенте = Истина;
РезультатВерна = Ложь;
@@ -4574,7 +4620,13 @@
СвойстваДоверенности = Доверенность;
КонецЕсли;
- Возврат СвойстваДоверенности.Верна И СтрНайти(СвойстваДоверенности.ТекстОшибкиПроверкиМЧД, НСтр("ru='Проверена вручную:'")) > 0;
+ СвойстваДоверенностиПроверка = НовыйСвойстваДоверенностиДляОпределенияРучнойПроверкиДоверенности();
+ ЗаполнитьЗначенияСвойств(СвойстваДоверенностиПроверка, СвойстваДоверенности);
+
+ ПроверенаВручную = ОпределитьРучнуюПроверкуПоСвойствамДоверенности(СвойстваДоверенностиПроверка);
+
+ Возврат ПроверенаВручную;
+
КонецФункции
// Проверить подписи МЧД.
@@ -4682,7 +4734,7 @@
КонецПопытки;
КоличествоОбработанных = КоличествоОбработанных + 1;
- РассчитатьПроцентЗагрузки(КоличествоОбработанных, Выборка.Количество());
+ СообщитьПрогрессВыполненияПоКоличествуОбъектов(КоличествоОбработанных, Выборка.Количество());
КонецЦикла;
@@ -4785,7 +4837,7 @@
#Область Справочники_КлассификаторПолномочийФНСМЧД002_ОбработатьДанныеДляПереходаНаНовуюВерсию
Обработчик = Обработчики.Добавить();
- Обработчик.Версия = "1.9.16.36";
+ Обработчик.Версия = "1.9.16.54";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
Обработчик.Процедура = "Справочники.КлассификаторПолномочийФНСМЧД002.ОбработатьДанныеДляПереходаНаНовуюВерсию";
@@ -4846,7 +4898,7 @@
#Область Справочники_КлассификаторПолномочийМЧД003_ОбработатьДанныеДляПереходаНаНовуюВерсию
Обработчик = Обработчики.Добавить();
- Обработчик.Версия = "1.9.16.36";
+ Обработчик.Версия = "1.9.16.54";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
Обработчик.Процедура = "Справочники.КлассификаторПолномочийМЧД003.ОбработатьДанныеДляПереходаНаНовуюВерсию";
@@ -4966,7 +5018,7 @@
#Область Справочники_МашиночитаемыеДоверенности_ОбработатьДанныеДляПереходаНаНовуюВерсию
Обработчик = Обработчики.Добавить();
- Обработчик.Процедура = "МашиночитаемыеДоверенности.ОбработатьДанныеДляПереходаНаНовуюВерсию";
+ Обработчик.Процедура = "МашиночитаемыеДоверенности.ОбработатьДанныеДляПереходаНаНовуюВерсию_КонвертацияПравилПроверки";
Обработчик.Версия = "1.9.16.3";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("4fff3466-9d54-467a-b461-03e5df0a4b62");
@@ -5006,7 +5058,8 @@
#Область МашиночитаемыеДоверенности_ОтключитьРежимСтрогойПроверкиДоверенностей
Обработчик = Обработчики.Добавить();
- Обработчик.Процедура = "МашиночитаемыеДоверенности.ОтключитьРежимСтрогойПроверкиДоверенностей";
+ Обработчик.Процедура =
+ "Константы.РежимСтрогойПроверкиДоверенностейОтключенЭДО.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Обработчик.Версия = "";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.НачальноеЗаполнение = Истина;
@@ -5015,12 +5068,31 @@
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
Обработчик.Комментарий = НСтр("ru = '1С:Обмен с контрагентами: Отключение режима строгой проверки доверенностей'");
- Обработчик.ЧитаемыеОбъекты = "Константа.РежимСтрогойПроверкиДоверенностейОтключенЭДО";
+ Обработчик.ЧитаемыеОбъекты = "";
Обработчик.ИзменяемыеОбъекты = "Константа.РежимСтрогойПроверкиДоверенностейОтключенЭДО";
Обработчик.БлокируемыеОбъекты = "Константа.РежимСтрогойПроверкиДоверенностейОтключенЭДО";
#КонецОбласти
+#Область МашиночитаемыеДоверенности_УстановитьВариантПроверкиСертификатовНеПроверятьПоСрокуДействия
+
+ Обработчик = Обработчики.Добавить();
+ Обработчик.Процедура =
+ "Константы.ВариантПроверкиСертификатовМЧДЭДО.ОбработатьДанныеДляПереходаНаНовуюВерсию";
+ Обработчик.Версия = "1.9.16.46";
+ Обработчик.РежимВыполнения = "Отложенно";
+ Обработчик.НачальноеЗаполнение = Истина;
+ Обработчик.Идентификатор = Новый УникальныйИдентификатор("e2a8387f-6c91-4236-b70b-8ca48e39791a");
+ Обработчик.ПроцедураЗаполненияДанныхОбновления = "ЭлектронноеВзаимодействие.ЗаполнениеДанныхОбновления";
+ Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
+ Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
+ Обработчик.Комментарий = НСтр("ru = '1С:Обмен с контрагентами: Применение варианта проверки сертификатов доверителей'");
+ Обработчик.ЧитаемыеОбъекты = "Константа.ВариантПроверкиСертификатовМЧДЭДО";
+ Обработчик.ИзменяемыеОбъекты = "Константа.ВариантПроверкиСертификатовМЧДЭДО";
+ Обработчик.БлокируемыеОбъекты = "Константа.ВариантПроверкиСертификатовМЧДЭДО";
+
+#КонецОбласти
+
КонецПроцедуры
// См. ОбменСКонтрагентамиИнтеграцияСобытия.ПриДобавленииПереименованийОбъектовМетаданных
@@ -6914,6 +6986,7 @@
// если отсутствует возможность проверить подпись МЧД на сервере
// (в настройках установлена проверка подписи на клиенте)
// и необходимо выполнить проверку на клиенте.
+// * ВариантПроверкиСертификатовМЧДЭДО - ПеречислениеСсылка.ВариантыПроверкиСертификатовМЧДЭДО
// * ДанныеДляПроверки - Неопределено
// - См. МашиночитаемыеДоверенностиКлиентСервер.НовыеДанныеДляПроверкиМЧД
// * ТекстОшибки - Строка
@@ -6927,6 +7000,7 @@
Результат.Вставить("ТребуетсяПроверкаМЧДНаКлиенте", ТребуетсяПроверкаМЧДНаКлиенте);
Результат.Вставить("ДанныеДляПроверки", Неопределено);
Результат.Вставить("ТекстОшибки", "");
+ Результат.Вставить("ВариантПроверкиСертификатовМЧДЭДО", ВариантПроверкиСертификатаДоверителя());
Если ТипЗНч(АдресХранилища) = Тип("Структура") Тогда
Данные = АдресХранилища;
@@ -7624,19 +7698,74 @@
КонецФункции
// Возвращаемое значение:
-// Булево
-Функция РежимСтрогойПроверкиДоверенностейОтключен() Экспорт
+// Строка
+Функция ИмяПодсистемы() Экспорт
- УстановитьПривилегированныйРежим(Истина);
- Результат = Константы.РежимСтрогойПроверкиДоверенностейОтключенЭДО.Получить();
- УстановитьПривилегированныйРежим(Ложь);
-
- Возврат Результат;
+ Возврат ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().МашиночитаемыеДоверенности;
КонецФункции
#КонецОбласти
+// Проверяет корректность оформления доверенности.
+//
+// Параметры:
+// ДанныеДляПроверки - см. МашиночитаемыеДоверенностиКлиентСервер.НовыеДанныеДляПроверкиМЧД
+// КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
+//
+// Возвращаемое значение:
+// См. РезультатПроверкиДоверенности
+Функция ПроверитьДоверенность(ДанныеДляПроверки, КонтекстДиагностики = Неопределено) Экспорт
+
+ РезультатПроверкиПодписи = КриптографияБЭД.ПроверитьПодпись(Неопределено, ДанныеДляПроверки.ДанныеДоверенности,
+ ДанныеДляПроверки.ДанныеПодписи, КонтекстДиагностики);
+
+ Возврат РезультатПроверкиДоверенности(ДанныеДляПроверки.ДанныеДоверенности, РезультатПроверкиПодписи,
+ КонтекстДиагностики);
+
+КонецФункции
+
+#КонецОбласти
+
+// Прочитать протокол проверки JSON.
+//
+// Параметры:
+// ТекстJSON - Строка
+//
+// Возвращаемое значение:
+// см. НовыйПротоколПроверкиПодписи
+Функция ПрочитатьПротоколПроверкиJSON(ТекстJSON) Экспорт
+
+ ЧтениеJSON = Новый ЧтениеJSON;
+ ЧтениеJSON.УстановитьСтроку(ТекстJSON);
+ ПротоколПроверки = ПрочитатьJSON(ЧтениеJSON,, "ДатаПроверки");
+ ЧтениеJSON.Закрыть();
+ ПроверкаПодписи = НовыйПротоколПроверкиПодписи();
+ ПроверкаПодписиДокумента = НовыйРезультатПроверки();
+ ПроверкаМЧД = МашиночитаемыеДоверенностиКлиентСервер.НовыйПротоколПроверкиМЧД();
+
+ Если ПротоколПроверки.Свойство("ПроверкаМЧД") Тогда
+
+ Для Каждого Проверка Из ПроверкаМЧД Цикл
+ Если ТипЗнч(Проверка.Значение) = Тип("Структура")
+ И НЕ ПротоколПроверки.ПроверкаМЧД.Свойство(Проверка.Ключ) Тогда
+ ПроверкаМЧД[Проверка.Ключ] = Неопределено;
+ КонецЕсли;
+ КонецЦикла;
+
+ ЗаполнитьЗначенияСвойств(ПроверкаМЧД, ПротоколПроверки.ПроверкаМЧД);
+ ЗаполнитьЗначенияСвойств(ПроверкаПодписиДокумента, ПротоколПроверки.ПроверкаПодписиДокумента);
+ ЗаполнитьЗначенияСвойств(ПроверкаПодписи, ПротоколПроверки,, "ПроверкаМЧД, ПроверкаПодписиДокумента");
+
+ КонецЕсли;
+
+ ПроверкаПодписи.ПроверкаПодписиДокумента = ПроверкаПодписиДокумента;
+ ПроверкаПодписи.ПроверкаМЧД = ПроверкаМЧД;
+
+ Возврат ПроверкаПодписи;
+
+КонецФункции
+
#Область СлужебныеПроцедурыИФункции
#Область События
@@ -8302,7 +8431,7 @@
Если ЗначениеЗаполнено(СведенияМЧД.НомерРодительскойДоверенности)
И НомераМЧД.Найти(СведенияМЧД.НомерРодительскойДоверенности) = Неопределено Тогда
СведенияМЧД.РодительскиеДанныеМЧД = ПолучитьРодительскиеДанныеДоверенности(
- СведенияМЧД.НомерРодительскойДоверенности, СведенияМЧД.ИННДоверителяРодительскойДоверенности, НомераМЧД);
+ СведенияМЧД.НомерРодительскойДоверенности, СведенияМЧД.ИННДоверителяРодительскойДоверенности, СведенияМЧД.ИННДоверителя, НомераМЧД);
КонецЕсли;
ИначеЕсли ЗначениеЗаполнено(Доверенность) Тогда
@@ -12057,6 +12186,7 @@
//
Функция СведенияОСтатусахДоверенностей(СправочникМЧД, ДанныеМЧД)
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ПроверкаМЧДВРРМЧД");
УстановитьПривилегированныйРежим(Истина);
Результат = Новый Соответствие;
@@ -12185,7 +12315,7 @@
Результат.Вставить(НомерДоверенности, СтатусМЧД);
КонецЦикла;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПроверкаМЧДВРРМЧД", ОписаниеЗамера, ДанныеМЧД.Количество());
Возврат Результат;
КонецФункции
@@ -12211,12 +12341,14 @@
Результат.Вставить("ТокенДоступа", "");
Результат.Вставить("ТекстОтвета", "");
- Если Не МашиночитаемыеДоверенностиПовтИсп.СервисАвторизацииСервераМЧДДоступен() Тогда
+ РезультатПодключения = ПроверитьПодключениеКСерверуМЧД();
+
+ Если Не РезультатПодключения.СервисАвторизацииДоступен Тогда
Если ПоказыватьСлужебныеСообщения Тогда
ТекстОшибкиПоУмолчанию =
- НСтр("ru = 'Сервис авторизации на сервере МЧД распределенного реестра недоступен.'");
+ НСтр("ru = 'Сервис авторизации на сервере МЧД распределенного реестра временно недоступен.'");
СтруктураОтвета = Новый Структура("ТекстОшибкиПоУмолчанию", ТекстОшибкиПоУмолчанию);
- ВывестиИЗаписатьОшибкуМЧД(Неопределено, , СтруктураОтвета);
+ ВывестиИЗаписатьОшибкуМЧД(СтруктураОтвета);
КонецЕсли;
Возврат Результат;
КонецЕсли;
@@ -12324,13 +12456,6 @@
КонецФункции
-// см. МашиночитаемыеДоверенностиПовтИсп.СвойстваСервераМЧД
-Функция СвойстваСервераМЧД()
-
- Возврат МашиночитаемыеДоверенностиПовтИсп.СвойстваСервераМЧД();
-
-КонецФункции
-
Функция ОписаниеОшибкиHTTP(КодСостояния)
Если КодСостояния < 300 Тогда
@@ -13169,45 +13294,6 @@
#Область ПроверкаПодписи
-// Прочитать протокол проверки JSON.
-//
-// Параметры:
-// ТекстJSON - Строка
-//
-// Возвращаемое значение:
-// см. НовыйПротоколПроверкиПодписи
-Функция ПрочитатьПротоколПроверкиJSON(ТекстJSON) Экспорт
-
- ЧтениеJSON = Новый ЧтениеJSON;
- ЧтениеJSON.УстановитьСтроку(ТекстJSON);
- ПротоколПроверки = ПрочитатьJSON(ЧтениеJSON,, "ДатаПроверки");
- ЧтениеJSON.Закрыть();
- ПроверкаПодписи = НовыйПротоколПроверкиПодписи();
- ПроверкаПодписиДокумента = НовыйРезультатПроверки();
- ПроверкаМЧД = МашиночитаемыеДоверенностиКлиентСервер.НовыйПротоколПроверкиМЧД();
-
- Если ПротоколПроверки.Свойство("ПроверкаМЧД") Тогда
-
- Для Каждого Проверка Из ПроверкаМЧД Цикл
- Если ТипЗнч(Проверка.Значение) = Тип("Структура")
- И НЕ ПротоколПроверки.ПроверкаМЧД.Свойство(Проверка.Ключ) Тогда
- ПроверкаМЧД[Проверка.Ключ] = Неопределено;
- КонецЕсли;
- КонецЦикла;
-
- ЗаполнитьЗначенияСвойств(ПроверкаМЧД, ПротоколПроверки.ПроверкаМЧД);
- ЗаполнитьЗначенияСвойств(ПроверкаПодписиДокумента, ПротоколПроверки.ПроверкаПодписиДокумента);
- ЗаполнитьЗначенияСвойств(ПроверкаПодписи, ПротоколПроверки,, "ПроверкаМЧД, ПроверкаПодписиДокумента");
-
- КонецЕсли;
-
- ПроверкаПодписи.ПроверкаПодписиДокумента = ПроверкаПодписиДокумента;
- ПроверкаПодписи.ПроверкаМЧД = ПроверкаМЧД;
-
- Возврат ПроверкаПодписи;
-
-КонецФункции
-
// Проверяет доступность автопроверки полномочий для доверенности
//
// Параметры:
@@ -14049,24 +14135,6 @@
КонецПроцедуры
-// Проверяет корректность оформления доверенности.
-//
-// Параметры:
-// ДанныеДляПроверки - см. МашиночитаемыеДоверенностиКлиентСервер.НовыеДанныеДляПроверкиМЧД
-// КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
-//
-// Возвращаемое значение:
-// См. РезультатПроверкиДоверенности
-Функция ПроверитьДоверенность(ДанныеДляПроверки, КонтекстДиагностики = Неопределено) Экспорт
-
- РезультатПроверкиПодписи = КриптографияБЭД.ПроверитьПодпись(Неопределено, ДанныеДляПроверки.ДанныеДоверенности,
- ДанныеДляПроверки.ДанныеПодписи, КонтекстДиагностики);
-
- Возврат РезультатПроверкиДоверенности(ДанныеДляПроверки.ДанныеДоверенности, РезультатПроверкиПодписи,
- КонтекстДиагностики);
-
-КонецФункции
-
// Возвращает результат проверки доверенности.
//
// Параметры:
@@ -14082,12 +14150,10 @@
// * КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
Функция РезультатПроверкиДоверенности(ДанныеДоверенности, РезультатПроверкиПодписи, КонтекстДиагностики) Экспорт
- РезультатПроверки = Новый Структура();
- РезультатПроверки.Вставить("Результат", Ложь);
- РезультатПроверки.Вставить("РезультатПроверкиПодписиМЧД", РезультатПроверкиПодписи);
- РезультатПроверки.Вставить("ТекстОшибки", "");
- РезультатПроверки.Вставить("КонтекстДиагностики", КонтекстДиагностики);
-
+ РезультатПроверки = НовыйОбщийРезультатПроверкиПодписиДоверенности();
+ РезультатПроверки.РезультатПроверкиПодписиМЧД = РезультатПроверкиПодписи;
+ РезультатПроверки.КонтекстДиагностики = КонтекстДиагностики;
+
ИННПодписантаФЛ = "";
ИННПодписантаЮЛ = "";
Сертификат = Неопределено;
@@ -14179,6 +14245,27 @@
КонецФункции
+// Параметры:
+// РезультатПоУмолчанию - Булево
+//
+// Возвращаемое значение:
+// Структура:
+// * Результат - Булево
+// * РезультатПроверкиПодписиМЧД - Неопределено
+// * ТекстОшибки - Строка
+// * КонтекстДиагностики - Неопределено
+Функция НовыйОбщийРезультатПроверкиПодписиДоверенности(Знач РезультатПоУмолчанию = Ложь) Экспорт
+
+ Результат = Новый Структура();
+ Результат.Вставить("Результат", РезультатПоУмолчанию);
+ Результат.Вставить("РезультатПроверкиПодписиМЧД", Неопределено);
+ Результат.Вставить("ТекстОшибки", "");
+ Результат.Вставить("КонтекстДиагностики", Неопределено);
+
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти
// Параметры:
@@ -14495,12 +14582,6 @@
Возврат НСтр("ru = 'Доверенность, возможно, не подходит'");
КонецФункции
-// Возвращаемое значение:
-// Строка
-Функция ПредставлениеМЧДНеПодходит()
- Возврат НСтр("ru = 'Доверенность не подходит'");
-КонецФункции
-
// Возвращаемое значение:
// Строка
Функция ПредставлениеМЧДПодходит()
@@ -15254,13 +15335,12 @@
// см. ДлительныеОперации.ВыполнитьФункцию
Функция НачатьПроверкуПодписейДокументовПоМЧД(ПараметрыПроверки) Экспорт
- ИмяМетода = "МашиночитаемыеДоверенности.ВыполнитьПроверкуПодписиДокументовПоМЧД";
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(Новый УникальныйИдентификатор);
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Выполнение проверки подписей документов для МЧД'");
- Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, ИмяМетода, ПараметрыПроверки);
+ Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
+ "МашиночитаемыеДоверенности.ВыполнитьПроверкуПодписиДокументовПоМЧД", ПараметрыПроверки);
КонецФункции
@@ -15344,7 +15424,7 @@
КоличествоОбработанныхУспешно = КоличествоОбработанныхУспешно + ?(УспешноеВыполнение, 1, 0);
КоличествоОбработанныхСОшибками = КоличествоОбработанныхСОшибками + ?(УспешноеВыполнение , 0, 1);
- РассчитатьПроцентЗагрузки(КоличествоОбработанныхДокументов, КоличествоОбъектовКОбработке);
+ СообщитьПрогрессВыполненияПоКоличествуОбъектов(КоличествоОбработанныхДокументов, КоличествоОбъектовКОбработке);
КонецЦикла;
@@ -15552,26 +15632,30 @@
КонецФункции
-// Рассчитать процент загрузки для отображения.
+// Сообщает прогресс выполнения длительной операции в зависимости от количества объектов к обработке и
+// обработанных объектов.
//
// Параметры:
-// КоличествоОбработанных - Число
+// КоличествоОбработанныхОбъектов - Число
// КоличествоОбъектовКОбработке - Число
+// ИнтервалОбновленияПрогресса - Число
//
-Процедура РассчитатьПроцентЗагрузки(КоличествоОбработанных, КоличествоОбъектовКОбработке)
+Процедура СообщитьПрогрессВыполненияПоКоличествуОбъектов(КоличествоОбработанныхОбъектов, КоличествоОбъектовКОбработке,
+ ИнтервалОбновленияПрогресса = 5)
- // Сообщение о проценте загрузки выдаем через каждые 5 объектов.
- Если КоличествоОбработанных = 0
- Или КоличествоОбработанных / 5 <> Цел(КоличествоОбработанных / 5) Тогда
+ Если ИнтервалОбновленияПрогресса <= 0 Тогда
+ ИнтервалОбновленияПрогресса = 5;
+ КонецЕсли;
+
+ // Сообщать о прогрессе пропуская количество объектов, указанное в ИнтервалОбновленияПрогресса.
+ Если КоличествоОбработанныхОбъектов = 0
+ Или КоличествоОбработанныхОбъектов / ИнтервалОбновленияПрогресса <> Цел(КоличествоОбработанныхОбъектов / ИнтервалОбновленияПрогресса) Тогда
Возврат;
КонецЕсли;
- Если КоличествоОбъектовКОбработке = 0 Тогда
- ПроцентВыполнения = 95;
- Иначе
- // 5% полосы резервируем под получение данных запроса, проценты по количеству считаем от 95.
- ПроцентВыполнения = Окр(Мин(КоличествоОбработанных * 95 / КоличествоОбъектовКОбработке, 95));
- КонецЕсли;
+ ПроцентВыполнения =
+ МашиночитаемыеДоверенностиКлиентСервер.РассчитатьПроцентОбработанныхОбъектов(
+ КоличествоОбработанныхОбъектов, КоличествоОбъектовКОбработке);
ДлительныеОперации.СообщитьПрогресс(ПроцентВыполнения);
@@ -15629,7 +15713,7 @@
Запрос = Новый Запрос;
Запрос.Текст =
- "ВЫБРАТЬ РАЗЛИЧНЫЕ
+ "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ЭлектронныеПодписиПоМЧД.ПодписанныйОбъект.ВладелецФайла.ЭлектронныйДокумент КАК ЭлектронныйДокумент,
| ЭлектронныеПодписиПоМЧД.ПодписьВерна КАК ПодписьВерна
|ПОМЕСТИТЬ ВТ_ЭлектронныеДокументыПроверкаПодписи
@@ -15666,30 +15750,231 @@
КонецФункции
-// Переопределить адрес сервера.
+#Область НастройкиСервераМЧД
+
+// Структура адреса сервера МЧД.
+//
+// Возвращаемое значение:
+// Структура:
+// * АдресСервера - Строка
+// * РесурсКорняAPI - Строка
+// * ИспользоватьРасширенияAPI - Булево
+Функция СтруктураАдресаСервераМЧД() Экспорт
+
+ СтруктураАдреса = Новый Структура();
+ СтруктураАдреса.Вставить("АдресСервера", "https://1cpoagate.1c.ru/");
+ СтруктураАдреса.Вставить("РесурсКорняAPI", "/applications/MChD/api/clientpoa");
+ СтруктураАдреса.Вставить("ИспользоватьРасширенияAPI", Истина);
+
+ Возврат СтруктураАдреса;
+
+КонецФункции
+
+// Выполняет проверку доступности сервера распределенного реестра МЧД
+// Параметры:
+// НастройкиПодключения - см. НовыйНастройкиПодключенияКСерверуМЧД
+//
+// Возвращаемое значение:
+// Булево
+Функция СервисАвторизацииСервераМЧДДоступен(НастройкиПодключения)
+
+ ШаблонТекста = НСтр("ru = 'Начало проверки связи с сервером МЧД распределенного реестра по адресу %1.'");
+ Операция = СтрШаблон(ШаблонТекста, НастройкиПодключения.АдресСервераБезАутентификации);
+ ЗаписьЖурналаРегистрации(ИмяПодсистемы(), УровеньЖурналаРегистрации.Информация,,, Операция);
+
+ РесурсНаСервере = НастройкиПодключения.РесурсКорняAPI + "/token";
+ ПараметрыРесурсаНаСервере = "?ticket=checkstatus";
+
+ ЗаголовкиHTTP = Новый Соответствие();
+ ЗаголовкиHTTP.Вставить("Content-Type", "application/json");
+
+ ЗапросHTTP = Новый HTTPЗапрос(РесурсНаСервере + ПараметрыРесурсаНаСервере, ЗаголовкиHTTP);
+ ОписаниеСоединения =
+ ИнтернетСоединениеБЭД.ОписаниеHTTPСоединения(НастройкиПодключения.АдресСервераБезАутентификации, 15);
+ Результат = ИнтернетСоединениеБЭД.ВызватьHTTPМетод(ОписаниеСоединения, ЗапросHTTP,
+ ИнтернетСоединениеБЭД.HTTPМетоды().GET, Операция);
+
+ СервисДоступен = Результат.Успех;
+
+ Если Результат.Ответ <> Неопределено И Результат.Ответ.КодСостояния >= 500 Тогда
+ СервисДоступен = Ложь;
+ КонецЕсли;
+
+ Возврат СервисДоступен;
+
+КонецФункции
+
+// Определяет текущий индекс строки в массиве с настройками для подключения к серверу распределенного реестра МЧД
//
// Параметры:
-// СтруктураАдреса - см. СтруктураАдресаСервераМЧД
-
-Процедура ПереопределитьАдресСервера(СтруктураАдреса) Экспорт
+// СписокНастроек - Массив из см. НовыйНастройкиПодключенияКСерверуМЧД
+//
+// Возвращаемое значение:
+// Число
+Функция ОпределитьКлючНастройкиДляПодключения(СписокНастроек)
- ГСЧ = Новый ГенераторСлучайныхЧисел();
- СлучайноеЧисло = ГСЧ.СлучайноеЧисло(0, 2);
-
- Если СлучайноеЧисло <> 0 Тогда
+ Если СписокНастроек.Количество() = 1 Тогда
+ Индекс = 0;
+ Иначе
- ТекущийАдрес = "";
- Если СтруктураАдреса.Свойство("АдресСервера", ТекущийАдрес) Тогда
-
- ПостфиксАдреса = Строка(СлучайноеЧисло + 1);
- ТекущийАдресСПостфиксом = СтрЗаменить(ТекущийАдрес, "1cpoagate", "1cpoagate" + ПостфиксАдреса);
- СтруктураАдреса.АдресСервера = ТекущийАдресСПостфиксом;
-
- КонецЕсли;
+ Граница = СписокНастроек.Количество() - 1;
+
+ ГСЧ = Новый ГенераторСлучайныхЧисел();
+ Индекс = ГСЧ.СлучайноеЧисло(0, Граница);
+
+ КонецЕсли;
- КонецЕсли;
+ Возврат Индекс;
-КонецПроцедуры
+КонецФункции
+
+// Возвращает результат проверки доступности сервиса авторизации сервера распределенного реестра МЧД
+// и настройки подключения к нему.
+// Если сервис авторизации доступен, сохраняет в хранилище общих настроек настройки подключения к нему.
+//
+// Возвращаемое значение:
+// Структура:
+// * НастройкиПодключения - Неопределено
+// * СервисАвторизацииДоступен - Булево
+Функция ПроверитьПодключениеКСерверуМЧД()
+
+ Результат = НовыйРезультатПодключенияКСервисуАвторизации();
+
+ СписокНастроек = НастройкиПодключенияКСерверуМЧД();
+
+ Пока СписокНастроек.Количество() > 0 Цикл
+
+ КлючНастройки = ОпределитьКлючНастройкиДляПодключения(СписокНастроек);
+ ТекущиеНастройки = СписокНастроек.Получить(КлючНастройки);
+
+ СервисАвторизацииДоступен = СервисАвторизацииСервераМЧДДоступен(ТекущиеНастройки);
+ Если СервисАвторизацииДоступен Тогда
+
+ ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(КлючОбъектаХранилищаНастроек(),
+ КлючНастройкиПодключенияКСерверуМЧД(), ТекущиеНастройки);
+
+ Результат.СервисАвторизацииДоступен = Истина;
+ Результат.НастройкиПодключения = ТекущиеНастройки;
+
+ Возврат Результат;
+
+ Иначе
+
+ СписокНастроек.Удалить(КлючНастройки);
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Возвращаемое значение:
+// см. НовыйНастройкиПодключенияКСерверуМЧД
+Функция СвойстваСервераМЧД() Экспорт
+
+ Результат = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(КлючОбъектаХранилищаНастроек(),
+ КлючНастройкиПодключенияКСерверуМЧД());
+
+ Возврат Результат;
+
+КонецФункции
+
+// Возвращаемое значение:
+// Массив из см. НовыйНастройкиПодключенияКСерверуМЧД
+Функция НастройкиПодключенияКСерверуМЧД()
+
+ АдресаСерверовМЧД = АдресаСерверовМЧД();
+
+ Результат = Новый Массив();
+ Для Каждого АдресСервера Из АдресаСерверовМЧД Цикл
+
+ CоставныеЧастиАдреса = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресСервера);
+ АдресСервераБезАутентификации = CоставныеЧастиАдреса.Схема + "://" + CоставныеЧастиАдреса.ИмяСервера + "/";
+
+ Результат.Вставить(0, НовыйНастройкиПодключенияКСерверуМЧД(АдресСервера, АдресСервераБезАутентификации));
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Возвращаемое значение:
+// Структура:
+// * НастройкиПодключения - Неопределено
+// * СервисАвторизацииДоступен - Булево
+Функция НовыйРезультатПодключенияКСервисуАвторизации()
+
+ Результат = Новый Структура;
+ Результат.Вставить("НастройкиПодключения", Неопределено);
+ Результат.Вставить("СервисАвторизацииДоступен", Ложь);
+
+ Возврат Результат;
+
+КонецФункции
+
+// Параметры:
+// АдресСервера - Строка
+// АдресСервераБезАутентификации - Строка
+//
+// Возвращаемое значение:
+// Структура - информация о настройках подключения к серверу распределенного реестра МЧД:
+// * АдресСервера - Строка
+// * АдресСервераБезАутентификации - Строка
+// * РесурсКорняAPI - Строка
+// * ИспользоватьРасширенияAPI - Булево
+// * ЛогинОператора - Строка
+// * ПарольОператора - Строка
+Функция НовыйНастройкиПодключенияКСерверуМЧД(Знач АдресСервера, Знач АдресСервераБезАутентификации)
+
+ Результат = Новый Структура();
+ Результат.Вставить("АдресСервера", АдресСервера);
+ Результат.Вставить("АдресСервераБезАутентификации", АдресСервераБезАутентификации);
+ Результат.Вставить("РесурсКорняAPI", "/applications/MChD/api/clientpoa");
+ Результат.Вставить("ИспользоватьРасширенияAPI", Истина);
+ Результат.Вставить("ЛогинОператора", "");
+ Результат.Вставить("ПарольОператора", "");
+
+ Возврат Новый ФиксированнаяСтруктура(Результат);
+
+КонецФункции
+
+// Адреса прокси-серверов для работы с распределенным реестром МЧД.
+//
+// Возвращаемое значение:
+// Массив из Строка
+Функция АдресаСерверовМЧД()
+
+ Результат = Новый Массив();
+ Результат.Добавить("https://1cpoagate.1c.ru/");
+ Результат.Добавить("https://1cpoagate2.1c.ru/");
+ Результат.Добавить("https://1cpoagate3.1c.ru/");
+
+ Возврат Результат;
+
+КонецФункции
+
+// Возвращает ключ объекта хранилища общих настроек. Используется для сохранения в хранилище общих настроек.
+//
+// Возвращаемое значение:
+// Строка
+Функция КлючОбъектаХранилищаНастроек()
+
+ Возврат ИмяПодсистемы();
+
+КонецФункции
+
+// Возвращаемое значение:
+// Строка
+Функция КлючНастройкиПодключенияКСерверуМЧД()
+
+ Возврат "НастройкиПодключенияКСерверуМЧД";
+
+КонецФункции
+
+#КонецОбласти
#Область ПостроениеДереваВизуализацииПолномочий
@@ -17224,6 +17509,22 @@
Возврат ПроверенаВручную;
КонецФункции
+// Возвращаемое значение:
+// ПеречислениеСсылка.ВариантыПроверкиСертификатовМЧДЭДО
+//
+Функция ВариантПроверкиСертификатаДоверителя() Экспорт
+
+ УстановитьПривилегированныйРежим(Истина);
+ Результат = Константы.ВариантПроверкиСертификатовМЧДЭДО.Получить();
+ Если Результат.Пустая() Тогда
+ Результат = Перечисления.ВариантыПроверкиСертификатовМЧДЭДО.ПолнаяПроверка;
+ КонецЕсли;
+ УстановитьПривилегированныйРежим(Ложь);
+
+ Возврат Результат;
+
+КонецФункции
+
// Возвращает представление доверенности, содержащее основные данные доверенности, в виде многострочного текста
//
// Параметры:
@@ -17386,4 +17687,314 @@
КонецФункции
+#Область ПроцедурыИФункцииОбработчиковОбновления
+
+// Возвращаемое значение:
+// Строка
+Функция ТекстЗапросаДляРегистрацииДанныхКОбработке()
+
+ ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1000
+ | МЧД003.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.МЧД003 КАК МЧД003
+ |ГДЕ
+ | МЧД003.Ссылка > &МЧД003Ссылка
+ | И МЧД003.Подписана
+ | И МЧД003.ХешФайла <> """"
+ |
+ |УПОРЯДОЧИТЬ ПО
+ | Ссылка
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ ПЕРВЫЕ 1000
+ | МЧДОрганизаций.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.МашиночитаемыеДоверенностиОрганизаций КАК МЧДОрганизаций
+ |ГДЕ
+ | МЧДОрганизаций.Ссылка > &МЧДОрганизацийСсылка
+ | И МЧДОрганизаций.Подписана
+ | И МЧДОрганизаций.ХешФайла <> """"
+ |
+ |УПОРЯДОЧИТЬ ПО
+ | Ссылка
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ ПЕРВЫЕ 1000
+ | МЧДКонтрагентов.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.МашиночитаемыеДоверенностиКонтрагентов КАК МЧДКонтрагентов
+ |ГДЕ
+ | МЧДКонтрагентов.Ссылка > &МЧДКонтрагентовСсылка
+ | И МЧДКонтрагентов.Подписана
+ | И МЧДКонтрагентов.ХешФайла <> """"
+ |
+ |УПОРЯДОЧИТЬ ПО
+ | Ссылка";
+
+ Возврат ТекстЗапроса;
+
+КонецФункции
+
+// Возвращаемое значение:
+// Строка
+Функция ТекстЗапросаДляРегистрацииДанныхВУпрощенномРежимРаботыСДоверенностями()
+
+ ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1000
+ | МЧД003.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.МЧД003 КАК МЧД003
+ |ГДЕ
+ | МЧД003.Ссылка > &МЧД003Ссылка
+ | И (МЧД003.Подписана
+ | И МЧД003.ХешФайла <> """"
+ | ИЛИ МЧД003.Подписана
+ | И МЧД003.ХешФайла <> """"
+ | И МЧД003.ОбработанаВУпрощенномРежимеРаботыСДоверенностями = ЛОЖЬ)
+ |
+ |УПОРЯДОЧИТЬ ПО
+ | Ссылка
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ ПЕРВЫЕ 1000
+ | МЧДОрганизаций.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.МашиночитаемыеДоверенностиОрганизаций КАК МЧДОрганизаций
+ |ГДЕ
+ | МЧДОрганизаций.Ссылка > &МЧДОрганизацийСсылка
+ | И (МЧДОрганизаций.Подписана
+ | И МЧДОрганизаций.ХешФайла <> """"
+ | ИЛИ МЧДОрганизаций.Подписана
+ | И МЧДОрганизаций.ХешФайла <> """"
+ | И МЧДОрганизаций.ОбработанаВУпрощенномРежимеРаботыСДоверенностями = ЛОЖЬ)
+ |
+ |УПОРЯДОЧИТЬ ПО
+ | Ссылка
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ ПЕРВЫЕ 1000
+ | МЧДКонтрагентов.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.МашиночитаемыеДоверенностиКонтрагентов КАК МЧДКонтрагентов
+ |ГДЕ
+ | МЧДКонтрагентов.Ссылка > &МЧДКонтрагентовСсылка
+ | И (МЧДКонтрагентов.Подписана
+ | И МЧДКонтрагентов.ХешФайла <> """"
+ | ИЛИ МЧДКонтрагентов.Подписана
+ | И МЧДКонтрагентов.ХешФайла <> """"
+ | И МЧДКонтрагентов.ОбработанаВУпрощенномРежимеРаботыСДоверенностями = ЛОЖЬ)
+ |
+ |УПОРЯДОЧИТЬ ПО
+ | Ссылка";
+
+ Возврат ТекстЗапроса;
+
+КонецФункции
+
+// Выполняет проверку подписи доверенности. Процедура выполняется только в БизКубе, т.к. там доступна проверка через DSS.
+//
+// Параметры:
+// ДоверенностьОбъект - СправочникОбъект.МашиночитаемыеДоверенностиКонтрагентов
+// - СправочникОбъект.МашиночитаемыеДоверенностиОрганизаций
+// - СправочникОбъект.МЧД003
+//
+// Записать - Булево
+Процедура ВыполнитьПроверкуПодписиДоверенности(ДоверенностьОбъект, Записать)
+
+ Если Не ИспользоватьУпрощенныйРежимРаботыСДоверенностями() Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если ДоверенностьОбъект.ОбработанаВУпрощенномРежимеРаботыСДоверенностями Тогда
+ Возврат;
+ КонецЕсли;
+
+ РезультатПроверки = Ложь;
+
+ МенеджерКриптографии = Неопределено;
+ КонтекстДиагностики = ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики();
+
+ СвойстваДоверенностиПроверка = НовыйСвойстваДоверенностиДляОпределенияРучнойПроверкиДоверенности();
+ ЗаполнитьЗначенияСвойств(СвойстваДоверенностиПроверка, ДоверенностьОбъект);
+ ДоверенностьПроверенаВручную = ОпределитьРучнуюПроверкуПоСвойствамДоверенности(СвойстваДоверенностиПроверка);
+
+ ДанныеДляПроверкиПодписи = ДанныеФайлаДоверенностиИПодписи(ДоверенностьОбъект.Ссылка);
+ ДанныеПодписи = ДанныеДляПроверкиПодписи.ДанныеПодписи;
+
+ РезультатПроверкиПодписи = КриптографияБЭД.ПроверитьПодпись(
+ МенеджерКриптографии, ДанныеДляПроверкиПодписи.ДанныеФайла, ДанныеПодписи, КонтекстДиагностики, Ложь);
+
+ Если РезультатПроверкиПодписи.ОшибкаИнициализацииПроверки Тогда
+ Возврат;
+ КонецЕсли;
+
+ ПроверкаПодписиДетали = РезультатПроверкиПодписи.СвойстваПодписи.Комментарий;
+
+ ПодписьВерна = РезультатПроверкиПодписи.СвойстваПодписи.ПодписьВерна;
+ ЭтоОшибкаМатематическойПроверкиПодписи = ЭтоОшибкаМатематическойПроверкиПодписи(ПроверкаПодписиДетали);
+
+ Если ПодписьВерна
+ Или Не ЭтоОшибкаМатематическойПроверкиПодписи Тогда
+
+ РезультатПроверкиСредствамиКриптографии = Истина;
+
+ ДанныеСертификатаПодписи = ПолучитьДанныеСертификатаПодписи(РезультатПроверкиПодписи, ДанныеПодписи);
+ Если ДанныеСертификатаПодписи <> Неопределено Тогда
+
+ Сертификат = Новый СертификатКриптографии(ДанныеСертификатаПодписи);
+
+ КонтекстПроверкиСертификата =
+ КриптографияБЭДКлиентСервер.НовыйКонтекстПроверкиКвалифицированногоСертификата(Сертификат.Выгрузить(),
+ РезультатПроверкиСредствамиКриптографии, ДанныеПодписи);
+
+ РезультатПроверкиСертификата =
+ КриптографияБЭДКлиентСервер.ПроверитьКвалифицированныйСертификат(Сертификат, КонтекстПроверкиСертификата);
+
+ ПротоколПроверки = РезультатПроверкиСертификата.Протокол;
+ ПроверкаСертификатаЗавершиласьУспехом = РезультатПроверкиСертификата.Успех;
+
+ Если Не ПроверкаСертификатаЗавершиласьУспехом Тогда
+ Ошибка = КриптографияБЭДКлиентСервер.СформироватьОшибкуПоПротоколуПроверкиКвалификации(Сертификат,
+ ПротоколПроверки);
+ РезультатПроверкиПодписи.ОписаниеОшибки = Ошибка.ПодробноеПредставлениеОшибки;
+ РезультатПроверкиПодписи.СвойстваПодписи.Комментарий = Ошибка.ПодробноеПредставлениеОшибки;
+ КонецЕсли;
+
+ РезультатПроверкиПодписи.СвойстваПодписи.ПодписьВерна = ПроверкаСертификатаЗавершиласьУспехом;
+ РезультатПроверкиПодписи.СвойстваПодписи.Протокол = ПротоколПроверки;
+
+ РезультатПроверки = РезультатПроверкиПодписи.СвойстваПодписи.ПодписьВерна;
+
+ Иначе
+
+ РезультатПроверки = ПодписьВерна;
+ РезультатПроверкиПодписи.ОписаниеОшибки = ПроверкаПодписиДетали;
+
+ КонецЕсли;
+
+ Иначе
+
+ РезультатПроверкиПодписи.ОписаниеОшибки = ПроверкаПодписиДетали;
+
+ КонецЕсли;
+
+ Если Не ДоверенностьПроверенаВручную Тогда
+ ДоверенностьОбъект.Верна = РезультатПроверки;
+ ДоверенностьОбъект.ТекстОшибкиПроверкиМЧД = РезультатПроверкиПодписи.ОписаниеОшибки;
+ КонецЕсли;
+
+ ДоверенностьОбъект.ПротоколПроверки = Новый ХранилищеЗначения(РезультатПроверкиПодписи, Новый СжатиеДанных(9));
+ ДоверенностьОбъект.ОбработанаВУпрощенномРежимеРаботыСДоверенностями = Истина;
+
+ ЗаписатьМашиночитаемуюДоверенностьВЖурнал(ДоверенностьОбъект, Ложь);
+
+ Записать = Истина;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+// Возвращаемое значение:
+// Булево
+Функция ИспользоватьУпрощенныйРежимРаботыСДоверенностями()
+
+ ИспользоватьУпрощенныйРежимРаботыСДоверенностями = Ложь;
+ Возврат ИспользоватьУпрощенныйРежимРаботыСДоверенностями;
+
+КонецФункции
+
+// Определить ручную проверку по свойствам доверенности.
+//
+// Параметры:
+// СвойстваДоверенности - Структура:
+// * Верна - Булево
+// * ТекстОшибкиПроверкиМЧД - Строка
+//
+// Возвращаемое значение:
+// Булево
+Функция ОпределитьРучнуюПроверкуПоСвойствамДоверенности(Знач СвойстваДоверенности)
+
+ Возврат СвойстваДоверенности.Верна
+ И СтрНайти(СвойстваДоверенности.ТекстОшибкиПроверкиМЧД, НСтр("ru='Проверена вручную:'")) > 0;
+
+КонецФункции
+
+// Возвращаемое значение:
+// Структура :
+// * Верна - Булево
+// * ТекстОшибкиПроверкиМЧД - Строка
+Функция НовыйСвойстваДоверенностиДляОпределенияРучнойПроверкиДоверенности()
+
+ Возврат Новый Структура("Верна, ТекстОшибкиПроверкиМЧД", Ложь, "");
+
+КонецФункции
+
+// Получить данные сертификата подписи.
+//
+// Параметры:
+// РезультатПроверкиПодписи см. КриптографияБЭДКлиентСервер.НовыйРезультатПроверкиПодписи
+// ДанныеПодписи - ДвоичныеДанные
+//
+// Возвращаемое значение:
+// Неопределено, ДвоичныеДанные - Данные сертификата подписи
+Функция ПолучитьДанныеСертификатаПодписи(РезультатПроверкиПодписи, ДанныеПодписи)
+
+ ДанныеСертификата = РезультатПроверкиПодписи.СвойстваПодписи.Сертификат;
+
+ Если ДанныеСертификата <> Неопределено Тогда
+ Возврат ДанныеСертификата;
+ КонецЕсли;
+
+ ДанныеСертификата = КриптографияБЭДКлиентСервер.ДанныеСертификатаИзДвоичныхДанныхПодписи(ДанныеПодписи);
+
+ Возврат ДанныеСертификата;
+
+КонецФункции
+
+// Проверяет, что переданная строка содержит ошибку проверки математической подписи.
+//
+// Параметры:
+// ТекстОшибки - Строка
+//
+// Возвращаемое значение:
+// Булево
+Функция ЭтоОшибкаМатематическойПроверкиПодписи(ТекстОшибки)
+
+ Результат = Ложь;
+
+ Ошибки = ОшибкиМатематическойПроверкиПодписиDSS();
+
+ Для Каждого Ошибка Из Ошибки Цикл
+
+ Результат = СтрНайти(НРег(ТекстОшибки), Ошибка.Ключ) > 0;
+
+ Если Результат Тогда
+ Прервать;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Возвращает коды и описание ошибок проверки математической корректности подписи с использованием сервиса SVS (DSS)
+//
+// Возвращаемое значение:
+// Соответствие из КлючИЗначение
+Функция ОшибкиМатематическойПроверкиПодписиDSS()
+
+ Результат = Новый Соответствие;
+ Результат.Вставить("0x80090006"); // Подпись недействительна
+ Результат.Вставить("0x80096010"); // Цифровая подпись объекта не проверена
+ Результат.Вставить("0x80091007"); // Некорректное значение хэша
+ Результат.Вставить("0x8009310b"); // Встречено неверное значение тега АСН.1
+
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти
diff --git a/src/CommonModules/МашиночитаемыеДоверенностиИнтеграцияЦентраЭДО/Ext/Module.bsl b/src/CommonModules/МашиночитаемыеДоверенностиИнтеграцияЦентраЭДО/Ext/Module.bsl
index b4e56a002..f1542d211 100644
--- a/src/CommonModules/МашиночитаемыеДоверенностиИнтеграцияЦентраЭДО/Ext/Module.bsl
+++ b/src/CommonModules/МашиночитаемыеДоверенностиИнтеграцияЦентраЭДО/Ext/Module.bsl
@@ -583,6 +583,14 @@
РезультатМетода = РезультатМетодаПакета.Значение; // См. ПрограммныйИнтерфейсЦентраЭДОВерсия3.ПолучитьДанныеДоверенности
ИдентификаторДоверенности = ИдентификаторыДляЗагрузки[ИндексМетода];
+ Если Не ЗначениеЗаполнено(РезультатМетода) Тогда
+ ВидОперации = НСтр("ru = 'Получение данных доверенности из центра ЭДО'");
+ ТекстОшибки = НСтр("ru = 'Не получены данные доверенности от сервиса по идентификатору'")
+ + " " + ИдентификаторДоверенности;
+ ИнтеграцияЦентраЭДО.ЗаписатьВЖурналРегистрации(ВидОперации, ТекстОшибки);
+ Продолжить;
+ КонецЕсли;
+
Доверенность = ЗагрузитьПоДаннымСервиса(РезультатМетода, ИдентификаторДоверенности, УчетнаяЗаписьЦентраЭДО);
Если ЗначениеЗаполнено(Доверенность) Тогда
@@ -1802,4 +1810,12 @@
КонецФункции
-#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВыгрузитьВЦентрЭДО", Истина);
+ Методы.Вставить("ЗаписатьЧерновикВЦентрЭДО", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/МашиночитаемыеДоверенностиКлиент/Ext/Module.bsl b/src/CommonModules/МашиночитаемыеДоверенностиКлиент/Ext/Module.bsl
index d45479b00..c494263d4 100644
--- a/src/CommonModules/МашиночитаемыеДоверенностиКлиент/Ext/Module.bsl
+++ b/src/CommonModules/МашиночитаемыеДоверенностиКлиент/Ext/Module.bsl
@@ -137,8 +137,12 @@
КонецЕсли;
КонтекстДиагностики = ОбработкаНеисправностейБЭДКлиент.НовыйКонтекстДиагностики();
+
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("МЧД", РезультатЗагрузкиМЧД.МЧД);
+ ДополнительныеПараметры.Вставить("ВариантПроверкиСертификатовМЧДЭДО",
+ РезультатЗагрузкиМЧД.ВариантПроверкиСертификатовМЧДЭДО);
+
ОповещениеОЗавершении = Новый ОписаниеОповещения("ЗагрузитьПерезаполнитьМЧДИзФайлаЗавершение", ЭтотОбъект,
ДополнительныеПараметры);
ПроверитьДанныеМЧД(ОповещениеОЗавершении, РезультатЗагрузкиМЧД, КонтекстДиагностики);
@@ -493,6 +497,17 @@
КриптографияБЭДКлиент.ПроверитьПодпись(ОповещениеОЗавершении, ДанныеДляПроверки.ДанныеДоверенности,
ДанныеДляПроверки.ДанныеПодписи, Параметры.КонтекстДиагностики);
+ ВсегоДоверенностей = Доверенности.Количество() + Параметры.ДоверенностиПроверенные.Количество();
+
+ ПроцентПрогресса =
+ МашиночитаемыеДоверенностиКлиентСервер.РассчитатьПроцентОбработанныхОбъектов(
+ Параметры.ДоверенностиПроверенные.Количество(), ВсегоДоверенностей);
+
+ Параметры.КонтекстОжиданияОперации.ПараметрыОжиданияОперации.ПроцентПрогресса = ПроцентПрогресса;
+
+ ОжиданиеОперацийБЭДКлиент.ОбновитьПрогресс(
+ Параметры.КонтекстОжиданияОперации.ПараметрыОжиданияОперации, Параметры.КонтекстОжиданияОперации);
+
Иначе
ОповеститьОИзмененииМЧД(Параметры.ДоверенностиПроверенные);
ВыполнитьОбработкуОповещения(Параметры.ОповещениеОЗавершении, Истина);
@@ -1397,7 +1412,7 @@
КонтекстДиагностики = РезультатПроверки.КонтекстДиагностики;
ОбработатьРезультатПроверкиМЧД(РезультатПроверки);
МашиночитаемыеДоверенностиВызовСервера.ОтразитьРезультатПроверкиМЧД(МЧД, РезультатПроверки.Результат,
- РезультатПроверки.ТекстОшибки);
+ РезультатПроверки.ТекстОшибки,, РезультатПроверки.РезультатПроверкиПодписиМЧД);
Иначе
КонтекстДиагностики = Неопределено;
КонецЕсли;
@@ -1519,18 +1534,37 @@
// ДополнительныеПараметры - Структура:
// * МЧД - СправочникСсылка.МашиночитаемыеДоверенностиКонтрагентов
// - СправочникСсылка.МашиночитаемыеДоверенностиОрганизаций
+// * ВариантПроверкиСертификатовМЧДЭДО - ПеречислениеСсылка.ВариантыПроверкиСертификатовМЧДЭДО
//
Процедура ЗагрузитьПерезаполнитьМЧДИзФайлаЗавершение(РезультатПроверки, ДополнительныеПараметры) Экспорт
-
+
+ КонтекстДиагностики = Неопределено;
МЧД = ДополнительныеПараметры.МЧД;
-
+
Если ЗначениеЗаполнено(РезультатПроверки) Тогда
- КонтекстДиагностики = РезультатПроверки.КонтекстДиагностики;
- ОбработатьРезультатПроверкиМЧД(РезультатПроверки);
+
+ ОбрабатыватьОшибкиЗагрузкиМЧД = Истина;
+
+ Если ДополнительныеПараметры.Свойство("ВариантПроверкиСертификатовМЧДЭДО")
+ И ДополнительныеПараметры.ВариантПроверкиСертификатовМЧДЭДО =
+ ПредопределенноеЗначение("Перечисление.ВариантыПроверкиСертификатовМЧДЭДО.НеПроверятьПоСрокуДействия") Тогда
+
+ ПротоколПроверкиПодписиМЧД = РезультатПроверки.РезультатПроверкиПодписиМЧД.СвойстваПодписи.Протокол;
+ Если ПротоколПроверкиПодписиМЧД <> Неопределено
+ И МашиночитаемыеДоверенностиКлиентСервер.СертификатОтозванИлиИстек(ПротоколПроверкиПодписиМЧД)
+ И ПротоколПроверкиПодписиМЧД.Контекст.РезультатПроверкиСредствамиКриптографии = Истина Тогда
+ ОбрабатыватьОшибкиЗагрузкиМЧД = Ложь;
+ КонецЕсли;
+ КонецЕсли;
+
+ Если ОбрабатыватьОшибкиЗагрузкиМЧД Тогда
+ КонтекстДиагностики = РезультатПроверки.КонтекстДиагностики;
+ ОбработатьРезультатПроверкиМЧД(РезультатПроверки);
+ КонецЕсли;
+
МашиночитаемыеДоверенностиВызовСервера.ОтразитьРезультатПроверкиМЧД(МЧД, РезультатПроверки.Результат,
РезультатПроверки.ТекстОшибки, , РезультатПроверки.РезультатПроверкиПодписиМЧД);
- Иначе
- КонтекстДиагностики = Неопределено;
+
КонецЕсли;
ОповеститьОбИзменении(МЧД);
@@ -1830,7 +1864,7 @@
Новый ОписаниеОповещения("ОбработатьОповещениеОПрогрессеВыполненияПроверкиПодписей",
МашиночитаемыеДоверенностиКлиент, КонтекстОжиданияОперации);
ПараметрыОжидания.ОповещениеОПрогрессеВыполнения = ОповещениеОПрогрессеВыполнения;
-
+
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеПослеПроверкиНаСервере, ПараметрыОжидания);
КонецПроцедуры
diff --git a/src/CommonModules/МашиночитаемыеДоверенностиКлиентСервер/Ext/Module.bsl b/src/CommonModules/МашиночитаемыеДоверенностиКлиентСервер/Ext/Module.bsl
index 4c05906dd..2efa11518 100644
--- a/src/CommonModules/МашиночитаемыеДоверенностиКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/МашиночитаемыеДоверенностиКлиентСервер/Ext/Module.bsl
@@ -262,6 +262,14 @@
// Булево
Функция СертификатОтозванИлиИстек(Протокол) Экспорт
+ Результат = Ложь;
+
+ Если Не Протокол.Контекст.РезультатПроверкиСредствамиКриптографии
+ Или Не Протокол.Критерии.Общие.АккредитацияУЦДействуетНаДатуВыдачиСертификата
+ Или Не Протокол.Критерии.Общие.АккредитацияУЦДействуетНаДатуПроверки Тогда
+ Возврат Результат;
+ КонецЕсли;
+
СертификатОтозван = Не Протокол.Критерии.Общие.СертификатПроходитПроверкуМенеджераКриптографии;
СертификатИстек =
@@ -671,12 +679,25 @@
КонецФункции
+// Параметры:
+// КоличествоОбработанныхОбъектов - Число
+// КоличествоОбъектовКОбработке - Число
+//
// Возвращаемое значение:
-// Строка
-Функция ВидОперацииУстановкаПометкиОтозвана() Экспорт
+// Число
+Функция РассчитатьПроцентОбработанныхОбъектов(КоличествоОбработанныхОбъектов, КоличествоОбъектовКОбработке) Экспорт
- Возврат НСтр("ru = 'Установка пометки Отозвана'");
+ ПроцентВыполнения = 0;
+ Если КоличествоОбъектовКОбработке = 0 Тогда
+ ПроцентВыполнения = 95;
+ Иначе
+ // 5% полосы резервируем под получение данных, проценты по количеству считаем от 95.
+ ПроцентВыполнения = Окр(Мин(КоличествоОбработанныхОбъектов * 95 / КоличествоОбъектовКОбработке, 95));
+ КонецЕсли;
+
+ Возврат ПроцентВыполнения;
+
КонецФункции
#КонецОбласти
@@ -820,25 +841,6 @@
КонецФункции
-// Параметры:
-// МЧД - СправочникОбъект.МашиночитаемыеДоверенностиОрганизаций
-// - СправочникОбъект.МашиночитаемыеДоверенностиКонтрагентов
-// - СправочникОбъект.МЧД003
-// - ДанныеФормыСтруктура - созданная из объектов указанных выше.
-// ПолномочияОграничены - Булево
-//
-// Возвращаемое значение:
-// Булево - если Истина, то настройка доступна, иначе - недоступна.
-//
-Функция ДоступнаИнтерактивнаяНастройкаПравилПроверки(МЧД, ПолномочияОграничены = Истина) Экспорт
-
- ЭтоТекстовыеПолномочия = МЧД.ВариантЗаполненияПолномочий =
- ПредопределенноеЗначение("Перечисление.ВариантыЗаполненияПолномочийМЧД.Текст");
-
- Возврат ПолномочияОграничены И ЭтоТекстовыеПолномочия;
-
-КонецФункции
-
// Возвращает идентификатор пространства имен универсального формата МЧД версии 003
//
// Возвращаемое значение:
@@ -1126,7 +1128,7 @@
// Устанавливает видимость поля Срок действия для документа, удостоверяющего личность
// физического лица в разделе Представитель в формах ЧерновикМЧД, ЧерновикПередоверияМЧД, ДобавлениеПредставителя.
// Согласно формату Единой формы доверенности в электронной форме в машиночитаемом виде элемент "expDate" включается
-// в состав XML-файла доверенности, если выборано значение вида документа "Загранпаспорт гражданина Российской Федерации".
+// в состав XML-файла доверенности, если выбрано значение вида документа "Загранпаспорт гражданина Российской Федерации".
// Только в этом случае пользователю поле, связанное с реквизитом формы, содержащим значение срока действия документа,
// удостоверяющего личность физического лица, становится доступным для редактирования.
//
diff --git a/src/CommonModules/МашиночитаемыеДоверенностиПовтИсп/Ext/Module.bsl b/src/CommonModules/МашиночитаемыеДоверенностиПовтИсп/Ext/Module.bsl
index e67933632..dedded2e1 100644
--- a/src/CommonModules/МашиночитаемыеДоверенностиПовтИсп/Ext/Module.bsl
+++ b/src/CommonModules/МашиночитаемыеДоверенностиПовтИсп/Ext/Module.bsl
@@ -23,37 +23,6 @@
КонецФункции
-// Свойства сервера МЧД.
-//
-// Возвращаемое значение:
-// Структура:
-// * АдресСервера - Строка
-// * АдресСервераБезАутентификации - Строка
-// * РесурсКорняAPI - Строка
-// * ЛогинОператора - Строка
-// * ПарольОператора - Строка
-// * ИспользоватьРасширенияAPI - Булево
-//
-Функция СвойстваСервераМЧД() Экспорт
-
- СтруктураАдреса = Константы.АдресРеестраМЧД.ПрочитатьАдрес();
- МашиночитаемыеДоверенности.ПереопределитьАдресСервера(СтруктураАдреса);
- СтруктураАдреса.Вставить("АдресСервераБезАутентификации", СтруктураАдреса.АдресСервера);
- СтруктураАдреса.Вставить("ЛогинОператора", "");
- СтруктураАдреса.Вставить("ПарольОператора", "");
-
- НачалоПараметровАутентификации = СтрНайти(СтруктураАдреса.АдресСервераБезАутентификации, "://");
- КонецПараметровАутентификации = СтрНайти(СтруктураАдреса.АдресСервераБезАутентификации, "@");
- Если НачалоПараметровАутентификации <> 0 И КонецПараметровАутентификации <> 0 Тогда
- СтруктураАдреса.АдресСервераБезАутентификации =
- Лев(СтруктураАдреса.АдресСервераБезАутентификации, НачалоПараметровАутентификации + 2)
- + Сред(СтруктураАдреса.АдресСервераБезАутентификации, КонецПараметровАутентификации + 1);
- КонецЕсли;
-
- Возврат СтруктураАдреса;
-
-КонецФункции
-
// Используется режим тестирования.
//
// Возвращаемое значение:
@@ -75,33 +44,4 @@
КонецФункции
-// Возвращаемое значение:
-// Булево
-//
-Функция СервисАвторизацииСервераМЧДДоступен() Экспорт
-
- СвойстваСервераМЧД = МашиночитаемыеДоверенностиПовтИсп.СвойстваСервераМЧД();
- РесурсНаСервере = СвойстваСервераМЧД.РесурсКорняAPI + "/token";
-
- ПараметрыРесурсаНаСервере = "?ticket=checkstatus";
-
- ЗаголовкиHTTP = Новый Соответствие();
- ЗаголовкиHTTP.Вставить("Content-Type", "application/json");
-
- ЗапросHTTP = Новый HTTPЗапрос(РесурсНаСервере + ПараметрыРесурсаНаСервере, ЗаголовкиHTTP);
- ОписаниеСоединения =
- ИнтернетСоединениеБЭД.ОписаниеHTTPСоединения(СвойстваСервераМЧД.АдресСервераБезАутентификации, 15);
- Результат = ИнтернетСоединениеБЭД.ВызватьHTTPМетод(ОписаниеСоединения, ЗапросHTTP,
- ИнтернетСоединениеБЭД.HTTPМетоды().GET, НСтр("ru = 'Проверка связи с сервисом авторизации сервера МЧД распределенного реестра.'"));
-
- СервисДоступен = Результат.Успех;
-
- Если Результат.Ответ <> Неопределено И Результат.Ответ.КодСостояния >= 500 Тогда
- СервисДоступен = Ложь;
- КонецЕсли;
-
- Возврат СервисДоступен;
-
-КонецФункции
-
#КонецОбласти
diff --git a/src/CommonModules/МашиночитаемыеДоверенностиСлужебный/Ext/Module.bsl b/src/CommonModules/МашиночитаемыеДоверенностиСлужебный/Ext/Module.bsl
index a7046d3b4..47649c05f 100644
--- a/src/CommonModules/МашиночитаемыеДоверенностиСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/МашиночитаемыеДоверенностиСлужебный/Ext/Module.bsl
@@ -256,4 +256,11 @@
#КонецОбласти
-#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОбработатьОчередьЗапросовВРеестрМЧД", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/МашиночитаемыеДоверенностиЦентрЭДО/Ext/Module.bsl b/src/CommonModules/МашиночитаемыеДоверенностиЦентрЭДО/Ext/Module.bsl
index 3f5d3beba..423626574 100644
--- a/src/CommonModules/МашиночитаемыеДоверенностиЦентрЭДО/Ext/Module.bsl
+++ b/src/CommonModules/МашиночитаемыеДоверенностиЦентрЭДО/Ext/Module.bsl
@@ -409,8 +409,19 @@
Результат.Вставить("Данные", Неопределено);
Результат.Вставить("Статус", Неопределено);
+ Если Не ЗначениеЗаполнено(ИдентификаторДоверенности) Тогда
+ Результат.Ошибка = НСтр("ru='Не указан идентификатор доверенности'");
+ Возврат Результат;
+ КонецЕсли;
+
Доверенность = ДоверенностьПоИдентификатору(ИдентификаторДоверенности);
+ Если Не ЗначениеЗаполнено(Доверенность) Тогда
+ Результат.Ошибка = СтрШаблон(НСтр("ru='Не найдена доверенность по идентификатору %1'",
+ ИдентификаторДоверенности));
+ Возврат Результат;
+ КонецЕсли;
+
РезультатВыгрузки = МашиночитаемыеДоверенности.ВыгрузитьДанныеДоверенности(Доверенность);
Если РезультатВыгрузки.Ошибка Тогда
diff --git a/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl b/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl
index f9c74ae0b..6371b37c0 100644
--- a/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl
+++ b/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl
@@ -1,5 +1,5 @@
////////////////////////////////////////////////////////////////////////////////
-// Менеджер обмена через универсальный формат (УП2.5.27_ED_1_21_1 от 01.07.2026 21:23:28)
+// Менеджер обмена через универсальный формат (УП2.5.27_ED_1_21_1 от 16.07.2026 14:41:23)
//
////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
@@ -44423,7 +44423,7 @@
//++ Локализация
Если ЗначениеЗаполнено(ДанныеИБ.ВидАлкогольнойПродукции) Тогда
- СтруктураВидАП = Новый Структура("Код, Наименование, ВидЛицензии");
+ СтруктураВидАП = Новый Структура("Код, Наименование, ВидЛицензии, Маркируемый");
ЗаполнитьЗначенияСвойств(СтруктураВидАП, ДанныеИБ.ВидАлкогольнойПродукции);
Если ЗначениеЗаполнено(ДанныеИБ.ВидАлкогольнойПродукции.ВидЛицензии) Тогда
ВидЛицензии = "";
@@ -67312,10 +67312,12 @@
Возврат Валюта <> ВалютаРегламентированногоУчета И Не ОплатаВВалюте;
КонецФункции
+
//++ Локализация
//-- Локализация
+
Функция ВерсияФорматаЧислом(СтрокаВерсии)
Если Не ЗначениеЗаполнено(СтрокаВерсии) Или СтрокаВерсии = "1.0.beta" Тогда
Возврат 0;
@@ -85586,10 +85588,11 @@
Функция ТекстЗапросаПризнаватьРасходамиПриУСН(КомпонентыОбмена, ИмяТаблицы, ПрименяетсяУСНДоходыМинусРасходы)
ТекстЗапроса = "НЕОПРЕДЕЛЕНО КАК ВключатьРасходыВУСН";
- Если ПрименяетсяУСНДоходыМинусРасходы
+ Если ПолучитьФункциональнуюОпцию("ИспользоватьРеглУчет")
+ И ПрименяетсяУСНДоходыМинусРасходы
И ВерсияФорматаЧислом(КомпонентыОбмена.ВерсияФорматаОбмена) >= ВерсияФорматаЧислом("1.19") Тогда
- ТекстЗапроса = "ВЫРАЗИТЬ(&Источник.СтатьяРасходов КАК ПланВидовХарактеристик.СтатьиРасходов).ПризнаватьРасходамиПриУСН КАК ВключатьРасходыВУСН";
+ ТекстЗапроса = "ВЫРАЗИТЬ(&Источник.СтатьяРасходов КАК ПланВидовХарактеристик.СтатьиРасходов).ПризнаватьРасходамиПриУСН КАК ВключатьРасходыВУСН";
КонецЕсли;
diff --git a/src/CommonModules/МенеджерСервисаКриптографии/Ext/Module.bsl b/src/CommonModules/МенеджерСервисаКриптографии/Ext/Module.bsl
index 4c1d3d87c..2d8d20a97 100644
--- a/src/CommonModules/МенеджерСервисаКриптографии/Ext/Module.bsl
+++ b/src/CommonModules/МенеджерСервисаКриптографии/Ext/Module.bsl
@@ -732,5 +732,13 @@
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("УстановитьСертификатВКонтейнерИХранилище", Истина);
+ Методы.Вставить("СоздатьКонтейнерИЗапросНаСертификат", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/МенеджерСервисаКриптографииСлужебныйВызовСервера/Ext/Module.bsl b/src/CommonModules/МенеджерСервисаКриптографииСлужебныйВызовСервера/Ext/Module.bsl
index 77353115c..343d31dd7 100644
--- a/src/CommonModules/МенеджерСервисаКриптографииСлужебныйВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/МенеджерСервисаКриптографииСлужебныйВызовСервера/Ext/Module.bsl
@@ -37,9 +37,11 @@
ПараметрыПроцедуры.Вставить("ЭлектроннаяПочта", ЭлектроннаяПочта);
ПараметрыПроцедуры.Вставить("ИдентификаторАбонента", ИдентификаторАбонента);
ПараметрыПроцедуры.Вставить("НотариусАдвокатГлаваКФХ", НотариусАдвокатГлаваКФХ);
-
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("МенеджерСервисаКриптографии.СоздатьКонтейнерИЗапросНаСертификат",
- ПараметрыПроцедуры);
+
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("МенеджерСервисаКриптографии.СоздатьКонтейнерИЗапросНаСертификат",
+ ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -60,9 +62,11 @@
ПараметрыПроцедуры = Новый Структура;
ПараметрыПроцедуры.Вставить("ИдентификаторЗаявления", ИдентификаторЗаявления);
ПараметрыПроцедуры.Вставить("ДанныеСертификата", ДанныеСертификата);
-
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("МенеджерСервисаКриптографии.УстановитьСертификатВКонтейнерИХранилище",
- ПараметрыПроцедуры);
+
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("МенеджерСервисаКриптографии.УстановитьСертификатВКонтейнерИХранилище",
+ ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
diff --git a/src/CommonModules/МиграцияПриложений/Ext/Module.bsl b/src/CommonModules/МиграцияПриложений/Ext/Module.bsl
index 052bb8f26..faa26dddc 100644
--- a/src/CommonModules/МиграцияПриложений/Ext/Module.bsl
+++ b/src/CommonModules/МиграцияПриложений/Ext/Module.bsl
@@ -5603,4 +5603,12 @@
Возврат Результат;
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗаданиеВыгрузка", Истина);
+ Методы.Вставить("ЗаданиеЗагрузка", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/МобильноеРабочееМестоКладовщикаЛокализация/Ext/Module.bsl b/src/CommonModules/МобильноеРабочееМестоКладовщикаЛокализация/Ext/Module.bsl
index 1f761d8ea..a19866819 100644
--- a/src/CommonModules/МобильноеРабочееМестоКладовщикаЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/МобильноеРабочееМестоКладовщикаЛокализация/Ext/Module.bsl
@@ -58,13 +58,13 @@
ПараметрыСканирования.Вставить("ЭтоОтчетПроизводственнойЛинии", Ложь);
ПараметрыСканирования.Вставить("ВидОперацииИСМП", ПредопределенноеЗначение("Перечисление.ВидыОперацийИСМП.ОтгрузкаПродажа"));
КонецЕсли;
-
- ПараметрыСканирования.ДопустимыеВидыПродукции = Новый Массив(ОбщегоНазначенияИСМПКлиентСерверПовтИсп.УчитываемыеВидыМаркируемойПродукции());
-
+
ИмяМетаданныхОбъекта = ДокументСсылка.Метаданные().Имя;
Менеджер = Документы[ИмяМетаданныхОбъекта];
- ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(ДокументСсылка, Менеджер);
+ ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
+
+ ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(ДокументОбъект, Менеджер);
Если ИмяМетаданныхОбъекта = "ОтборРазмещениеТоваров" Тогда
ПараметрыУказанияСерий = ПараметрыУказанияСерий.Отбор;
ИначеЕсли ИмяМетаданныхОбъекта = "РасходныйОрдерНаТовары" Тогда
@@ -72,7 +72,6 @@
КонецЕсли;
ПараметрыУказанияСерий.ИмяПоляПомещение = Неопределено;
-
ПараметрыСканирования.ПараметрыУказанияСерий = Новый ФиксированнаяСтруктура(ПараметрыУказанияСерий);
РезультатОбработкиШтрихкода = ШтрихкодированиеОбщегоНазначенияИСВызовСервера.ОбработатьШтрихкод(
diff --git a/src/CommonModules/МобильныйЭДОКлиент/Ext/Module.bsl b/src/CommonModules/МобильныйЭДОКлиент/Ext/Module.bsl
index d2c029ed2..8f23854a3 100644
--- a/src/CommonModules/МобильныйЭДОКлиент/Ext/Module.bsl
+++ b/src/CommonModules/МобильныйЭДОКлиент/Ext/Module.bsl
@@ -10,6 +10,25 @@
#Область ПрограммныйИнтерфейс
+#Область ОбщиеПроцедурыИФункции
+
+// Проверяет является ли используемый клиент мобильным
+//
+// Возвращаемое значение:
+// Булево - Истина, если клиент работает на мобильном устройстве.
+//
+Функция ЭтоМобильныйКлиент() Экспорт
+
+#Если МобильныйКлиент Тогда
+ Возврат Истина;
+#Иначе
+ Возврат Ложь;
+#КонецЕсли
+
+КонецФункции
+
+#КонецОбласти
+
#Область Подписание
// Подписывает данные, возвращает подпись и добавляет подпись в объект, если указано.
diff --git a/src/CommonModules/МониторПортала1СИТС/Ext/Module.bsl b/src/CommonModules/МониторПортала1СИТС/Ext/Module.bsl
index 871b55bfe..b260385ae 100644
--- a/src/CommonModules/МониторПортала1СИТС/Ext/Module.bsl
+++ b/src/CommonModules/МониторПортала1СИТС/Ext/Module.bsl
@@ -277,7 +277,6 @@
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ВключитьПолучениеУведомленийМонитораПортала");
- Методы.Вставить("ПолучениеУведомленийМонитораПортала", Истина);
Методы.Вставить("ПроверитьНаличиеНовойИнформацииВФоне", Истина);
Методы.Вставить("ПроверитьНаличиеУведомлений", Истина);
@@ -432,13 +431,17 @@
Возврат Неопределено;
КонецЕсли;
- ДанныеСтрока =
- Логин
- + ", "
- + ЗначениеЗаполнено(ДанныеМонитора.programName) + ", "
- + ДанныеМонитора.supportConditionsImplStatus.status + ", "
- + ДанныеМонитора.serviceContractsStatus.status + ", "
- + ДанныеМонитора.ДоступноОбновление;
+ Попытка
+ ДанныеСтрока =
+ Логин
+ + ", "
+ + ЗначениеЗаполнено(ДанныеМонитора.programName) + ", "
+ + ДанныеМонитора.supportConditionsImplStatus.status + ", "
+ + ДанныеМонитора.serviceContractsStatus.status + ", "
+ + ДанныеМонитора.ДоступноОбновление;
+ Исключение
+ ДанныеСтрока = Логин + ",ОшибкаФормированияОтпечаткаДанных";
+ КонецПопытки;;
Хеширование = Новый ХешированиеДанных(ХешФункция.SHA256);
Хеширование.Добавить(ДанныеСтрока);
diff --git a/src/CommonModules/НавигацияПомощниковСВозвратомЭПД/Ext/Module.bsl b/src/CommonModules/НавигацияПомощниковСВозвратомЭПД/Ext/Module.bsl
index ed3bc7a9a..62b7b18a8 100644
--- a/src/CommonModules/НавигацияПомощниковСВозвратомЭПД/Ext/Module.bsl
+++ b/src/CommonModules/НавигацияПомощниковСВозвратомЭПД/Ext/Module.bsl
@@ -61,6 +61,8 @@
СтруктураШага.Вставить("КоличествоВерсий", 1);
СтруктураШага.Вставить("НомерВерсии", 0);
+ СтруктураШага.Вставить("ВысотаДляТекста", 0);
+
Возврат СтруктураШага;
КонецФункции
@@ -248,7 +250,14 @@
Иначе
МассивФорматированныхСтрок.Добавить(Новый ФорматированнаяСтрока("(" + Строка(СтруктураШага.КоличествоВерсий) + ")", ШрифтТекста, ЦветТекста));
КонецЕсли;
- ЭлементФормы.Высота = 3;
+
+ ВысотаДляТекста = 0;
+ Если СтруктураШага.Свойство("ВысотаДляТекста", ВысотаДляТекста) И ВысотаДляТекста > 0 Тогда
+ ЭлементФормы.Высота = ВысотаДляТекста;
+ Иначе
+ ЭлементФормы.Высота = 3;
+ КонецЕсли;
+
КонецЕсли;
ЭлементФормы.Заголовок = Новый ФорматированнаяСтрока(МассивФорматированныхСтрок);
diff --git a/src/CommonModules/НастройкиОтправкиЭДО/Ext/Module.bsl b/src/CommonModules/НастройкиОтправкиЭДО/Ext/Module.bsl
index 856a48d8c..4e86574b5 100644
--- a/src/CommonModules/НастройкиОтправкиЭДО/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиОтправкиЭДО/Ext/Module.bsl
@@ -497,7 +497,10 @@
ПараметрыПриглашения = ПриглашенияЭДОКлиентСервер.КлючПриглашения();
ПараметрыПриглашения.ИдентификаторОрганизации = АктуальнаяСтрокаНастройки.ИдентификаторОтправителя;
ПараметрыПриглашения.ИдентификаторКонтрагента = АктуальнаяСтрокаНастройки.ИдентификаторПолучателя;
- ДанныеПриглашенияТекущейНастройки = ПриглашенияЭДО.ДанныеПриглашенияПоПараметрам(ПараметрыПриглашения);
+ ЗаполнятьПредставлениеКонтрагента = Ложь;
+ ДанныеПриглашенияТекущейНастройки = ПриглашенияЭДО.ДанныеПриглашенияПоПараметрам(
+ ПараметрыПриглашения,
+ ЗаполнятьПредставлениеКонтрагента);
// Подменяем идентификаторы т.к. ТекущиеНастройкиОтправкиЭлектронныхДокументовПоВидам возвращает записанные
// настройки в случае наличия по контрагенту, запланировали пересмотр работы с настройками
Если ДанныеПриглашенияТекущейНастройки.Статус = Перечисления.СтатусыПриглашений.Отклонено Тогда
@@ -1673,4 +1676,11 @@
КонецФункции
-#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ИзменитьФорматВНастройкахОтправкиПоВидуДокументаДляВсехКонтрагентов", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/НастройкиОтправкиЭДОСлужебный/Ext/Module.bsl b/src/CommonModules/НастройкиОтправкиЭДОСлужебный/Ext/Module.bsl
index d3f9f1a10..c307be2f0 100644
--- a/src/CommonModules/НастройкиОтправкиЭДОСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиОтправкиЭДОСлужебный/Ext/Module.bsl
@@ -136,6 +136,7 @@
УстановленныйФорматКорректен = Истина;
ТребуетсяПереносНастроекЗаполненияДополнительныхПолей = Ложь;
ФорматыЭлектронныхДокументов = Неопределено;
+ ИзменитьСпособОбменаЭДОТакскомНаСервис1СЭДО = Ложь;
Если ЕстьНастройкаПоКлючу И ЕстьНастройкаПоВидуДокумента Тогда
ПолучаемаяНастройка = МассивРезультатов[1].Выбрать();
@@ -144,6 +145,10 @@
ОбновляемаяНастройка.ЭтоНастройкаПоДоговору
И Не ПолучаемаяНастройка.ЭтоНастройкаПоДоговору;
+ ИзменитьСпособОбменаЭДОТакскомНаСервис1СЭДО = ПолучаемаяНастройка.СпособОбмена = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском
+ И (УчетныеЗаписиЭДО.УчетнаяЗаписьПереведенаИзТакском(ПолучаемаяНастройка.ИдентификаторОтправителя)
+ Или УчетныеЗаписиЭДО.НаступилаДатаПереводаАбонентовИзТакском());
+
Если НастройкиОтправкиЭДО.ТребуетсяОбновлениеФорматовИСвязейВидовФорматовДляУПД_5_03(ПоддерживаемыеФорматы,
ФорматыЭлектронныхДокументов) Или
НастройкиОтправкиЭДО.ТребуетсяОбновлениеФорматовПоДатеСинхронизации() Тогда
@@ -189,7 +194,7 @@
КонецЦикла;
КонецЕсли;
- Если ТребуетсяОбновитьНастройку Тогда
+ Если ТребуетсяОбновитьНастройку Или ИзменитьСпособОбменаЭДОТакскомНаСервис1СЭДО Тогда
ВидыЭлектронныхДокументов = ЭлектронныеДокументыЭДО.ИспользуемыеВидыДокументовИсходящиеПрикладные();
@@ -198,7 +203,7 @@
Возврат Неопределено;
КонецЕсли;
- ДополнитьНастройкиОтправкиНовымВидомДокумента(КлючНастроекОтправки, ОбновляемаяНастройка.Договор);
+ ДополнитьНастройкиОтправкиНовымВидомДокумента(КлючНастроекОтправки, ОбновляемаяНастройка.Договор, ИзменитьСпособОбменаЭДОТакскомНаСервис1СЭДО);
МассивРезультатов = Запрос.ВыполнитьПакет();
@@ -214,6 +219,9 @@
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ЗаполнитьЗначенияСвойств(Настройка, ВыборкаДетальныеЗаписи);
+ Если ИзменитьСпособОбменаЭДОТакскомНаСервис1СЭДО Тогда
+ Настройка.СпособОбмена = Перечисления.СпособыОбменаЭД.ЧерезСервис1СЭДО;
+ КонецЕсли;
Настройка.ГотовностьКОбмену = УчастникиЭДОГотовыКОбмену(Настройка.ИдентификаторОтправителя,
Настройка.ИдентификаторПолучателя, Настройка.СпособОбмена);
КонецЦикла;
@@ -422,8 +430,9 @@
// Параметры:
// КлючНастроекОтправки - см. НастройкиЭДОКлиентСервер.НовыйКлючНастроекОтправки
// Договор - ОпределяемыйТип.ДоговорСКонтрагентомЭДО
+// ИзменитьСпособОбменаЭДОТакскомНаСервис1СЭДО - Булево - если взведена изменяет способ обмена на ЧерезСервис1СЭДО
//
-Процедура ДополнитьНастройкиОтправкиНовымВидомДокумента(КлючНастроекОтправки, Договор)
+Процедура ДополнитьНастройкиОтправкиНовымВидомДокумента(КлючНастроекОтправки, Договор, ИзменитьСпособОбменаЭДОТакскомНаСервис1СЭДО = Ложь)
ТаблицаНастроек =
РегистрыСведений.НастройкиОтправкиЭлектронныхДокументовПоВидам.СоздатьНастройкиОтправкиДокументов();
@@ -443,6 +452,9 @@
МенеджерЗаписи = РегистрыСведений.НастройкиОтправкиЭлектронныхДокументовПоВидам.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, НастройкаПоВидуДокумента);
+ Если ИзменитьСпособОбменаЭДОТакскомНаСервис1СЭДО Тогда
+ МенеджерЗаписи.СпособОбменаЭД = Перечисления.СпособыОбменаЭД.ЧерезСервис1СЭДО;
+ КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
МенеджерЗаписи.Записать();
УстановитьПривилегированныйРежим(Ложь);
@@ -1403,8 +1415,9 @@
КлючПриглашения = ПриглашенияЭДОКлиентСервер.НовыйКлючПриглашения();
КлючПриглашения.Ключ = ПриглашенияЭДО.КлючПриглашенияПоНатуральнымКлючам(КлючПриглашенияНаИдентификатор);
КлючПриглашения.ИдентификаторОрганизации = ИдентификаторОтправителя;
-
- ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашения(КлючПриглашения);
+
+ ЗаполнятьПредставлениеКонтрагента = Ложь;
+ ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашения(КлючПриглашения, ЗаполнятьПредставлениеКонтрагента);
Если ДанныеПриглашения = Неопределено Тогда
СтатусПриглашения = Неопределено;
Иначе
diff --git a/src/CommonModules/НастройкиПлатежныхСистем/Ext/Module.bsl b/src/CommonModules/НастройкиПлатежныхСистем/Ext/Module.bsl
index e3e93ee08..622029c23 100644
--- a/src/CommonModules/НастройкиПлатежныхСистем/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиПлатежныхСистем/Ext/Module.bsl
@@ -1,11 +1,21 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
+// Подсистема "ИнтернетПоддержкаПользователей.НастройкиПлатежныхСистем".
+// ОбщийМодуль.НастройкиПлатежныхСистем.
+//
+// Серверные процедуры работы с различными платежными системами:
+// - получение статуса операции;
+// - формирование QR-кода.
+//
+////////////////////////////////////////////////////////////////////////////////
+
#Область ПрограммныйИнтерфейс
// Выполняет загрузку статусов операций, по которым было отложено получение результата.
@@ -18,18 +28,29 @@
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - данные обработанных документов по типам платежных систем:
// * Ключ - Строка - платежная система, по которой была выполнена загрузка. Доступные значения: "СБП",
-// "ИнтернетЭквайринг".
+// "ИнтернетЭквайринг", "ПлатежныеСистемы".
// * Значение - Неопределено - указанная подсистема не используется в конфигурации, либо она не указана
// в параметре Подсистемы.
-// - Массив Из ОпределяемыйТип.ДокументОперацииСБП - данные документов, если Ключ = "СБП".
-// - Массив Из ОпределяемыйТип.ДокументОперацииИнтернетЭквайринга - данные документов, если
-// Ключ = "ИнтернетЭквайринг".
-//
+// - Массив Из ОпределяемыйТип.ДокументОперацииСБП - данные обработанных
+// документов, если Ключ = "СБП".
+// - Массив Из ОпределяемыйТип.ДокументОперацииИнтернетЭквайринга - данные обработанных
+// документов, если Ключ = "ИнтернетЭквайринг".
+// - Массив из ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - данные обработанных
+// документов, если Ключ = "ПлатежныеСистемы".
+//
Функция СтатусыОпераций(Знач Подсистемы = "") Экспорт
+ // Проверка входных параметров
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ "НастройкиПлатежныхСистем.СтатусыОпераций",
+ "Подсистемы",
+ Подсистемы,
+ Тип("Строка"));
+
ОбработанныеОперации = Новый Соответствие;
ОбработанныеОперации.Вставить("СБП", Неопределено);
ОбработанныеОперации.Вставить("ИнтернетЭквайринг", Неопределено);
+ ОбработанныеОперации.Вставить("ПлатежныеСистемы", Неопределено);
ВсеПодсистемы = Ложь;
ВыбранныеПодсистемы = СтрРазделить(СокрЛП(Подсистемы), ", ", Ложь);
@@ -47,9 +68,119 @@
МодульСистемаБыстрыхПлатежейСлужебный.СтатусыОпераций());
КонецЕсли;
+
+ Если (ВсеПодсистемы Или ВыбранныеПодсистемы.Найти("ПлатежныеСистемы") <> Неопределено)
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.БазоваяФункциональностьПлатежныхСистем") Тогда
+ МодульПлатежныеСистемыСлужебный = ОбщегоНазначения.ОбщийМодуль("ПлатежныеСистемыСлужебный");
+
+ ОбработанныеОперации.Вставить(
+ "ПлатежныеСистемы",
+ МодульПлатежныеСистемыСлужебный.СтатусыОпераций());
+
+ КонецЕсли;
+
Возврат ОбработанныеОперации;
КонецФункции
+// Формирование изображения идентификатора оплаты (QR-кода).
+//
+// Параметры:
+// ФункциональнаяСсылка - Строка - идентификатор оплаты.
+// Размер - Число - размер QR-кода в пикселях.
+// ПлатежнаяСистема - Строка - платежная система, логотип которой должен быть использован.
+// Допустимые значения: "СистемаБыстрыхПлатежей", "ЯндексПэй".
+// При указании любого другого значения QR-код будет выведен без логотипа.
+// ТипПечати - Число - вариант печати QR-кода. В зависимости от выбранного варианта
+// печати подбирается картинка с логотипом платежной системы.
+// Возможные варианты:
+// 0 - цветной логотип.
+// 1 - монохромный логотип (оттенки серого).
+// 2 - черно-белый логотип.
+// 3 - без логотипа.
+// Особенности вывода изображений для разных платежных систем:
+// для Яндекс Пэй используется одинаковая картинка для типа печати 1 и 2.
+//
+// Возвращаемое значение:
+// ДвоичныеДанные - данные изображения QR-кода.
+//
+Функция ИзображениеQRКода(ФункциональнаяСсылка, Размер, ПлатежнаяСистема, Знач ТипПечати = 0) Экспорт
+
+ // Проверка входных параметров
+ ИмяФункции = "НастройкиПлатежныхСистем.ИзображениеQRКода";
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "ФункциональнаяСсылка",
+ ФункциональнаяСсылка,
+ Тип("Строка"));
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "Размер",
+ Размер,
+ Тип("Число"));
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "ПлатежнаяСистема",
+ ПлатежнаяСистема,
+ Тип("Строка"));
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "ТипПечати",
+ ТипПечати,
+ Тип("Число"));
+
+ ИменаКартинок = Новый Структура("Цветной, Монохромный, Черный");
+
+ Преобразовать = Ложь;
+
+ Если ПлатежнаяСистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП() Тогда
+ ИменаКартинок.Цветной = "ЛоготипСБПЦветной";
+ ИменаКартинок.Монохромный = "ЛоготипСБПМонохромный";
+ ИменаКартинок.Черный = "ЛоготипСБПЧерный";
+ ИначеЕсли ПлатежнаяСистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй() Тогда
+ ИменаКартинок.Цветной = "ЛоготипЯндексПэй";
+ ИменаКартинок.Монохромный = "ЛоготипЯндексПэйМонохромный";
+ ИменаКартинок.Черный = "ЛоготипЯндексПэйМонохромный";
+ Преобразовать = Истина;
+ Иначе
+ ТипПечати = 3;
+ КонецЕсли;
+
+ Логотип = Неопределено;
+ Если ТипПечати = 0 Тогда
+ Логотип = БиблиотекаКартинок[ИменаКартинок.Цветной];
+ ИначеЕсли ТипПечати = 1 Тогда
+ Логотип = БиблиотекаКартинок[ИменаКартинок.Монохромный];
+ ИначеЕсли ТипПечати = 2 Тогда
+ Логотип = БиблиотекаКартинок[ИменаКартинок.Черный];
+ КонецЕсли;
+
+ // Метод ГенерацияШтрихкода.ИзображениеШтрихкода принимает только PNG,
+ // поэтому преобразовываем, если другой формат
+ Если Преобразовать И Логотип <> Неопределено Тогда
+ Логотип = Логотип.Преобразовать(ФорматКартинки.PNG);
+ КонецЕсли;
+
+ ПараметрыГенерации = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
+ ПараметрыГенерации.Ширина = Размер;
+ ПараметрыГенерации.Высота = Размер;
+ ПараметрыГенерации.ТипКода = 16;
+ ПараметрыГенерации.Штрихкод = ФункциональнаяСсылка;
+ ПараметрыГенерации.УровеньКоррекцииQR = 3;
+
+ ПараметрыГенерации.ЛоготипКартинка = ?(Логотип = Неопределено,
+ "",
+ Base64Строка(Логотип.ПолучитьДвоичныеДанные()));
+ ПараметрыГенерации.ЛоготипРазмерПроцентОтШК = ?(Логотип = Неопределено,
+ 0,
+ 33);
+
+ Результат = ГенерацияШтрихкода.ИзображениеШтрихкода(
+ ПараметрыГенерации);
+
+ Возврат Результат.ДвоичныеДанные;
+
+КонецФункции
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/НастройкиПлатежныхСистемВызовСервера/Ext/Module.bsl b/src/CommonModules/НастройкиПлатежныхСистемВызовСервера/Ext/Module.bsl
index b2d37c4fd..ac45cc46e 100644
--- a/src/CommonModules/НастройкиПлатежныхСистемВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиПлатежныхСистемВызовСервера/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -12,6 +12,7 @@
//
// Серверные методы, которые могут вызываться с клиента:
// - установка значения константы ДлительностьОперацииПлатежныхСистем.
+// - параметры оплаты для указанной настройки подключения.
//
////////////////////////////////////////////////////////////////////////////////
@@ -28,4 +29,12 @@
КонецПроцедуры
+// См. НастройкиПлатежныхСистемСлужебный.ПараметрыОплатыПоНастройке.
+//
+Функция ПараметрыОплатыПоНастройке(Знач НастройкаПодключения) Экспорт
+
+ Возврат НастройкиПлатежныхСистемСлужебный.ПараметрыОплатыПоНастройке(НастройкаПодключения);
+
+КонецФункции
+
#КонецОбласти
diff --git a/src/CommonModules/НастройкиПлатежныхСистемКлиент/Ext/Module.bsl b/src/CommonModules/НастройкиПлатежныхСистемКлиент/Ext/Module.bsl
index 8a1f28915..2689e8877 100644
--- a/src/CommonModules/НастройкиПлатежныхСистемКлиент/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиПлатежныхСистемКлиент/Ext/Module.bsl
@@ -24,18 +24,27 @@
// Выполняет открытие формы общего списка настроек подключения к платежным системам.
//
// Параметры:
-// Владелец - ФормаКлиентскогоПриложения - форма которая будет установлена в качестве владельца.
+// Владелец - Произвольный - форма или элемент формы который будет использоваться в качестве
+// владельца открываемой формы.
// ПлатежнаяСистема - Строка - определяет, какие подсистемы должны выводится в списке. Допустимые значения:
-// - <Пустая строка>, "Все" - выводит все внедренные подсистемы;
-// - "СистемаБыстрыхПлатежей" - только Система быстрых платежей;
-// - "ИнтернетЭквайринг" - только Интернет-эквайринг.
-// - "ОзонПэй" - только Озон Пэй.
+// <Пустая строка>, "Все" - выводит все внедренные подсистемы;
+// "СистемаБыстрыхПлатежей" - только Система быстрых платежей;
+// "ИнтернетЭквайринг" - только Интернет-эквайринг.
+// "ОзонПэй" - только Озон Пэй.
+// "ЯндексПэй" - только Яндекс Пэй.
//
Процедура НастройкиПодключения(Владелец, ПлатежнаяСистема = "") Экспорт
+ // Проверка входных параметров
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ "НастройкиПлатежныхСистемКлиент.НастройкиПодключения",
+ "ПлатежнаяСистема",
+ ПлатежнаяСистема,
+ Тип("Строка"));
+
ПараметрыОткрытия = НовыйПараметрыОткрытияСпискаНастроек();
ПараметрыОткрытия.РежимОткрытияОкна = РежимОткрытияОкнаФормы.Независимый;
- ПараметрыОткрытия.Владелец = Владелец;
+ ПараметрыОткрытия.Владелец = Владелец;
ПараметрыОткрытия.Подсистема = ПлатежнаяСистема;
НастройкиПодключенияСлужебный(ПараметрыОткрытия);
@@ -46,13 +55,33 @@
//
// Параметры:
// ПлатежнаяСистема - Строка - платежная система, для которой необходимо выполнить настройку подключения.
-// Может принимать значения "СистемаБыстрыхПлатежей", "ИнтернетЭквайринг", "ОзонПэй".
-// ПараметрыПодключения - см. НовыйПараметрыПодключения.
+// Может принимать значения "СистемаБыстрыхПлатежей", "ИнтернетЭквайринг", "ОзонПэй", "ЯндексПэй".
+// ПараметрыПодключения - Неопределено - использовать параметры по умолчанию.
+// - см. НовыйПараметрыПодключения.
//
Процедура ПодключитьПлатежнуюСистему(ПлатежнаяСистема, ПараметрыПодключения) Экспорт
+ // Проверка входных параметров
+ ИмяМетода = "НастройкиПлатежныхСистемКлиент.ПодключитьПлатежнуюСистему";
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяМетода,
+ "ПлатежнаяСистема",
+ ПлатежнаяСистема,
+ Тип("Строка"));
+
+ ОжидаемыеТипы = Новый Массив;
+ ОжидаемыеТипы.Добавить(Тип("Неопределено"));
+ ОжидаемыеТипы.Добавить(Тип("Структура"));
+ ОжидаемыеТипы.Добавить(Тип("ФиксированнаяСтруктура"));
+
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяМетода,
+ "ПараметрыПодключения",
+ ПараметрыПодключения,
+ ОжидаемыеТипы);
+
Эталон = НовыйПараметрыПодключения();
- Если ТипЗнч(ПараметрыПодключения) <> Неопределено Тогда
+ Если ПараметрыПодключения <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Эталон, ПараметрыПодключения);
КонецЕсли;
@@ -120,7 +149,7 @@
// 3) Для подсистемы "Интернет-эквайринг":
// * НеПредлагатьПодключениеКОнлайнЗаказам - Булево - если Истина, то в мастере подключения не будет шага с
// созданием/привязкой к настройке Онлайн-заказов.
-// 4) Для Озон Пэй:
+// 4) Для Озон Пэй, Яндекс Пэй:
// * ОтображатьОписаниеСервиса - Булево - Признак отображения страницы описания сервиса;
// * НастройкаДляКопирования - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка, будет создана
// копированием существующей.
@@ -212,7 +241,7 @@
// Структура - При обработке выбора настройки:
// * ИмяПодсистемы - Строка - имя подсистемы, к которой относится выбранная строка;
// * Отказ - Булево - Если Истина, то выбор текущего значения запрещен;
-// * СообщениеОбОшибке - Строка - информация о причине запреты выбора указанного значения. Если заполнена, то
+// * СообщениеОбОшибке - Строка - информация о причине запрета выбора указанного значения. Если заполнена, то
// пользователю выводится текст ошибки. В противном случае, если Отказ = Истина, действие просто отменяется без
// информирования пользователя;
// * ИмяОткрываемойФормы - Строка - полное имя формы, которая должна быть открыта, если нет ошибок;
@@ -253,7 +282,7 @@
// Структура - При обработке выбора настройки:
// * ИмяПодсистемы - Строка - имя подсистемы, к которой относится выбранная строка;
// * Отказ - Булево - если Истина, то выбор текущего значения запрещен;
-// * СообщениеОбОшибке - Строка - информация о причине запреты выбора указанного значения. Если заполнена, то
+// * СообщениеОбОшибке - Строка - информация о причине запрета выбора указанного значения. Если заполнена, то
// пользователю выводится текст ошибки. В противном случае, если Отказ = Истина, действие просто отменяется без
// информирования пользователя;
// * ТекущиеДанные - Неопределено, Произвольный - выбранная строка или структура, с ее описанием;
@@ -265,12 +294,12 @@
ТекущиеДанные = Неопределено) Экспорт
Результат = Новый Структура;
- Результат.Вставить("ИмяПодсистемы", "");
- Результат.Вставить("Отказ", Ложь);
- Результат.Вставить("СообщениеОбОшибке", "");
- Результат.Вставить("ТекущиеДанные", ТекущиеДанные);
- Результат.Вставить("РезультатВыбора", Неопределено);
- Результат.Вставить("ИмяФормы", "");
+ Результат.Вставить("ИмяПодсистемы", "");
+ Результат.Вставить("Отказ", Ложь);
+ Результат.Вставить("СообщениеОбОшибке", "");
+ Результат.Вставить("ТекущиеДанные", ТекущиеДанные);
+ Результат.Вставить("РезультатВыбора", Неопределено);
+ Результат.Вставить("ИмяФормы", "");
Возврат Результат;
@@ -456,12 +485,14 @@
// * Уникальность - Неопределено, Произвольный - ключ уникальности формы;
// * ОписаниеОповещения - Неопределено, ОписаниеОповещения - описание процедуры, которая будет вызвана при
// закрытии формы;
-// * РежимОткрытияОкна - РежимОткрытияОкнаФормы - указывает режим открытия окна формы клиентского приложения;
+// * РежимОткрытияОкна - РежимОткрытияОкнаФормы - указывает режим
+// открытия окна формы клиентского приложения;
// * Подсистема - Строка - определяет, какие подсистемы должны выводится в списке. Допустимые значения:
-// - <Пустая строка>, "Все" - выводит все внедренные подсистемы;
-// - "СистемаБыстрыхПлатежей" - только Система быстрых платежей;
-// - "ИнтернетЭквайринг" - только Интернет-эквайринг;
-// - "ОзонПэй" - только Ozon Pay.
+// <Пустая строка>, "Все" - выводит все внедренные подсистемы;
+// "СистемаБыстрыхПлатежей" - только Система быстрых платежей;
+// "ИнтернетЭквайринг" - только Интернет-эквайринг;
+// "ОзонПэй" - только Ozon Pay.
+// "ЯндексПэй" - только Яндекс Пэй
// * ПараметрыПодсистемы - Неопределено, Произвольный - произвольные параметры, которые могут использоваться
// при работе с настройками подключения к подсистеме;
// * ВыборГруппИЭлементов - ИспользованиеГруппИЭлементов - возможность выбора групп и элементов.
diff --git a/src/CommonModules/НастройкиПлатежныхСистемКлиентСервер/Ext/Module.bsl b/src/CommonModules/НастройкиПлатежныхСистемКлиентСервер/Ext/Module.bsl
index bf3698e13..c425ec590 100644
--- a/src/CommonModules/НастройкиПлатежныхСистемКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиПлатежныхСистемКлиентСервер/Ext/Module.bsl
@@ -189,12 +189,23 @@
// Возвращаемое значение:
// Строка - имя подсистемы.
//
-Функция ИмяПодсистемыЭквайринг() Экспорт
+Функция ИмяПодсистемыИнтернетЭквайринг() Экспорт
Возврат "ИнтернетЭквайринг";
КонецФункции
+// Возвращает имя подсистемы "ПлатежныеСистемы"
+//
+// Возвращаемое значение:
+// Строка - имя подсистемы.
+//
+Функция ИмяПодсистемыПлатежныеСистемы() Экспорт
+
+ Возврат "ПлатежныеСистемы";
+
+КонецФункции
+
// Возвращает имя подсистемы "ОзонПэй"
//
// Возвращаемое значение:
@@ -206,6 +217,17 @@
КонецФункции
+// Возвращает имя подсистемы "ЯндексПэй"
+//
+// Возвращаемое значение:
+// Строка - имя подсистемы.
+//
+Функция ИмяПодсистемыЯндексПэй() Экспорт
+
+ Возврат "ЯндексПэй";
+
+КонецФункции
+
// Формирует URL страницы подключения к Системе быстрых платежей.
//
// Параметры:
diff --git a/src/CommonModules/НастройкиПлатежныхСистемКлиентСобытия/Ext/Module.bsl b/src/CommonModules/НастройкиПлатежныхСистемКлиентСобытия/Ext/Module.bsl
index da701d81c..ca0389a8f 100644
--- a/src/CommonModules/НастройкиПлатежныхСистемКлиентСобытия/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиПлатежныхСистемКлиентСобытия/Ext/Module.bsl
@@ -39,12 +39,13 @@
МодульСистемаБыстрыхПлатежейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СистемаБыстрыхПлатежейКлиент");
МодульСистемаБыстрыхПлатежейКлиент.ПриОбработкеВыбораНастройки(ПараметрыВыбора);
- ИначеЕсли ПараметрыВыбора.ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг() Тогда
+ ИначеЕсли ПараметрыВыбора.ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг() Тогда
МодульИнтернетЭквайрингКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетЭквайрингКлиент");
МодульИнтернетЭквайрингКлиент.ПриОбработкеВыбораНастройки(ПараметрыВыбора);
- ИначеЕсли ПараметрыВыбора.ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй() Тогда
+ ИначеЕсли ПараметрыВыбора.ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй()
+ Или ПараметрыВыбора.ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй() Тогда
МодульПлатежныеСистемыКлиентСобытия = ОбщегоНазначенияКлиент.ОбщийМодуль("ПлатежныеСистемыКлиентСобытия");
МодульПлатежныеСистемыКлиентСобытия.ПриОбработкеВыбораНастройки(ПараметрыВыбора);
@@ -90,12 +91,13 @@
МодульСистемаБыстрыхПлатежейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СистемаБыстрыхПлатежейКлиент");
МодульСистемаБыстрыхПлатежейКлиент.ПриОбработкеВыбораНастройкиДляИзменения(ПараметрыВыбора);
- ИначеЕсли ПараметрыВыбора.ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг() Тогда
+ ИначеЕсли ПараметрыВыбора.ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг() Тогда
МодульИнтернетЭквайрингКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетЭквайрингКлиент");
МодульИнтернетЭквайрингКлиент.ПриОбработкеВыбораНастройкиДляИзменения(ПараметрыВыбора);
- ИначеЕсли ПараметрыВыбора.ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй() Тогда
+ ИначеЕсли ПараметрыВыбора.ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй()
+ Или ПараметрыВыбора.ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй() Тогда
МодульПлатежныеСистемыКлиентСобытия = ОбщегоНазначенияКлиент.ОбщийМодуль("ПлатежныеСистемыКлиентСобытия");
МодульПлатежныеСистемыКлиентСобытия.ПриОбработкеВыбораНастройкиДляИзменения(ПараметрыВыбора);
@@ -159,11 +161,19 @@
ТекущиеДанные.Ссылка,
Форма);
- ИначеЕсли Команда.Имя = "ОткрытьКассовыеСсылки"
- И ТекущаяПодсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП() Тогда
+ ИначеЕсли Команда.Имя = "ОткрытьКассовыеСсылки" Тогда
- МодульСистемаБыстрыхПлатежейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СистемаБыстрыхПлатежейКлиент");
- МодульСистемаБыстрыхПлатежейКлиент.ОткрытьКассовыеСсылкиКоманда(Форма.Элементы.Список.ТекущиеДанные);
+ Если ТекущаяПодсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП() Тогда
+
+ МодульСистемаБыстрыхПлатежейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СистемаБыстрыхПлатежейКлиент");
+ МодульСистемаБыстрыхПлатежейКлиент.ОткрытьКассовыеСсылкиКоманда(Форма.Элементы.Список.ТекущиеДанные);
+
+ ИначеЕсли ТекущаяПодсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй() Тогда
+
+ МодульЯндексПэйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ЯндексПэйКлиент");
+ МодульЯндексПэйКлиент.ОткрытьКассовыеСсылки(Форма.Элементы.Список.ТекущиеДанные);
+
+ КонецЕсли;
КонецЕсли;
@@ -191,7 +201,7 @@
ТекущиеДанные,
ОписаниеОповещения);
- ИначеЕсли ТекущиеДанные.Подсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг() Тогда
+ ИначеЕсли ТекущиеДанные.Подсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг() Тогда
МодульИнтернетЭквайрингКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетЭквайрингКлиент");
МодульИнтернетЭквайрингКлиент.СкопироватьНастройку(
@@ -199,7 +209,8 @@
ОписаниеОповещения,
НеПредлагатьПодключениеКОнлайнЗаказам);
- ИначеЕсли ТекущиеДанные.Подсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй() Тогда
+ ИначеЕсли ТекущиеДанные.Подсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй()
+ Или ТекущиеДанные.Подсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй() Тогда
МодульНастройкиПлатежныхСистемКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("НастройкиПлатежныхСистемКлиент");
@@ -285,10 +296,13 @@
НастройкиПодключения,
ПараметрыПодключения.ОписаниеОповещения);
- ИначеЕсли ПлатежнаяСистема = "ОзонПэй" Тогда
+ ИначеЕсли ПлатежнаяСистема = "ОзонПэй"
+ Или ПлатежнаяСистема = "ЯндексПэй" Тогда
+
+ ИмяПлатежнойСистемы = "Перечисление.ПлатежныеСервисы." + ПлатежнаяСистема;
НастройкиПодключения = Новый Структура;
- ИмяПлатежнойСистемы = "Перечисление.ПлатежныеСервисы.ОзонПэй";
+
НастройкиПодключения.Вставить(
"ПлатежнаяСистема",
ПредопределенноеЗначение(ИмяПлатежнойСистемы));
diff --git a/src/CommonModules/НастройкиПлатежныхСистемПовтИсп/Ext/Module.bsl b/src/CommonModules/НастройкиПлатежныхСистемПовтИсп/Ext/Module.bsl
index 06a83f1d2..5d5a7c3e3 100644
--- a/src/CommonModules/НастройкиПлатежныхСистемПовтИсп/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиПлатежныхСистемПовтИсп/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -11,7 +11,8 @@
// ОбщийМодуль.НастройкиПлатежныхСистемПовтИсп.
//
// Повторно используемые серверные процедуры настройки работы с платежными системами:
-// - инициация параметров подключения.
+// - инициация параметров подключения
+// - описание платежных сервисов.
//
////////////////////////////////////////////////////////////////////////////////
diff --git a/src/CommonModules/НастройкиПлатежныхСистемСлужебный/Ext/Module.bsl b/src/CommonModules/НастройкиПлатежныхСистемСлужебный/Ext/Module.bsl
index 1ed95da0b..7465e81ff 100644
--- a/src/CommonModules/НастройкиПлатежныхСистемСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиПлатежныхСистемСлужебный/Ext/Module.bsl
@@ -394,6 +394,11 @@
ВнедренныеСистемыПодсказка.Добавить("Ozon Pay");
КонецЕсли;
+ Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+ ВнедренныеСистемы.Добавить("Яндекс Пэй");
+ ВнедренныеСистемыПодсказка.Добавить("Яндекс Пэй");
+ КонецЕсли;
+
КонецЕсли;
Если ВнедренныеСистемы.Количество() > 0 Тогда
@@ -480,6 +485,22 @@
// Если настройки есть, то вызывается создание регламентного задания для
// автоматического получения статусов операций.
//
+// Параметры:
+// Параметры - Структура - параметры обработки обновления:
+// * ОбработкаЗавершена - Булево - для того, чтобы обработчик был вызван повторно для обработки
+// следующей порции данных, следует записать в него значение Ложь.
+// * ВерсияПодсистемыНаНачалоОбновления - Строка - номер версии подсистемы, к которой относится
+// обработчик обновления, на момент начала обновления приложения. Может быть полезно для
+// ветвления логики выполнения обработчика в зависимости от версии, с которой выполняется обновление приложения.
+// * ПрогрессВыполнения - Структура - необходимо заполнять для отображения прогресса обработки данных:
+// ** ВсегоОбъектов - Число - общее количество объектов, которое необходимо обработать.
+// ** ОбработаноОбъектов - Число - сколько объектов уже обработано.
+// * ОбновляемыеДанные - Структура - если у обработчика обновления установлено свойство Многопоточный
+// в значение Истина, то в этом свойстве в обработчик передается порция обновляемых данных,
+// которая должна быть обработана в текущем потоке. Получать таблицу значений обновляемых данных
+// следует с помощью вызова функции
+// ОбновлениеИнформационнойБазы.ДанныеДляОбновленияВМногопоточномОбработчике, а не напрямую.
+//
Процедура ПроверитьЗаданиеЗагрузкаСтатусовОпераций(Параметры) Экспорт
УстановитьПривилегированныйРежим(Истина);
@@ -850,14 +871,14 @@
// Возвращаемое значение:
// Структура - результат выполнения операции в сервисе:
// * СтатусОперации - Строка - текущее состояние операции оплаты. Возможные значения:
-// - "Выполняется" - подтверждение оплаты не получено;
-// - "Отменена" - оплата по ранее сформированной ссылке невозможна;
-// - "Выполнена" - участник Интернет-эквайринга подтвердил оплату;
-// - "Отклонена" - оплата по ранее сформированной ссылке невозможна;
-// - "Ошибка" - неизвестный статус операции.
+// "Выполняется" - подтверждение оплаты не получено;
+// "Отменена" - оплата по ранее сформированной ссылке невозможна;
+// "Выполнена" - участник Интернет-эквайринга подтвердил оплату;
+// "Отклонена" - оплата по ранее сформированной ссылке невозможна;
+// "Ошибка" - неизвестный статус операции.
// * КодОшибки - Строка - строковый код возникшей ошибки, который может быть обработан вызывающим методом:
-// - <Пустая строка> - статус успешно определен;
-// - "НеизвестныйСтатус" - неизвестный идентификатор статуса;
+// <Пустая строка> - статус успешно определен;
+// "НеизвестныйСтатус" - неизвестный идентификатор статуса;
// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
//
Функция ПолучитьСтатусОперацииПоИдентификатору(
@@ -1067,10 +1088,12 @@
//
// Параметры:
// ИмяПодсистемы - Строка - Имя подсистемы, для которой необходимо вывести список. Может принимать значения:
-// - "Все", ПустаяСтрока - вывод всех подсистем.
-// - "СБП" - для подсистемы "Система быстрых платежей".
-// - "Эквайринг" - для подсистемы "Интернет-эквайринг".
-// - "ОзонПэй" - для платежной системы Ozon Pay
+// "Все", ПустаяСтрока - вывод всех подсистем.
+// "СБП" - для подсистемы "Система быстрых платежей".
+// "ИнтернетЭквайринг" - для подсистемы "Интернет-эквайринг".
+// "ОзонПэй" - для платежной системы Ozon Pay.
+// "ЯндексПэй" - для платежной системы Яндекс Пэй.
+// "ПлатежныеСистемы" - Ozon Pay и Яндекс Пэй.
// ВидФормы - Строка - вид открываемой формы.
// Параметры - Структура - исходные параметры открытия формы.
//
@@ -1166,7 +1189,7 @@
Константы.НастройкиОтображенияКомандПлатежныхСистем.Установить(
Новый ХранилищеЗначения(
Новый ФиксированноеСоответствие(ТекущиеНастройки)));
-
+
КонецПроцедуры
// Отключает отображение команд подсистемы.
@@ -1174,7 +1197,7 @@
// Параметры:
// ИдентификаторПодсистемы - Строка - определяет идентификатор подсистемы для которой выполняется отключение.
// Допустимые значения:
-// - "СистемаБыстрыхПлатежей" - Система быстрых платежей.
+// "СистемаБыстрыхПлатежей" - Система быстрых платежей.
//
Процедура ОтключитьКомандыПодсистемы(ИдентификаторПодсистемы) Экспорт
@@ -1221,6 +1244,9 @@
Результат.Вставить(
НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП(),
Новый Соответствие);
+ Результат.Вставить(
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй(),
+ Новый Соответствие);
НастройкиОтображения = Константы.НастройкиОтображенияКомандПлатежныхСистем.Получить().Получить();
@@ -1263,7 +1289,10 @@
// для отложенных операций.
//
// Параметры:
-// ПлатежнаяСистема - Строка - платежная система. Доступные значения: "СБП", "ИнтернетЭквайринг"
+// ПлатежнаяСистема - Строка - платежная система. Доступные значения определяются методами
+// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП(),
+// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг(),
+// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыПлатежныеСистемы()
// Оплата - Булево - признак операции оплаты.
//
// Возвращаемое значение:
@@ -1271,8 +1300,9 @@
//
Функция МаксимальноеКоличествоПопытокЗапросаСтатуса(ПлатежнаяСистема, Оплата) Экспорт
- Если ПлатежнаяСистема = "СБП"
- Или ПлатежнаяСистема = "ИнтернетЭквайринг" Тогда
+ Если ПлатежнаяСистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП()
+ Или ПлатежнаяСистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг()
+ Или ПлатежнаяСистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыПлатежныеСистемы() Тогда
Если Оплата Тогда
Возврат 400;
Иначе
@@ -1298,10 +1328,10 @@
// * НакопленноеЗначениеВремени - Дата - общее накопленное время за длительную операцию;
// * КоличествоИтераций - Число - текущее количество выполненных запросов.
//
-Функция НовыйИтеративныйВызовОперации(ДлительностьОперации = 0) Экспорт
+Функция НовыйИтеративныйВызовОперации(Знач ДлительностьОперации = 0) Экспорт
ДлительностьОперации = ?(
- ДлительностьОперации = 0,
+ ДлительностьОперации = 0 Или ДлительностьОперации = Неопределено,
ДлительностьОперацииПлатежныхСистем(),
ДлительностьОперации);
@@ -1339,7 +1369,7 @@
КонецЕсли;
// Прервать вызовы в случае превышения длительности.
- Если НастройкиВызова.Длительность > 1
+ Если НастройкиВызова.Длительность > 2
И (НастройкиВызова.НачалоОперации + НастройкиВызова.Длительность) < ТекущаяДатаСеанса() Тогда
Возврат Ложь;
КонецЕсли;
@@ -1695,11 +1725,28 @@
КонецПроцедуры
+// Проверяет значение длительности операции платежных систем.
+// Если значение равно 0, то устанавливает значение по умолчанию - 60 секунд.
+//
+// Параметры:
+// Параметры - Произвольный - для подсистемы ОбновлениеВерсииИБ.
+//
+Процедура УстановитьДлительностьОперацийПоУмолчанию(Параметры = Неопределено) Экспорт
+
+ УстановитьПривилегированныйРежим(Истина);
+ ТекущееЗначение = ДлительностьОперацииПлатежныхСистем();
+ Если ТекущееЗначение = 0 Тогда
+ УстановитьДлительностьОперации(60);
+ КонецЕсли;
+ УстановитьПривилегированныйРежим(Ложь);
+
+КонецПроцедуры
+
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
//
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
- Методы.Вставить("ЗагрузкаСтатусовОперацийПлатежныхСистем", Истина);
+ Методы.Вставить("УстановитьДлительностьОперацийПоУмолчанию");
КонецПроцедуры
@@ -1903,7 +1950,7 @@
Функция ЕстьНастройкиПодключения()
ЕстьСБП = Ложь;
- ЕстьЭквайринг = Ложь;
+ ЕстьИнтернетЭквайринг = Ложь;
ЕстьПлатежныеСистемы = Ложь;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.СистемаБыстрыхПлатежей.БазоваяФункциональностьСБП") Тогда
@@ -1915,7 +1962,7 @@
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ИнтернетЭквайринг") Тогда
МодульНастройкиПодключенияКИнтернетЭквайрингу =
ОбщегоНазначения.ОбщийМодуль("Справочники.НастройкиПодключенияКИнтернетЭквайрингу");
- ЕстьЭквайринг = МодульНастройкиПодключенияКИнтернетЭквайрингу.ЕстьНастройкиПодключения();
+ ЕстьИнтернетЭквайринг = МодульНастройкиПодключенияКИнтернетЭквайрингу.ЕстьНастройкиПодключения();
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.БазоваяФункциональностьПлатежныхСистем") Тогда
@@ -1924,7 +1971,35 @@
ЕстьПлатежныеСистемы = МодульНастройкиПодключенияКПлатежнымСистемам.ЕстьНастройкиПодключения();
КонецЕсли;
- Возврат ЕстьСБП Или ЕстьЭквайринг Или ЕстьПлатежныеСистемы;
+ Возврат ЕстьСБП Или ЕстьИнтернетЭквайринг Или ЕстьПлатежныеСистемы;
+
+КонецФункции
+
+// Возвращает параметры оплаты переданного по ссылке элемента справочника
+//
+// Параметры:
+// НастройкаПодключения - Произвольный - ссылка на элемент справочника
+// для которого нужно получить параметры оплаты.
+//
+// Возвращаемое значение:
+// Соответствие Из КлючИЗначение - содержит имена и значения полей регистра сведений,
+// хранящего данные о настройках оплат.
+// Неопределено - если не удалось найти параметры оплаты
+//
+Функция ПараметрыОплатыПоНастройке(НастройкаПодключения) Экспорт
+
+ Если Не ЗначениеЗаполнено(НастройкаПодключения) Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.БазоваяФункциональностьПлатежныхСистем") Тогда
+ МодульПлатежныеСистемыСлужебный = ОбщегоНазначения.ОбщийМодуль("ПлатежныеСистемыСлужебный");
+ Если МодульПлатежныеСистемыСлужебный.ЭтоНастройкаПодключения(НастройкаПодключения) Тогда
+ Возврат МодульПлатежныеСистемыСлужебный.ПараметрыОплатыПоНастройке(НастройкаПодключения);
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат Неопределено;
КонецФункции
diff --git a/src/CommonModules/НастройкиПлатежныхСистемСлужебныйКлиент/Ext/Module.bsl b/src/CommonModules/НастройкиПлатежныхСистемСлужебныйКлиент/Ext/Module.bsl
index db42c1790..4468f9bb5 100644
--- a/src/CommonModules/НастройкиПлатежныхСистемСлужебныйКлиент/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиПлатежныхСистемСлужебныйКлиент/Ext/Module.bsl
@@ -11,7 +11,7 @@
// ОбщийМодуль.НастройкиПлатежныхСистемКлиент.
//
// Клиентские методы работы с платежными системами:
-// - создание новой настройки;
+// - создание новой настройки.
//
////////////////////////////////////////////////////////////////////////////////
diff --git a/src/CommonModules/НастройкиПлатежныхСистемСобытия/Ext/Module.bsl b/src/CommonModules/НастройкиПлатежныхСистемСобытия/Ext/Module.bsl
index 7325d2192..a950160ca 100644
--- a/src/CommonModules/НастройкиПлатежныхСистемСобытия/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиПлатежныхСистемСобытия/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -14,7 +14,8 @@
// - создание формы;
// - подготовка параметров формы общего списка настроек подключения;
// - формирование дерева по отдельной подсистеме;
-// - добавление и обработка нажатия команд на форме.
+// - добавление и обработка нажатия команд на форме;
+// - заполнение разрешений на доступ к внешним ресурсам и хостов сервисов.
//
////////////////////////////////////////////////////////////////////////////////
@@ -42,6 +43,17 @@
КонецЕсли;
+ Обработчик = Обработчики.Добавить();
+ Обработчик.Версия = "2.8.4.31";
+ Обработчик.Процедура = "НастройкиПлатежныхСистемСлужебный.УстановитьДлительностьОперацийПоУмолчанию";
+ Обработчик.ОбщиеДанные = Ложь;
+ Обработчик.НачальноеЗаполнение = Истина;
+ Обработчик.РежимВыполнения = "Отложенно";
+ Обработчик.Идентификатор = Новый УникальныйИдентификатор("500cd656-8a98-4a47-baa6-d0f765dd83da");
+ Обработчик.Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru='%1. Устанавливает длительность операций платежных систем в значение по умолчанию (60 сек). Не влияет на доступность какого-либо функционала.'"),
+ НастройкиПлатежныхСистемСлужебный.ИмяСобытияЖурналаРегистрации());
+
КонецПроцедуры
// Вызывается из процедуры ДобавитьКомандыПечати модуля менеджера объектов
@@ -100,7 +112,7 @@
Элементы = Форма.Элементы;
ИмяПодсистемыСБП = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП();
- ИмяПодсистемыЭквайринг = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг();
+ ИмяПодсистемыИнтернетЭквайринг = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг();
ОписаниеПлатежныхСистем = НастройкиПлатежныхСистемПовтИсп.ОписаниеПлатежныхСервисов();
// СтандартныеПодсистемы.ПодключаемыеКоманды
@@ -126,9 +138,10 @@
КонецЕсли;
ИначеЕсли Параметры.Подсистема = ИмяПодсистемыСБП Тогда
ТипыДанных = "СправочникСсылка.НастройкиПодключенияКСистемеБыстрыхПлатежей";
- ИначеЕсли Параметры.Подсистема = ИмяПодсистемыЭквайринг Тогда
+ ИначеЕсли Параметры.Подсистема = ИмяПодсистемыИнтернетЭквайринг Тогда
ТипыДанных = "СправочникСсылка.НастройкиПодключенияКИнтернетЭквайрингу";
- ИначеЕсли ОписаниеПлатежныхСистем.Получить(Параметры.Подсистема) <> Неопределено Тогда
+ ИначеЕсли Параметры.Подсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыПлатежныеСистемы()
+ Или ОписаниеПлатежныхСистем.Получить(Параметры.Подсистема) <> Неопределено Тогда
ТипыДанных = "СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам";
КонецЕсли;
@@ -151,7 +164,7 @@
Форма.Заголовок = НастройкиПлатежныхСистемСлужебный.ПредставлениеСписка(
"Справочник.НастройкиПодключенияКСистемеБыстрыхПлатежей");
- ИначеЕсли Параметры.Подсистема = ИмяПодсистемыЭквайринг Тогда
+ ИначеЕсли Параметры.Подсистема = ИмяПодсистемыИнтернетЭквайринг Тогда
Форма.Заголовок = НастройкиПлатежныхСистемСлужебный.ПредставлениеСписка(
"Справочник.НастройкиПодключенияКИнтернетЭквайрингу");
@@ -186,7 +199,7 @@
МодульСистемаБыстрыхПлатежейСлужебный = ОбщегоНазначения.ОбщийМодуль("СистемаБыстрыхПлатежейСлужебный");
МодульСистемаБыстрыхПлатежейСлужебный.ПриФормированииДереваПоПодсистеме(Дерево, ПараметрыДерева);
- ИначеЕсли ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг() Тогда
+ ИначеЕсли ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг() Тогда
МодульИнтернетЭквайрингСлужебный = ОбщегоНазначения.ОбщийМодуль("ИнтернетЭквайрингСлужебный");
МодульИнтернетЭквайрингСлужебный.ПриФормированииДереваПоПодсистеме(Дерево, ПараметрыДерева);
@@ -218,17 +231,20 @@
//
// Параметры:
// ИмяПодсистемы - Строка - имя подсистемы, для которой необходимо определить номер картинки.
-// Доступные значения определяются методами ИмяПодсистемыСБП(), ИмяПодсистемыЭквайринг(), ИмяПодсистемыОзонПэй().
+// Доступные значения определяются методами ИмяПодсистемыСБП(), ИмяПодсистемыИнтернетЭквайринг(), ИмяПодсистемыОзонПэй(),
+// ИмяПодсистемыЯндексПэй().
// НомерКартинки - Число - номер картинки в коллекции.
//
Процедура ПриОпределенииНомераКартинкиПодсистемы(ИмяПодсистемы, НомерКартинки) Экспорт
Если ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП() Тогда
НомерКартинки = 4;
- ИначеЕсли ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг() Тогда
+ ИначеЕсли ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг() Тогда
НомерКартинки = 5;
ИначеЕсли ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй() Тогда
НомерКартинки = 6;
+ ИначеЕсли ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй() Тогда
+ НомерКартинки = 7;
КонецЕсли;
КонецПроцедуры
@@ -266,8 +282,9 @@
Параметры = Форма.Параметры;
ВидимостьПодсистемВСписке = Новый Соответствие;
- ДоступностьНастроек = Новый Соответствие;
- ВидимостьКассовыхСсылок = Ложь;
+ ДоступностьНастроек = Новый Соответствие;
+ ДоступностьКассовыхСсылок = Новый Соответствие;
+ ВидимостьКассовыхСсылок = Ложь;
ВидимостьПоУмолчанию = Параметры.Подсистема = "Все";
@@ -280,28 +297,35 @@
ПараметрыПроверки.Добавить(
Новый Структура(
"ИмяПодсистемы, ИмяПодсистемыПолное",
- НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг(),
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг(),
"ИнтернетПоддержкаПользователей.ИнтернетЭквайринг"));
ПараметрыПодсистем = НастройкиПлатежныхСистемПовтИсп.ОписаниеПлатежныхСервисов();
+ ПодсистемыПлатежныеСистемы = Новый Массив;
Для Каждого КлючЗначение Из ПараметрыПодсистем Цикл
ПараметрыПроверки.Добавить(
Новый Структура(
"ИмяПодсистемы, ИмяПодсистемыПолное",
КлючЗначение.Ключ,
КлючЗначение.Значение.Подсистема));
+ ПодсистемыПлатежныеСистемы.Добавить(КлючЗначение.Ключ);
КонецЦикла;
-
+
+ ИмяПодсистемыПлатежныеСистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыПлатежныеСистемы();
+
Для Каждого ОписаниеПодсистемы Из ПараметрыПроверки Цикл
ТекущаяПодсистема = ОписаниеПодсистемы.ИмяПодсистемы;
- ВидимостьТекущей = Ложь;
+ ВидимостьТекущей = Ложь;
ДоступностьТекущей = Ложь;
+ ДоступностьКассовыхСсылокТекущий = Ложь;
Если ОбщегоНазначения.ПодсистемаСуществует(ОписаниеПодсистемы.ИмяПодсистемыПолное) Тогда
ВидимостьТекущей = ВидимостьПоУмолчанию;
Если Параметры.Подсистема = ТекущаяПодсистема Тогда
ВидимостьТекущей = Истина;
+ ИначеЕсли Параметры.Подсистема = ИмяПодсистемыПлатежныеСистемы Тогда
+ ВидимостьТекущей = ПодсистемыПлатежныеСистемы.Найти(ТекущаяПодсистема) <> Неопределено;
КонецЕсли;
Если ТекущаяПодсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП() Тогда
@@ -310,9 +334,9 @@
МодульСистемаБыстрыхПлатежейСобытия.ПриПодготовкеПараметровФормыСпискаНастроек(
ВидимостьТекущей,
ДоступностьТекущей,
- ВидимостьКассовыхСсылок);
+ ДоступностьКассовыхСсылокТекущий);
- ИначеЕсли ТекущаяПодсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг() Тогда
+ ИначеЕсли ТекущаяПодсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг() Тогда
// Интернет-эквайринг
МодульИнтернетЭквайрингСобытия = ОбщегоНазначения.ОбщийМодуль("ИнтернетЭквайрингСобытия");
МодульИнтернетЭквайрингСобытия.ПриПодготовкеПараметровФормыСпискаНастроек(
@@ -320,24 +344,38 @@
ДоступностьТекущей);
ИначеЕсли ТекущаяПодсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй() Тогда
- // Озон пэй
+ // Озон Пэй
МодульОзонПэйСобытия = ОбщегоНазначения.ОбщийМодуль("ОзонПэйСобытия");
МодульОзонПэйСобытия.ПриПодготовкеПараметровФормыСпискаНастроек(
ВидимостьТекущей,
ДоступностьТекущей);
+ ИначеЕсли ТекущаяПодсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй() Тогда
+ // Яндекс Пэй
+ МодульЯндексПэйСобытия = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСобытия");
+ МодульЯндексПэйСобытия.ПриПодготовкеПараметровФормыСпискаНастроек(
+ ВидимостьТекущей,
+ ДоступностьТекущей,
+ ДоступностьКассовыхСсылокТекущий);
+
КонецЕсли;
КонецЕсли;
ВидимостьПодсистемВСписке.Вставить(ТекущаяПодсистема, ВидимостьТекущей);
ДоступностьНастроек.Вставить(ТекущаяПодсистема, ДоступностьТекущей);
+ ДоступностьКассовыхСсылок.Вставить(ТекущаяПодсистема, ДоступностьКассовыхСсылокТекущий);
+
+ Если ДоступностьКассовыхСсылокТекущий Тогда
+ ВидимостьКассовыхСсылок = Истина;
+ КонецЕсли;
КонецЦикла;
// Добавляем информацию о подсистемах, которые не были интегрированы в конфигурацию
ИменаПлатежныхСистем = Новый Массив;
ИменаПлатежныхСистем.Добавить(НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй());
+ ИменаПлатежныхСистем.Добавить(НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй());
Для Каждого ИмяПодсистемы Из ИменаПлатежныхСистем Цикл
Если ВидимостьПодсистемВСписке.Получить(ИмяПодсистемы) = Неопределено Тогда
@@ -348,13 +386,14 @@
КонецЕсли;
КонецЦикла;
- Форма.КешПараметров.Вставить("ВсеИменаПодсистем", Новый Массив);
- Форма.КешПараметров.Вставить("ДоступностьКоманд", Новый Соответствие);
+ Форма.КешПараметров.Вставить("ВсеИменаПодсистем", Новый Массив);
+ Форма.КешПараметров.Вставить("ДоступностьКоманд", Новый Соответствие);
Форма.КешПараметров.Вставить("ВидимостьПодсистемВСписке", ВидимостьПодсистемВСписке);
- Форма.КешПараметров.Вставить("ДоступностьНастроек", ДоступностьНастроек);
- Форма.КешПараметров.Вставить("ВидимостьКассовыхСсылок", ВидимостьКассовыхСсылок);
- Форма.КешПараметров.Вставить("ПодсистемыКнопкиСоздать", Новый Соответствие);
- Форма.КешПараметров.Вставить("ОбщиеКоманды", Новый Массив);
+ Форма.КешПараметров.Вставить("ДоступностьНастроек", ДоступностьНастроек);
+ Форма.КешПараметров.Вставить("ДоступностьКассовыхСсылок", ДоступностьКассовыхСсылок);
+ Форма.КешПараметров.Вставить("ВидимостьКассовыхСсылок", ВидимостьКассовыхСсылок);
+ Форма.КешПараметров.Вставить("ПодсистемыКнопкиСоздать", Новый Соответствие);
+ Форма.КешПараметров.Вставить("ОбщиеКоманды", Новый Массив);
КонецПроцедуры
@@ -367,21 +406,26 @@
Процедура ПриОпределенииВидимостиОбщихКоманд(КешПараметров, ВидимостьОбщихКоманд) Экспорт
ИмяПодсистемыСБП = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП();
- ИмяПодсистемыЭквайринг = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг();
+ ИмяПодсистемыИнтернетЭквайринг = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг();
ИмяПодсистемыОзон = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй();
+ ИмяПодсистемыЯндекс = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй();
ВидимостьСБП = КешПараметров.ВидимостьПодсистемВСписке.Получить(ИмяПодсистемыСБП)
И КешПараметров.ДоступностьНастроек.Получить(ИмяПодсистемыСБП);
- ВидимостьЭквайринг = КешПараметров.ВидимостьПодсистемВСписке.Получить(ИмяПодсистемыЭквайринг)
- И КешПараметров.ДоступностьНастроек.Получить(ИмяПодсистемыЭквайринг);
+ ВидимостьИнтернетЭквайринг = КешПараметров.ВидимостьПодсистемВСписке.Получить(ИмяПодсистемыИнтернетЭквайринг)
+ И КешПараметров.ДоступностьНастроек.Получить(ИмяПодсистемыИнтернетЭквайринг);
ВидимостьОзон = КешПараметров.ВидимостьПодсистемВСписке.Получить(ИмяПодсистемыОзон)
И КешПараметров.ДоступностьНастроек.Получить(ИмяПодсистемыОзон);
+ ВидимостьЯндекс = КешПараметров.ВидимостьПодсистемВСписке.Получить(ИмяПодсистемыЯндекс)
+ И КешПараметров.ДоступностьНастроек.Получить(ИмяПодсистемыЯндекс);
+
ВидимостьОбщихКоманд = ВидимостьСБП
- Или ВидимостьЭквайринг
- Или ВидимостьОзон;
+ Или ВидимостьИнтернетЭквайринг
+ Или ВидимостьОзон
+ Или ВидимостьЯндекс;
КонецПроцедуры
@@ -399,7 +443,7 @@
// Можно не проверять существование подсистемы. ДоступностьНастроек = Ложь, если подсистема не существует.
ИмяПодсистемыСБП = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП();
- ИмяПодсистемыЭквайринг = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг();
+ ИмяПодсистемыИнтернетЭквайринг = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг();
// Добавление кнопок создания новых настроек.
Если Форма.КешПараметров.ДоступностьНастроек.Получить(ИмяПодсистемыСБП) Тогда
@@ -430,22 +474,26 @@
// Добавление общих для нескольких подсистем команд в подменю "Настройки"
Если Форма.КешПараметров.ДоступностьНастроек.Получить(ИмяПодсистемыСБП)
- Или Форма.КешПараметров.ДоступностьНастроек.Получить(ИмяПодсистемыЭквайринг)
+ Или Форма.КешПараметров.ДоступностьНастроек.Получить(ИмяПодсистемыИнтернетЭквайринг)
Или (ДоступныПлатежныеСистемы И ДоступныШаблоныНазначений) Тогда
НастройкиПлатежныхСистемСлужебный.ДобавитьКнопкуДополнительно(
Форма,
"ОткрытьШаблоныНазначения",
- НСтр("ru = 'Шаблоны назначения'"));
+ НСтр("ru = 'Шаблоны назначения'"),
+ БиблиотекаКартинок.НастройкаНазначенияПлатежа);
КонецЕсли;
// Добавление прочих команд в подменю "Настройки"
Если Форма.КешПараметров.ВидимостьКассовыхСсылок Тогда
+
НастройкиПлатежныхСистемСлужебный.ДобавитьКнопкуДополнительно(
Форма,
"ОткрытьКассовыеСсылки",
- НСтр("ru = 'Кассовые QR-коды'"));
+ НСтр("ru = 'Кассовые QR-коды'"),
+ БиблиотекаКартинок["QRСБП"]); // АПК:216 Принятое сокращение
+
КонецЕсли;
КонецПроцедуры
@@ -455,14 +503,16 @@
// Параметры:
// ИменаПодсистем - Массив Из Строка - имена подсистем. Содержит значения, возвращаемые следующими методами:
// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП,
-// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг,
-// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй.
+// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг,
+// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй,
+// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй.
//
Процедура ПриОпределенииИменПодсистем(ИменаПодсистем) Экспорт
ИменаПодсистем.Добавить(НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП());
- ИменаПодсистем.Добавить(НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг());
+ ИменаПодсистем.Добавить(НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг());
ИменаПодсистем.Добавить(НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй());
+ ИменаПодсистем.Добавить(НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй());
КонецПроцедуры
@@ -507,7 +557,7 @@
ВсеКоманды,
ДоступныеКомандыПодсистемы);
- ИначеЕсли ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг() Тогда
+ ИначеЕсли ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг() Тогда
МодульИнтернетЭквайрингСобытия = ОбщегоНазначения.ОбщийМодуль("ИнтернетЭквайрингСобытия");
МодульИнтернетЭквайрингСобытия.ПриОпределенииДоступностиКомандСпискаНастроек(
@@ -519,6 +569,14 @@
// Нет доступных команд. Назначение платежа отсутствует, поэтому нет шаблонов.
+ ИначеЕсли ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй() Тогда
+
+ МодульЯндексПэйСобытия = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСобытия");
+ МодульЯндексПэйСобытия.ПриОпределенииДоступностиКомандСпискаНастроек(
+ КешПараметров,
+ ВсеКоманды,
+ ДоступныеКомандыПодсистемы);
+
КонецЕсли;
ПриОпределенииКомандДоступныхВсемНастройкам(
@@ -642,9 +700,11 @@
Возврат;
КонецЕсли;
- Если Подсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг()
+ Если Подсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг()
Или Подсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй()
- Или Подсистема = ОбщегоНазначения.ПредопределенныйЭлемент("Перечисление.ПлатежныеСервисы.ОзонПэй") Тогда
+ Или Подсистема = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй()
+ Или Подсистема = ОбщегоНазначения.ПредопределенныйЭлемент("Перечисление.ПлатежныеСервисы.ОзонПэй")
+ Или Подсистема = ОбщегоНазначения.ПредопределенныйЭлемент("Перечисление.ПлатежныеСервисы.ЯндексПэй") Тогда
ТребуетсяПривязка = Истина;
КонецЕсли;
@@ -706,6 +766,11 @@
"ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ОзонПэй",
"Подсистема.ИнтернетПоддержкаПользователей.Подсистема.ПлатежныеСистемы.Подсистема.ОзонПэй",
ЗависимыеПодсистемы);
+
+ ДобавитьСинонимОбъектаМетаданныхПоПодсистеме(
+ "ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй",
+ "Подсистема.ИнтернетПоддержкаПользователей.Подсистема.ПлатежныеСистемы.Подсистема.ЯндексПэй",
+ ЗависимыеПодсистемы);
Возврат СтрСоединить(ЗависимыеПодсистемы, ", ");
diff --git a/src/CommonModules/НастройкиЭДО/Ext/Module.bsl b/src/CommonModules/НастройкиЭДО/Ext/Module.bsl
index fb148839c..4df148d41 100644
--- a/src/CommonModules/НастройкиЭДО/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиЭДО/Ext/Module.bsl
@@ -638,6 +638,10 @@
ПоляУсловия.Добавить(СтрШаблон("НастройкиОтправкиЭлектронныхДокументовПоВидам.ИдентификаторОтправителя В(%1)",
Отбор.ИдентификаторОтправителя));
КонецЕсли;
+ Если ЗначениеЗаполнено(Отбор.ИдентификаторПолучателя) Тогда
+ ПоляУсловия.Добавить(СтрШаблон("НастройкиОтправкиЭлектронныхДокументовПоВидам.ИдентификаторПолучателя В(%1)",
+ Отбор.ИдентификаторПолучателя));
+ КонецЕсли;
Если ЗначениеЗаполнено(Отбор.Отправитель) Тогда
ПоляУсловия.Добавить(СтрШаблон("НастройкиОтправкиЭлектронныхДокументовПоВидам.Отправитель В(%1)",
Отбор.Отправитель));
@@ -1796,4 +1800,11 @@
Возврат ИнтеграцияЭДО.ОбщийМодульОтражениеВУчетеЭДО();
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОбновитьФорматПоУмолчаниюВНастройках", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/НастройкиЭДОСлужебный/Ext/Module.bsl b/src/CommonModules/НастройкиЭДОСлужебный/Ext/Module.bsl
index 7df3bcc82..e2fa65289 100644
--- a/src/CommonModules/НастройкиЭДОСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/НастройкиЭДОСлужебный/Ext/Module.bsl
@@ -950,4 +950,16 @@
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВключитьИспользованиеОзнакомленийСЭД");
+ Методы.Вставить("НастроитьАвтоПереходНаНовыеВерсииФорматовЭД");
+ Методы.Вставить("УстановкаЗначенияКонстантыСоздаватьКонтрагентовАвтоматическиБЭД");
+
+ Методы.Вставить("ВыполнитьДействияПередИзменениемИспользованияУтверждения", Истина);
+ Методы.Вставить("ДанныеДляНастройкиСвязиСКонтрагентом", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/НеоперативнаяОчередьЗаданий/Ext/Module.bsl b/src/CommonModules/НеоперативнаяОчередьЗаданий/Ext/Module.bsl
index 682352b7f..df528f112 100644
--- a/src/CommonModules/НеоперативнаяОчередьЗаданий/Ext/Module.bsl
+++ b/src/CommonModules/НеоперативнаяОчередьЗаданий/Ext/Module.bsl
@@ -1909,8 +1909,8 @@
МенеджерРегистра = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмяРегистраЗаданий);
- ТаблицаГранулРасчета = МенеджерРегистра.ТаблицаГранулРасчета(); // ТаблицаЗначений
- КолонкиТаблицыГранулРасчета = ТаблицаГранулРасчета.Колонки;
+ ТаблицаГранулРасчетаРегистр = МенеджерРегистра.ТаблицаГранулРасчета(); // ТаблицаЗначений
+ КолонкиТаблицыГранулРасчета = ТаблицаГранулРасчетаРегистр.Колонки;
МассивТекстовЗапроса = Новый Массив;
diff --git a/src/CommonModules/НеоперативнаяОчередьЗаданийПовтИсп/Ext/Module.bsl b/src/CommonModules/НеоперативнаяОчередьЗаданийПовтИсп/Ext/Module.bsl
index bfee6dc7e..a87f55afa 100644
--- a/src/CommonModules/НеоперативнаяОчередьЗаданийПовтИсп/Ext/Module.bsl
+++ b/src/CommonModules/НеоперативнаяОчередьЗаданийПовтИсп/Ext/Module.bsl
@@ -163,4 +163,23 @@
КонецФункции
+// Возвращает список видов заданий, по которым не следует выполнять пакетную обработку гранул расчета в одной транзации.
+// Вид задания следует исключить из пакетной обработки гранул расчёта, если связанная с ним процедура-обработчик
+// не поддерживает одновременную обработку нескольких объектов (гранул расчета) или обработка одного объекта может быть длительной по времени.
+//
+// Возвращаемое значение:
+// Массив Из СправочникСсылка.ВидыНеоперативныхЗаданий - Виды заданий
+Функция ВидыЗаданийНедоступныеКПакетнойОбработкеГранулРасчета() Экспорт
+
+ СписокВидовЗаданий = Новый Массив;
+
+ СписокВидовЗаданий.Добавить(Справочники.ВидыНеоперативныхЗаданий.АктуализацияДвиженийПоФинансовымРегистрам);
+ СписокВидовЗаданий.Добавить(Справочники.ВидыНеоперативныхЗаданий.ОтражениеДвиженийПоАкцизам);
+ СписокВидовЗаданий.Добавить(Справочники.ВидыНеоперативныхЗаданий.АктуализацияОперацийИСостоянияЭлектронногоБилета);
+ СписокВидовЗаданий.Добавить(Справочники.ВидыНеоперативныхЗаданий.РаспределениеПродажПоНаправлениямДеятельности);
+
+ Возврат СписокВидовЗаданий;
+
+КонецФункции
+
#КонецОбласти
diff --git a/src/CommonModules/НоменклатураПартнеровСервер/Ext/Module.bsl b/src/CommonModules/НоменклатураПартнеровСервер/Ext/Module.bsl
index 2b23722d4..39e704cdd 100644
--- a/src/CommonModules/НоменклатураПартнеровСервер/Ext/Module.bsl
+++ b/src/CommonModules/НоменклатураПартнеровСервер/Ext/Module.bsl
@@ -1043,23 +1043,26 @@
//
// Параметры:
// Идентификатор - Строка - идентификатор номенклатуры партнера.
+// Владелец - ОпределяемыйТип.ВладелецНоменклатурыБЭД - владелец номенклатуры партнера.
//
// Возвращаемое значение:
// СправочникСсылка.Номенклатура - ссылка номенклатуры.
//
-Функция НайтиСсылкуНаНоменклатуруПоИдентификаторуНоменклатурыПартнера(Идентификатор) Экспорт
+Функция НайтиСсылкуНаНоменклатуруПоИдентификаторуНоменклатурыПартнера(Идентификатор, Владелец) Экспорт
Результат = Неопределено;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
- | СпрНоменклатура.Номенклатура КАК Ссылка
- |ИЗ
- | Справочник.НоменклатураКонтрагентов КАК СпрНоменклатура
- |ГДЕ
- | СпрНоменклатура.Идентификатор = &Идентификатор";
+ | СпрНоменклатура.Номенклатура КАК Ссылка
+ |ИЗ
+ | Справочник.НоменклатураКонтрагентов КАК СпрНоменклатура
+ |ГДЕ
+ | СпрНоменклатура.Идентификатор = &Идентификатор
+ | И СпрНоменклатура.Владелец = &Владелец";
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
+ Запрос.УстановитьПараметр("Владелец", Владелец);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
@@ -1074,23 +1077,26 @@
//
// Параметры:
// Идентификатор - Строка - идентификатор номенклатуры партнера.
+// Владелец - ОпределяемыйТип.ВладелецНоменклатурыБЭД - владелец номенклатуры партнера.
//
// Возвращаемое значение:
// СправочникСсылка.НоменклатураКонтрагентов - ссылка на номенклатуру партнера.
//
-Функция НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор) Экспорт
+Функция НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, Владелец) Экспорт
Результат = Неопределено;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
- | СпрНоменклатура.Ссылка КАК Ссылка
- |ИЗ
- | Справочник.НоменклатураКонтрагентов КАК СпрНоменклатура
- |ГДЕ
- | СпрНоменклатура.Идентификатор = &Идентификатор";
+ | СпрНоменклатура.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.НоменклатураКонтрагентов КАК СпрНоменклатура
+ |ГДЕ
+ | СпрНоменклатура.Идентификатор = &Идентификатор
+ | И СпрНоменклатура.Владелец = &Владелец";
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
+ Запрос.УстановитьПараметр("Владелец", Владелец);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
diff --git a/src/CommonModules/ОФДСервис/Ext/Module.bsl b/src/CommonModules/ОФДСервис/Ext/Module.bsl
index 912306d02..613b2c975 100644
--- a/src/CommonModules/ОФДСервис/Ext/Module.bsl
+++ b/src/CommonModules/ОФДСервис/Ext/Module.bsl
@@ -45,7 +45,8 @@
НастройкиКассы = ПараметрыНастройкиПодключенияКассы(Касса);
// Получение параметров аутентификации в ОФД.
- НастройкиАутентификации = ПолучитьНастройкиАутентификации(НастройкиКассы.НастройкаПодключения);
+ НастройкиАутентификации = ОФДСлужебный.ПолучитьНастройкиАутентификации(
+ НастройкиКассы.НастройкаПодключения);
ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("НомерСмены", НомерСмены);
@@ -65,7 +66,8 @@
НастройкиКассы = ПараметрыНастройкиПодключенияКассы(Касса);
// Получение параметров аутентификации в ОФД.
- НастройкиАутентификации = ПолучитьНастройкиАутентификации(НастройкиКассы.НастройкаПодключения);
+ НастройкиАутентификации = ОФДСлужебный.ПолучитьНастройкиАутентификации(
+ НастройкиКассы.НастройкаПодключения);
ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("НомерСмены", НомерСмены);
@@ -95,7 +97,8 @@
// Подготовка параметров настройки подключения.
НастройкиКассы = ПараметрыНастройкиПодключенияКассы(Касса);
- НастройкиАутентификации = ПолучитьНастройкиАутентификации(НастройкиКассы.НастройкаПодключения);
+ НастройкиАутентификации = ОФДСлужебный.ПолучитьНастройкиАутентификации(
+ НастройкиКассы.НастройкаПодключения);
ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("НачалоПериода", НачалоПериода);
@@ -190,7 +193,8 @@
НастройкиКассы.НомерФискальногоНакопителя = ФискальныеДанныеПоКассе.ЗаводскойНомерФН;
// Получение параметров аутентификации в ОФД.
- НастройкиАутентификации = ПолучитьНастройкиАутентификации(НастройкиКассы.НастройкаПодключения);
+ НастройкиАутентификации = ОФДСлужебный.ПолучитьНастройкиАутентификации(
+ НастройкиКассы.НастройкаПодключения);
ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("ФискальныеНомераЧеков", ФискальныеДанныеПоКассе.ФискальныеНомераЧеков);
@@ -2653,22 +2657,6 @@
КонецФункции
-// Производит получение настроек аутентификации из безопасного хранилища.
-//
-// Параметры:
-// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКОФД - настройка подключения к ОФД.
-//
-// Возвращаемое значение:
-// Структура - настройки аутентификации.
-//
-Функция ПолучитьНастройкиАутентификации(НастройкаПодключения) Экспорт
-
- УстановитьПривилегированныйРежим(Истина);
-
- Возврат ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(НастройкаПодключения);
-
-КонецФункции
-
Функция ИдентификаторПризнакаРасчета(ИдентификаторПоДаннымСервиса)
Если Врег(ИдентификаторПоДаннымСервиса) = "INCOME" Тогда
diff --git a/src/CommonModules/ОФДСлужебный/Ext/Module.bsl b/src/CommonModules/ОФДСлужебный/Ext/Module.bsl
index 08c09361d..37b15bba6 100644
--- a/src/CommonModules/ОФДСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ОФДСлужебный/Ext/Module.bsl
@@ -612,13 +612,19 @@
Результат.Вставить("ИнформацияОбОшибке", "");
Результат.Вставить("Ошибка", Ложь);
- Если ДанныеАутентификации.type = "BASIC" Тогда
+ ТипАвторизации = "";
+ ДанныеАутентификации.Свойство("type", ТипАвторизации);
+
+ Если ТипАвторизации = "BASIC" Тогда
Результат.Аутентификация = ИнтернетПоддержкаПользователей.ЗаголовокБазовойСхемыАутентификации(
ДанныеАутентификации.login,
ДанныеАутентификации.password);
- ИначеЕсли ДанныеАутентификации.type = "BEARER" Тогда
+ ИначеЕсли ТипАвторизации = "BEARER" Тогда
Результат.Аутентификация = ИнтернетПоддержкаПользователей.ЗаголовокBearerАутентификации(
ДанныеАутентификации.token);
+ ИначеЕсли ПустаяСтрока(ТипАвторизации) Тогда
+ Результат.Ошибка = Истина;
+ Результат.ИнформацияОбОшибке = НСтр("ru = 'Не заполнены данные авторизации.'");
Иначе
ВызватьИсключение НСтр("ru = 'Неизвестный тип авторизации.'");
КонецЕсли;
@@ -935,6 +941,22 @@
КонецПроцедуры
+// Производит получение настроек аутентификации из безопасного хранилища.
+//
+// Параметры:
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКОФД - настройка подключения к ОФД.
+//
+// Возвращаемое значение:
+// Структура - настройки аутентификации.
+//
+Функция ПолучитьНастройкиАутентификации(НастройкаПодключения) Экспорт
+
+ УстановитьПривилегированныйРежим(Истина);
+
+ Возврат ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(НастройкаПодключения);
+
+КонецФункции
+
// Производит получение данных аутентификации из безопасного хранилища.
//
// Параметры:
@@ -946,11 +968,37 @@
Функция ЗначениеНастроекАутентификации(НастройкаПодключения)
Результат = Новый Соответствие;
- Данные = ОФДСервис.ПолучитьНастройкиАутентификации(НастройкаПодключения);
+ Данные = ПолучитьНастройкиАутентификации(НастройкаПодключения);
// При переходе в облако или в АРМ данные из безопасного хранилища не мигрируют.
// Пользователь должен самостоятельно заполнить информацию в настройках.
- Если Данные.type = "BASIC" Тогда
+ Если ЗначениеЗаполнено(Данные) Тогда
+
+ ТипАутентификации = Данные.type;
+
+ Иначе
+
+ ИдентификаторУчастника = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
+ НастройкаПодключения,
+ "ИдентификаторУчастника");
+ РезультатПолучения = ПолучитьУчастниковОФД();
+
+ Если Не ПустаяСтрока(РезультатПолучения.КодОшибки) Тогда
+ ВызватьИсключение НСтр("ru = 'Не удалось определить тип авторизации участника ОФД.'");
+ КонецЕсли;
+
+ ДанныеУчастника = Неопределено;
+ РезультатПолучения.ДанныеУчастников.Свойство(ИдентификаторУчастника, ДанныеУчастника);
+
+ Если Не ЗначениеЗаполнено(ДанныеУчастника) Тогда
+ ВызватьИсключение НСтр("ru = 'Не удалось определить тип авторизации участника ОФД.'")
+ КонецЕсли;
+
+ ТипАутентификации = ДанныеУчастника.ТипАутентификации;
+
+ КонецЕсли;
+
+ Если ТипАутентификации = "BASIC" Тогда
Если ЗначениеЗаполнено(Данные) Тогда
Результат.Вставить("Логин", Данные.login);
Результат.Вставить("Пароль", СтрокаСекретныхДанныхПоУмолчанию()); // Забивание данных *.
@@ -958,7 +1006,7 @@
Результат.Вставить("Логин", "");
Результат.Вставить("Пароль", "");
КонецЕсли;
- ИначеЕсли Данные.type = "BEARER" Тогда
+ ИначеЕсли ТипАутентификации = "BEARER" Тогда
Если ЗначениеЗаполнено(Данные) Тогда
Результат.Вставить("Токен", СтрокаСекретныхДанныхПоУмолчанию()); // Забивание данных *.
Иначе
@@ -968,7 +1016,7 @@
ВызватьИсключение НСтр("ru = 'Неизвестный тип авторизации участника ОФД.'");
КонецЕсли;
- Результат.Вставить("ТипАутентификации", Данные.type);
+ Результат.Вставить("ТипАутентификации", ТипАутентификации);
Возврат Результат;
@@ -1023,28 +1071,25 @@
ПараметрАутентификации.Значение));
КонецЦикла;
- УстановитьПривилегированныйРежим(Истина);
-
Если ПараметрыАутентификации.Получить("ТипАутентификации") = "BASIC" Тогда
Если ПараметрыАутентификации.Получить("Пароль") = СтрокаСекретныхДанныхПоУмолчанию() Тогда
- Данные = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(
- НастройкаПодключения);
+ Данные = ПолучитьНастройкиАутентификации(НастройкаПодключения);
ПараметрыАутентификации.Вставить("Пароль", Данные.password);
КонецЕсли;
ИначеЕсли ПараметрыАутентификации.Получить("ТипАутентификации") = "BEARER" Тогда
Если ПараметрыАутентификации.Получить("Токен") = СтрокаСекретныхДанныхПоУмолчанию() Тогда
- Данные = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(
- НастройкаПодключения);
+ Данные = ПолучитьНастройкиАутентификации(НастройкаПодключения);
ПараметрыАутентификации.Вставить("Токен", Данные.token);
КонецЕсли;
Иначе
ВызватьИсключение НСтр("ru = 'Неизвестный тип авторизации.'");
КонецЕсли;
- ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(
+ УстановитьПривилегированныйРежим(Истина);
+ ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(
НастройкаПодключения,
ПреобразоватьНастройкиАутентификации(ПараметрыАутентификации, Истина));
@@ -1152,10 +1197,8 @@
Результат.Вставить("КодОшибки", "");
Результат.Вставить("СообщениеОбОшибке", "");
- УстановитьПривилегированныйРежим(Истина);
- ПараметрыАутентификации = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(
+ ПараметрыАутентификации = ПолучитьНастройкиАутентификации(
ПараметрыПроцедуры.НастройкаПодключения);
- УстановитьПривилегированныйРежим(Ложь);
РезультатПроверки = ОФДСервис.ОперацияПроверитьПараметрыПодключения(
ПараметрыНастройкиПодключения(
@@ -1195,10 +1238,8 @@
//
Функция КассыНастройкиПодключения(ПараметрыПроцедуры) Экспорт
- УстановитьПривилегированныйРежим(Истина);
- ПараметрыАутентификации = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(
+ ПараметрыАутентификации = ПолучитьНастройкиАутентификации(
ПараметрыПроцедуры.НастройкаПодключения);
- УстановитьПривилегированныйРежим(Ложь);
Возврат ОФДСервис.ОперацияСписокКасс(
ПараметрыНастройкиПодключения(ПараметрыПроцедуры.НастройкаПодключения),
diff --git a/src/CommonModules/ОблачныеКассыПереопределяемый/Ext/Module.bsl b/src/CommonModules/ОблачныеКассыПереопределяемый/Ext/Module.bsl
index 2205f8e7c..3a58cd6fa 100644
--- a/src/CommonModules/ОблачныеКассыПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/ОблачныеКассыПереопределяемый/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
diff --git a/src/CommonModules/ОблачныеКлассификаторы/Ext/Module.bsl b/src/CommonModules/ОблачныеКлассификаторы/Ext/Module.bsl
index e07176e07..3239c61b6 100644
--- a/src/CommonModules/ОблачныеКлассификаторы/Ext/Module.bsl
+++ b/src/CommonModules/ОблачныеКлассификаторы/Ext/Module.bsl
@@ -5,6 +5,32 @@
#Область ПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗагрузитьВБазуДанныеТНВЭД", Истина);
+ Методы.Вставить("ОбновитьКлассификаторТНВЭД", Истина);
+ Методы.Вставить("ОбработатьПоисковыйЗапросТНВЭД", Истина);
+ Методы.Вставить("ПолучитьВеткуТНВЭД", Истина);
+ Методы.Вставить("ПолучитьПодчиненныеЭлементыТНВЭД", Истина);
+ Методы.Вставить("ПолучитьРазделыТНВЭД", Истина);
+
+ Методы.Вставить("ЗагрузитьВБазуДанныеОКПД2", Истина);
+ Методы.Вставить("ОбновитьКлассификаторОКПД2", Истина);
+ Методы.Вставить("ОбработатьПоисковыйЗапросОКПД2", Истина);
+ Методы.Вставить("ПолучитьВеткуОКПД2", Истина);
+ Методы.Вставить("ПолучитьПодчиненныеЭлементыОКПД2", Истина);
+ Методы.Вставить("ПолучитьРазделыОКПД2", Истина);
+
+ Методы.Вставить("ЗагрузитьВБазуДанныеОКЕИ", Истина);
+ Методы.Вставить("ПолучитьИерархиюЭлементовОКЕИ", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область КлассификаторТНВЭД
// Обновление классификатора ТН ВЭД
@@ -977,7 +1003,9 @@
ДеревоКлассификатора.Колонки.Добавить(ЭлементКоллекции.Имя, ЭлементКоллекции.ТипЗначения);
КонецЦикла;
- СсылкиПоКоду = ОблачныеКлассификаторыПереопределяемый.ОпределитьЗагруженныеЭлементыОКЕИ(ДополнительныеПараметры);
+ СсылкиПоКоду = Новый Соответствие;
+ ОблачныеКлассификаторыПереопределяемый.ОпределитьЗагруженныеЭлементыОКЕИ(СсылкиПоКоду, ДополнительныеПараметры);
+
Родители = Новый Соответствие;
Повторить = Новый Массив; // Массив из СтрокаДереваЗначений
@@ -991,9 +1019,13 @@
Родитель = ДеревоКлассификатора;
КонецЕсли;
- Если ЗначениеЗаполнено(СтрокаТаблицыЗначений.Код)
- И Не ОблачныеКлассификаторыПереопределяемый.ПроверитьЭлементОКЕИ(СтрокаТаблицыЗначений, ДополнительныеПараметры) Тогда
- Продолжить;
+ Если ЗначениеЗаполнено(СтрокаТаблицыЗначений.Код) Тогда
+ Отказ = Ложь;
+ ОблачныеКлассификаторыПереопределяемый.ПроверитьЭлементОКЕИ(СтрокаТаблицыЗначений, ДополнительныеПараметры, Отказ);
+
+ Если Отказ Тогда
+ Продолжить;
+ КонецЕсли;
КонецЕсли;
СтрокаДереваЗначений = Родитель.Строки.Добавить();
@@ -1014,9 +1046,13 @@
Родитель = ДеревоКлассификатора;
КонецЕсли;
- Если ЗначениеЗаполнено(СтрокаТаблицыЗначений.Код)
- И Не ОблачныеКлассификаторыПереопределяемый.ПроверитьЭлементОКЕИ(СтрокаТаблицыЗначений, ДополнительныеПараметры) Тогда
- Продолжить;
+ Если ЗначениеЗаполнено(СтрокаТаблицыЗначений.Код) Тогда
+ Отказ = Ложь;
+ ОблачныеКлассификаторыПереопределяемый.ПроверитьЭлементОКЕИ(СтрокаТаблицыЗначений, ДополнительныеПараметры, Отказ);
+
+ Если Отказ Тогда
+ Продолжить;
+ КонецЕсли;
КонецЕсли;
СтрокаДереваЗначений = Родитель.Строки.Добавить();
@@ -1640,11 +1676,12 @@
Если ЗначениеЗаполнено(СтрокаДереваЗначений.Код) Тогда
КоличествоОбработанных = КоличествоОбработанных + 1;
- НоваяСсылка = Ложь;
- Ссылка = ОблачныеКлассификаторыПереопределяемый.СоздатьОбновитьЭлементОКЕИ(СтрокаДереваЗначений,
- НоваяСсылка);
+ Ссылка = Неопределено;
+ ЭтоНовый = Ложь;
- Если НоваяСсылка Тогда
+ ОблачныеКлассификаторыПереопределяемый.СоздатьОбновитьЭлементОКЕИ(СтрокаДереваЗначений, Ссылка, ЭтоНовый);
+
+ Если ЭтоНовый Тогда
НовыеЭлементы.Добавить(Ссылка);
КонецЕсли;
КонецЕсли;
diff --git a/src/CommonModules/ОблачныеКлассификаторыПереопределяемый/Ext/Module.bsl b/src/CommonModules/ОблачныеКлассификаторыПереопределяемый/Ext/Module.bsl
index 55e7ed970..df5ffb047 100644
--- a/src/CommonModules/ОблачныеКлассификаторыПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/ОблачныеКлассификаторыПереопределяемый/Ext/Module.bsl
@@ -118,24 +118,18 @@
// Определяет загруженные элементы ОКЕИ.
//
// Параметры:
+// СсылкиПоКоду - Соответствие из КлючИЗначение - загруженные единицы измерения:
+// * Ключ - Строка - код единицы измерения.
+// * Значение - ОпределяемыйТип.УпаковкаНоменклатурыБЭД - ссылка на единицу измерения.
// ДополнительныеПараметры - Неопределено, Структура из КлючИЗначение - дополнительные параметры.
//
-// Возвращаемое значение:
-// Соответствие из КлючИЗначение - загруженные единицы измерения:
-// * Ключ - Строка - код единицы измерения.
-// * Значение - ОпределяемыйТип.УпаковкаНоменклатурыБЭД - ссылка на единицу измерения.
-//
-Функция ОпределитьЗагруженныеЭлементыОКЕИ(ДополнительныеПараметры = Неопределено) Экспорт
-
- Результат = Новый Соответствие;
+Процедура ОпределитьЗагруженныеЭлементыОКЕИ(СсылкиПоКоду, ДополнительныеПараметры = Неопределено) Экспорт
//++ НЕ ГОСИС
- Результат = ОблачныеКлассификаторыУТ.ОпределитьЗагруженныеЭлементыОКЕИ(ДополнительныеПараметры);
+ ОблачныеКлассификаторыУТ.ОпределитьЗагруженныеЭлементыОКЕИ(СсылкиПоКоду, ДополнительныеПараметры);
//-- НЕ ГОСИС
- Возврат Результат;
-
-КонецФункции
+КонецПроцедуры
// Проверяет необходимость добавления элемента ОКЕИ, например, по установленному отбору.
//
@@ -157,21 +151,15 @@
// * Ссылка - ОпределяемыйТип.УпаковкаНоменклатурыБЭД - ссылка на существующий
// элемент справочника.
// ДополнительныеПараметры - Неопределено, Структура из КлючИЗначение - дополнительные параметры.
+// Отказ - Булево - признак отказа от добавления элемента.
//
-// Возвращаемое значение:
-// Булево - добавить ли элемент ОКЕИ в дерево.
-//
-Функция ПроверитьЭлементОКЕИ(Строка, ДополнительныеПараметры = Неопределено) Экспорт
-
- Результат = Истина;
+Процедура ПроверитьЭлементОКЕИ(Строка, ДополнительныеПараметры = Неопределено, Отказ = Ложь) Экспорт
//++ НЕ ГОСИС
- Результат = ОблачныеКлассификаторыУТ.ПроверитьЭлементОКЕИ(Строка, ДополнительныеПараметры);
+ ОблачныеКлассификаторыУТ.ПроверитьЭлементОКЕИ(Строка, ДополнительныеПараметры, Отказ);
//-- НЕ ГОСИС
- Возврат Результат;
-
-КонецФункции
+КонецПроцедуры
// Создает или обновляет единицу измерения по данным ОКЕИ.
//
@@ -192,22 +180,16 @@
// * Пометка - Булево - пометка элемента для подбора.
// * Ссылка - ОпределяемыйТип.УпаковкаНоменклатурыБЭД - ссылка на существующий
// элемент справочника.
-// НоваяСсылка - Булево - признак созданной единицы измерения.
+// Ссылка - Неопределено, ОпределяемыйТип.УпаковкаНоменклатурыБЭД - ссылка на созданную (измененную) единицу измерения.
+// ЭтоНовый - Булево - признак созданной единицы измерения.
//
-// Возвращаемое значение:
-// Неопределено, ОпределяемыйТип.УпаковкаНоменклатурыБЭД - ссылка на созданную единицу измерения.
-//
-Функция СоздатьОбновитьЭлементОКЕИ(ДанныеСервиса, НоваяСсылка = Ложь) Экспорт
-
- Результат = Неопределено;
+Процедура СоздатьОбновитьЭлементОКЕИ(ДанныеСервиса, Ссылка = Неопределено, ЭтоНовый = Ложь) Экспорт
//++ НЕ ГОСИС
- Результат = ОблачныеКлассификаторыУТ.СоздатьОбновитьЭлементОКЕИ(ДанныеСервиса, НоваяСсылка);
+ ОблачныеКлассификаторыУТ.СоздатьОбновитьЭлементОКЕИ(ДанныеСервиса, Ссылка, ЭтоНовый);
//-- НЕ ГОСИС
- Возврат Результат;
-
-КонецФункции
+КонецПроцедуры
#КонецОбласти
diff --git a/src/CommonModules/ОблачныеКлассификаторыСлужебныйВызовСервера/Ext/Module.bsl b/src/CommonModules/ОблачныеКлассификаторыСлужебныйВызовСервера/Ext/Module.bsl
index a129aa801..100981300 100644
--- a/src/CommonModules/ОблачныеКлассификаторыСлужебныйВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/ОблачныеКлассификаторыСлужебныйВызовСервера/Ext/Module.bsl
@@ -7,159 +7,10 @@
#Область КлассификаторТНВЭД
-// Получение разделов классификатора ТН ВЭД.
-// Разделами являются элементы верхнего уровня иерархии.
-//
-// Параметры:
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
-//
-// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
-//
-Функция ПолучитьРазделыТНВЭДВФоне(УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
-
- ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
-
- НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ТН ВЭД. Получение разделов.'");
- ИмяПроцедуры = "ОблачныеКлассификаторы.ПолучитьРазделыТНВЭД";
-
- ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
- ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
- ПараметрыВыполнения.ОжидатьЗавершение = 0;
- ПараметрыВыполнения.ЗапуститьВФоне = Истина;
-
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, Неопределено, ПараметрыВыполнения);
-
-КонецФункции
-
-// Получение подчиненных элементов классификатора ТН ВЭД.
-//
-// Параметры:
-// Код - Строка - код, для которого необходимо получить подчиненные элементы.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
-//
-// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
-//
-Функция ПолучитьПодчиненныеЭлементыТНВЭДВФоне(Код, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
-
- ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
-
- НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ТН ВЭД. Получение подчиненных.'");
- ИмяПроцедуры = "ОблачныеКлассификаторы.ПолучитьПодчиненныеЭлементыТНВЭД";
-
- ПараметрыПроцедуры = Новый Структура("Код", Код);
-
- ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
- ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
- ПараметрыВыполнения.ОжидатьЗавершение = 0;
- ПараметрыВыполнения.ЗапуститьВФоне = Истина;
-
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
-
-КонецФункции
-
-// Получение элементов классификатора ТН ВЭД по строке поиска.
-//
-// Параметры:
-// СтрокаПоиска - Строка - значение для поиска в данных классификатора.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
-//
-// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
-//
-Функция ОбработатьПоисковыйЗапросТНВЭДВФоне(СтрокаПоиска, НомерСтраницы, УникальныйИдентификатор,
- ИдентификаторЗадания) Экспорт
-
- ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
-
- НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ТН ВЭД. Получение подчиненных.'");
- ИмяПроцедуры = "ОблачныеКлассификаторы.ОбработатьПоисковыйЗапросТНВЭД";
-
- ПараметрыПроцедуры = Новый Структура("СтрокаПоиска, НомерСтраницы", СтрокаПоиска, НомерСтраницы);
-
- ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
- ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
- ПараметрыВыполнения.ОжидатьЗавершение = 0;
- ПараметрыВыполнения.ЗапуститьВФоне = Истина;
-
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
-
-КонецФункции
-
-// Получение ветки элементов классификатора ТН ВЭД.
-//
-// Параметры:
-// Код - Строка - код, для которого необходимо получить ветку.
-// АдресКэша - Строка - адрес временного хранилища формы.
-// РежимВыбораЭлемента - Булево - признак открытия формы в режиме выбора.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// Определяет возможность использования онлайн-подбора из классификатора ТНВЭД.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
-//
-Функция ПолучитьВеткуТНВЭДВФоне(Код, АдресКэша, РежимВыбораЭлемента, УникальныйИдентификатор,
- ИдентификаторЗадания) Экспорт
-
- ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
-
- НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ТН ВЭД. Получение части иерархии.'");
- ИмяПроцедуры = "ОблачныеКлассификаторы.ПолучитьВеткуТНВЭД";
-
- Кэш = КэшИзВременногоХранилища(АдресКэша);
-
- ПараметрыПроцедуры = Новый Структура;
- ПараметрыПроцедуры.Вставить("Код", Код);
- ПараметрыПроцедуры.Вставить("Кэш", Кэш);
- ПараметрыПроцедуры.Вставить("РежимВыбораЭлемента", РежимВыбораЭлемента);
-
- ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
- ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
- ПараметрыВыполнения.ОжидатьЗавершение = 0;
- ПараметрыВыполнения.ЗапуститьВФоне = Истина;
-
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
-
-КонецФункции
-
-// Загрузка данных подобранных элементов классификатора ТН ВЭД в базу.
-//
-// Параметры:
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
-//
-// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
-//
-Функция ЗагрузитьВБазуДанныеТНВЭДВФоне(АдресКэша, ВыбранныеЭлементы, УникальныйИдентификатор,
- ИдентификаторЗадания, ОбновитьКэш) Экспорт
-
- ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
-
- НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ТН ВЭД. Загрузка данных в базу.'");
- ИмяПроцедуры = "ОблачныеКлассификаторы.ЗагрузитьВБазуДанныеТНВЭД";
-
- Кэш = КэшИзВременногоХранилища(АдресКэша);
-
- ПараметрыПроцедуры = Новый Структура;
- ПараметрыПроцедуры.Вставить("Кэш", Кэш);
- ПараметрыПроцедуры.Вставить("ВыбранныеЭлементы", ВыбранныеЭлементы);
- ПараметрыПроцедуры.Вставить("ОбновитьКэш", ОбновитьКэш);
-
- ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
- ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
- ПараметрыВыполнения.ОжидатьЗавершение = 0;
- ПараметрыВыполнения.ЗапуститьВФоне = Истина;
-
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
-
-КонецФункции
-
-// Проверка возможности использования онлайн-подбора из классификатора ТНВЭД
+// Булево - доступность онлайн-подбора.
//
Функция ДоступенОнлайнПодборИзКлассификатораТНВЭД() Экспорт
@@ -182,7 +33,7 @@
ОписаниеПараметровЗапроса.КоличествоЗаписей = 1;
ПараметрыКоманды = ОблачныеКлассификаторыСлужебный.ПараметрыЗапросаРазделыТНВЭД(ОписаниеПараметровЗапроса);
- ДанныеСервиса = РаботаСНоменклатуройСлужебный.ВыполнитьКомандуСервиса(ПараметрыКоманды, Отказ);
+ РаботаСНоменклатуройСлужебный.ВыполнитьКомандуСервиса(ПараметрыКоманды, Отказ);
Если Отказ Тогда
ПолучитьСообщенияПользователю(Истина);
@@ -192,6 +43,168 @@
КонецФункции
+// Получение разделов классификатора ТН ВЭД.
+// Разделами являются элементы верхнего уровня иерархии.
+//
+// Параметры:
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+//
+// Возвращаемое значение:
+// См. ДлительныеОперации.ВыполнитьВФоне.
+//
+Функция ПолучитьРазделыТНВЭДВФоне(УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+
+ ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
+
+ НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ТН ВЭД. Получение разделов.'");
+
+ ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
+ ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
+ ПараметрыВыполнения.ОжидатьЗавершение = 0;
+ ПараметрыВыполнения.ЗапуститьВФоне = Истина;
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ОблачныеКлассификаторы.ПолучитьРазделыТНВЭД",
+ Неопределено,
+ ПараметрыВыполнения);
+
+КонецФункции
+
+// Получение подчиненных элементов классификатора ТН ВЭД.
+//
+// Параметры:
+// Код - Строка - код, для которого необходимо получить подчиненные элементы.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+//
+// Возвращаемое значение:
+// См. ДлительныеОперации.ВыполнитьВФоне.
+//
+Функция ПолучитьПодчиненныеЭлементыТНВЭДВФоне(Код, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+
+ ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
+
+ НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ТН ВЭД. Получение подчиненных.'");
+
+ ПараметрыПроцедуры = Новый Структура("Код", Код);
+
+ ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
+ ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
+ ПараметрыВыполнения.ОжидатьЗавершение = 0;
+ ПараметрыВыполнения.ЗапуститьВФоне = Истина;
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ОблачныеКлассификаторы.ПолучитьПодчиненныеЭлементыТНВЭД",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
+
+КонецФункции
+
+// Получение элементов классификатора ТН ВЭД по строке поиска.
+//
+// Параметры:
+// СтрокаПоиска - Строка - значение для поиска в данных классификатора.
+// НомерСтраницы - Число - номер страницы для страничной загрузки.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+//
+// Возвращаемое значение:
+// См. ДлительныеОперации.ВыполнитьВФоне.
+//
+Функция ОбработатьПоисковыйЗапросТНВЭДВФоне(СтрокаПоиска, НомерСтраницы, УникальныйИдентификатор,
+ ИдентификаторЗадания) Экспорт
+
+ ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
+
+ НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ТН ВЭД. Получение подчиненных.'");
+
+ ПараметрыПроцедуры = Новый Структура("СтрокаПоиска, НомерСтраницы", СтрокаПоиска, НомерСтраницы);
+
+ ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
+ ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
+ ПараметрыВыполнения.ОжидатьЗавершение = 0;
+ ПараметрыВыполнения.ЗапуститьВФоне = Истина;
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ОблачныеКлассификаторы.ОбработатьПоисковыйЗапросТНВЭД",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
+
+КонецФункции
+
+// Получение ветки элементов классификатора ТН ВЭД.
+//
+// Параметры:
+// Код - Строка - код, для которого необходимо получить ветку.
+// АдресКэша - Строка - адрес временного хранилища формы.
+// РежимВыбораЭлемента - Булево - признак открытия формы в режиме выбора.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+//
+// Возвращаемое значение:
+// См. ДлительныеОперации.ВыполнитьВФоне.
+//
+Функция ПолучитьВеткуТНВЭДВФоне(Код, АдресКэша, РежимВыбораЭлемента, УникальныйИдентификатор,
+ ИдентификаторЗадания) Экспорт
+
+ ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
+
+ НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ТН ВЭД. Получение части иерархии.'");
+
+ Кэш = КэшИзВременногоХранилища(АдресКэша);
+
+ ПараметрыПроцедуры = Новый Структура;
+ ПараметрыПроцедуры.Вставить("Код", Код);
+ ПараметрыПроцедуры.Вставить("Кэш", Кэш);
+ ПараметрыПроцедуры.Вставить("РежимВыбораЭлемента", РежимВыбораЭлемента);
+
+ ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
+ ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
+ ПараметрыВыполнения.ОжидатьЗавершение = 0;
+ ПараметрыВыполнения.ЗапуститьВФоне = Истина;
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ОблачныеКлассификаторы.ПолучитьВеткуТНВЭД",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
+
+КонецФункции
+
+// Загрузка данных подобранных элементов классификатора ТН ВЭД в базу.
+//
+// Параметры:
+// АдресКэша - Строка - если загрузка вызвана из режима поиска, то адрес кэша результата поискового
+// запроса, иначе - адрес временного хранилища формы.
+// ВыбранныеЭлементы - Массив из Число - идентификаторы элементов классификатора, отмеченных к загрузке.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// ОбновитьКэш - Булево - обновлять ли кэш результата поискового запроса.
+//
+// Возвращаемое значение:
+// См. ДлительныеОперации.ВыполнитьВФоне.
+//
+Функция ЗагрузитьВБазуДанныеТНВЭДВФоне(АдресКэша, ВыбранныеЭлементы, УникальныйИдентификатор, ИдентификаторЗадания,
+ ОбновитьКэш) Экспорт
+
+ ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
+
+ НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ТН ВЭД. Загрузка данных в базу.'");
+
+ Кэш = КэшИзВременногоХранилища(АдресКэша);
+
+ ПараметрыПроцедуры = Новый Структура;
+ ПараметрыПроцедуры.Вставить("Кэш", Кэш);
+ ПараметрыПроцедуры.Вставить("ВыбранныеЭлементы", ВыбранныеЭлементы);
+ ПараметрыПроцедуры.Вставить("ОбновитьКэш", ОбновитьКэш);
+
+ ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
+ ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
+ ПараметрыВыполнения.ОжидатьЗавершение = 0;
+ ПараметрыВыполнения.ЗапуститьВФоне = Истина;
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ОблачныеКлассификаторы.ЗагрузитьВБазуДанныеТНВЭД",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
+
+КонецФункции
+
#КонецОбласти
#Область КлассификаторОКПД2
@@ -199,7 +212,7 @@
// Определяет, доступен ли ОКПД 2 для работы онлайн.
//
// Возвращаемое значение:
-// Булево - если доступен - Истина, иначе - Ложь.
+// Булево - доступность онлайн-подбора.
//
Функция ДоступенОнлайнПодборИзОКПД2() Экспорт
@@ -214,8 +227,7 @@
КонецЕсли;
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
- ПоддержкаПодключена
- = МодульИнтернетПоддержкаПользователей.ЗаполненыДанныеАутентификацииПользователяИнтернетПоддержки();
+ ПоддержкаПодключена = МодульИнтернетПоддержкаПользователей.ЗаполненыДанныеАутентификацииПользователяИнтернетПоддержки();
Если Не ПоддержкаПодключена Тогда
Возврат Ложь;
@@ -227,8 +239,7 @@
ОписаниеПараметровЗапроса.КоличествоЗаписей = 1;
ПараметрыКоманды = ОблачныеКлассификаторыСлужебный.ПараметрыЗапросаРазделыОКПД2(ОписаниеПараметровЗапроса);
-
- ДанныеСервиса = РаботаСНоменклатуройСлужебный.ВыполнитьКомандуСервиса(ПараметрыКоманды, Отказ);
+ РаботаСНоменклатуройСлужебный.ВыполнитьКомандуСервиса(ПараметрыКоманды, Отказ);
Если Отказ Тогда
ПолучитьСообщенияПользователю(Истина);
@@ -242,11 +253,11 @@
// Разделами являются элементы верхнего уровня иерархии.
//
// Параметры:
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьРазделыОКПД2ВФоне(УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
@@ -254,34 +265,32 @@
НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ОКПД 2. Получение разделов.'");
- ИмяПроцедуры = "ОблачныеКлассификаторы.ПолучитьРазделыОКПД2";
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, Неопределено, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ОблачныеКлассификаторы.ПолучитьРазделыОКПД2",
+ Неопределено,
+ ПараметрыВыполнения);
КонецФункции
// Получение подчиненных элементов классификатора.
//
// Параметры:
-// Код - Строка - код, для которого необходимо получить подчиненные элементы.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// Код - Строка - код, для которого необходимо получить подчиненные элементы.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьПодчиненныеЭлементыОКПД2ВФоне(Код, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ОКПД 2. Получение подчиненных.'");
-
- ИмяПроцедуры = "ОблачныеКлассификаторы.ПолучитьПодчиненныеЭлементыОКПД2";
ПараметрыПроцедуры = Новый Структура("Код", Код);
@@ -290,29 +299,30 @@
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ОблачныеКлассификаторы.ПолучитьПодчиненныеЭлементыОКПД2",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
// Получение элементов классификатора по строке поиска.
//
// Параметры:
-// СтрокаПоиска - Строка - значение для поиска в данных классификатора.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// СтрокаПоиска - Строка - значение для поиска в данных классификатора.
+// НомерСтраницы - Число - номер страницы для страничной загрузки.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ОбработатьПоисковыйЗапросОКПД2ВФоне(СтрокаПоиска, НомерСтраницы, УникальныйИдентификатор,
- ИдентификаторЗадания) Экспорт
-
+ ИдентификаторЗадания) Экспорт
+
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ОКПД 2. Получение подчиненных.'");
- ИмяПроцедуры = "ОблачныеКлассификаторы.ОбработатьПоисковыйЗапросОКПД2";
-
ПараметрыПроцедуры = Новый Структура("СтрокаПоиска, НомерСтраницы", СтрокаПоиска, НомерСтраницы);
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
@@ -320,31 +330,31 @@
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ОблачныеКлассификаторы.ОбработатьПоисковыйЗапросОКПД2",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
// Получение ветки элементов классификатора.
//
// Параметры:
-// Код - Строка - код, для которого необходимо получить ветку.
-// АдресКэша - Строка - адрес временного хранилища формы.
-// РежимВыбораЭлемента - Булево - признак открытия формы в режиме выбора.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// Код - Строка - код, для которого необходимо получить ветку.
+// АдресКэша - Строка - адрес временного хранилища формы.
+// РежимВыбораЭлемента - Булево - признак открытия формы в режиме выбора.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьВеткуОКПД2ВФоне(Код, АдресКэша, РежимВыбораЭлемента, УникальныйИдентификатор,
- ИдентификаторЗадания) Экспорт
-
+ ИдентификаторЗадания) Экспорт
+
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ОКПД 2. Получение части иерархии.'");
- ИмяПроцедуры = "ОблачныеКлассификаторы.ПолучитьВеткуОКПД2";
-
Кэш = КэшИзВременногоХранилища(АдресКэша);
ПараметрыПроцедуры = Новый Структура;
@@ -357,33 +367,34 @@
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ОблачныеКлассификаторы.ПолучитьВеткуОКПД2",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
// Загрузка данных подобранных элементов классификатора в базу.
//
// Параметры:
-// ПараметрыЗагрузки - Структура - содержит параметры загрузки элементов классификатора.
-// Ключи:
-// АдресКэша - Строка - Если загрузка вызвана из режима поиска то адрес кэша результата поискового запроса,
-// иначе - адрес временного хранилища формы
-// АдресОсновногоКэша - Строка - Адрес временного хранилища формы.
-// ВыбранныеЭлементы - Массив - Идентификаторы элементов классификатора, отмеченных к загрузке.
-// ЗагружатьСИерархией - Булево - Признак того, что помимо элементов, помеченных к загрузке, в базу
-// будут перенесены и все их предки.
-// ПереноситьПодчиненные - Булево - Признак того, что помимо элементов, помеченных к загрузке, в базу
-// будут перенесены все их потомки.
-//
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// ПараметрыЗагрузки - Структура - содержит параметры загрузки элементов классификатора:
+// * АдресКэша - Строка - если загрузка вызвана из режима поиска, то адрес кэша результата поискового
+// запроса, иначе - адрес временного хранилища формы.
+// * АдресДополнительногоКэша - Строка - адрес временного хранилища формы.
+// * ВыбранныеЭлементы - Массив из Число - идентификаторы элементов классификатора, отмеченных к загрузке.
+// * ЗагружатьСИерархией - Булево - признак того, что помимо элементов, помеченных к загрузке, в базу будут
+// перенесены и все их предки.
+// * ПереноситьПодчиненные - Булево - признак того, что помимо элементов, помеченных к загрузке, в базу будут
+// перенесены все их потомки.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// ОбновитьКэш - Булево - обновлять ли кэш результата поискового запроса.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция ЗагрузитьВБазуДанныеОКПД2ВФоне(ПараметрыЗагрузки, УникальныйИдентификатор,
- ИдентификаторЗадания, ОбновитьКэш) Экспорт
-
+Функция ЗагрузитьВБазуДанныеОКПД2ВФоне(ПараметрыЗагрузки, УникальныйИдентификатор, ИдентификаторЗадания,
+ ОбновитьКэш) Экспорт
+
Если Не ОблачныеКлассификаторы.РаботаСОблачнымиКлассификаторамиРазрешена() Тогда
ВызватьИсключение НСтр("ru = 'Нарушение прав доступа.'");
КонецЕсли;
@@ -395,15 +406,13 @@
НаименованиеЗадания = НСтр("ru = 'Облачный классификатор ОКПД 2. Загрузка данных в базу.'");
- ИмяПроцедуры = "ОблачныеКлассификаторы.ЗагрузитьВБазуДанныеОКПД2";
-
Кэш = КэшИзВременногоХранилища(АдресКэша);
- Если АдресКэша <> АдресДополнительногоКэша Тогда //загрузка происходит из режима списка
+ Если АдресКэша <> АдресДополнительногоКэша Тогда // Загрузка происходит из режима списка
ДополнительныйКэш = КэшИзВременногоХранилища(АдресДополнительногоКэша, Кэш);
Иначе
ДополнительныйКэш = Кэш;
- КонецЕсли;
+ КонецЕсли;
ПараметрыПроцедуры = Новый Структура;
ПараметрыПроцедуры.Вставить("Кэш", Кэш);
@@ -418,7 +427,9 @@
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ОблачныеКлассификаторы.ЗагрузитьВБазуДанныеОКПД2",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
@@ -464,7 +475,7 @@
// ДополнительныеПараметры - Неопределено, Структура из КлючИЗначение - дополнительные параметры.
//
// Возвращаемое значение:
-// см. ДлительныеОперации.ВыполнитьФункцию.
+// См. ДлительныеОперации.ВыполнитьФункцию.
//
Функция ПолучитьИерархиюЭлементовОКЕИВФоне(УникальныйИдентификатор, ИдентификаторЗадания,
ДополнительныеПараметры = Неопределено) Экспорт
@@ -477,10 +488,8 @@
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыВыполнения.ПрерватьВыполнениеЕслиОшибка = Истина;
- ИмяФункции = "ОблачныеКлассификаторы.ПолучитьИерархиюЭлементовОКЕИ";
-
Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
- ИмяФункции,
+ "ОблачныеКлассификаторы.ПолучитьИерархиюЭлементовОКЕИ",
ДополнительныеПараметры);
КонецФункции
@@ -494,7 +503,7 @@
// ДополнительныеПараметры - Неопределено, Структура из КлючИЗначение - дополнительные параметры.
//
// Возвращаемое значение:
-// см. ДлительныеОперации.ВыполнитьФункцию.
+// См. ДлительныеОперации.ВыполнитьФункцию.
//
Функция ЗагрузитьВБазуДанныеОКЕИВФоне(УникальныйИдентификатор, ИдентификаторЗадания, АдресВременногоХранилища,
ДополнительныеПараметры = Неопределено) Экспорт
@@ -507,10 +516,8 @@
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыВыполнения.ПрерватьВыполнениеЕслиОшибка = Истина;
- ИмяФункции = "ОблачныеКлассификаторы.ЗагрузитьВБазуДанныеОКЕИ";
-
Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
- ИмяФункции,
+ "ОблачныеКлассификаторы.ЗагрузитьВБазуДанныеОКЕИ",
ПолучитьИзВременногоХранилища(АдресВременногоХранилища),
ДополнительныеПараметры);
@@ -522,10 +529,10 @@
#Область СлужебныеПроцедурыИФункции
-// Отмена выполнения регламентного задания.
+// Отменяет выполнения регламентного задания.
//
// Параметры:
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
Процедура ОтменитьВыполнениеЗадания(ИдентификаторЗадания)
@@ -539,9 +546,11 @@
Функция КэшИзВременногоХранилища(АдресКэша, ЗначениеПоУмолчанию = Неопределено)
Кэш = ЗначениеПоУмолчанию;
+
Если ЭтоАдресВременногоХранилища(АдресКэша) Тогда
Кэш = ПолучитьИзВременногоХранилища(АдресКэша);
КонецЕсли;
+
Возврат Кэш;
КонецФункции
diff --git a/src/CommonModules/ОблачныеКлассификаторыУТ/Ext/Module.bsl b/src/CommonModules/ОблачныеКлассификаторыУТ/Ext/Module.bsl
index f84926f37..43b36ffea 100644
--- a/src/CommonModules/ОблачныеКлассификаторыУТ/Ext/Module.bsl
+++ b/src/CommonModules/ОблачныеКлассификаторыУТ/Ext/Module.bsl
@@ -60,9 +60,7 @@
#Область КлассификаторОКЕИ
// См. ОблачныеКлассификаторыПереопределяемый.ОпределитьЗагруженныеЭлементыОКЕИ.
-Функция ОпределитьЗагруженныеЭлементыОКЕИ(ДополнительныеПараметры = Неопределено) Экспорт
-
- Результат = Новый Соответствие;
+Процедура ОпределитьЗагруженныеЭлементыОКЕИ(СсылкиПоКоду, ДополнительныеПараметры = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
@@ -90,15 +88,13 @@
УстановитьПривилегированныйРежим(Ложь);
Пока ВыборкаДанных.Следующий() Цикл
- Результат.Вставить(СокрЛП(ВыборкаДанных.Код), ВыборкаДанных.Ссылка);
+ СсылкиПоКоду.Вставить(СокрЛП(ВыборкаДанных.Код), ВыборкаДанных.Ссылка);
КонецЦикла;
- Возврат Результат;
-
-КонецФункции
+КонецПроцедуры
// См. ОблачныеКлассификаторыПереопределяемый.ПроверитьЭлементОКЕИ.
-Функция ПроверитьЭлементОКЕИ(Строка, ДополнительныеПараметры = Неопределено) Экспорт
+Процедура ПроверитьЭлементОКЕИ(Строка, ДополнительныеПараметры = Неопределено, Отказ = Ложь) Экспорт
Если ДополнительныеПараметры <> Неопределено Тогда
Отбор = Неопределено;
@@ -111,19 +107,17 @@
КонецЕсли;
Если ТипЗнч(Отбор) = Тип("Массив") Тогда
- Возврат Отбор.Найти(ТипИзмеряемойВеличины) <> Неопределено;
+ Отказ = (Отбор.Найти(ТипИзмеряемойВеличины) = Неопределено);
Иначе
- Возврат Отбор = ТипИзмеряемойВеличины;
+ Отказ = (Отбор <> ТипИзмеряемойВеличины);
КонецЕсли;
КонецЕсли;
КонецЕсли;
- Возврат Истина;
-
-КонецФункции
+КонецПроцедуры
// См. ОблачныеКлассификаторыПереопределяемый.СоздатьОбновитьЭлементОКЕИ.
-Функция СоздатьОбновитьЭлементОКЕИ(ДанныеСервиса, НоваяСсылка = Ложь) Экспорт
+Процедура СоздатьОбновитьЭлементОКЕИ(ДанныеСервиса, Ссылка = Неопределено, ЭтоНовый = Ложь) Экспорт
Если ЗначениеЗаполнено(ДанныеСервиса.Ссылка) Тогда
Блокировка = Новый БлокировкаДанных;
@@ -133,11 +127,11 @@
СправочникОбъект = ДанныеСервиса.Ссылка.ПолучитьОбъект();
Если Не СправочникОбъект.Владелец = Справочники.НаборыУпаковок.БазовыеЕдиницыИзмерения Тогда
- Возврат Неопределено;
+ Возврат;
КонецЕсли;
Иначе
- НоваяСсылка = Истина;
+ ЭтоНовый = Истина;
СправочникОбъект = Справочники.УпаковкиЕдиницыИзмерения.СоздатьЭлемент();
СправочникОбъект.Владелец = Справочники.НаборыУпаковок.БазовыеЕдиницыИзмерения;
@@ -168,9 +162,9 @@
СправочникОбъект.Записать();
- Возврат СправочникОбъект.Ссылка;
+ Ссылка = СправочникОбъект.Ссылка;
-КонецФункции
+КонецПроцедуры
#КонецОбласти
diff --git a/src/CommonModules/ОбменМобильныеПереопределяемый/Ext/Module.bsl b/src/CommonModules/ОбменМобильныеПереопределяемый/Ext/Module.bsl
index 7c3bfe231..dab58daaf 100644
--- a/src/CommonModules/ОбменМобильныеПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/ОбменМобильныеПереопределяемый/Ext/Module.bsl
@@ -313,6 +313,14 @@
УстановитьПривилегированныйРежим(Истина);
+ Для Каждого ПолеОтбора Из НаборЗаписей.Отбор Цикл
+ Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ПолеОтбора.Значение) И ЗначениеЗаполнено(ПолеОтбора.Значение) Тогда
+ Если Не ОбщегоНазначения.СсылкаСуществует(ПолеОтбора.Значение) Тогда
+ Возврат;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+
Если ТипЗнч(НаборЗаписей) = Тип("РегистрСведенийНаборЗаписей.ШтрихкодыНоменклатуры") Тогда
НаборЗаписейШтрихкоды = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей();
diff --git a/src/CommonModules/ОбменСБанками/Ext/Module.bsl b/src/CommonModules/ОбменСБанками/Ext/Module.bsl
index 2a11aec6c..c6f0697ff 100644
--- a/src/CommonModules/ОбменСБанками/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанками/Ext/Module.bsl
@@ -1468,6 +1468,20 @@
#КонецОбласти
+#Область ДляВызоваИзДругихПодсистем
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВключитьАвтоматическоеОбновлениеСпискаБанков");
+ Методы.Вставить("ОбработатьРегистрПодписываемыеВидыЭД");
+ Методы.Вставить("ПеренестиСтатусыЭлектронныхПодписей");
+ Методы.Вставить("УстановкаПараметровСеанса");
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
diff --git a/src/CommonModules/ОбменСБанкамиSberAPIСлужебный/Ext/Module.bsl b/src/CommonModules/ОбменСБанкамиSberAPIСлужебный/Ext/Module.bsl
index 263499191..b6489881e 100644
--- a/src/CommonModules/ОбменСБанкамиSberAPIСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанкамиSberAPIСлужебный/Ext/Module.bsl
@@ -5,6 +5,25 @@
#Область СлужебныйПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВыполнитьАутентификациюПоЛогину", Истина);
+ Методы.Вставить("ОтправитьОдноразовыйПароль", Истина);
+ Методы.Вставить("ОтправитьПлатежныеПорученияПоСчету", Истина);
+ Методы.Вставить("ПолучитьВыпискуБанка", Истина);
+ Методы.Вставить("ПолучитьИУстановитьСтатусДокумента", Истина);
+ Методы.Вставить("ПолучитьСертификатыОрганизацииИДанныеПользователя", Истина);
+ Методы.Вставить("ПолучитьСтатусыДокументов", Истина);
+ Методы.Вставить("ПолучитьТокенДоступа", Истина);
+ Методы.Вставить("ПроверитьНаличиеДоступаКДанным", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область ПлатежныеПоручения
// Отправляет платежные поручения в банк
@@ -769,8 +788,13 @@
ПодробноеПредставлениеОшибки = СтрШаблон(ШаблонОшибки, ТекстОшибки, ТекстСообщения);
ОбменСБанкамиSberAPIСлужебныйКлиентСервер.ОбработатьОшибку(
ВидОперации, ПодробноеПредставлениеОшибки, ПодробноеПредставлениеОшибки);
-
- ВызватьИсключение ТекстОшибки;
+
+ // Проверим на наличие специальной ошибки
+ Если Не ЕстьСпециальнаяОбработкаОшибкиБанка(ТекстСообщения, ПараметрыВозврата) Тогда
+
+ ВызватьИсключение ТекстОшибки;
+
+ КонецЕсли;
КонецЕсли;
@@ -819,18 +843,22 @@
ПодробноеПредставлениеОшибки = СтрШаблон(ШаблонОшибки, ТекстОшибки, ТекстСообщения);
ОбменСБанкамиSberAPIСлужебныйКлиентСервер.ОбработатьОшибку(
ВидОперации, ПодробноеПредставлениеОшибки, ПодробноеПредставлениеОшибки);
-
+
Если СтрНайти(ВРег(ПодробноеПредставлениеОшибки), ВРег("ERR_SECURE_CONNECT_FAIL")) > 0
Или СтрНайти(ВРег(ПодробноеПредставлениеОшибки), ВРег("ERR_ACCESS_DENIED")) > 0
Или СтрНайти(ВРег(ПодробноеПредставлениеОшибки), ВРег("CERTIFICATE_ACCESS_EXCEPTION")) > 0
Или СтрНайти(ВРег(ПодробноеПредставлениеОшибки), ВРег("The SSL certificate error")) > 0
- Или СтрНайти(ВРег(ПодробноеПредставлениеОшибки), ВРег("Forbidden certificate")) > 0
- Или СтрНайти(ВРег(ПодробноеПредставлениеОшибки), ВРег("No required SSL certificate was sent")) > 0 Тогда
+ Или СтрНайти(ВРег(ПодробноеПредставлениеОшибки), ВРег("Forbidden certificate")) > 0 Тогда
// Для данных ошибок нужно выводить специальное окно ошибки интернет-соединения.
ТекстОшибки = ПодробноеПредставлениеОшибки;
КонецЕсли;
- ВызватьИсключение ТекстОшибки;
+ // Проверим на наличие специальной ошибки
+ Если Не ЕстьСпециальнаяОбработкаОшибкиБанка(ТекстСообщения, ПараметрыВозврата) Тогда
+
+ ВызватьИсключение ТекстОшибки;
+
+ КонецЕсли;
КонецЕсли;
@@ -894,7 +922,12 @@
ОбменСБанкамиSberAPIСлужебныйКлиентСервер.ОбработатьОшибку(
ВидОперации, ТекстОшибки, КраткоеПредставлениеОшибки, Параметры.НастройкаОбмена);
- ВызватьИсключение КраткоеПредставлениеОшибки;
+ // Проверим на наличие специальной ошибки
+ Если Не ЕстьСпециальнаяОбработкаОшибкиБанка(ПодробноеПредставлениеОшибки, ПараметрыВозврата) Тогда
+
+ ВызватьИсключение КраткоеПредставлениеОшибки;
+
+ КонецЕсли;
КонецЕсли;
@@ -1012,11 +1045,6 @@
JSON = ОбщегоНазначения.JSONВЗначение(РезультатВыполнения.Тело, , Ложь);
ПредыдущийКлиентскийСекретОбновленный = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(JSON, "clientSecret", "");
- Если ПустаяСтрока(ПредыдущийКлиентскийСекретОбновленный) Тогда
- Возврат Ложь;
- КонецЕсли;
-
- Возврат Истина;
ИначеЕсли ЗначениеЗаполнено(РезультатВыполнения.КодСостояния) Тогда
@@ -1028,11 +1056,17 @@
ТекстОшибки = СтрШаблон(Шаблон, ПодробноеПредставлениеОшибки);
ОбменСБанкамиSberAPIСлужебныйКлиентСервер.ОбработатьОшибку(ВидОперации, ТекстОшибки);
- Возврат Ложь;
+ ТекстОшибкиНРег = НРег(ТекстОшибки);
+ Если СтрНайти(ТекстОшибкиНРег, "400") <> 0
+ И СтрНайти(ТекстОшибкиНРег, "no required ssl certificate was sent") <> 0 Тогда
+
+ Возврат "ОшибкаПароляTLS";
+
+ КонецЕсли;
КонецЕсли;
- Возврат Ложь;
+ Возврат "";
КонецФункции
@@ -1365,6 +1399,26 @@
#Область СлужебныеПроцедурыИФункции
+// Для определенных ошибок банка нужно вывести пользователю поясняющее уведомление
+// и не вызывать исключение.
+Функция ЕстьСпециальнаяОбработкаОшибкиБанка(ТекстСообщения, ПараметрыВозврата)
+
+ // Проверим на наличие ошибки, часто указывающей на наличие неподтвержденных данных телефона или
+ // электронной почты в личном кабинете банка
+ Если СтрНайти(ТекстСообщения, "500") <> 0
+ И СтрНайти(ТекстСообщения, "234.1-1045") <> 0 Тогда
+
+ ПараметрыВозврата.Вставить("НеобходимоПодтверждениеКонтактныхДанныхВЛК", Истина);
+ Возврат Истина;
+
+ Иначе
+
+ Возврат Ложь;
+
+ КонецЕсли;
+
+КонецФункции
+
// Выполняет попытку отзыва токена доступа.
//
// Параметры:
@@ -1871,20 +1925,12 @@
МассивScope.Добавить("nonce");
МассивScope.Добавить("sid2");
МассивScope.Добавить("sub");
- МассивScope.Добавить("BANK_CONTROL_STATEMENT");
МассивScope.Добавить("BUSINESS_CARDS_TRANSFER");
МассивScope.Добавить("CERTIFICATE_REQUEST");
- МассивScope.Добавить("CONFIRMATORY_DOCUMENTS_INQUIRY");
МассивScope.Добавить("CORPORATE_CARDS");
МассивScope.Добавить("CRYPTO_CERT_REQUEST_EIO");
- МассивScope.Добавить("CURRENCY_OPERATION_DETAILS");
- МассивScope.Добавить("CURR_CONTROL_INFO_REQ");
- МассивScope.Добавить("CURR_CONTROL_MESSAGE_FROM_BANK");
- МассивScope.Добавить("CURR_CONTROL_MESSAGE_TO_BANK");
МассивScope.Добавить("DICT");
МассивScope.Добавить("FILES");
- МассивScope.Добавить("GENERIC_LETTER_FROM_BANK");
- МассивScope.Добавить("GENERIC_LETTER_TO_BANK");
МассивScope.Добавить("GET_CLIENT_ACCOUNTS");
МассивScope.Добавить("GET_CORRESPONDENTS");
МассивScope.Добавить("GET_CRYPTO_INFO");
@@ -1899,13 +1945,10 @@
МассивScope.Добавить("SALARY_AGREEMENT");
МассивScope.Добавить("accounts");
МассивScope.Добавить("aud");
- МассивScope.Добавить("email");
МассивScope.Добавить("individualExecutiveAgency");
МассивScope.Добавить("inn");
МассивScope.Добавить("iss");
МассивScope.Добавить("name");
- МассивScope.Добавить("offerExpirationDate");
- МассивScope.Добавить("orgActualAddress");
МассивScope.Добавить("orgFullName");
МассивScope.Добавить("orgJuridicalAddress");
МассивScope.Добавить("orgKpp");
@@ -1913,10 +1956,7 @@
МассивScope.Добавить("orgLawFormShort");
МассивScope.Добавить("orgOgrn");
МассивScope.Добавить("orgOktmo");
- МассивScope.Добавить("phone_number");
МассивScope.Добавить("sub");
- МассивScope.Добавить("terBank");
- МассивScope.Добавить("userPosition");
МассивScope.Добавить("userSignatureType");
Данные.Вставить("scope", МассивScope);
Данные.Вставить("sessionId", ИдентификаторСессии);
diff --git a/src/CommonModules/ОбменСБанкамиSberAPIСлужебныйКлиент/Ext/Module.bsl b/src/CommonModules/ОбменСБанкамиSberAPIСлужебныйКлиент/Ext/Module.bsl
index 0028fc95e..46a528e2c 100644
--- a/src/CommonModules/ОбменСБанкамиSberAPIСлужебныйКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанкамиSberAPIСлужебныйКлиент/Ext/Module.bsl
@@ -1907,14 +1907,16 @@
// Нужно запросить информацию по доступным счетам
Организация = Неопределено;
Банк = Неопределено;
+ ИспользуетсяКриптография = Неопределено;
Если ЗначениеЗаполнено(ДополнительныеПараметры.НастройкаОбмена) Тогда
- РеквизитыНастройкиОбмена = Новый Структура("Организация,Банк");
+ РеквизитыНастройкиОбмена = Новый Структура("Организация,Банк,ИспользуетсяКриптография");
ОбменСБанкамиСлужебныйВызовСервера.ПолучитьЗначенияРеквизитовНастройкиОбмена(
ДополнительныеПараметры.НастройкаОбмена,
РеквизитыНастройкиОбмена);
Организация = РеквизитыНастройкиОбмена.Организация;
Банк = РеквизитыНастройкиОбмена.Банк;
+ ИспользуетсяКриптография = РеквизитыНастройкиОбмена.ИспользуетсяКриптография;
КонецЕсли;
@@ -1932,12 +1934,48 @@
Организация,
Банк);
- ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Неопределено);
- ПараметрыОжидания.ВыводитьОкноОжидания = Истина;
ПослеПроверкиДоступаКДаннымПослеТестаНастройки = Новый ОписаниеОповещения(
"ПослеПроверкиДоступаКДаннымПослеТестаНастройки", ЭтотОбъект, ДополнительныеПараметры);
- ДлительныеОперацииКлиент.ОжидатьЗавершение(
- РезультатВыполнения, ПослеПроверкиДоступаКДаннымПослеТестаНастройки, ПараметрыОжидания);
+
+ ТребуетсяАутентификация = Неопределено;
+ Если Не ЗначениеЗаполнено(РезультатВыполнения) Тогда
+
+ ВыполнитьОбработкуОповещения(ПослеПроверкиДоступаКДаннымПослеТестаНастройки, Неопределено);
+
+ ИначеЕсли РезультатВыполнения.Свойство("ТребуетсяАутентификация", ТребуетсяАутентификация) И ТребуетсяАутентификация = Истина Тогда
+
+ ОповещениеПослеАутентификации = Новый ОписаниеОповещения(
+ "ПровестиТестНастройкиПослеАутентификации", ЭтотОбъект, ДополнительныеПараметры);
+
+ Если ИспользуетсяКриптография = Истина Тогда
+
+ Параметры = ПараметрыАутентификацииНаТокене();
+ Параметры.ОповещениеОВыполнении = ОповещениеПослеАутентификации;
+ Параметры.ИмяВнешнегоМодуля = ДополнительныеПараметры.ИмяВнешнегоМодуля;
+ Параметры.НастройкаОбмена = ДополнительныеПараметры.НастройкаОбмена;
+ Параметры.ЭтоТест = Истина;
+
+ АутентифицироватьсяНаТокене(Параметры);
+
+ Иначе
+
+ ПараметрыАутентификацииПоЛогину = ПараметрыАутентификацииПоЛогину();
+ ПараметрыАутентификацииПоЛогину.Оповещение = ОповещениеПослеАутентификации;
+ ПараметрыАутентификацииПоЛогину.ИмяВнешнегоМодуля = ДополнительныеПараметры.ИмяВнешнегоМодуля;
+ ПараметрыАутентификацииПоЛогину.НастройкаОбмена = ДополнительныеПараметры.НастройкаОбмена;
+
+ ВыполнитьАутентификациюПоЛогину(ПараметрыАутентификацииПоЛогину);
+
+ КонецЕсли;
+
+ Иначе
+
+ ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Неопределено);
+ ПараметрыОжидания.ВыводитьОкноОжидания = Истина;
+ ДлительныеОперацииКлиент.ОжидатьЗавершение(
+ РезультатВыполнения, ПослеПроверкиДоступаКДаннымПослеТестаНастройки, ПараметрыОжидания);
+
+ КонецЕсли;
КонецПроцедуры
@@ -2108,6 +2146,16 @@
ПараметрыВозврата = ПолучитьИзВременногоХранилища(РезультатЗадания.АдресРезультата);
УдалитьИзВременногоХранилища(РезультатЗадания.АдресРезультата);
+
+ // Проверим на наличие специальной ошибки банка
+ Если ВыполнитьСпециальнуюОбработкуОшибкиБанка(ПараметрыВозврата) Тогда
+
+ ВыполнитьОбработкуОповещения(
+ ДополнительныеПараметры.ОповещениеПослеБазовойАутентификации, ДополнительныеПараметры.СтруктураВозврата);
+ Возврат;
+
+ КонецЕсли;
+
Если ПараметрыВозврата.ТребуетсяТокен Тогда
ДополнительныеПараметры.СтруктураВозврата.ТребуетсяТокен = Истина;
@@ -2202,6 +2250,15 @@
ПараметрыВозврата = ПолучитьИзВременногоХранилища(РезультатЗадания.АдресРезультата);
УдалитьИзВременногоХранилища(РезультатЗадания.АдресРезультата);
+ // Проверим на наличие специальной ошибки банка
+ Если ВыполнитьСпециальнуюОбработкуОшибкиБанка(ПараметрыВозврата) Тогда
+
+ ВыполнитьОбработкуОповещения(
+ ДополнительныеПараметры.ОповещениеПослеБазовойАутентификации, ДополнительныеПараметры.СтруктураВозврата);
+ Возврат;
+
+ КонецЕсли;
+
Если ЗначениеЗаполнено(ДополнительныеПараметры.НастройкаОбмена) Тогда
ПараметрыСессии = Новый Структура("ИдентификаторСессии, ФродПараметры, Логин");
@@ -3674,7 +3731,7 @@
#КонецОбласти
- #Область Авторизация
+#Область Авторизация
// Функция проверяет, получен ли ранее пароль для авторизации на сервере банка.
//
@@ -3839,4 +3896,28 @@
#КонецОбласти
+#Область Прочее
+
+Функция ВыполнитьСпециальнуюОбработкуОшибкиБанка(ПараметрыВозврата)
+
+ // Проверим на ошибку банка, часто указывающую на наличие неподтвержденных данных телефона или
+ // электронной почты в личном кабинете банка
+ НеобходимоПодтверждениеКонтактныхДанныхВЛК = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыВозврата, "НеобходимоПодтверждениеКонтактныхДанныхВЛК");
+ Если НеобходимоПодтверждениеКонтактныхДанныхВЛК = Истина Тогда
+
+ ТекстСообщения = НСтр("ru = 'Возможно, необходимо подтвердить телефон или электронную почту в личном кабинете банка.'");
+ ПоказатьПредупреждение(, ТекстСообщения, , НСтр("ru = 'Неудачная попытка авторизации.'"));
+
+ Возврат Истина;
+
+ Иначе
+
+ Возврат Ложь;
+
+ КонецЕсли;
+
+КонецФункции
+
+#КонецОбласти
+
#КонецОбласти
diff --git a/src/CommonModules/ОбменСБанкамиSberAPIСлужебныйКлиентСервер/Ext/Module.bsl b/src/CommonModules/ОбменСБанкамиSberAPIСлужебныйКлиентСервер/Ext/Module.bsl
index faf311421..c39864286 100644
--- a/src/CommonModules/ОбменСБанкамиSberAPIСлужебныйКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанкамиSberAPIСлужебныйКлиентСервер/Ext/Module.bsl
@@ -575,6 +575,11 @@
Процедура ПоложитьДетальноеСообщениеВТекстОтвета(ДанныеСообщения, Данные)
ТекстПоля = "";
+
+ Если Не ТипЗнч(Данные) = Тип("Структура") Тогда
+ Возврат;
+ КонецЕсли;
+
Если Данные.Свойство("fields") И ТипЗнч(Данные.fields) = Тип("Массив") Тогда
Поля = Новый Массив;
Для Каждого Поле Из Данные.fields Цикл
diff --git a/src/CommonModules/ОбменСБанкамиДепозиты/Ext/Module.bsl b/src/CommonModules/ОбменСБанкамиДепозиты/Ext/Module.bsl
index cd1bebe29..2f538acc3 100644
--- a/src/CommonModules/ОбменСБанкамиДепозиты/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанкамиДепозиты/Ext/Module.bsl
@@ -24,7 +24,8 @@
// * АдресХранилищаПредложенийБанков - Строка - адрес временного хранилища с данными о предложениях банков;
// * ДатаОбновленияПредложений - Дата - дата обновления предложений банка.
// * ВыбранноеПредложение - Строка - уникальный идентификатор депозитного продукта банка.
-// * ПоказыватьПанельРасчетаДепозитов - Булево - Если Истина, панель расчета депозитов откроется при открытии формы размещения.
+// * ПоказыватьПанельРасчетаДепозитов - Булево - Если Истина, панель расчета депозитов
+// откроется при открытии формы размещения.
//
Функция ПараметрыДепозитногоКалькулятора() Экспорт
@@ -163,7 +164,8 @@
// Возвращаемое значение:
// Структура:
// * ЕстьПредложенияБанков - Булево - если Истина, были получены данные предложений банков.
-// * ОшибкаПолученияПредложений - Строка - содержит текст ошибки, если не удалось получить предложения ни от одного банка.
+// * ОшибкаПолученияПредложений - Строка - содержит текст ошибки, если не удалось получить
+// предложения ни от одного банка.
//
Функция ПроверитьПродуктыБанковИЗавершитьИнициализацию(Форма) Экспорт
@@ -470,7 +472,7 @@
ЭлементОжиданиеКартинка = ЭлементыФормы.Добавить(ИмяЭлементаОжидание, ТипДекорацияФормы,
ЭлементИнформацияОписание);
ЭлементОжиданиеКартинка.Вид = ВидДекорацииФормы.Картинка;
- ЭлементОжиданиеКартинка.Картинка = БиблиотекаКартинок.ДлительнаяОперация32БЭД;
+ ЭлементОжиданиеКартинка.Картинка = БиблиотекаКартинок.ДлительнаяОперация32ОбменСБанками;
ИмяЭлементаОшибка = ОбменСБанкамиДепозитыСлужебныйКлиентСервер.ИмяЭлементаФормы("ОшибкаКартинка");
ЭлементОшибкаКартинка = ЭлементыФормы.Добавить(ИмяЭлементаОшибка, ТипДекорацияФормы,
@@ -509,9 +511,10 @@
СтраницаРасчетДепозита.ВертикальныйИнтервал = ИнтервалМеждуЭлементамиФормы.Половинный;
СтраницаРасчетДепозита.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
- ИмяГруппыГоризонтальнаяПодвал = ОбменСБанкамиДепозитыСлужебныйКлиентСервер.ИмяЭлементаФормы("ГоризонтальнаяГруппаПодвал");
+ ИмяГруппыГоризонтальнаяПодвал = ОбменСБанкамиДепозитыСлужебныйКлиентСервер.ИмяЭлементаФормы(
+ "ГоризонтальнаяГруппаПодвал");
- ГоризонтальнаяГруппаПодвал = ЭлементыФормы.Добавить(ИмяГруппыГоризонтальнаяПодвал, ТипГруппаФормы,
+ ГоризонтальнаяГруппаПодвал = ЭлементыФормы.Добавить(ИмяГруппыГоризонтальнаяПодвал, ТипГруппаФормы,
СтраницаРасчетДепозита);
ГоризонтальнаяГруппаПодвал.Вид = ВидГруппыФормы.ОбычнаяГруппа;
ГоризонтальнаяГруппаПодвал.Видимость = Ложь;
@@ -519,9 +522,10 @@
ГоризонтальнаяГруппаПодвал.ОтображатьЗаголовок = Ложь;
ГоризонтальнаяГруппаПодвал.РастягиватьПоГоризонтали = Истина;
- ИмяГруппыГоризонтальнаяОписание = ОбменСБанкамиДепозитыСлужебныйКлиентСервер.ИмяЭлементаФормы("ГоризонтальнаяГруппаОписание");
+ ИмяГруппыГоризонтальнаяОписание = ОбменСБанкамиДепозитыСлужебныйКлиентСервер.ИмяЭлементаФормы(
+ "ГоризонтальнаяГруппаОписание");
- ГоризонтальнаяГруппа = ЭлементыФормы.Добавить(ИмяГруппыГоризонтальнаяОписание, ТипГруппаФормы,
+ ГоризонтальнаяГруппа = ЭлементыФормы.Добавить(ИмяГруппыГоризонтальнаяОписание, ТипГруппаФормы,
СтраницаРасчетДепозита);
ГоризонтальнаяГруппа.Вид = ВидГруппыФормы.ОбычнаяГруппа;
ГоризонтальнаяГруппа.Видимость = Ложь;
@@ -530,7 +534,7 @@
ИмяГруппыВсплывающая = ОбменСБанкамиДепозитыСлужебныйКлиентСервер.ИмяЭлементаФормы("ВсплывающаяГруппа");
- ВсплывающаяГруппа = ЭлементыФормы.Добавить(ИмяГруппыВсплывающая, ТипГруппаФормы,
+ ВсплывающаяГруппа = ЭлементыФормы.Добавить(ИмяГруппыВсплывающая, ТипГруппаФормы,
ГоризонтальнаяГруппа);
ВсплывающаяГруппа.Вид = ВидГруппыФормы.ОбычнаяГруппа;
ВсплывающаяГруппа.Видимость = Ложь;
@@ -554,7 +558,8 @@
СоздатьЭлементПараметраСтавка(ЭлементыФормы, СтраницаРасчетДепозита);
ИмяГруппыПараметров = ОбменСБанкамиДепозитыСлужебныйКлиентСервер.ИмяЭлементаФормы("ГруппаПараметровДоходности");
- ГруппаПараметровДоходности = ЭлементыФормы.Добавить(ИмяГруппыПараметров, Тип("ГруппаФормы"), СтраницаРасчетДепозита);
+ ГруппаПараметровДоходности = ЭлементыФормы.Добавить(ИмяГруппыПараметров, Тип("ГруппаФормы"),
+ СтраницаРасчетДепозита);
ГруппаПараметровДоходности.Вид = ВидГруппыФормы.ОбычнаяГруппа;
ГруппаПараметровДоходности.Отображение = ОтображениеОбычнойГруппы.Нет;
ГруппаПараметровДоходности.ОтображатьЗаголовок = Ложь;
diff --git a/src/CommonModules/ОбменСБанкамиДепозитыСлужебный/Ext/Module.bsl b/src/CommonModules/ОбменСБанкамиДепозитыСлужебный/Ext/Module.bsl
index 29d2994c4..534c1562d 100644
--- a/src/CommonModules/ОбменСБанкамиДепозитыСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанкамиДепозитыСлужебный/Ext/Module.bsl
@@ -5,6 +5,19 @@
#Область СлужебныйПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗапроситьРасчетДепозитаВБанке", Истина);
+ Методы.Вставить("ОбновитьДанныеДепозитныхПродуктов", Истина);
+ Методы.Вставить("ОстаткиПоСчетамВыписки", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область ДепозитныеПродукты
Процедура ОбновитьДанныеДепозитныхПродуктов(ОбновитьВсеБанки) Экспорт
diff --git a/src/CommonModules/ОбменСБанкамиИнтеграцияСобытия/Ext/Module.bsl b/src/CommonModules/ОбменСБанкамиИнтеграцияСобытия/Ext/Module.bsl
index 91ec03b4c..34d167be9 100644
--- a/src/CommonModules/ОбменСБанкамиИнтеграцияСобытия/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанкамиИнтеграцияСобытия/Ext/Module.bsl
@@ -69,10 +69,6 @@
//
Процедура ПриДобавленииСерверныхОповещений(Оповещения) Экспорт
- Если Не ОбщегоНазначенияБЭД.ДоступныСерверныеОповещения() Тогда
- Возврат;
- КонецЕсли;
-
СостояниеОбменаСБанками = ОбменСБанкамиСлужебный.ТекущееСостояниеОбменаСБанками();
Если Не СостояниеОбменаСБанками.ЕстьПравоЧтенияДанных Тогда
diff --git a/src/CommonModules/ОбменСБанкамиСлужебный/Ext/Module.bsl b/src/CommonModules/ОбменСБанкамиСлужебный/Ext/Module.bsl
index c03b9d544..ece794de0 100644
--- a/src/CommonModules/ОбменСБанкамиСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанкамиСлужебный/Ext/Module.bsl
@@ -6,6 +6,62 @@
#Область СлужебныйПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("АвтоматическоеПолучениеВыписки", Истина);
+ Методы.Вставить("АвтоматическоеПолучениеВыпискиСНастройками", Истина);
+ Методы.Вставить("ВыполнитьАутентификациюПоЛогинуСбербанк", Истина);
+ Методы.Вставить("ЗагрузитьСписокБанковССайта", Истина);
+ Методы.Вставить("ЗагрузитьСписокDirectBank", Истина);
+ Методы.Вставить("НайтиВыпискиЗаПроизвольныйПериод", Истина);
+ Методы.Вставить("ОбновитьДанныеОткрытойСессииОбмена", Истина);
+ Методы.Вставить("ОбработатьЭлектронныеДокументы", Истина);
+ Методы.Вставить("ОпределитьИдентификаторВКСбербанк", Истина);
+ Методы.Вставить("ОтправитьЗапросВыпискиАсинхронныйОбмен", Истина);
+ Методы.Вставить("ОтправитьЗапросЗондВБанк", Истина);
+ Методы.Вставить("ОтправитьЗапросИПолучитьСсылкуДляПодписанияПоSMS", Истина);
+ Методы.Вставить("ОтправитьЗапросНаГенерациюSMSСбербанк", Истина);
+ Методы.Вставить("ОтправитьЗапросНаПроверкуSMSСбербанк", Истина);
+ Методы.Вставить("ОтправитьЗапросНовыхДокументовСбербанк", Истина);
+ Методы.Вставить("ОтправитьЗапросСостоянияЭДВБанк", Истина);
+ Методы.Вставить("ОтправитьЗапросСтатусаПлатежногоДокумента", Истина);
+ Методы.Вставить("ОтправитьЗапросыСостоянийЭДВБанк", Истина);
+ Методы.Вставить("ОтправитьЗапросыСтатусовЗапросовПоЛогинуСбербанк", Истина);
+ Методы.Вставить("ОтправкаДокументовВБанкАсинхронныйОбмен", Истина);
+ Методы.Вставить("ОтправитьДокументыПоЛогинуВСбербанк", Истина);
+ Методы.Вставить("ОтправитьПлатежныеПорученияПоСчетуFintech", Истина);
+ Методы.Вставить("ОтправитьТестовыйЗапросВыпискиАсинхронныйОбмен", Истина);
+ Методы.Вставить("Пауза", Истина);
+ Методы.Вставить("ПолучитьВыпискуБанкаFintech", Истина);
+ Методы.Вставить("ПолучитьВыпискуСинхронныйОбмен", Истина);
+ Методы.Вставить("ПолучитьИдентификаторКриптопрофиляСбербанк", Истина);
+ Методы.Вставить("ПолучитьИзвещениеОСостоянииЭДАсинхронно", Истина);
+ Методы.Вставить("ПолучитьИзвещенияОСостоянияхЭДАсинхронно", Истина);
+ Методы.Вставить("ПолучитьИнформациюОВнешнейКомпоненте", Истина);
+ Методы.Вставить("ПолучитьНовыеДокументыИзБанка", Истина);
+ Методы.Вставить("ПолучитьРезультатПроверкиSMSСбербанк", Истина);
+ Методы.Вставить("ПолучитьСтатусДокумента", Истина);
+ Методы.Вставить("ПолучитьСтатусыДокументовFintech", Истина);
+ Методы.Вставить("ПолучитьСтатусыЗапросовПоЛогинуСбербанк", Истина);
+ Методы.Вставить("ПробноеПолучениеВыпискиFintech", Истина);
+ Методы.Вставить("ПрочитатьОтветСбербанка", Истина);
+ Методы.Вставить("ПрочитатьСобытияЖурналаРегистрации", Истина);
+ Методы.Вставить("СменитьПарольСбербанк", Истина);
+ Методы.Вставить("СинхронизироватьДокументыСбербанк", Истина);
+ Методы.Вставить("СоздатьНастройкуОбмена", Истина);
+ Методы.Вставить("СформироватьЗапросПодписанияПоSMS", Истина);
+ Методы.Вставить("СформироватьЗапросыВыписокСбербанк", Истина);
+ Методы.Вставить("СформироватьЗапросыСостоянийЭД", Истина);
+ Методы.Вставить("СформироватьИОтправитьПакетыВБанк", Истина);
+ Методы.Вставить("УстановитьМаршрутПодписанияПоследнихПлатежныхДокументов", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
Функция ВидыДокументовПодписываемыхПоМаршруту() Экспорт
Результат = Новый Массив;
@@ -3683,13 +3739,8 @@
Если ДанныеВозврата.ПолученныеПисьма.Количество() Тогда
УстановитьКонстантуПисьмаОбменСБанками();
- Если ОбщегоНазначенияБЭД.ДоступныСерверныеОповещения() Тогда
- ИмяОповещения = ОбменСБанкамиСлужебныйКлиентСервер.ИмяОповещенияОНовыхПисьмах();
- МодульОповещений = ОбщегоНазначения.ОбщийМодуль("СерверныеОповещения");
- УстановитьПривилегированныйРежим(Истина);
- МодульОповещений.ОтправитьСерверноеОповещение(ИмяОповещения, ДанныеВозврата.ПолученныеПисьма, Неопределено);
- УстановитьПривилегированныйРежим(Ложь);
- КонецЕсли;
+ ИмяОповещения = ОбменСБанкамиСлужебныйКлиентСервер.ИмяОповещенияОНовыхПисьмах();
+ ОбщегоНазначенияБЭД.ОтправитьСерверноеОповещение(ИмяОповещения, ДанныеВозврата.ПолученныеПисьма, Неопределено);
КонецЕсли;
Если АдресРезультата <> Неопределено Тогда
@@ -4236,8 +4287,8 @@
Если ФоновоеЗадание = Неопределено Тогда
Параметры = Новый Массив;
Параметры.Добавить(КоличествоСекунд);
- ИмяМетода = "ОбменСБанкамиСлужебный.Пауза";
- ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений(ИмяМетода, Параметры);
+ ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений("ОбменСБанкамиСлужебный.Пауза",
+ Параметры);
ФоновоеЗадание.ОжидатьЗавершенияВыполнения(КоличествоСекунд);
Иначе
ФоновоеЗадание.ОжидатьЗавершенияВыполнения(КоличествоСекунд)
@@ -7908,9 +7959,7 @@
Возврат;
КонецЕсли;
- Если ДатыОбмена.ДатаНачала > ДатыОбмена.ДатаОкончания Тогда
- ДатыОбмена.ДатаНачала = НачалоДня(ДатыОбмена.ДатаОкончания);
- КонецЕсли;
+ ПроверитьИсправитьДатыОбмена(ДатыОбмена, НастройкаОбмена);
ПолучитьВыпискуАвтоматически(НастройкаОбмена, ДатыОбмена, ВидВыписки);
Исключение
@@ -9515,10 +9564,6 @@
//
Процедура ПриОтправкеСерверногоОповещения(ИмяОповещения, ВариантыПараметров) Экспорт
- Если Не ОбщегоНазначенияБЭД.ДоступныСерверныеОповещения() Тогда
- Возврат;
- КонецЕсли;
-
СостояниеОбменаСБанками = ТекущееСостояниеОбменаСБанками();
Если Не СостояниеОбменаСБанками.ЕстьПравоЧтенияДанных Тогда
@@ -9537,10 +9582,7 @@
Если ДанныеУведомления.КоличествоНепрочитанных > 0 Тогда
- МодульОповещений = ОбщегоНазначения.ОбщийМодуль("СерверныеОповещения");
- УстановитьПривилегированныйРежим(Истина);
- МодульОповещений.ОтправитьСерверноеОповещение(ИмяОповещения, ДанныеУведомления, Неопределено);
- УстановитьПривилегированныйРежим(Ложь);
+ ОбщегоНазначенияБЭД.ОтправитьСерверноеОповещение(ИмяОповещения, ДанныеУведомления, Неопределено);
КонецЕсли;
@@ -9550,10 +9592,7 @@
Если КоличествоНеотправленных > 0 Тогда
- МодульОповещений = ОбщегоНазначения.ОбщийМодуль("СерверныеОповещения");
- УстановитьПривилегированныйРежим(Истина);
- МодульОповещений.ОтправитьСерверноеОповещение(ИмяОповещения, КоличествоНеотправленных, Неопределено);
- УстановитьПривилегированныйРежим(Ложь);
+ ОбщегоНазначенияБЭД.ОтправитьСерверноеОповещение(ИмяОповещения, КоличествоНеотправленных, Неопределено);
КонецЕсли;
@@ -9564,11 +9603,8 @@
Если СостояниеОбменаСБанками.ПоддержкаСессииОбменСБанкамиЕстьНастройка
И ИмяОповещения = ОбменСБанкамиСлужебныйКлиентСервер.ИмяОповещенияОбОтклоненныхДокументах() Тогда
- МодульОповещений = ОбщегоНазначения.ОбщийМодуль("СерверныеОповещения");
ПользователиСДаннымиДляУведомлений = ДанныеДляУведомленийОбОтклоненныхДокументах();
- УстановитьПривилегированныйРежим(Истина);
- МодульОповещений.ОтправитьСерверноеОповещение(ИмяОповещения, ПользователиСДаннымиДляУведомлений, Неопределено);
- УстановитьПривилегированныйРежим(Ложь);
+ ОбщегоНазначенияБЭД.ОтправитьСерверноеОповещение(ИмяОповещения, ПользователиСДаннымиДляУведомлений, Неопределено);
КонецЕсли;
@@ -10230,6 +10266,27 @@
#КонецОбласти
+#Область ПроверкаМетодовВызываемыхКакПроизвольныйКод
+
+// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
+Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
+
+ ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
+ ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбменСБанкамиСлужебный";
+ ИсключениеПроверки.ИмяПроцедуры = "СформироватьФайлыДокументов";
+ ИсключениеПроверки.ФрагментСодержания =
+ "ОбщегоНазначения.ВыполнитьМетодКонфигурации(МетодЗаполненияДанных, ПараметрыПроцедуры)";
+
+ ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
+ ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбменСБанкамиСлужебный";
+ ИсключениеПроверки.ИмяПроцедуры = "СформироватьФайлыДокументов";
+ ИсключениеПроверки.ФрагментСодержания =
+ "ОбщегоНазначения.ВыполнитьМетодКонфигурации(МетодФормированияЭД, ПараметрыПроцедуры)";
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -10581,32 +10638,33 @@
Если ТекЭлемент.Ключ = Перечисления.ВидыЭДОбменСБанками.ПлатежноеПоручение Тогда
Макет = "ОбменСБанками.ПлатежноеПоручение";
- МетодЗаполненияДанных = "ЗаполнитьДанныеПлатежныхПоручений";
- МетодФормированияЭД = "СформироватьПлатежноеПоручение";
+ МетодЗаполненияДанных = "ОбменСБанкамиПереопределяемый.ЗаполнитьДанныеПлатежныхПоручений";
+ МетодФормированияЭД = "ОбменСБанкамиСлужебный.СформироватьПлатежноеПоручение";
ИначеЕсли ТекЭлемент.Ключ = Перечисления.ВидыЭДОбменСБанками.ПлатежноеТребование Тогда
Макет = "ОбменСБанками.ПлатежноеТребование";
- МетодЗаполненияДанных = "ЗаполнитьДанныеПлатежныхТребований";
- МетодФормированияЭД = "СформироватьПлатежноеТребование";
+ МетодЗаполненияДанных = "ОбменСБанкамиПереопределяемый.ЗаполнитьДанныеПлатежныхТребований";
+ МетодФормированияЭД = "ОбменСБанкамиСлужебный.СформироватьПлатежноеТребование";
ИначеЕсли ТекЭлемент.Ключ = Перечисления.ВидыЭДОбменСБанками.ПоручениеНаПереводВалюты Тогда
Макет = "ОбменСБанками.ПоручениеНаПереводВалюты";
- МетодЗаполненияДанных = "ЗаполнитьДанныеПорученийНаПереводВалюты";
- МетодФормированияЭД = "СформироватьПоручениеНаПереводВалюты";
+ МетодЗаполненияДанных = "ОбменСБанкамиПереопределяемый.ЗаполнитьДанныеПорученийНаПереводВалюты";
+ МетодФормированияЭД = "ОбменСБанкамиСлужебный.СформироватьПоручениеНаПереводВалюты";
ИначеЕсли ТекЭлемент.Ключ = Перечисления.ВидыЭДОбменСБанками.ПоручениеНаПокупкуВалюты Тогда
Макет = "ОбменСБанками.ПоручениеНаПокупкуВалюты";
- МетодЗаполненияДанных = "ЗаполнитьДанныеПорученийНаПокупкуВалюты";
- МетодФормированияЭД = "СформироватьПоручениеНаПокупкуВалюты";
+ МетодЗаполненияДанных = "ОбменСБанкамиПереопределяемый.ЗаполнитьДанныеПорученийНаПокупкуВалюты";
+ МетодФормированияЭД = "ОбменСБанкамиСлужебный.СформироватьПоручениеНаПокупкуВалюты";
ИначеЕсли ТекЭлемент.Ключ = Перечисления.ВидыЭДОбменСБанками.ПоручениеНаПродажуВалюты Тогда
Макет = "ОбменСБанками.ПоручениеНаПродажуВалюты";
- МетодЗаполненияДанных = "ЗаполнитьДанныеПорученийНаПродажуВалюты";
- МетодФормированияЭД = "СформироватьПоручениеНаПродажуВалюты";
+ МетодЗаполненияДанных = "ОбменСБанкамиПереопределяемый.ЗаполнитьДанныеПорученийНаПродажуВалюты";
+ МетодФормированияЭД = "ОбменСБанкамиСлужебный.СформироватьПоручениеНаПродажуВалюты";
ИначеЕсли ТекЭлемент.Ключ = Перечисления.ВидыЭДОбменСБанками.РаспоряжениеНаОбязательнуюПродажуВалюты Тогда
Макет = "ОбменСБанками.РаспоряжениеНаОбязательнуюПродажуВалюты";
- МетодЗаполненияДанных = "ЗаполнитьДанныеРаспоряженийНаОбязательнуюПродажуВалюты";
- МетодФормированияЭД = "СформироватьРаспоряжениеНаОбязательнуюПродажуВалюты";
+ МетодЗаполненияДанных =
+ "ОбменСБанкамиПереопределяемый.ЗаполнитьДанныеРаспоряженийНаОбязательнуюПродажуВалюты";
+ МетодФормированияЭД = "ОбменСБанкамиСлужебный.СформироватьРаспоряжениеНаОбязательнуюПродажуВалюты";
ИначеЕсли ТекЭлемент.Ключ = Перечисления.ВидыЭДОбменСБанками.СправкаОПодтверждающихДокументах Тогда
Макет = "ОбменСБанками.СправкаОПодтверждающихДокументах";
- МетодЗаполненияДанных = "ЗаполнитьДанныеСправокОПодтверждающихДокументах";
- МетодФормированияЭД = "СформироватьСправкуОПодтверждающихДокументах";
+ МетодЗаполненияДанных = "ОбменСБанкамиПереопределяемый.ЗаполнитьДанныеСправокОПодтверждающихДокументах";
+ МетодФормированияЭД = "ОбменСБанкамиСлужебный.СформироватьСправкуОПодтверждающихДокументах";
ИначеЕсли ЭтоЗарплатныйПроект(ТекЭлемент.Ключ) Тогда
Для Каждого ОбъектДляВыгрузки Из ТекЭлемент.Значение Цикл
СтруктураВозврата = СформироватьЭДПоЗарплатномуПроекту(
@@ -10657,8 +10715,7 @@
ПараметрыПроцедуры = Новый Массив;
ПараметрыПроцедуры.Добавить(ТекЭлемент.Значение);
ПараметрыПроцедуры.Добавить(Данные);
- ОбщегоНазначения.ВыполнитьМетодКонфигурации("ОбменСБанкамиПереопределяемый."
- + МетодЗаполненияДанных, ПараметрыПроцедуры);
+ ОбщегоНазначения.ВыполнитьМетодКонфигурации(МетодЗаполненияДанных, ПараметрыПроцедуры);
Счетчик = 0;
Для Каждого ДеревоДанных Из Данные Цикл
@@ -10679,15 +10736,15 @@
ПараметрыПроцедуры.Добавить(ДеревоДанных);
ПараметрыПроцедуры.Добавить(СтруктураВозврата);
Попытка
- ОбщегоНазначения.ВыполнитьМетодКонфигурации("ОбменСБанкамиСлужебный" + "."
- + МетодФормированияЭД, ПараметрыПроцедуры);
+ ОбщегоНазначения.ВыполнитьМетодКонфигурации(МетодФормированияЭД, ПараметрыПроцедуры);
МассивСтруктурВозврата.Добавить(СтруктураВозврата);
Исключение
- КраткоеПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
+ КраткоеПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Если КраткоеПредставлениеОшибки <> "ОшибкаДанных" Тогда
ТекстОшибки = НСтр("ru = 'Не сформирован электронный документ для документа: %1
|Причина: %2'");
- ТекстОшибки = СтрШаблон(ТекстОшибки, ДокументИБ, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
+ ТекстОшибки = СтрШаблон(ТекстОшибки, ДокументИБ,
+ ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Операция = НСтр("ru = 'Формирование электронного документа'");
ОбработатьОшибку(Операция, ТекстОшибки, ТекстОшибки, ДокументИБ);
КонецЕсли;
@@ -14724,6 +14781,7 @@
ТребуетсяНастройкаОбмена = Ложь;
Для Сч = -МассивСсылокНаОбъект.Количество() + 1 По 0 Цикл
+
СсылкаНаОбъект = МассивСсылокНаОбъект[-Сч];
Фрод.Вставить("ЕстьОтправка", ОбменСБанкамиКлиентСервер.ЕстьДействие(Действия, "Отправить"));
НастройкиОбмена = ОпределитьНастройкиОбменаЭДПоИсточнику(
@@ -14741,6 +14799,37 @@
Иначе
МассивСсылокНаОбъект.Удалить(-Сч);
КонецЕсли;
+
+ ПрограммаБанка = Неопределено;
+ ВидЭД = Неопределено;
+ Если НастройкиОбмена.Результат = "НастройкиОпределены" Тогда
+ ПараметрыОбмена = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НастройкиОбмена, "ПараметрыОбмена");
+ КонецЕсли;
+ Если ЗначениеЗаполнено(ПараметрыОбмена) И ТипЗнч(ПараметрыОбмена) = Тип("Структура") Тогда
+ ПрограммаБанка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыОбмена, "ПрограммаБанка");
+ ВидЭД = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыОбмена, "ВидЭД");
+ КонецЕсли;
+ Если ПрограммаБанка = Перечисления.ПрограммыБанка.SberAPI
+ И ВидЭД = Перечисления.ВидыЭДОбменСБанками.ПлатежноеПоручение Тогда
+
+ Запрос = Новый Запрос;
+ Запрос.Текст = "
+ |ВЫБРАТЬ
+ | СостоянияОбменСБанками.СообщениеОбмена КАК СообщениеОбмена,
+ | СостоянияОбменСБанками.СообщениеОбмена.ПрограммаБанка КАК ПрограммаБанка
+ |ИЗ
+ | РегистрСведений.СостоянияОбменСБанками КАК СостоянияОбменСБанками
+ |ГДЕ
+ | СостоянияОбменСБанками.СсылкаНаОбъект = &СсылкаНаОбъект";
+ Запрос.УстановитьПараметр("СсылкаНаОбъект", СсылкаНаОбъект);
+ Выборка = Запрос.Выполнить().Выбрать();
+ Если Выборка.Следующий() И ЗначениеЗаполнено(Выборка.СообщениеОбмена) И ЗначениеЗаполнено(Выборка.ПрограммаБанка)
+ И Выборка.ПрограммаБанка <> Перечисления.ПрограммыБанка.SberAPI Тогда
+ СтруктураВозврата.Вставить("ЕстьПлатежкиУПШдляSberAPI", Истина);
+ КонецЕсли;
+
+ КонецЕсли;
+
КонецЦикла;
Если МассивСсылокНаОбъект.Количество() = 0 Тогда
@@ -24234,6 +24323,23 @@
КонецФункции
+Процедура ПроверитьИсправитьДатыОбмена(ДатыОбмена, НастройкаОбмена)
+
+ ДатыОбмена.ДатаНачала = НачалоДня(ДатыОбмена.ДатаНачала);
+
+ ДанныеПериодаЗапросаВыписки = ОбменСБанкамиСлужебныйВызовСервера.ДанныеПериодаЗапросаВыписки(
+ НастройкаОбмена, НачалоДня(ТекущаяДатаСеанса()));
+
+ Если ДанныеПериодаЗапросаВыписки.ДатаНачалаЗагрузки > ДатыОбмена.ДатаНачала Тогда
+ ДатыОбмена.ДатаНачала = ДанныеПериодаЗапросаВыписки.ДатаНачалаЗагрузки;
+ КонецЕсли;
+
+ Если ДатыОбмена.ДатаНачала > ДатыОбмена.ДатаОкончания Тогда
+ ДатыОбмена.ДатаНачала = НачалоДня(ДатыОбмена.ДатаОкончания);
+ КонецЕсли;
+
+КонецПроцедуры
+
#КонецОбласти
#Область РазборВыпискиБанка
diff --git a/src/CommonModules/ОбменСБанкамиСлужебныйВызовСервера/Ext/Module.bsl b/src/CommonModules/ОбменСБанкамиСлужебныйВызовСервера/Ext/Module.bsl
index 69d272e57..cf6633478 100644
--- a/src/CommonModules/ОбменСБанкамиСлужебныйВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанкамиСлужебныйВызовСервера/Ext/Module.bsl
@@ -228,13 +228,13 @@
// Возвращаемое значение:
// Структура - параметры периода загрузки выписки. Содержит поля:
// * ПериодЗагрузкиВыписки - Число - число дней, за которые банк разрешает загружать выписку
-// * ДатаПолученияВыписки - Дата - дата, с которой будет загружаться выписка банка
+// * ДатаНачалаЗагрузки - Дата - дата, с которой будет загружаться выписка банка
//
Функция ДанныеПериодаЗапросаВыписки(НастройкаОбмена, Дата) Экспорт
Результат = Новый Структура;
Результат.Вставить("ПериодЗагрузкиВыписки", 14);
- Результат.Вставить("ДатаНачалаЗагрузки");
+ Результат.Вставить("ДатаНачалаЗагрузки", '00010101');
Банк = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НастройкаОбмена, "Банк");
НастройкиОбмена = ПоставляемыеНастройкиОбмена(Банк);
diff --git a/src/CommonModules/ОбменСБанкамиСлужебныйКлиент/Ext/Module.bsl b/src/CommonModules/ОбменСБанкамиСлужебныйКлиент/Ext/Module.bsl
index c53595491..7c09f8e48 100644
--- a/src/CommonModules/ОбменСБанкамиСлужебныйКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанкамиСлужебныйКлиент/Ext/Module.bsl
@@ -4692,10 +4692,33 @@
ТекстСообщения = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
ОбработатьОшибку(ВидОперации, ТекстОшибки, , ДополнительныеПараметры.НастройкаОбмена);
КонецПопытки;
- ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения);
- ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеПослеОтправкиЗапросов);
+
+ Если СтрНайти(ТекстСообщения, НСтр("ru = 'Код: 103'")) <> 0 Тогда
+
+ ОповещениеПослеОтправкиЗапросов = Неопределено;
+ Если ДополнительныеПараметры.Свойство("ОповещениеПослеОтправкиЗапросов", ОповещениеПослеОтправкиЗапросов)
+ И ОповещениеПослеОтправкиЗапросов <> Неопределено
+ И ОповещениеПослеОтправкиЗапросов.ИмяПроцедуры = "ПослеОтправкиСообщенияОбменаВСбербанк" Тогда
+ ЭтоПлатежки = Истина;
+ Иначе
+ ЭтоПлатежки = Ложь;
+ КонецЕсли;
+
+ ВывестиСообщениеОбОшибкеУПШ103(ЭтоПлатежки);
+
+ ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеПослеОтправкиЗапросов, "ОшибкаУПШ103");
+
+ Иначе
+
+ ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения);
+ ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеПослеОтправкиЗапросов);
+
+ КонецЕсли;
+
Возврат;
+
КонецПопытки;
+
ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеПослеОтправкиЗапросов, Ответ);
КонецЕсли;
@@ -6682,11 +6705,27 @@
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
+
ВидОперации = НСтр("ru = 'Отправка платежных документов в Сбербанк.'");
- ОбработатьОшибку(ВидОперации, Результат.ПодробноеПредставлениеОшибки, Результат.КраткоеПредставлениеОшибки,
- ДополнительныеПараметры.НастройкаОбмена);
+ Если СтрНайти(Результат.КраткоеПредставлениеОшибки, НСтр("ru = 'Код: 103'")) <> 0 Тогда
+ ЭтоОшибкаУПШ = Истина;
+ Иначе
+ ЭтоОшибкаУПШ = Ложь;
+ КонецЕсли;
+ Если Не ЭтоОшибкаУПШ Тогда
+ ОбработатьОшибку(ВидОперации, Результат.ПодробноеПредставлениеОшибки, Результат.КраткоеПредставлениеОшибки,
+ ДополнительныеПараметры.НастройкаОбмена);
+ КонецЕсли;
+
+ Если ЭтоОшибкаУПШ Тогда
+
+ ВывестиСообщениеОбОшибкеУПШ103(Истина);
+
+ КонецЕсли;
+
ОтправитьДокументыПоЛогинуВСбербанк(ДополнительныеПараметры.ОповещениеПослеОтправкиДокументов,
ДополнительныеПараметры.ДанныеДляОтправки, ДополнительныеПараметры);
+
Иначе // выполнено
РезультатОтправки = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
УдалитьИзВременногоХранилища(Результат.АдресРезультата);
@@ -7365,6 +7404,29 @@
КонецФункции
+Процедура ВывестиСообщениеОбОшибкеУПШ103(ЭтоПлатежки = Ложь) Экспорт
+
+ МассивСтрок = Новый Массив;
+ ТекстСообщения = НСтр("ru = 'Сбербанк перешел на новую технологию обмена SberAPI.'");
+ МассивСтрок.Добавить(ТекстСообщения);
+ МассивСтрок.Добавить(Символы.ПС);
+ МассивСтрок.Добавить(Символы.ПС);
+ ТекстСообщения = НСтр("ru = 'Чтобы продолжить работу, настройте интеграцию согласно статье'");
+ МассивСтрок.Добавить(ТекстСообщения);
+ МассивСтрок.Добавить(" ");
+ МассивСтрокГиперссылки = Новый Массив;
+ МассивСтрокГиперссылки.Добавить(Новый ФорматированнаяСтрока(НСтр("ru = 'Условия подключения к сервису Сбербанка.'")));
+ МассивСтрок.Добавить(Новый ФорматированнаяСтрока(МассивСтрокГиперссылки,,,,"https://its.1c.ru/db/metod81#content:6747:hdoc"));
+ Если ЭтоПлатежки Тогда
+ МассивСтрок.Добавить(Символы.ПС);
+ МассивСтрок.Добавить(Символы.ПС);
+ ТекстСообщения = НСтр("ru = 'После завершения настройки создайте новые платежные поручения и отправьте их.'");
+ МассивСтрок.Добавить(ТекстСообщения);
+ КонецЕсли;
+ ПоказатьПредупреждение(, Новый ФорматированнаяСтрока(МассивСтрок), , НСтр("ru = 'Предупреждение от банка'"));
+
+КонецПроцедуры
+
#КонецОбласти
#Область ПолучениеВыписки
@@ -7734,7 +7796,7 @@
КонецПроцедуры
-Процедура ПродолжитьОперациюСПаролемВБезопасномХранилище(Успешно, Контекст) Экспорт
+Процедура ПродолжитьОперациюСПаролемВБезопасномХранилище(Результат, Контекст) Экспорт
КлючевыеПараметры = НовыйКлючевыеПараметрыКомпьютера();
@@ -7745,7 +7807,7 @@
КлючевыеПараметры.ИмяКомпьютера = ИмяКомпьютера();
#КонецЕсли
- Если Успешно Тогда
+ Если Результат = Истина Тогда
ПараметрыПодсистемыОбменСБанками = ПараметрыПриложения["ЭлектронноеВзаимодействие.ОбменСБанками"];
Если ТипЗнч(ПараметрыПодсистемыОбменСБанками) = Тип("Соответствие") Тогда
@@ -10353,15 +10415,40 @@
ВывестиСообщенияДлительнойОперации(РезультатЗадания.Сообщения);
Если РезультатЗадания.Статус = "Ошибка" Тогда
+
ВидОперации = НСтр("ru = 'Обработка электронных документов.'");
- ОбработатьОшибку(
- ВидОперации, РезультатЗадания.ПодробноеПредставлениеОшибки, РезультатЗадания.КраткоеПредставлениеОшибки);
+ Если СтрНайти(РезультатЗадания.КраткоеПредставлениеОшибки, НСтр("ru = 'Код: 103'")) <> 0 Тогда
+ ЭтоОшибкаУПШ = Истина;
+ Иначе
+ ЭтоОшибкаУПШ = Ложь;
+ КонецЕсли;
+ Если Не ЭтоОшибкаУПШ Тогда
+ ОбработатьОшибку(
+ ВидОперации, РезультатЗадания.ПодробноеПредставлениеОшибки, РезультатЗадания.КраткоеПредставлениеОшибки);
+ КонецЕсли;
+ Если ЭтоОшибкаУПШ Тогда
+
+ ВывестиСообщениеОбОшибкеУПШ103(Истина);
+
+ КонецЕсли;
Возврат;
+
Иначе // выполнено
Результат = ПолучитьИзВременногоХранилища(РезультатЗадания.АдресРезультата);
УдалитьИзВременногоХранилища(РезультатЗадания.АдресРезультата);
Если Результат <> Неопределено Тогда
+ ЕстьПлатежкиУПШдляSberAPI = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "ЕстьПлатежкиУПШдляSberAPI");
+ Если ЕстьПлатежкиУПШдляSberAPI = Истина Тогда
+
+ Сообщение = НСтр("ru = 'Выполнен переход на новый формат обмена с банком SberAPI.'");
+ Сообщение = Сообщение + Символы.ПС + НСтр("ru = 'Чтобы отправить платежные поручения, пожалуйста, создайте их заново.'");
+ Сообщение = Сообщение + Символы.ПС + НСтр("ru = 'Документы, отправляемые ранее, теперь отправить через SberAPI не получится.'");
+ Сообщение = Сообщение + Символы.ПС + Символы.ПС + НСтр("ru = 'Для быстрого создания нового платежного поручения воспользуйтесь функцией «Скопировать».'");
+ ПоказатьПредупреждение(, Сообщение, , НСтр("ru = 'Отправка платежных поручений'"));
+
+ КонецЕсли;
+
Если Результат.ТребуетсяНастройкаОбмена Тогда
НастроитьОбменСБанками(Результат.НастройкиОбъектов, Параметры.Действия);
Возврат;
@@ -10412,6 +10499,10 @@
Процедура ОтправитьДокументыПослеПолученияФрода(Результат, ДополнительныеПараметры) Экспорт
+ Если Результат = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
Если Результат ИЛИ Не ДополнительныеПараметры.ФродОбязателен Тогда
ОбработатьЭлектронныеДокументы(ДополнительныеПараметры.МассивСсылокНаОбъект, ДополнительныеПараметры.Действия,
ДополнительныеПараметры.СообщениеОбмена);
@@ -10440,16 +10531,34 @@
КонецПроцедуры
Процедура ПослеПопыткиПодключенияРасширенияПолученияИнформацииОКомпьютере(Подключено, ДополнительныеПараметры) Экспорт
-
- Если Подключено Тогда
-
- ПослеПодключенияРасширенияПолученияИнформацииОКомпьютере(Истина, ДополнительныеПараметры);
-
- Иначе
-
- ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеПослеПолученияФрода, Ложь);
+ Если Подключено Тогда
+ ПослеПодключенияРасширенияПолученияИнформацииОКомпьютере(Истина, ДополнительныеПараметры);
+ Иначе
+ Обработчик = Новый ОписаниеОповещения("УстановитьРасширениеПослеОтвета", ЭтотОбъект, ДополнительныеПараметры);
+ ОткрытьФорму("Обработка.ОбменСБанками.Форма.ВопросОбУстановкеРасширенияДляПолученияИнформацииОКомпьютере", , ,
+ , , , Обработчик);
КонецЕсли;
+
+КонецПроцедуры
+
+Процедура УстановитьРасширениеПослеОтвета(Ответ, ДополнительныеПараметры) Экспорт
+
+ Если Ответ = КодВозвратаДиалога.Да Тогда
+ Оповещение = Новый ОписаниеОповещения("ПодключитьРасширениеПослеУстановки", ЭтотОбъект,
+ ДополнительныеПараметры);
+ НачатьУстановкуРасширенияПолученияИнформацииОКомпьютере(Оповещение);
+ Иначе
+ ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеПослеПолученияФрода, Неопределено);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ПодключитьРасширениеПослеУстановки(ДополнительныеПараметры) Экспорт
+
+ ОписаниеОповещения = Новый ОписаниеОповещения(
+ "ПослеПодключенияРасширенияПолученияИнформацииОКомпьютере", ЭтотОбъект, ДополнительныеПараметры);
+ НачатьПодключениеРасширенияПолученияИнформацииОКомпьютере(ОписаниеОповещения);
КонецПроцедуры
diff --git a/src/CommonModules/ОбменСБанкамиУТ/Ext/Module.bsl b/src/CommonModules/ОбменСБанкамиУТ/Ext/Module.bsl
index 3868297f7..0d87287c2 100644
--- a/src/CommonModules/ОбменСБанкамиУТ/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанкамиУТ/Ext/Module.bsl
@@ -1981,6 +1981,7 @@
// Параметры:
// СвойствоXDTO - СвойствоXDTO - свойство объекта XDTO
// ЗначениеПоля - Произвольный - значение
+// ТекстОшибки - Строка - текст сообщения об ошибке, если значение не соответствует фасетам типа. Параметр изменяется в процессе работы
//
Процедура ПривестиКТипу(СвойствоXDTO, ЗначениеПоля, ТекстОшибки = "") Экспорт
@@ -2007,6 +2008,8 @@
Если Фасеты = Неопределено Тогда
Фасеты = СвойствоXDTO.Тип.БазовыйТип.Фасеты;
КонецЕсли;
+
+ ДоступныеЗначения = Новый Массив;
Для Каждого Фасет Из Фасеты Цикл
@@ -2014,7 +2017,16 @@
ЗначениеПоля = Лев(ЗначениеПоля, Число(Фасет.Значение));
ИначеЕсли Фасет.Вид = ВидФасетаXDTO.МинДлина Тогда
- Если Число(Фасет.Значение) > СтрДлина(ЗначениеПоля) Тогда
+ Если Число(Фасет.Значение) <> 0
+ И ПустаяСтрока(ЗначениеПоля)
+ И Не СвойствоXDTO.ВозможноПустое Тогда
+ ТекстОшибки = СтрШаблон(НСтр("ru = 'Ошибка установки значения свойства %1
+ |Устанавливаемое значение: %2
+ |Минимально допустимое количество символов: %3'"),
+ СвойствоXDTO,
+ ЗначениеПоля,
+ Число(Фасет.Значение));
+ ИначеЕсли Число(Фасет.Значение) > СтрДлина(ЗначениеПоля) Тогда
Для Шаг = СтрДлина(ЗначениеПоля) + 1 По Число(Фасет.Значение) Цикл
ЗначениеПоля = " " + ЗначениеПоля;
КонецЦикла;
@@ -2023,7 +2035,7 @@
ИначеЕсли Фасет.Вид = ВидФасетаXDTO.Длина Тогда
Если СтрДлина(ЗначениеПоля) <> Число(Фасет.Значение) Тогда
- ТекстОшибки = СтрШаблон(НСтр("ru = 'Ошибка установки свойства %1
+ ТекстОшибки = СтрШаблон(НСтр("ru = 'Ошибка установки значения свойства %1
|Устанавливаемое значение: %2
|Текущая длина строки: %3
|Допустимая длина строки: %4'"),
@@ -2033,10 +2045,40 @@
Число(Фасет.Значение));
КонецЕсли;
+ ИначеЕсли Фасет.Вид = ВидФасетаXDTO.Образец Тогда
+
+ ЗначениеПодобно = СтрПодобнаПоРегулярномуВыражению(ЗначениеПоля, Фасет.Значение);
+
+ Если Не ЗначениеПодобно Тогда
+ ТекстОшибки = СтрШаблон(НСтр("ru = 'Ошибка установки значения свойства %1
+ |Устанавливаемое значение: %2
+ |Значение не соответствует регулярному выражению: %3'"),
+ СвойствоXDTO,
+ ЗначениеПоля,
+ Фасет.Значение);
+ КонецЕсли;
+
+ ИначеЕсли Фасет.Вид = ВидФасетаXDTO.Перечисление Тогда
+ ДоступныеЗначения.Добавить(Фасет.Значение);
КонецЕсли;
КонецЦикла;
+ Если ДоступныеЗначения.Количество() > 0 Тогда
+
+ Если Не ПустаяСтрока(ЗначениеПоля)
+ И Не СвойствоXDTO.ВозможноПустое
+ И ДоступныеЗначения.Найти(ЗначениеПоля) = Неопределено Тогда
+ ТекстОшибки = СтрШаблон(НСтр("ru = 'Ошибка установки значения свойства %1
+ |Устанавливаемое значение: %2
+ |Доступные значения: %3'"),
+ СвойствоXDTO,
+ ЗначениеПоля,
+ СтрСоединить(ДоступныеЗначения, ", "));
+ КонецЕсли;
+
+ КонецЕсли;
+
ИначеЕсли СвойствоXDTO.Тип.Имя = "integer"
ИЛИ СвойствоXDTO.Тип.БазовыйТип.Имя = "integer"
ИЛИ (СвойствоXDTO.Тип.БазовыйТип.БазовыйТип <> Неопределено
diff --git a/src/CommonModules/ОбменСБанкамиФинтехСлужебный/Ext/Module.bsl b/src/CommonModules/ОбменСБанкамиФинтехСлужебный/Ext/Module.bsl
index c3b693813..1cffa1aa5 100644
--- a/src/CommonModules/ОбменСБанкамиФинтехСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСБанкамиФинтехСлужебный/Ext/Module.bsl
@@ -6,6 +6,19 @@
#Область СлужебныйПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПолучитьСсылкуНаАутентификацию", Истина);
+ Методы.Вставить("ПроверитьВыполнениеАутентификацииВЛичномКабинете", Истина);
+ Методы.Вставить("ПроверитьНаличиеДоступаКДанным", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
// Осуществляет получение ссылки для аутентификации в личном кабинете банка.
//
// Параметры:
diff --git a/src/CommonModules/ОбменСГИСЭПД/Ext/Module.bsl b/src/CommonModules/ОбменСГИСЭПД/Ext/Module.bsl
index 237bcba87..745affde1 100644
--- a/src/CommonModules/ОбменСГИСЭПД/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСГИСЭПД/Ext/Module.bsl
@@ -1,5 +1,26 @@
#Область ПрограммныйИнтерфейс
+// При определении доступных действий по ЭДО.
+//
+// Параметры:
+// Действия - Соответствие - Набор действий по состоянию ЭДО.
+// СостояниеДокумента - ПеречислениеСсылка.СостоянияДокументовЭДО
+// СвойстваДокумента - ДокументОбъект.ЭлектронныйДокументВходящийЭДО, ДокументОбъект.ЭлектронныйДокументИсходящийЭДО, Структура - Свойства:
+// * Ссылка - ДокументСсылка.ЭлектронныйДокументВходящийЭДО, ДокументСсылка.ЭлектронныйДокументИсходящийЭДО - Ссылка на электронный документ.
+// * НаОзнакомлении - Булево - Признак необходимости ознакомиться с электронным документом.
+// * СпособОбмена - ПеречислениеСсылка.СпособыОбменаЭД - Способ обмена электронным документом.
+// * ВидДокумента - СправочникСсылка.ВидыДокументовЭДО
+Процедура ПриОпределенииДоступныхДействийПоЭДО(Действия, СостояниеДокумента, СвойстваДокумента) Экспорт
+
+ ТипДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СвойстваДокумента.ВидДокумента, "ТипДокумента");
+
+ Если ЭтоДокументЭПД(ТипДокумента) Тогда
+ Действия.Удалить(Перечисления.ДействияПоЭДО.Аннулировать);
+ Действия.Удалить(Перечисления.ДействияПоЭДО.Перенаправить);
+ КонецЕсли;
+
+КонецПроцедуры
+
// При определении печатных форм запрещенных для формирования документа.
//
// Параметры:
@@ -75,6 +96,25 @@
КонецПроцедуры
+// Параметры:
+// КодТранзакции - Строка
+// ТипДокументаСтрокой - Строка
+// Приоритет - Число - приоритет, где 0 - самый высокий
+Процедура ПриОпределенииПриоритетаРаспаковкиКонтейнера(КодТранзакции, ТипДокументаСтрокой, Приоритет) Экспорт
+
+ Если КодТранзакции = "ShipperInformation"
+ Или КодТранзакции = "ChartererInformation"
+ Или КодТранзакции = "SendOrder"
+ Или КодТранзакции = "OwnerVehicleInfo"
+ Или КодТранзакции = "TransactionEDF_T1"
+ Или КодТранзакции = "CarrierInformation_1" Тогда
+
+ Приоритет = 0;
+
+ КонецЕсли;
+
+КонецПроцедуры
+
// При получении списка шаблонов.
//
// Параметры:
@@ -681,6 +721,9 @@
МассивВозможныхПустыхЗначений.Добавить("//Файл/Документ/СодИнфГО/СвГруз/ОпГруз/Габар/ВысЗнач");
МассивВозможныхПустыхЗначений.Добавить("//Файл/Документ/СодИнфГО/СвГруз/ОпГруз/Габар/ДлЗнач");
МассивВозможныхПустыхЗначений.Добавить("//Файл/Документ/СодИнфГО/СвГруз/ОпГруз/Габар/ШирЗнач");
+
+ МассивВозможныхПустыхЗначений.Добавить("//Файл/Документ/СодФХЖ1/СумНал/СумНДС");
+
ИначеЕсли ТипДокумента = Перечисления.ТипыДокументовЭДО.ЭЗН Тогда
МенеджерОбъекта = Документы.ЭлектронныйЗаказНаряд;
ИначеЕсли ТипДокумента = Перечисления.ТипыДокументовЭДО.ЭСВ Тогда
@@ -1468,7 +1511,7 @@
// @skip-check doc-comment-description-ends-on-dot
// @skip-check function-return-types
// @skip-check doc-comment-ref-link
-Функция ПриРаспознованииДокумента(ТипДокумента, УспешностьРаспознования) Экспорт
+Функция ПриРаспознаванииДокумента(ТипДокумента, УспешностьРаспознования) Экспорт
Если Не ЭтоДокументЭПД(ТипДокумента) Тогда
Возврат Неопределено;
@@ -4175,6 +4218,9 @@
МассивВозможныхПустыхЗначений.Добавить("//Файл/Документ/СодИнфГО/СвГруз/ОпГруз/Габар/ВысЗнач");
МассивВозможныхПустыхЗначений.Добавить("//Файл/Документ/СодИнфГО/СвГруз/ОпГруз/Габар/ДлЗнач");
МассивВозможныхПустыхЗначений.Добавить("//Файл/Документ/СодИнфГО/СвГруз/ОпГруз/Габар/ШирЗнач");
+
+ МассивВозможныхПустыхЗначений.Добавить("//Файл/Документ/СодФХЖ1/СумНал/СумНДС");
+
ИначеЕсли ТипДокумента = Перечисления.ТипыДокументовЭДО.ЭЗН Тогда
МенеджерОбъекта = Документы.ЭлектронныйЗаказНаряд;
ИначеЕсли ТипДокумента = Перечисления.ТипыДокументовЭДО.ЭСВ Тогда
@@ -4813,25 +4859,35 @@
КонецФункции
-// Данные -
-// См. ОбменСГИСЭПДКлиентСервер.НоваяСтруктураДляРеестраЭПД
-//
+// Создает запись в реестре ЭПД.
+//
// Параметры:
-// Данные - Структура - Данные
-Процедура ЗаписатьВРеестрЭПД(Данные, ЗаписьИзФормы = Ложь) Экспорт
+// Данные - Структура - См. ОбменСГИСЭПДКлиентСервер.НоваяСтруктураДляРеестраЭПД.
+// ЗаписьИзФормы - Булево - Истина, если запись документа была вызвана из его формы.
+// СоответствиеЭлектронныхДокументов - Соответствие из ДокументСсылка - Соответствие электронных документов и документов учета.
+//
+Процедура ЗаписатьВРеестрЭПД(Данные, ЗаписьИзФормы = Ложь, СоответствиеЭлектронныхДокументов = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
МенеджерЗаписи = РегистрыСведений.РеестрЭПД.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Ссылка = Данные.Ссылка;
-
МенеджерЗаписи.Прочитать();
- ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Данные);
Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСГИСЭПД.СервисВзаимодействияМПЭПД") Тогда
МодульСервисВзаимодействияМПЭПД = ОбщегоНазначения.ОбщийМодуль("СервисВзаимодействияМПЭПД");
+ НужноДобавитьДанныеМП = МодульСервисВзаимодействияМПЭПД.НужноДобавитьДанныеМП(
+ МенеджерЗаписи, Данные);
+ Иначе
+ НужноДобавитьДанныеМП = Ложь;
+ КонецЕсли;
+
+ ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Данные);
+
+ Если НужноДобавитьДанныеМП Тогда
Массив = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(МенеджерЗаписи);
- МодульСервисВзаимодействияМПЭПД.ДобавитьДанныеМобильногоПриложенияДляЗаписиВРеестр(Массив, ЗаписьИзФормы);
+ МодульСервисВзаимодействияМПЭПД.ДобавитьДанныеМобильногоПриложенияДляЗаписиВРеестр(
+ Массив, ЗаписьИзФормы, СоответствиеЭлектронныхДокументов);
КонецЕсли;
МенеджерЗаписи.Записать(Истина);
@@ -7395,41 +7451,52 @@
Функция ПредставлениеАдреса(ДанныеЗаполнения, ПрефиксРеквизитов) Экспорт
- РезультатМассив = Новый Массив;
+ СтруктураРеквизитовАдреса = Новый Структура;
- МассивРеквизитов = Новый Массив;
- МассивРеквизитов.Добавить("Индекс");
- МассивРеквизитов.Добавить("Город");
- МассивРеквизитов.Добавить("НаселенныйПункт");
- МассивРеквизитов.Добавить("Улица");
- МассивРеквизитов.Добавить("Дом");
- МассивРеквизитов.Добавить("Корпус");
+ СтруктураРеквизитовАдреса.Вставить("Индекс", "");
+ СтруктураРеквизитовАдреса.Вставить("КодРегиона", "");
+ СтруктураРеквизитовАдреса.Вставить("Город", "");
+ СтруктураРеквизитовАдреса.Вставить("Район", "");
+ СтруктураРеквизитовАдреса.Вставить("НаселенныйПункт", "");
+ СтруктураРеквизитовАдреса.Вставить("Улица", "");
+ СтруктураРеквизитовАдреса.Вставить("Дом", "");
+ СтруктураРеквизитовАдреса.Вставить("Корпус", "");
+ СтруктураРеквизитовАдреса.Вставить("Квартира", "");
- Для Каждого ИмяРеквизита Из МассивРеквизитов Цикл
- ПолноеИмяРеквизита = ПрефиксРеквизитов + ИмяРеквизита;
- Если ЗначениеЗаполнено(ПолучитьЗначениеСтруктуры(ДанныеЗаполнения, ПолноеИмяРеквизита)) Тогда
- РезультатМассив.Добавить(ПолучитьЗначениеСтруктуры(ДанныеЗаполнения, ПолноеИмяРеквизита));
- ИначеЕсли ИмяРеквизита = "Город" Тогда
- Если ПолучитьЗначениеСтруктуры(ДанныеЗаполнения, ПрефиксРеквизитов + "КодРегиона") = "77" Тогда
- РезультатМассив.Добавить("Москва г");
- ИначеЕсли ПолучитьЗначениеСтруктуры(ДанныеЗаполнения, ПрефиксРеквизитов + "КодРегиона") = "78" Тогда
- РезультатМассив.Добавить("Санкт-Петербург г");
- ИначеЕсли ПолучитьЗначениеСтруктуры(ДанныеЗаполнения, ПрефиксРеквизитов + "КодРегиона") = "92" Тогда
- РезультатМассив.Добавить("Севастополь г");
- КонецЕсли;
+ Для Каждого КиЗ Из СтруктураРеквизитовАдреса Цикл
+ Если ДанныеЗаполнения.Свойство(ПрефиксРеквизитов + КиЗ.Ключ) Тогда
+ СтруктураРеквизитовАдреса.Вставить(КиЗ.Ключ, ДанныеЗаполнения[ПрефиксРеквизитов + КиЗ.Ключ]);
КонецЕсли;
КонецЦикла;
- Если РезультатМассив.Количество() = 0
- И ЗначениеЗаполнено(ПолучитьЗначениеСтруктуры(ДанныеЗаполнения, ПрефиксРеквизитов + "Представление")) Тогда
- КодСтраны = ПолучитьЗначениеСтруктуры(ДанныеЗаполнения, ПрефиксРеквизитов + "КодСтраны");
- Если КодСтраны <> "643" Тогда
- РезультатМассив.Добавить("Код страны: " + ПолучитьЗначениеСтруктуры(ДанныеЗаполнения, ПрефиксРеквизитов + "КодСтраны"));
- КонецЕсли;
- РезультатМассив.Добавить(ПолучитьЗначениеСтруктуры(ДанныеЗаполнения, ПрефиксРеквизитов + "Представление"));
+ Если СтруктураРеквизитовАдреса.КодРегиона = "77"
+ Или СтруктураРеквизитовАдреса.КодРегиона = "78"
+ Или СтруктураРеквизитовАдреса.КодРегиона = "92" Тогда
+ СтруктураРеквизитовАдреса.Город = "";
КонецЕсли;
- Возврат СтрСоединить(РезультатМассив, ", ");
+ Если ДанныеЗаполнения.Свойство(ПрефиксРеквизитов + "Представление") Тогда
+ СтруктураРеквизитовАдреса.Вставить("Представление", ДанныеЗаполнения[ПрефиксРеквизитов + "Представление"]);
+ СтруктураРеквизитовАдреса.Вставить("КодСтраны", ДанныеЗаполнения[ПрефиксРеквизитов + "КодСтраны"]);
+ КонецЕсли;
+
+ Если СтруктураРеквизитовАдреса.Город = СтруктураРеквизитовАдреса.НаселенныйПункт Тогда
+ СтруктураРеквизитовАдреса.НаселенныйПункт = "";
+ КонецЕсли;
+
+ КонтактнаяИнформация = КонтактнаяИнформацияВXML(СтруктураРеквизитовАдреса,,ОбменСГИСЭПДПереопределяемый.ВидФактическийАдресКонтрагента());
+
+ Результат = ПредставлениеКонтактнойИнформации(КонтактнаяИнформация);
+
+ КодСтраны = "";
+ Если СтруктураРеквизитовАдреса.Свойство("КодСтраны", КодСтраны)
+ И ЗначениеЗаполнено(КодСтраны) И КодСтраны <> "643" Тогда
+
+ Результат = "Код страны: " + КодСтраны + ", " + Результат;
+
+ КонецЕсли;
+
+ Возврат Результат;
КонецФункции
@@ -8085,7 +8152,9 @@
КлючКуда = СтрЗаменить(РеквизитКиЗ.Ключ, "ТитулПеревозчика", "ТитулГрузоотправителя");
СтруктураРеквизитовТитулаЗаполнение.Вставить(КлючКуда, РеквизитКиЗ.Значение);
ИначеЕсли РеквизитКиЗ.Ключ = "СсылкаТитулГрузоотправителяГрузоотправитель"
- Или РеквизитКиЗ.Ключ = "СсылкаТитулГрузоотправителяПеревозчик" Тогда
+ Или РеквизитКиЗ.Ключ = "СсылкаТитулГрузоотправителяПеревозчик"
+ Или РеквизитКиЗ.Ключ = "СсылкаТитулГрузоотправителяГрузополучатель"
+ Или РеквизитКиЗ.Ключ = "СсылкаТитулГрузоотправителяВалюта" Тогда
СтруктураРеквизитовТитулаЗаполнение.Вставить(РеквизитКиЗ.Ключ, РеквизитКиЗ.Значение);
ИначеЕсли РеквизитКиЗ.Ключ = "ТитулГрузоотправителяРекомендацииОПредельныхСрокахПеревозки" Тогда
СтруктураРеквизитовТитулаЗаполнение.Вставить("ТитулГрузоотправителяСрокДоставкиГруза", РеквизитКиЗ.Значение);
@@ -8101,6 +8170,7 @@
КонецЕсли;
ИначеЕсли СтрНачинаетсяС(РеквизитКиЗ.Ключ, "ТитулГрузоотправителяГрузоотправитель")
Или СтрНачинаетсяС(РеквизитКиЗ.Ключ, "ТитулГрузоотправителяПеревозчик")
+ Или СтрНачинаетсяС(РеквизитКиЗ.Ключ, "ТитулГрузоотправителяГрузополучатель")
Или СтрНачинаетсяС(РеквизитКиЗ.Ключ, "ТитулГрузоотправителяАдресПогрузки")
Или СтрНачинаетсяС(РеквизитКиЗ.Ключ, "ТитулГрузоотправителяТранспортноеСредство")
Или СтрНачинаетсяС(РеквизитКиЗ.Ключ, "ТитулГрузоотправителяГрузы")
@@ -8111,7 +8181,10 @@
Или РеквизитКиЗ.Ключ = "ТитулГрузоотправителяВерхнийПределТемпературыПриПеревозке"
Или РеквизитКиЗ.Ключ = "ТитулГрузоотправителяНижнийПределТемпературыПриПеревозке"
Или РеквизитКиЗ.Ключ = "ТитулГрузоотправителяВерхнийПределВлажностиПриПеревозке"
- Или РеквизитКиЗ.Ключ = "ТитулГрузоотправителяНижнийПределВлажностиПриПеревозке" Тогда
+ Или РеквизитКиЗ.Ключ = "ТитулГрузоотправителяНижнийПределВлажностиПриПеревозке"
+ Или РеквизитКиЗ.Ключ = "ТитулГрузоотправителяСтоимостьГруза"
+ Или РеквизитКиЗ.Ключ = "ТитулГрузоотправителяКодВалюты"
+ Или РеквизитКиЗ.Ключ = "ТитулГрузоотправителяНаименованиеВалюты" Тогда
МассивЧастейИмени = ОбменСГИСЭПДКлиентСервер.РазделитьСтрокуСоСложнымРазделителем(РеквизитКиЗ.Ключ, "__");
Если МассивЧастейИмени.Количество() = 1 Тогда
ИмяРеквизита = РеквизитКиЗ.Ключ;
@@ -8121,6 +8194,10 @@
ОбластьНайдено = МакетСоответствиеИмен.НайтиТекст(ИмяРеквизита, , ОбластьКолонкаРеквизитов, Ложь, Истина, Истина, Ложь);
Если ОбластьНайдено <> Неопределено Тогда
СтруктураРеквизитовТитулаЗаполнение.Вставить(РеквизитКиЗ.Ключ, РеквизитКиЗ.Значение);
+ Иначе
+ Если ИмяРеквизита = "ТитулГрузоотправителяГрузы.СсылкаВалютаСтоимости" Тогда
+ СтруктураРеквизитовТитулаЗаполнение.Вставить(РеквизитКиЗ.Ключ, РеквизитКиЗ.Значение);
+ КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
@@ -9362,7 +9439,7 @@
ЕстьЗначенияДопРеквизитов = Ложь;
Для Каждого ОписаниеГруппыДопРеквизитов Из Форма.ОписаниеРеквизитовФормы.ОписаниеДопРеквизитов Цикл
- Если СтрНачинаетсяС(ОписаниеГруппыДопРеквизитов.Ключ, ПрефиксТитула) Тогда
+ Если СтрНачинаетсяС(ПрефиксТитула, ОписаниеГруппыДопРеквизитов.Ключ) Тогда
Если ОбменСГИСЭПДКлиентСервер.ЗагрузитьТаблицуВСтруктуруФормы(Форма, ОписаниеГруппыДопРеквизитов.Ключ + "ДополнительнаяИнформация", Истина, КонтейнерОтображаемойВерсии) Тогда
ЕстьЗначенияДопРеквизитов = ОбменСГИСЭПДКлиентСервер.ЗагрузитьТаблицуВСтруктуруФормы(Форма, ОписаниеГруппыДопРеквизитов.Ключ + "ИнформационныеПоля", Истина, КонтейнерОтображаемойВерсии)
Иначе
@@ -11137,6 +11214,7 @@
ВерсияТитула.Вставить("ДатаВерсии", КлючеваяИнформацияПоТитулу.ДатаВерсии);
ДокументОбъект.ДополнительныеСвойства.Вставить("ВерсияТитула", ВерсияТитула);
+ ДокументОбъект.ДополнительныеСвойства.Вставить("ЭлектронныйДокумент", ПараметрыОбработки.ЭлектронныйДокумент);
ЗаполнитьПредставленияСсылочныхТипов(ДокументОбъект);
ЗаполнитьПредставлениеХранимыхДанныхОбъекта(ДокументОбъект.ДополнительныеСвойства.СтруктураРеквизитов,
diff --git a/src/CommonModules/ОбменСГИСЭПДКлиент/Ext/Module.bsl b/src/CommonModules/ОбменСГИСЭПДКлиент/Ext/Module.bsl
index 0607aa648..f1d35be8a 100644
--- a/src/CommonModules/ОбменСГИСЭПДКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСГИСЭПДКлиент/Ext/Module.bsl
@@ -2247,7 +2247,8 @@
Результат = Объект.ИдентификаторФрахтовщика;
КонецЕсли;
ИначеЕсли ТипЗнч(Объект.Ссылка) = Тип("ДокументСсылка.ЭлектронныйЗаказЗаявка") Тогда
- Если ТипЗнч(Объект.СсылкаТитулГрузоотправителяГрузоотправитель) = ТипОрганизация Тогда
+ Если ТипЗнч(Объект.СсылкаТитулГрузоотправителяГрузоотправитель) = ТипОрганизация
+ Или ТипЗнч(Объект.СсылкаТитулГрузоотправителяСоставитель) = ТипОрганизация Тогда
Результат = Объект.ИдентификаторГрузоотправителя;
Иначе
Результат = Объект.ИдентификаторПеревозчика;
@@ -2528,6 +2529,12 @@
Если ЗначениеЗаполнено(Объект.УИДМинтранс) Тогда
ЗаполнитьИдентификациюФайлаОбмена_ПослеПолученияУИД(Объект.УИДМинтранс, ДополнительныеПараметры);
Иначе
+
+ Если Форма <> Неопределено И Форма.Доступность Тогда
+ ДополнительныеПараметры.Вставить("ТребуетсяРазблокироватьФорму", Истина);
+ Форма.Доступность = Ложь;
+ КонецЕсли;
+
Если ОбменСГИСЭПДВызовСервера.ЭтоТитулОтправителя(Объект.ТекущийТитул) Тогда
ПолучитьУИДМинтранса(ОписаниеОповещения, ИдентификаторОтправителя(Объект));
Иначе
@@ -2539,6 +2546,12 @@
Процедура ЗаполнитьИдентификациюФайлаОбмена_ПослеПолученияУИД(Результат, ДополнительныеПараметры) Экспорт
+ ТребуетсяРазблокироватьФорму = Ложь;
+ Если ДополнительныеПараметры.Свойство("ТребуетсяРазблокироватьФорму", ТребуетсяРазблокироватьФорму)
+ И ТребуетсяРазблокироватьФорму Тогда
+ ДополнительныеПараметры.Форма.Доступность = Истина;
+ КонецЕсли;
+
ИнформацияПоПрефиксамТитула = ДополнительныеПараметры.ИнформацияПоПрефиксамТитула;
Если ЗначениеЗаполнено(ИнформацияПоПрефиксамТитула.ВПрограмме) = Ложь Тогда
@@ -2614,12 +2627,35 @@
Форма, "ТитулГрузоотправителяЛицоОсуществляющееПогрузкуЯвляетсяГрузоотправителем", , КонтейнерОтображаемойВерсии);
Если ТитулГрузоотправителяЛицоОсуществляющееПогрузкуЯвляетсяГрузоотправителем = "1"
И ЗначениеЗаполнено(Объект.СсылкаТитулГрузоотправителяГрузоотправитель) Тогда
+
РеквизитыКонтрагента = ОбменСГИСЭПДВызовСервера.ЗначенияРеквизитовОбъекта(Объект.СсылкаТитулГрузоотправителяГрузоотправитель, "ИНН");
- ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
- Форма, "ТитулГрузоотправителяРеквизитыГрузоотправителяЮЛ_ИНН", РеквизитыКонтрагента.ИНН, , КонтейнерОтображаемойВерсии);
+
+ Если СтрДлина(РеквизитыКонтрагента.ИНН) = 10 Тогда
+
+ ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
+ Форма, "ТитулГрузоотправителяРеквизитыГрузоотправителяЮЛ_ИНН", РеквизитыКонтрагента.ИНН, , КонтейнерОтображаемойВерсии);
+
+ ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
+ Форма, "ТитулГрузоотправителяРеквизитыГрузоотправителяФЛ_ИНН", Неопределено, , КонтейнерОтображаемойВерсии);
+
+ Иначе
+
+ ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
+ Форма, "ТитулГрузоотправителяРеквизитыГрузоотправителяФЛ_ИНН", РеквизитыКонтрагента.ИНН, , КонтейнерОтображаемойВерсии);
+
+ ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
+ Форма, "ТитулГрузоотправителяРеквизитыГрузоотправителяЮЛ_ИНН", Неопределено, , КонтейнерОтображаемойВерсии);
+
+ КонецЕсли;
+
Иначе
+
ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
Форма, "ТитулГрузоотправителяРеквизитыГрузоотправителяЮЛ_ИНН", Неопределено, , КонтейнерОтображаемойВерсии);
+
+ ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
+ Форма, "ТитулГрузоотправителяРеквизитыГрузоотправителяФЛ_ИНН", Неопределено, , КонтейнерОтображаемойВерсии);
+
КонецЕсли;
Если ТитулГрузоотправителяЛицоОсуществляющееПогрузкуЯвляетсяГрузоотправителем = "1" Тогда
@@ -2669,12 +2705,34 @@
Если ОбменСГИСЭПДКлиентСервер.ПолучитьЗначениеРеквизитаИзСтруктурыФормы(
Форма, "ТитулГрузоотправителяВладелецПунктаПогрузкиЯвляетсяГрузоотправителем", , КонтейнерОтображаемойВерсии) = "1"
И ЗначениеЗаполнено(Объект.СсылкаТитулГрузоотправителяГрузоотправитель) Тогда
+
РеквизитыКонтрагента = ОбменСГИСЭПДВызовСервера.ЗначенияРеквизитовОбъекта(Объект.СсылкаТитулГрузоотправителяГрузоотправитель, "ИНН");
- ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
- Форма, "ТитулГрузоотправителяИнойГрузоотправительЮЛ_ИНН", РеквизитыКонтрагента.ИНН, , КонтейнерОтображаемойВерсии);
+
+ Если СтрДлина(РеквизитыКонтрагента.ИНН) = 10 Тогда
+
+ ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
+ Форма, "ТитулГрузоотправителяИнойГрузоотправительЮЛ_ИНН", РеквизитыКонтрагента.ИНН, , КонтейнерОтображаемойВерсии);
+
+ ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
+ Форма, "ТитулГрузоотправителяИнойГрузоотправительФЛ_ИНН", Неопределено, , КонтейнерОтображаемойВерсии);
+
+ Иначе
+
+ ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
+ Форма, "ТитулГрузоотправителяИнойГрузоотправительФЛ_ИНН", РеквизитыКонтрагента.ИНН, , КонтейнерОтображаемойВерсии);
+
+ ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
+ Форма, "ТитулГрузоотправителяИнойГрузоотправительЮЛ_ИНН", Неопределено, , КонтейнерОтображаемойВерсии);
+
+ КонецЕсли;
+
Иначе
+
ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
Форма, "ТитулГрузоотправителяИнойГрузоотправительЮЛ_ИНН", Неопределено, , КонтейнерОтображаемойВерсии);
+ ОбменСГИСЭПДКлиентСервер.УстановитьЗначениеРеквизитаВСтруктуреФормы(
+ Форма, "ТитулГрузоотправителяИнойГрузоотправительФЛ_ИНН", Неопределено, , КонтейнерОтображаемойВерсии);
+
КонецЕсли;
ИначеЕсли Объект.ТекущийТитул = ПредопределенноеЗначение("Перечисление.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул2") Тогда
diff --git a/src/CommonModules/ОбменСГИСЭПДКлиентСервер/Ext/Module.bsl b/src/CommonModules/ОбменСГИСЭПДКлиентСервер/Ext/Module.bsl
index 6f9efe950..f7396b606 100644
--- a/src/CommonModules/ОбменСГИСЭПДКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСГИСЭПДКлиентСервер/Ext/Module.bsl
@@ -1667,14 +1667,14 @@
Результат.ВПрограмме = "ТитулПеревозчикаФХЖ";
Результат.ДляФайла = "ON_TRNPUDPER";
Результат.ПолеУИД = Результат.ВПрограмме + "УИДМинтранс";
- Результат.ШаблонИмениФайла = Результат.ДляФайла + "_ИдГО__ИдПЕР__GGGGMMDD_ГУИДФайла";
+ Результат.ШаблонИмениФайла = Результат.ДляФайла + "_ИдГО_ _ИдПЕР_ _GGGGMMDD_ГУИДФайла";
Результат.КНД = "1110345";
Результат.ПоФактХЖ = "Транспортная накладная, информация перевозчика об изменении финансового состояния перевозчика и грузоотправителя в результате выполнения грузовой перевозки";
ИначеЕсли ЭлементРегламента = ПредопределенноеЗначение("Перечисление.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул6") Тогда
Результат.ВПрограмме = "ТитулГрузоотправителяФХЖ";
Результат.ДляФайла = "ON_TRNPUDGO";
Результат.ПолеУИД = Результат.ВПрограмме + "УИДМинтранс";
- Результат.ШаблонИмениФайла = Результат.ДляФайла + "_ИдПЕР__ИдГО__GGGGMMDD_ГУИДФайла";
+ Результат.ШаблонИмениФайла = Результат.ДляФайла + "_ИдПЕР_ _ИдГО_ _GGGGMMDD_ГУИДФайла";
Результат.КНД = "1110346";
Результат.ПоФактХЖ = "Транспортная накладная, информация грузоотправителя об изменении финансового состояния перевозчика и грузоотправителя в результате выполнения грузовой перевозки";
ИначеЕсли ЭлементРегламента = ПредопределенноеЗначение("Перечисление.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул7") Тогда
@@ -2810,6 +2810,26 @@
Элементы.ГруппаРеквизитаТитулПеревозчикаФХЖСтоимостьПеревозкиСНалогом.Доступность = БезНДС = Ложь;
КонецЕсли;
+ ИначеЕсли СтрЗаканчиваетсяНа(Форма.ИмяФормы, "ТитулПеревозчикаРазмерПлатыИПорядокРасчетов") Тогда
+
+ ТитулПеревозчикаНалоговаяСтавка = Форма.ТитулПеревозчикаНалоговаяСтавка;
+
+ Если ТитулПеревозчикаНалоговаяСтавка = "без НДС" Тогда
+
+ Форма.ТитулПеревозчикаСтоимостьПеревозкиСНалогом = Неопределено;
+
+ Иначе
+
+ ТитулПеревозчикаСтоимостьПеревозкиБезНалога = Форма.ТитулПеревозчикаСтоимостьПеревозкиБезНалога;
+
+ НДС = РасчетНДСПоСтавкеСтрокой(ТитулПеревозчикаСтоимостьПеревозкиБезНалога, ТитулПеревозчикаНалоговаяСтавка);
+
+ Если НДС > 0 Тогда
+ Форма.ТитулПеревозчикаСтоимостьПеревозкиСНалогом = ТитулПеревозчикаСтоимостьПеревозкиБезНалога + НДС;
+ КонецЕсли;
+
+ КонецЕсли;
+
ИначеЕсли СтрЗаканчиваетсяНа(Форма.ИмяФормы, "ТитулГрузоотправителяРаботникНаПогрузке") Тогда
Если ЗначениеЗаполнено(Форма.ТитулГрузоотправителяРаботникНаПогрузкеДокументПолномочийНаименование) Тогда
Форма.ВариантОснованияПолномочий = 1;
@@ -3067,14 +3087,30 @@
Результат = 0;
- Если СтавкаСтрокой = "10%" Тогда
+ Если СтавкаСтрокой = "0%" Тогда
+ Результат = 0;
+ ИначеЕсли СтавкаСтрокой = "5%" Тогда
+ Результат = СуммаБезНДС * 5 / 100;
+ ИначеЕсли СтавкаСтрокой = "7%" Тогда
+ Результат = СуммаБезНДС * 7 / 100;
+ ИначеЕсли СтавкаСтрокой = "9,09%" Тогда
+ Результат = СуммаБезНДС * 9.09 / 100;
+ ИначеЕсли СтавкаСтрокой = "10%" Тогда
Результат = СуммаБезНДС * 10 / 100;
+ ИначеЕсли СтавкаСтрокой = "16,67%" Тогда
+ Результат = СуммаБезНДС * 16.67 / 100;
+ ИначеЕсли СтавкаСтрокой = "18,03%" Тогда
+ Результат = СуммаБезНДС * 18.03 / 100;
ИначеЕсли СтавкаСтрокой = "18%" Тогда
Результат = СуммаБезНДС * 18 / 100;
ИначеЕсли СтавкаСтрокой = "20%" Тогда
Результат = СуммаБезНДС * 20 / 100;
ИначеЕсли СтавкаСтрокой = "22%" Тогда
Результат = СуммаБезНДС * 22 / 100;
+ ИначеЕсли СтавкаСтрокой = "5/105" Тогда
+ Результат = СуммаБезНДС * 5 / 105;
+ ИначеЕсли СтавкаСтрокой = "7/107" Тогда
+ Результат = СуммаБезНДС * 7 / 107;
ИначеЕсли СтавкаСтрокой = "10/110" Тогда
Результат = СуммаБезНДС * 10 / 110;
ИначеЕсли СтавкаСтрокой = "18/118" Тогда
@@ -3623,8 +3659,13 @@
ПрефиксКонтактов = "ЮЛ";
ПрефиксАдреса = "ЮЛ";
Иначе
- ПрефиксКонтактов = "ФЛ";
- ПрефиксАдреса = Неопределено;
+ Если ПрефиксРеквизитов = "ТитулФрахтователяФрахтователь" Тогда
+ ПрефиксКонтактов = "ФЛ";
+ ПрефиксАдреса = Неопределено;
+ Иначе
+ ПрефиксКонтактов = "ИП";
+ ПрефиксАдреса = Неопределено;
+ КонецЕсли;
КонецЕсли;
ИначеЕсли ПрефиксРеквизитов = "ТитулФрахтовщикаФрахтовщик"
Или ПрефиксРеквизитов = "ТитулПеревозчикаПеревозчик"
@@ -3655,6 +3696,11 @@
Иначе
КороткоеИмя = КиЗ.Ключ
КонецЕсли;
+
+ Если ПрефиксРеквизитов = "ТитулФрахтователяФрахтователь" И СтрНачинаетсяС(КороткоеИмя, "ИП") Тогда
+ КороткоеИмя = СтрЗаменить(КороткоеИмя, "ИП", "ФЛ");
+ КонецЕсли;
+
МассивЧастей = СтрРазделить(ПрефиксРеквизитов, "_");
ИмяРеквизита = МассивЧастей[МассивЧастей.ВГраница()] + КороткоеИмя;
СтруктураДляЗаполнения.Вставить(ИмяРеквизита, КиЗ.Значение);
@@ -4190,9 +4236,11 @@
Если ТипЗнч(ЗначениеРеквизита) = ПолучитьТипОрганизация()
Или ТипЗнч(ЗначениеРеквизита) = ПолучитьТипКонтрагент() Тогда
- ПоказатьОшибкиПоКонтрагенту(Форма, Элемент, ЗначениеРеквизита);
+ ПоказатьОшибкиПоКонтрагенту(Форма, Элемент, ЗначениеРеквизита);
+ ИначеЕсли ТипЗнч(ЗначениеРеквизита) = Тип("СправочникСсылка.ФизическиеЛица") Тогда
+ ПоказатьОшибкиПоФизЛицу(Форма, Элемент, ЗначениеРеквизита, Форма.Объект.Организация);
КонецЕсли;
-
+
КонецПроцедуры
@@ -4231,7 +4279,7 @@
Дата = ОкруглитьВремя(ТекущаяДатаСеанса, Шаг + ?(Направление > 0, 1, 0));
КонецЕсли;
- Дата = ОкруглитьВремя(Дата + Направление * Шаг);
+ Дата = ОкруглитьВремя(Дата + Направление * Шаг, Шаг);
КонецПроцедуры
@@ -4897,6 +4945,24 @@
КонецПроцедуры
+Процедура ПоказатьОшибкиПоФизЛицу(Форма, ЭлементФормы, ФизическоеЛицо, Организация = Неопределено)
+
+ Шаблон = "%1%2";
+ ПостфиксДляИнформацииОбОшибке = ПостфиксДляИнформацииОбОшибке();
+ ИмяПоляИнформацииОбОшибке = СтрШаблон(Шаблон, ЭлементФормы.Имя, ПостфиксДляИнформацииОбОшибке);
+ ДекорацияСИнформациейОбОшибке = Форма.Элементы.Найти(ИмяПоляИнформацииОбОшибке);
+
+ Если ДекорацияСИнформациейОбОшибке = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ СтруктураОшибок = ПолучитьОшибкиПоФизЛицу(ФизическоеЛицо, Организация);
+
+ ДекорацияСИнформациейОбОшибке.Видимость = СтруктураОшибок.ЕстьОшибки;
+ ДекорацияСИнформациейОбОшибке.Заголовок = СтруктураОшибок.ОписаниеОшибок;
+
+КонецПроцедуры
+
Процедура ПоказатьОшибкиПоАдресу(Форма, КонтейнерРеквизитов, Префикс, ИмяЭлемента)
Шаблон = "%1%2";
@@ -5014,6 +5080,36 @@
КонецФункции
+Функция ПолучитьОшибкиПоФизЛицу(ФизическоеЛицо, Организация = Неопределено)
+
+ СтруктураОшибок = НовоеОписаниеОшибокЗаполнения();
+
+ Если Не ЗначениеЗаполнено(ФизическоеЛицо)
+ Или ТипЗнч(ФизическоеЛицо) = Тип("Строка") Тогда
+ Возврат СтруктураОшибок;
+ КонецЕсли;
+
+ #Если Сервер Тогда
+ МодульОбменСГИСЭПД = ОбменСГИСЭПД;
+ #Иначе
+ МодульОбменСГИСЭПД = ОбменСГИСЭПДВызовСервера;
+ #КонецЕсли
+
+ Попытка
+ РеквизитыФизЛица = МодульОбменСГИСЭПД.ПолучитьРеквизитыФизЛица(ФизическоеЛицо, Организация);
+ ПостфиксТелефоны = "НомераТелефонов";
+ Если Не РеквизитыФизЛица.Свойство(ПостфиксТелефоны) ИЛИ РеквизитыФизЛица[ПостфиксТелефоны].Количество() <= 0 Тогда
+ СтруктураОшибок.ЕстьОшибки = Истина;
+ СтруктураОшибок.ОписаниеОшибок = "Не заполнен номер телефона физического лица";
+ КонецЕсли;
+ Исключение
+ Возврат СтруктураОшибок;
+ КонецПопытки;
+
+ Возврат СтруктураОшибок;
+
+КонецФункции
+
#КонецОбласти
#Область ОформлениеКнопок
diff --git a/src/CommonModules/ОбменСКонтрагентами/Ext/Module.bsl b/src/CommonModules/ОбменСКонтрагентами/Ext/Module.bsl
index 13502b553..6918c9606 100644
--- a/src/CommonModules/ОбменСКонтрагентами/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСКонтрагентами/Ext/Module.bsl
@@ -1366,14 +1366,14 @@
//
// Возвращаемое значение:
// Структура:
-// * ЭлементыДополнительногоСостояния - ТаблицаЗначений:
+// * ЭлементыДополнительногоСостояния - ТаблицаЗначений - таблица элементов дополнительного состояния:
// ** Идентификатор - Строка
// ** Представление - Строка
// ** Обработчик - Строка
// ** Порядок - Число
// ** Значение - Произвольный - произвольное сериализуемое значение для передачи в обработчик
// * ЦветПанелиСостояния - Неопределено
-// - См. ЦветаПанельСостояния
+// - См. ЦветаПанельСостояния
Функция НовоеДополнительноеСостояние() Экспорт
Возврат ЛегкийИнтерфейсДокументовЭДО.НовоеДополнительноеСостояние();
@@ -1384,9 +1384,9 @@
//
// Возвращаемое значение:
// Структура:
-// * Зеленый - Цвет
-// * Желтый - Цвет
-// * Красный - Цвет
+// * Зеленый - Цвет
+// * Желтый - Цвет
+// * Красный - Цвет
Функция ЦветаПанельСостояния() Экспорт
Возврат ЛегкийИнтерфейсДокументовЭДО.ЦветаПанельСостояния();
diff --git a/src/CommonModules/ОбменСКонтрагентамиИнтеграцияСобытия/Ext/Module.bsl b/src/CommonModules/ОбменСКонтрагентамиИнтеграцияСобытия/Ext/Module.bsl
index 199435a79..9727e2c81 100644
--- a/src/CommonModules/ОбменСКонтрагентамиИнтеграцияСобытия/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСКонтрагентамиИнтеграцияСобытия/Ext/Module.bsl
@@ -16,7 +16,9 @@
НастройкиВнутреннегоЭДО.ПриДобавленииОбработчиковОбновления(Обработчики);
МашиночитаемыеДоверенности.ПриДобавленииОбработчиковОбновления(Обработчики);
ИнтерфейсДокументовЭДО.ПриДобавленииОбработчиковОбновления(Обработчики);
-
+ УчетныеЗаписиЭДО.ПриДобавленииОбработчиковОбновления(Обработчики);
+ ФорматыЭДО.ПриДобавленииОбработчиковОбновления(Обработчики);
+
КонецПроцедуры
// См. ЭлектронноеВзаимодействие.ПриДобавленииПереименованийОбъектовМетаданных.
@@ -309,12 +311,6 @@
//
Процедура ПараметрыРаботыКлиентаПриЗапуске(Параметры) Экспорт
- Если Не ОбщегоНазначенияБЭД.ДоступныСерверныеОповещения() Тогда
- Ключ = ОповещенияОСобытияхЭДОКлиентСервер.ПараметрРаботыКлиентаПриЗапуске_ДоступноОповещениеОСобытиях();
- Значение = ОповещенияОСобытияхЭДО.ДоступноОповещениеОСобытияхЭДО();
- Параметры.Вставить(Ключ, Значение);
- КонецЕсли;
-
Ключ = ОповещенияОСобытияхЭДОКлиентСервер.ПараметрРаботыКлиентаПриЗапуске_ЕстьНовыеДокументы();
Значение = ОповещенияОСобытияхЭДО.ЕстьСобытияЭДО();
Параметры.Вставить(Ключ, Значение);
diff --git a/src/CommonModules/ОбменСКонтрагентамиУТ/Ext/Module.bsl b/src/CommonModules/ОбменСКонтрагентамиУТ/Ext/Module.bsl
index f03b7a90e..a9abba135 100644
--- a/src/CommonModules/ОбменСКонтрагентамиУТ/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСКонтрагентамиУТ/Ext/Module.bsl
@@ -5053,7 +5053,7 @@
Идентификатор = ЭлектронноеВзаимодействие.ЗначениеРеквизитаВДереве(СведенияОТоваре,
"ТаблицаТоваров.НомерСтроки.Сопоставление.Идентификатор");
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -5197,7 +5197,7 @@
Идентификатор = ЭлектронноеВзаимодействие.ЗначениеРеквизитаВДереве(СведенияОТоваре,
"ТаблицаУслуг.НомерСтроки.Сопоставление.Идентификатор");
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -5382,6 +5382,8 @@
Если ЗначениеЗаполнено(Контрагент) Тогда
ДанныеОбъекта.Вставить("Контрагент", Контрагент);
ДанныеОбъекта.Вставить("Партнер", Контрагент.Партнер);
+ Иначе
+ ДанныеОбъекта.Вставить("Партнер", Справочники.Партнеры.ПустаяСсылка());
КонецЕсли;
// Сведения о конечном покупателе.
@@ -5468,7 +5470,7 @@
Идентификатор = ЭлектронноеВзаимодействие.ЗначениеРеквизитаВДереве(СведенияОТоваре,
"СведенияОТоварах.НомерСтроки.Сопоставление.Идентификатор");
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -5725,6 +5727,8 @@
Если ЗначениеЗаполнено(Контрагент) Тогда
ДанныеОбъекта.Вставить("Контрагент", Контрагент);
ДанныеОбъекта.Вставить("Партнер", Контрагент.Партнер);
+ Иначе
+ ДанныеОбъекта.Вставить("Партнер", Справочники.Партнеры.ПустаяСсылка());
КонецЕсли;
// Сведения о конечном покупателе.
@@ -5819,7 +5823,7 @@
Идентификатор = ЭлектронноеВзаимодействие.ЗначениеРеквизитаВДереве(СведенияОТоваре,
"СведенияОТоварах.НомерСтроки.Сопоставление.Идентификатор");
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -6271,6 +6275,8 @@
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(РеквизитыШапки, "НалогообложениеНДС") Тогда
НДСИсчисляетсяНалоговымАгентом = (РеквизитыШапки.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ОблагаетсяНДСУПокупателя);
КонецЕсли;
+
+ ВыводитьБазовыеЕдиницыИзмерения = Константы.ВыводитьБазовыеЕдиницыИзмерения.Получить();
Пока СтрокаТовары.Следующий() Цикл
@@ -6311,7 +6317,8 @@
КонецЕсли;
УпаковкаИзДокумента = Неопределено;
- Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТовары, "Упаковка") И ЗначениеЗаполнено(СтрокаТовары.Упаковка) Тогда
+ Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТовары, "Упаковка")
+ И ЗначениеЗаполнено(СтрокаТовары.Упаковка) И Не ВыводитьБазовыеЕдиницыИзмерения Тогда
УпаковкаИзДокумента = СтрокаТовары.Упаковка;
ИначеЕсли ЗаполнятьСопоставление Тогда
УпаковкаИзДокумента = ЭлектронноеВзаимодействиеУТВызовСервера.ЕдиницаХраненияНоменклатуры(СтрокаТовары.Номенклатура)
@@ -7512,7 +7519,7 @@
Идентификатор = ЭлектронноеВзаимодействие.ЗначениеРеквизитаВДереве(СведенияОТоваре,
"СведенияОТоварах.НомерСтроки.Сопоставление.Идентификатор");
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -7887,7 +7894,7 @@
Идентификатор = ЭлектронноеВзаимодействие.ЗначениеРеквизитаВДереве(СведенияОТоваре,
"СведенияОТоварах.НомерСтроки.Сопоставление.Идентификатор");
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -8348,7 +8355,7 @@
Идентификатор = ЭлектронноеВзаимодействие.ЗначениеРеквизитаВДереве(СведенияОТоваре,
"СведенияОТоварах.НомерСтроки.Сопоставление.Идентификатор");
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -9856,7 +9863,7 @@
Если Сопоставление <> Неопределено Тогда
Если ЗначениеЗаполнено(Сопоставление.Идентификатор) Тогда
НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(
- Сопоставление.Идентификатор);
+ Сопоставление.Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -12427,6 +12434,8 @@
ВыводитьСерии = Константы.ВыводитьСерииВПечатныхФормах.Получить()
И СтруктураДанных.РезультатПоТабличнойЧасти.Колонки.Найти("СерияНаименование") <> Неопределено;
+ ВыводитьБазовыеЕдиницыИзмерения = Константы.ВыводитьБазовыеЕдиницыИзмерения.Получить();
+
Пока СтрокаТовары.Следующий() Цикл
Если ИспользоватьНаборы
@@ -12527,7 +12536,7 @@
УпаковкаИзДокумента = Неопределено;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТовары, "Упаковка")
- И ЗначениеЗаполнено(СтрокаТовары.Упаковка) Тогда
+ И ЗначениеЗаполнено(СтрокаТовары.Упаковка) И Не ВыводитьБазовыеЕдиницыИзмерения Тогда
УпаковкаИзДокумента = СтрокаТовары.Упаковка;
ИначеЕсли ЗаполнятьСопоставление Тогда
УпаковкаИзДокумента = ЭлектронноеВзаимодействиеУТВызовСервера.ЕдиницаХраненияНоменклатуры(СтрокаТовары.Номенклатура)
@@ -13096,6 +13105,7 @@
ДопДанные.Идентификатор = "ДокументОснованиеПервичныйДокумент";
ДопДанные.Значение = Строка(ДокументОснование);
КонецЕсли;
+
КонецЕсли;
// Передача данных цифрового рубля
@@ -14188,7 +14198,7 @@
Идентификатор = ЭлектронноеВзаимодействие.ЗначениеРеквизитаВДереве(СведенияОТоваре,
ПолныйПуть + "Сопоставление.Идентификатор");
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -14590,7 +14600,7 @@
Идентификатор = ЭлектронноеВзаимодействие.ЗначениеРеквизитаВДереве(СведенияОТоваре,
ПолныйПуть + "Сопоставление.Идентификатор");
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -14813,7 +14823,7 @@
Идентификатор = ЭлектронноеВзаимодействие.ЗначениеРеквизитаВДереве(СведенияОТоваре,
ОбщийПуть + "Сопоставление.Идентификатор");
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -16064,6 +16074,8 @@
ВыводитьСерии = Константы.ВыводитьСерииВПечатныхФормах.Получить()
И СтруктураДанных.РезультатПоТабличнойЧасти.Колонки.Найти("СерияНаименование") <> Неопределено;
+
+ ВыводитьБазовыеЕдиницыИзмерения = Константы.ВыводитьБазовыеЕдиницыИзмерения.Получить();
Пока СтрокаТовары.Следующий() Цикл
@@ -16133,7 +16145,8 @@
КонецЕсли;
УпаковкаИзДокумента = Неопределено;
- Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТовары, "Упаковка") И ЗначениеЗаполнено(СтрокаТовары.Упаковка) Тогда
+ Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТовары, "Упаковка")
+ И ЗначениеЗаполнено(СтрокаТовары.Упаковка) И Не ВыводитьБазовыеЕдиницыИзмерения Тогда
УпаковкаИзДокумента = СтрокаТовары.Упаковка;
ИначеЕсли ЗаполнятьСопоставление Тогда
УпаковкаИзДокумента = ЭлектронноеВзаимодействиеУТВызовСервера.ЕдиницаХраненияНоменклатуры(СтрокаТовары.Номенклатура)
@@ -16926,6 +16939,8 @@
Если ЗначениеЗаполнено(Контрагент) Тогда
ДанныеОбъекта.Вставить("Контрагент", Контрагент);
ДанныеОбъекта.Вставить("Партнер", Контрагент.Партнер);
+ Иначе
+ ДанныеОбъекта.Вставить("Партнер", Справочники.Партнеры.ПустаяСсылка());
КонецЕсли;
// Сведения о покупателе.
@@ -17055,7 +17070,7 @@
Идентификатор = ЭлектронноеВзаимодействие.ЗначениеРеквизитаВДереве(СведенияОТоваре,
"СведенияОТоварах.НомерСтроки.Сопоставление.Идентификатор");
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ДанныеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -32831,7 +32846,7 @@
Идентификатор = СведенияОТоваре.Сопоставление.Идентификатор;
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ОписаниеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -33009,7 +33024,7 @@
Идентификатор = СведенияОТоваре.Сопоставление.Идентификатор;
Если ЗначениеЗаполнено(Идентификатор) Тогда
- НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор);
+ НоменклатураПартнера = НоменклатураПартнеровСервер.НайтиСсылкуНаНоменклатуруПартнераПоИдентификатору(Идентификатор, ОписаниеОбъекта.Партнер);
Если ЗначениеЗаполнено(НоменклатураПартнера) Тогда
НоваяСтрока.НоменклатураПартнера = НоменклатураПартнера;
КонецЕсли;
@@ -33490,6 +33505,7 @@
Иначе
ДокументРеализации = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументИсправления, "ДокументОснование");
КонецЕсли;
+
Если СчетФактура <> Неопределено Тогда
ТаблицаИсходныхДокументов = СчетФактура.Товары.Выгрузить();
ТаблицаИсходныхДокументов.Свернуть("ПредыдущийСчетФактура");
@@ -33673,6 +33689,7 @@
Если ЗначениеЗаполнено(ДанныеШапки.ДокументОснование) Тогда
МассивОснований.Добавить(ДанныеШапки.ДокументОснование);
КонецЕсли;
+
Если ДанныеШапки.Исправление И НЕ ЗначениеЗаполнено(МассивОснований) Тогда
РеквизитИсправляемыйДокумент = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументИсправления, "ИсправляемыйДокумент");
МассивОснований = ПолучитьИсправляемыеДокументыПоИсходнымДанным(СтруктураДанных, ДанныеШапки.Ссылка, РеквизитИсправляемыйДокумент);
@@ -33680,6 +33697,7 @@
Для Каждого ЭлементМассива Из МассивОснований Цикл
ИсходныйДокументСтрока = ИсходныеДокументы.Добавить();
+
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭлементМассива, "Номер, Дата");
ИсходныйДокументСтрока.НомерИсходногоДокумента = НомерСчетаФактурыНаПечать(ЗначенияРеквизитов.Номер, ДанныеШапки.ИндексПодразделения);
ИсходныйДокументСтрока.ДатаИсходногоДокумента = ЗначенияРеквизитов.Дата;
@@ -34034,6 +34052,8 @@
ВыводитьСерии = Константы.ВыводитьСерииВПечатныхФормах.Получить()
И СтруктураДанных.РезультатПоТабличнойЧасти.Колонки.Найти("СерияНаименование") <> Неопределено;
+
+ ВыводитьБазовыеЕдиницыИзмерения = Константы.ВыводитьБазовыеЕдиницыИзмерения.Получить();
Пока СтрокаТовары.Следующий() Цикл
@@ -34136,7 +34156,8 @@
КонецЕсли;
УпаковкаИзДокумента = Неопределено;
- Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТовары, "Упаковка") И ЗначениеЗаполнено(СтрокаТовары.Упаковка) Тогда
+ Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТовары, "Упаковка")
+ И ЗначениеЗаполнено(СтрокаТовары.Упаковка) И Не ВыводитьБазовыеЕдиницыИзмерения Тогда
УпаковкаИзДокумента = СтрокаТовары.Упаковка;
Иначе
УпаковкаИзДокумента = ЭлектронноеВзаимодействиеУТВызовСервера.ЕдиницаХраненияНоменклатуры(СтрокаТовары.Номенклатура)
@@ -34482,6 +34503,8 @@
ВыводитьСерии = Константы.ВыводитьСерииВПечатныхФормах.Получить()
И СтруктураДанных.РезультатПоТабличнойЧасти.Колонки.Найти("СерияНаименование") <> Неопределено;
+
+ ВыводитьБазовыеЕдиницыИзмерения = Константы.ВыводитьБазовыеЕдиницыИзмерения.Получить();
Пока СтрокаТовары.Следующий() Цикл
@@ -34553,7 +34576,8 @@
КонецЕсли;
УпаковкаИзДокумента = Неопределено;
- Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТовары, "Упаковка") И ЗначениеЗаполнено(СтрокаТовары.Упаковка) Тогда
+ Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТовары, "Упаковка")
+ И ЗначениеЗаполнено(СтрокаТовары.Упаковка) И Не ВыводитьБазовыеЕдиницыИзмерения Тогда
УпаковкаИзДокумента = СтрокаТовары.Упаковка;
Иначе
УпаковкаИзДокумента = ЭлектронноеВзаимодействиеУТВызовСервера.ЕдиницаХраненияНоменклатуры(СтрокаТовары.Номенклатура)
diff --git a/src/CommonModules/ОбменСообщениями/Ext/Module.bsl b/src/CommonModules/ОбменСообщениями/Ext/Module.bsl
index 982125648..ddc46dfba 100644
--- a/src/CommonModules/ОбменСообщениями/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСообщениями/Ext/Module.bsl
@@ -151,4 +151,3 @@
КонецПроцедуры
#КонецОбласти
-
diff --git a/src/CommonModules/ОбменСообщениямиВнутренний/Ext/Module.bsl b/src/CommonModules/ОбменСообщениямиВнутренний/Ext/Module.bsl
index 484e21ac1..83e6aa1bf 100644
--- a/src/CommonModules/ОбменСообщениямиВнутренний/Ext/Module.bsl
+++ b/src/CommonModules/ОбменСообщениямиВнутренний/Ext/Module.bsl
@@ -98,5 +98,12 @@
Процедура ОтправитьИПолучитьСообщенияПоРегламентномуЗаданию() Экспорт
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОтправитьИПолучитьСообщенияПоРегламентномуЗаданию", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Ext/Module.bsl b/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Ext/Module.bsl
index 1085327c7..1936603a5 100644
--- a/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Ext/Module.bsl
+++ b/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Ext/Module.bsl
@@ -44,7 +44,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
- Описание.Версия = "3.1.12.238";
+ Описание.Версия = "3.1.12.254";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
diff --git a/src/CommonModules/ОбновлениеИнформационнойБазыБСС.xml b/src/CommonModules/ОбновлениеИнформационнойБазыБСС.xml
index 69be4f0e4..177fafd2a 100644
--- a/src/CommonModules/ОбновлениеИнформационнойБазыБСС.xml
+++ b/src/CommonModules/ОбновлениеИнформационнойБазыБСС.xml
@@ -8,10 +8,6 @@
ru
Обновление информационной базы БСС
-
- en
- SSL infobase update
-
false
diff --git a/src/CommonModules/ОбновлениеИнформационнойБазыБТС/Ext/Module.bsl b/src/CommonModules/ОбновлениеИнформационнойБазыБТС/Ext/Module.bsl
index 3ad381432..8ae9a6e40 100644
--- a/src/CommonModules/ОбновлениеИнформационнойБазыБТС/Ext/Module.bsl
+++ b/src/CommonModules/ОбновлениеИнформационнойБазыБТС/Ext/Module.bsl
@@ -205,3 +205,20 @@
КонецПроцедуры
#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления) Экспорт
+
+ Возврат ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
+
+КонецФункции
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВыполнитьОбновлениеИнформационнойБазы", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ОбновлениеИнформационнойБазыБЭД/Ext/Module.bsl b/src/CommonModules/ОбновлениеИнформационнойБазыБЭД/Ext/Module.bsl
index be0233a35..4c028ba89 100644
--- a/src/CommonModules/ОбновлениеИнформационнойБазыБЭД/Ext/Module.bsl
+++ b/src/CommonModules/ОбновлениеИнформационнойБазыБЭД/Ext/Module.bsl
@@ -17,7 +17,7 @@
//
Функция ВерсияБиблиотеки() Экспорт
- Возврат "1.9.16.38";
+ Возврат "1.9.16.55";
КонецФункции
@@ -125,3 +125,234 @@
#КонецОбласти
#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Процедура ПервыйЗапуск() Экспорт
+
+ СоздатьКлючевыеОперацииЗамеровПроизводительности();
+
+КонецПроцедуры
+
+// Параметры:
+// Имя - Строка
+// Наименование - Строка
+// ЦелевоеВремя - Число
+// Приоритет - Число
+//
+// Возвращаемое значение:
+// Структура:
+// * ИмяКлючевойОперации - Строка
+// * Наименование - Строка
+// * ЦелевоеВремя - Число
+// * Приоритет - Число
+Функция КлючеваяОперацияЗамера(Имя, Наименование, ЦелевоеВремя = 0, Приоритет = 0)
+ Результат = Новый Структура;
+ Результат.Вставить("ИмяКлючевойОперации", Имя);
+ Результат.Вставить("Наименование", Наименование);
+ Результат.Вставить("ЦелевоеВремя", ЦелевоеВремя);
+ Результат.Вставить("Приоритет", Приоритет);
+ Возврат Результат;
+КонецФункции
+
+// Параметры:
+// КлючеваяОперацияЗамера - Произвольный
+// Приоритет - Число
+Процедура УстановитьРеквизитыКлючевойОперации(КлючеваяОперацияЗамера, Приоритет)
+
+ СсылкаНаКлючевуюОперацию = ОценкаПроизводительностиПовтИсп.ПолучитьКлючевуюОперациюПоИмени(
+ КлючеваяОперацияЗамера.ИмяКлючевойОперации);
+
+ СпрОбъект = СсылкаНаКлючевуюОперацию.ПолучитьОбъект();
+
+ СпрОбъект.ДополнительныеСвойства.Вставить(ОценкаПроизводительностиКлиентСервер.НеПроверятьПриоритет());
+
+ СпрОбъект.ПометкаУдаления = Ложь;
+ СпрОбъект.Имя = КлючеваяОперацияЗамера.ИмяКлючевойОперации;
+ СпрОбъект.Наименование = КлючеваяОперацияЗамера.Наименование;
+ СпрОбъект.МинимальноДопустимыйУровень = Перечисления.УровниПроизводительности.Хорошо;
+ Если НЕ ЗначениеЗаполнено(СпрОбъект.Приоритет) Тогда
+ СпрОбъект.Приоритет = Приоритет;
+ КонецЕсли;
+ СпрОбъект.ЦелевоеВремя = КлючеваяОперацияЗамера.ЦелевоеВремя;
+ ОбновлениеИнформационнойБазы.ЗаписатьДанные(СпрОбъект, Ложь, Ложь);
+
+КонецПроцедуры
+
+//@skip-check module-nstr-camelcase
+Процедура СоздатьКлючевыеОперацииЗамеровПроизводительности()
+
+ КлючевыеОперации = Новый Массив;
+
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("АвтоматическоеПолучениеЭДО",
+ НСтр("ru = 'Автоматическое получение ЭДО'"), 120));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПолучитьНовыеЭлектронныеДокументыПоРасписанию",
+ НСтр("ru = 'Регламентное задание получение ЭДО'"), 120));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ОтправитьЭлектронныеДокументыПоРасписанию",
+ НСтр("ru = 'Регламентное задание отправка ЭДО'"), 120));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПолучениеВизуализацииЭлектронныхДокументовЭДО",
+ НСтр("ru = 'Формирование визуализаций документа ЭДО'"), 20));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ОтправитьПолучитьЭДО",
+ НСтр("ru = 'Отправить получить документы ЭДО'"), 120));
+
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО",
+ НСтр("ru = 'Выполнение действий по ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ЗакрытьПринудительно",
+ НСтр("ru = 'Закрыть принудительно документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ВернутьВРаботу",
+ НСтр("ru = 'Вернуть в работу документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ОтправитьВАрхив",
+ НСтр("ru = 'Отправить в архив документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ОтклонитьПодписание",
+ НСтр("ru = 'Отклонить подписание документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.Сформировать",
+ НСтр("ru = 'Сформировать документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.СформироватьДополнительнуюИнформацию",
+ НСтр("ru = 'Сформировать дополнительную информацию документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.СформироватьИсправление",
+ НСтр("ru = 'Сформировать исправление документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.СформироватьИзвещение",
+ НСтр("ru = 'Сформировать извещение документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.Переформировать",
+ НСтр("ru = 'Переформировать документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.Отклонить",
+ НСтр("ru = 'Отклонить документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ЗапроситьУточнение",
+ НСтр("ru = 'Запросить уточнение документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.Аннулировать",
+ НСтр("ru = 'Принять аннулирование документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ПринятьАннулирование",
+ НСтр("ru = 'Аннулировать документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ОтклонитьАннулирование",
+ НСтр("ru = 'Отклонить аннулирование документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.Перенаправить",
+ НСтр("ru = 'Перенаправить документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.Утвердить",
+ НСтр("ru = 'Утвердить документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.СформироватьОтвет",
+ НСтр("ru = 'Сформировать ответ документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ПодписатьНаСервере",
+ НСтр("ru = 'Подписание на сервере документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ОтменитьОтправку",
+ НСтр("ru = 'Отменить отправку документа ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ПодготовитьКОтправке",
+ НСтр("ru = 'Подготовить к отправке документ ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ЗагрузитьПриглашения",
+ НСтр("ru = 'Загрузить приглашения ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.ПринятьПриглашения",
+ НСтр("ru = 'Принять приглашения ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.Отправить",
+ НСтр("ru = 'Отправить оператору документы ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ВыполнениеДействийЭДО.Загрузить",
+ НСтр("ru = 'Загрузить документы ЭДО'"), 1));
+
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПолучитьХранилищеСертификатов.Клиент",
+ НСтр("ru = 'Чтение хранилища сертификатов на клиенте ЭДО'"), 0.5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПолучитьХранилищеСертификатов.Сервер",
+ НСтр("ru = 'Чтение хранилища сертификатов на сервере ЭДО'"), 0.1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("КриптографияБЭД.Подписать.Клиент.Базовая",
+ НСтр("ru = 'Подписание базовой подписью на клиенте ЭДО'"), 2));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("КриптографияБЭД.Подписать.Клиент.Усовершенствованная",
+ НСтр("ru = 'Подписание усовершенствованной подписью на клиенте ЭДО'"), 5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("КриптографияБЭД.Подписать.Сервер.Базовая",
+ НСтр("ru = 'Подписание базовой подписью на сервере ЭДО'"), 2));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("КриптографияБЭД.ПроверитьПодпись.Клиент",
+ НСтр("ru = 'Проверка подписи на клиенте ЭДО'"), 5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("КриптографияБЭД.ПроверитьПодпись.Сервер",
+ НСтр("ru = 'Проверка подписи на сервере ЭДО'"), 5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("КриптографияБЭД.ПроверитьПодпись.DSS",
+ НСтр("ru = 'Проверка подписи на сервере DSS ЭДО'"), 5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("КриптографияБЭД.ПроверитьСертификат.Клиент",
+ НСтр("ru = 'Проверка сертификата на клиенте ЭДО'"), 5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("КриптографияБЭД.ПроверитьСертификат.Сервер",
+ НСтр("ru = 'Проверка сертификата на сервере ЭДО'"), 5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("КриптографияБЭД.НачатьРасшифровкуНабораДанных.Клиент",
+ НСтр("ru = 'Расшифровать на клиенте ЭДО'"), 5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("КриптографияБЭД.Расшифровать.Сервер",
+ НСтр("ru = 'Расшифровать на сервере ЭДО'"), 5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("КриптографияБЭД.Расшифровать.Клиент",
+ НСтр("ru = 'Расшифровать на клиенте ЭДО'"), 5));
+
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПолучениеВизуализацииPdfИзКэша.ФоновоеЗадание",
+ НСтр("ru = 'Получение визуализации PDF из кэша ЭДО (фоновое)'"), 0.5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ОбновлениеКэшаPdf.ФоновоеЗадание",
+ НСтр("ru = 'Обновление и получение визуализации PDF из кэша ЭДО (фоновое)'"), 0.5));
+
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ОтправитьТранспортныеКонтейнеры",
+ НСтр("ru = 'Отправить транспортные контейнеры ЭДО'"), 0.5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПолучениеИРаспаковкаТранспортныхКонтейнеров",
+ НСтр("ru = 'Получение и распаковка транспортных контейнеров ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПолучениеТранспортныхКонтейнеров",
+ НСтр("ru = 'Получение транспортных контейнеров ЭДО от оператора'"), 0.5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ЗаполнениеТаблицыКонтейнеровДаннымиИзФорматов",
+ НСтр("ru = 'Заполнение таблицы контейнеров данными из форматов ЭДО'"), 0.1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("СозданиеДокументаЭДОПоДаннымСтрокиТаблицыКонтейнеров",
+ НСтр("ru = 'Создание документа ЭДО по данным строки таблицы контейнеров (транзакция)'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПроверитьПодписиПоОбъектамКонтейнеров",
+ НСтр("ru = 'Проверка подписи на сервере ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПроверитьПодписиПоМЧДПослеЗагрузкиДанных",
+ НСтр("ru = 'Проверка МЧД на сервере ЭДО'"), 0.5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПроверитьНепроверенныеПодписиПоМЧДВФоне",
+ НСтр("ru = 'Проверка МЧД не проверенных ранее в фоне ЭДО'"), 10));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПроверкаМЧДВРРМЧД",
+ НСтр("ru = 'Проверка МЧД в РР МЧД ЭДО'"), 1));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ПроверитьПодписьПоМЧД",
+ НСтр("ru = 'Проверка подписи по МЧД ЭДО'"), 0.5));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("Переопределяемый.ПолучитьДанныеЮрФизЛица",
+ НСтр("ru = 'Чтение данных контрагента ЭДО'"), 0.2));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("РаботаСФайлами.ДобавитьФайлЭДО",
+ НСтр("ru = 'Добавление присоединенного файла ЭДО'"), 0.1));
+
+ КлючевыеОперации.Добавить(
+ КлючеваяОперацияЗамера("Документ.ЭлектронныйДокументИсходящийЭДО.ФормаОбъекта.ОткрытиеФормы",
+ НСтр("ru = 'Открытие формы <ЭлектронныйДокументИсходящийЭДО.ФормаПросмотра> ЭДО'"), 0.1));
+ КлючевыеОперации.Добавить(
+ КлючеваяОперацияЗамера("Документ.ЭлектронныйДокументВходящийЭДО.ФормаОбъекта.ОткрытиеФормы",
+ НСтр("ru = 'Открытие формы <ЭлектронныйДокументВходящийЭДО.ФормаПросмотра> ЭДО'"), 0.1));
+ КлючевыеОперации.Добавить(
+ КлючеваяОперацияЗамера("Обработка.ИнтерфейсДокументовЭДО.Форма.ТекущиеДелаПоЭДОЛегкийИнтерфейс85.ОткрытиеФормы",
+ НСтр("ru = 'Интерфейс 8.5. Открытие формы текущих дел ЭДО (легкий интерфейс)'"), 0.5));
+ КлючевыеОперации.Добавить(
+ КлючеваяОперацияЗамера("Обработка.ИнтерфейсДокументовЭДО.Форма.ТекущиеДелаПоЭДОЛегкийИнтерфейс.ОткрытиеФормы",
+ НСтр("ru = 'Такси. Открытие формы текущих дел ЭДО (легкий интерфейс)'"), 0.5));
+ КлючевыеОперации.Добавить(
+ КлючеваяОперацияЗамера("Обработка.ИнтерфейсДокументовЭДО.Форма.ТекущиеДелаПоЭДО.ОткрытиеФормы",
+ НСтр("ru = 'Такси. Открытие формы текущих дел ЭДО (расширенный интерфейс)'"), 0.5));
+ КлючевыеОперации.Добавить(
+ КлючеваяОперацияЗамера("Обработка.ИнтерфейсДокументовЭДО.Форма.ТекущиеДелаПоЭДОЛегкийКлиентЭДО.ОткрытиеФормы",
+ НСтр("ru = 'Такси. Открытие формы текущих дел ЭДО (БизКуб)'"), 0.5));
+
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ОтразитьДанныеЭлектронногоДокументаСКонтролем",
+ НСтр("ru = 'Отражение учетного документа ЭДО'"), 0.1));
+
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("ОткрытьЭлектронныйДокументОбъектаУчета",
+ НСтр("ru = 'Создание электронного документа по учетному ЭДО'"), 0.2));
+ КлючевыеОперации.Добавить(КлючеваяОперацияЗамера("СформироватьПодписатьОтправитьЭДО",
+ НСтр("ru = 'Создать, подписать и отправить электронный документ из учетного ЭДО'"), 5));
+
+ КлючевыеОперации.Добавить(
+ КлючеваяОперацияЗамера("ПереключениеРазделаЛегкийИнтерфейс.ВходящиеЭлектронныеДокументы",
+ НСтр("ru = 'Текущие дела ЭДО легкий интерфейс. Входящие'"), 1));
+ КлючевыеОперации.Добавить(
+ КлючеваяОперацияЗамера("ПереключениеРазделаЛегкийИнтерфейс.ИсходящиеЭлектронныеДокументы",
+ НСтр("ru = 'Текущие дела ЭДО легкий интерфейс. Исходящие'"), 1));
+ КлючевыеОперации.Добавить(
+ КлючеваяОперацияЗамера("ПереключениеРазделаЛегкийИнтерфейс.Сформировать",
+ НСтр("ru = 'Текущие дела ЭДО легкий интерфейс. Отправить'"), 1));
+ КлючевыеОперации.Добавить(
+ КлючеваяОперацияЗамера("ПереключениеРазделаЛегкийИнтерфейс.Приглашения",
+ НСтр("ru = 'Текущие дела ЭДО легкий интерфейс. Приглашения'"), 1));
+ КлючевыеОперации.Добавить(
+ КлючеваяОперацияЗамера("ПереключениеРазделаЛегкийИнтерфейс.Ошибки",
+ НСтр("ru = 'Текущие дела ЭДО легкий интерфейс. Ошибки'"), 1));
+
+ Приоритет = 1;
+ Для Каждого КлючеваяОперация Из КлючевыеОперации Цикл
+ КлючеваяОперация.Приоритет = Приоритет;
+ УстановитьРеквизитыКлючевойОперации(КлючеваяОперация, Приоритет);
+ Приоритет = Приоритет + 1;
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git a/src/CommonModules/ОбновлениеИнформационнойБазыЛокализация/Ext/Module.bsl b/src/CommonModules/ОбновлениеИнформационнойБазыЛокализация/Ext/Module.bsl
index 297ffcad6..2d5f9008d 100644
--- a/src/CommonModules/ОбновлениеИнформационнойБазыЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/ОбновлениеИнформационнойБазыЛокализация/Ext/Module.bsl
@@ -25,7 +25,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "Локализация" + ?(СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации(), "Базовая", "");
- Описание.Версия = "2.5.27.61";
+ Описание.Версия = "2.5.27.70";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
КонецПроцедуры
@@ -66,6 +66,7 @@
Обработчики);
РегистрыСведений.СоответствияОбъектовМаркетплейсов.ПриДобавленииОбработчиковОбновления(Обработчики);
+
Справочники.ГосударственныеКонтракты.ПриДобавленииОбработчиковОбновления(Обработчики);
НаправленияДеятельностиЛокализация.ПриДобавленииОбработчиковОбновления(Обработчики);
diff --git a/src/CommonModules/ОбновлениеИнформационнойБазыУТ/Ext/Module.bsl b/src/CommonModules/ОбновлениеИнформационнойБазыУТ/Ext/Module.bsl
index 58a2f1dea..c69570c43 100644
--- a/src/CommonModules/ОбновлениеИнформационнойБазыУТ/Ext/Module.bsl
+++ b/src/CommonModules/ОбновлениеИнформационнойБазыУТ/Ext/Module.bsl
@@ -32,7 +32,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "УправлениеТорговлей" + ?(СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации(), "Базовая", "");
- Описание.Версия = "11.5.27.61";
+ Описание.Версия = "11.5.27.70";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ИдентификаторИнтернетПоддержки = ?(СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации(), "TradeBase", "Trade");
@@ -108,6 +108,7 @@
РегистрыНакопления.РасчетыСПоставщикамиПоСрокам.ПриДобавленииОбработчиковОбновления(Обработчики);
РегистрыНакопления.РасчетыПоФинансовымИнструментам.ПриДобавленииОбработчиковОбновления(Обработчики);
+ РегистрыСведений.РаспоряженияНаОтгрузкуИВозвратКВыполнению.ПриДобавленииОбработчиковОбновления(Обработчики);
РегистрыСведений.ЗаданияКРаспределениюРасчетов.ПриДобавленииОбработчиковОбновления(Обработчики);
РегистрыСведений.ЗаданияНеоперативногоДопроведенияДокументов.ПриДобавленииОбработчиковОбновления(Обработчики);
РегистрыСведений.ВыполнениеОперацийЗакрытияМесяца.ПриДобавленииОбработчиковОбновления(Обработчики);
diff --git a/src/CommonModules/ОбработкаНеисправностейБЭД/Ext/Module.bsl b/src/CommonModules/ОбработкаНеисправностейБЭД/Ext/Module.bsl
index 032ff2f49..25ff74a14 100644
--- a/src/CommonModules/ОбработкаНеисправностейБЭД/Ext/Module.bsl
+++ b/src/CommonModules/ОбработкаНеисправностейБЭД/Ext/Module.bsl
@@ -504,4 +504,11 @@
КонецПроцедуры
-#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("АрхивСИнформациейДляТехПоддержки", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ОбработкаНовостей/Ext/Module.bsl b/src/CommonModules/ОбработкаНовостей/Ext/Module.bsl
index 384901ef2..99e0f956d 100644
--- a/src/CommonModules/ОбработкаНовостей/Ext/Module.bsl
+++ b/src/CommonModules/ОбработкаНовостей/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -319,13 +319,14 @@
Возврат;
КонецЕсли;
- КоличествоОбработанныхНовостей = 0;
+ ОбработанныеНовости = Новый Соответствие;
Если ТипЗнч(СтруктураОтборовЭталон.СписокНовостей) = ТипСписокЗначений Тогда
// Явно указан список новостей (не важно, какого размера).
Для Каждого ТекущийПользователь Из МассивПользователей Цикл
// Цикл по списку новостей.
Для Каждого ТекущаяНовость Из СтруктураОтборовЭталон.СписокНовостей Цикл
+ ОбработанныеНовости.Вставить(ТекущаяНовость.Значение);
Запись = РегистрыСведений.СостоянияНовостей.СоздатьМенеджерЗаписи();
Запись.Пользователь = ТекущийПользователь;
Запись.Новость = ТекущаяНовость.Значение;
@@ -336,7 +337,7 @@
Запись.Записать(Истина);
КонецЦикла;
КонецЦикла;
- КоличествоОбработанныхНовостей = СтруктураОтборовЭталон.СписокНовостей.Количество();
+
Иначе
// Возможные отборы:
// * СписокЛентНовостей - СписокЗначений - список лент новостей. Если не указан, то по всем;
@@ -510,6 +511,7 @@
Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.Прямой);
// Цикл по списку новостей.
Пока Выборка.Следующий() Цикл
+ ОбработанныеНовости.Вставить(Выборка.Новость);
// Цикл по каждому пользователю.
Для Каждого ТекущийПользователь Из МассивПользователей Цикл
Запись = РегистрыСведений.СостоянияНовостей.СоздатьМенеджерЗаписи();
@@ -521,20 +523,33 @@
ЗаполнитьЗначенияСвойств(Запись, ЗначенияСостояний, СписокПолейДляЗаполнения);
Запись.Записать(Истина);
КонецЦикла;
- КоличествоОбработанныхНовостей = КоличествоОбработанныхНовостей + 1;
+
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
+ ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(); // Все значения = Неопределено, мы не считывали значения состояний.
+ НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости();
+ ЗаполнитьЗначенияСвойств(НовыеЗначенияСостояний, ЗначенияСостояний, СписокПолейДляЗаполнения);
+ МассивНовостей = Новый Массив;
+ Для Каждого ТекущаяНовостьКлючЗначение Из ОбработанныеНовости Цикл
+ МассивНовостей.Добавить(ТекущаяНовостьКлючЗначение.Ключ);
+ КонецЦикла;
+ ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
+ МассивПользователей,
+ МассивНовостей,
+ ПредыдущиеЗначенияСостояний,
+ НовыеЗначенияСостояний);
+
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='УстановитьСостояниеНовостейДляПользователей, завершение.
|Обработано пользователей: %1
|Обработано новостей: %2'")
+ Символы.ПС,
МассивПользователей.Количество(),
- Формат(КоличествоОбработанныхНовостей, "ЧЦ=15; ЧДЦ=; ЧРГ=' '; ЧГ=3,0"));
+ Формат(МассивНовостей.Количество(), "ЧЦ=15; ЧДЦ=; ЧРГ=' '; ЧГ=3,0"));
ЗаписатьСообщениеВЖурналРегистрации(
НСтр("ru='БИП:Новости.Сервис и регламент'", КодОсновногоЯзыка), // ИмяСобытия.
НСтр("ru='Новости. Сервис и регламент. УстановитьСостояниеНовостейДляПользователей'", КодОсновногоЯзыка) , // ИдентификаторШага.
@@ -616,6 +631,16 @@
// Запись.ПрочитатьПозже.
Запись.Записать(Истина);
КонецЦикла;
+
+ ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(); // Все значения = Неопределено, мы не считывали значения состояний.
+ НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(, Пометка);
+ // Состояние оповещений не трогаем
+ ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Пользователи.ТекущийПользователь()),
+ МассивНовостей,
+ ПредыдущиеЗначенияСостояний,
+ НовыеЗначенияСостояний);
+
КонецЕсли;
КонецПроцедуры
@@ -691,6 +716,16 @@
// Запись.ПрочитатьПозже.
Запись.Записать(Истина);
КонецЦикла;
+
+ ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(); // Все значения = Неопределено, мы не считывали значения состояний.
+ НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(ПризнакПрочтенности);
+ // Состояние оповещений не трогаем
+ ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Пользователи.ТекущийПользователь()),
+ МассивНовостей,
+ ПредыдущиеЗначенияСостояний,
+ НовыеЗначенияСостояний);
+
КонецЕсли;
КонецПроцедуры
@@ -766,6 +801,16 @@
// Запись.ПрочитатьПозже.
Запись.Записать(Истина);
КонецЦикла;
+
+ ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(); // Все значения = Неопределено, мы не считывали значения состояний.
+ НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(,,,, ПризнакУдаленияИзСписка);
+ // Состояние оповещений не трогаем
+ ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Пользователи.ТекущийПользователь()),
+ МассивНовостей,
+ ПредыдущиеЗначенияСостояний,
+ НовыеЗначенияСостояний);
+
КонецЕсли;
КонецПроцедуры
@@ -841,6 +886,16 @@
// Запись.УдаленаИзСпискаНовостей.
Запись.Записать(Истина);
КонецЦикла;
+
+ ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(); // Все значения = Неопределено, мы не считывали значения состояний.
+ НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(,,,,, ПрочитатьПозже);
+ // Состояние оповещений не трогаем
+ ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Пользователи.ТекущийПользователь()),
+ МассивНовостей,
+ ПредыдущиеЗначенияСостояний,
+ НовыеЗначенияСостояний);
+
КонецЕсли;
КонецПроцедуры
@@ -905,18 +960,27 @@
Запись.Пользователь = Пользователи.ТекущийПользователь();
Запись.Новость = ТекущаяНовость;
Запись.Прочитать(); // Запись будет ниже. // На тот случай, если были установлены другие свойства.
- // Вдруг новость не выбрана (т.е. ее нет в базе) - перезаполнить менеджер записи и записать.
- Запись.Пользователь = Пользователи.ТекущийПользователь();
- Запись.Новость = ТекущаяНовость;
- Запись.ОповещениеВключено = ОповещениеВключено;
- Запись.ДатаНачалаОповещения = ДатаНачалаОповещения;
- // Не изменять эти данные:
- // Запись.Прочтена;
- // Запись.Пометка;
- // Запись.УдаленаИзСпискаНовостей;
- // Запись.ПрочитатьПозже.
+ // Вдруг новость не выбрана (т.е. ее нет в базе) - перезаполнить менеджер записи и записать.
+ Запись.Пользователь = Пользователи.ТекущийПользователь();
+ Запись.Новость = ТекущаяНовость;
+ Запись.ОповещениеВключено = ОповещениеВключено;
+ Запись.ДатаНачалаОповещения = ДатаНачалаОповещения;
+ // Не изменять эти данные:
+ // Запись.Прочтена;
+ // Запись.Пометка;
+ // Запись.УдаленаИзСпискаНовостей;
+ // Запись.ПрочитатьПозже.
Запись.Записать(Истина);
КонецЦикла;
+
+ ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(); // Все значения = Неопределено, мы не считывали значения состояний.
+ НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(,, ОповещениеВключено, ДатаНачалаОповещения); // ДатаНачалаОповещения
+ ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Пользователи.ТекущийПользователь()),
+ МассивНовостей,
+ ПредыдущиеЗначенияСостояний,
+ НовыеЗначенияСостояний);
+
КонецЕсли;
КонецПроцедуры
diff --git a/src/CommonModules/ОбработкаНовостейКлиентСервер/Ext/Module.bsl b/src/CommonModules/ОбработкаНовостейКлиентСервер/Ext/Module.bsl
index 18d4c951b..828a987b1 100644
--- a/src/CommonModules/ОбработкаНовостейКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ОбработкаНовостейКлиентСервер/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2024, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -326,6 +326,74 @@
#КонецОбласти
+#Область СостоянияНовостей
+
+// Возвращает структуру со значениями ресурсов для регистра сведений СостоянияНовостей.
+// Если передано значение "Неопределено", значит при установке новых значений (используя это значение)
+// надо оставить текущие значения или значения по-умолчанию.
+//
+// Параметры:
+// Прочтена - Булево, Неопределено;
+// Пометка - Число, Неопределено;
+// ОповещениеВключено - Булево, Неопределено;
+// ДатаНачалаОповещения - Дата, Неопределено;
+// УдаленаИзСпискаНовостей - Булево, Неопределено;
+// ПрочитатьПозже - Булево, Неопределено;
+//
+// Возвращаемое значение:
+// Структура - см. в коде.
+//
+Функция НовыйОписательЗначенийСостоянияНовости(
+ Прочтена = Неопределено,
+ Пометка = Неопределено,
+ ОповещениеВключено = Неопределено,
+ ДатаНачалаОповещения = Неопределено,
+ УдаленаИзСпискаНовостей = Неопределено,
+ ПрочитатьПозже = Неопределено) Экспорт
+
+ ТипБулево = Тип("Булево");
+ ТипЧисло = Тип("Число");
+ ТипДата = Тип("Дата");
+
+ Результат = Новый Структура;
+ Результат.Вставить("Прочтена" , Неопределено);
+ Результат.Вставить("Пометка" , Неопределено);
+ Результат.Вставить("ОповещениеВключено" , Неопределено);
+ Результат.Вставить("ДатаНачалаОповещения" , Неопределено);
+ Результат.Вставить("УдаленаИзСпискаНовостей", Неопределено);
+ Результат.Вставить("ПрочитатьПозже" , Неопределено);
+
+ Если ТипЗнч(Прочтена) = ТипБулево Тогда
+ Результат.Прочтена = Прочтена;
+ КонецЕсли;
+ Если (ТипЗнч(Пометка) = ТипЧисло) Тогда
+ Если Пометка < 0 Тогда
+ Результат.Пометка = 0;
+ ИначеЕсли Пометка > 9 Тогда
+ Результат.Пометка = 9;
+ Иначе
+ Результат.Пометка = Пометка;
+ КонецЕсли;
+ КонецЕсли;
+ Если ТипЗнч(ОповещениеВключено) = ТипБулево Тогда
+ Результат.ОповещениеВключено = ОповещениеВключено;
+ КонецЕсли;
+ Если ТипЗнч(ДатаНачалаОповещения) = ТипДата Тогда
+ Результат.ДатаНачалаОповещения = ДатаНачалаОповещения;
+ КонецЕсли;
+ Если ТипЗнч(УдаленаИзСпискаНовостей) = ТипБулево Тогда
+ Результат.УдаленаИзСпискаНовостей = УдаленаИзСпискаНовостей;
+ КонецЕсли;
+ Если ТипЗнч(ПрочитатьПозже) = ТипБулево Тогда
+ Результат.ПрочитатьПозже = ПрочитатьПозже;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
diff --git a/src/CommonModules/ОбработкаНовостейПереопределяемый/Ext/Module.bsl b/src/CommonModules/ОбработкаНовостейПереопределяемый/Ext/Module.bsl
index f7986cd55..d9f4f4f1a 100644
--- a/src/CommonModules/ОбработкаНовостейПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/ОбработкаНовостейПереопределяемый/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2024, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -418,7 +418,7 @@
// ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
// ОтборЭлемента.ПравоеЗначение = СписокЗначенийНовостей;
// // Оформление
-// Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(ШрифтыСтиля.ШрифтНовостей, , , Истина)); // Жирный
+// Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(ШрифтыСтиля.ТекстВторогоУровня, , , Истина)); // Жирный
// // Использование
// Элемент.Использование = Истина;
//
@@ -465,6 +465,42 @@
КонецПроцедуры
+// Обработчик изменения состояния новостей (прочтенности, оповещений, отметки флажком и т.п.).
+// При работе в модели сервиса:
+// - ВыбранныеПользователи - массив ссылок, но в НЕразделенном режиме справочник Пользователи недоступен,
+// поэтому на все ссылки будет "ОбъектНеНайден".
+//
+// Параметры:
+// ВыбранныеПользователи - Массив из СправочникСсылка.Пользователи - Массив пользователей (может состоять из единственного значения),
+// для которых было изменено состояние новостей;
+// ВыбранныеНовости - Массив из СправочникСсылка.Новости - массив новостей (может состоять из единственного значения)
+// с измененным состоянием.
+// ПредыдущееСостояние - Структура - структура предыдущих значений состояния новостей.
+// (см. ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости); Возможны ключи:
+// * Прочтена - Булево - Признак прочтенности. Если Неопределено, то было невозможно получить предыдущее состояние;
+// * Пометка - Число - Признак пометки флажком. Если Неопределено, то было невозможно получить предыдущее состояние;
+// * ОповещениеВключено - Булево - Признак снятия оповещения. Если Неопределено, то было невозможно получить предыдущее состояние;
+// * ДатаНачалаОповещения - Дата - Дата начала оповещения (UTC+0). Если Неопределено, то было невозможно получить предыдущее состояние;
+// * УдаленаИзСпискаНовостей - Булево - Признак помещения в корзину. Если Неопределено, то было невозможно получить предыдущее состояние;
+// * ПрочитатьПозже - Булево - Признак настройки прочтения позже. Если Неопределено, то было невозможно получить предыдущее состояние;
+// НовоеСостояние - Структура - структура значений для заполнения реквизитов
+// регистра сведений СостоянияНовостей.
+// (см. ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости); Возможны ключи:
+// * Прочтена - Булево - Признак прочтенности. Если Неопределено, то не изменялось;
+// * Пометка - Число - Признак пометки флажком. Если Неопределено, то не изменялось;
+// * ОповещениеВключено - Булево - Признак снятия оповещения. Если Неопределено, то не изменялось;
+// * ДатаНачалаОповещения - Дата - Дата начала оповещения (UTC+0). Если Неопределено, то не изменялось;
+// * УдаленаИзСпискаНовостей - Булево - Признак помещения в корзину. Если Неопределено, то не изменялось;
+// * ПрочитатьПозже - Булево - Признак настройки прочтения позже. Если Неопределено, то не изменялось.
+//
+Процедура ПослеИзмененияСостоянияНовостей(
+ ЗНАЧ ВыбранныеПользователи,
+ ЗНАЧ ВыбранныеНовости,
+ ЗНАЧ ПредыдущееСостояние,
+ ЗНАЧ НовоеСостояние) Экспорт
+
+КонецПроцедуры
+
#КонецОбласти
#Область ДополнительнаяОбработкаФормИЭлементовУправления
diff --git a/src/CommonModules/ОбработкаНовостейСлужебный/Ext/Module.bsl b/src/CommonModules/ОбработкаНовостейСлужебный/Ext/Module.bsl
index fbc6e8403..b5294103f 100644
--- a/src/CommonModules/ОбработкаНовостейСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ОбработкаНовостейСлужебный/Ext/Module.bsl
@@ -461,8 +461,6 @@
//
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
- Методы.Вставить("ВсеОбновленияНовостей", Истина);
- Методы.Вставить("ВсеОбновленияНовостейДляОбластиДанных", Истина);
Методы.Вставить("ОбновлениеИнформационнойБазы_ОбластьДанных_ПервыйЗапуск");
Методы.Вставить("ОбновлениеИнформационнойБазы_ОбластьДанных_ПерейтиНаВерсию");
Методы.Вставить("ОбновлениеИнформационнойБазы_ОбщиеДанные_ПервыйЗапуск");
@@ -8162,10 +8160,10 @@
ИЛИ (Выборка.ОповещениеВключено <> Истина)
ИЛИ (Выборка.УдаленаИзСпискаНовостей <> Ложь) Тогда
Запись = РегистрыСведений.СостоянияНовостей.СоздатьМенеджерЗаписи();
- ЗаполнитьЗначенияСвойств(Запись, Выборка);
- Запись.Прочтена = Ложь;
- Запись.ОповещениеВключено = Истина;
- Запись.УдаленаИзСпискаНовостей = Ложь;
+ ЗаполнитьЗначенияСвойств(Запись, Выборка);
+ Запись.Прочтена = Ложь;
+ Запись.ОповещениеВключено = Истина;
+ Запись.УдаленаИзСпискаНовостей = Ложь;
Запись.Записать(Истина);
КонецЕсли;
КонецЦикла;
@@ -8173,6 +8171,8 @@
КонецЦикла;
КонецЕсли;
+ // В этом методе не осуществляется вызов ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей;
+
КонецПроцедуры
// Процедура анализирует регистр сведений ДатыЗагрузкиПоследнихНовостей, и если по ленте новостей были проблемы
diff --git a/src/CommonModules/ОбщегоНазначенияБПКлиентСервер/Ext/Module.bsl b/src/CommonModules/ОбщегоНазначенияБПКлиентСервер/Ext/Module.bsl
index f3bc40419..bb7b2cec0 100644
--- a/src/CommonModules/ОбщегоНазначенияБПКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ОбщегоНазначенияБПКлиентСервер/Ext/Module.bsl
@@ -477,6 +477,43 @@
КонецФункции
+////////////////////////////////////////////////////////////////////////////////
+// ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ С ФУНКЦИОНАЛЬНЫМИ ОПЦИЯМИ
+
+// Процедура устанавливает функциональные опции формы.
+//
+// Параметры:
+// Форма - ФормаКлиентскогоПриложения - Форма, в которой требуется установить функциональные опции.
+// Организация - СправочникСсылка.Организации - Ссылка на организацию.
+// Период - Дата - Дата установки периодических опций.
+//
+Процедура УстановитьПараметрОрганизацияФункциональныхОпцийФормы(Форма, Организация, Период = Неопределено) Экспорт
+
+ ПараметрыФО = Новый Структура();
+ ПараметрыФО.Вставить("Организация", Организация);
+ Если Период <> Неопределено Тогда
+ ПараметрыФО.Вставить("Период", НачалоМесяца(Период));
+ // Приводим к началу месяца для того, чтобы сократить пространство кэшируемых значений.
+ // Параметр "Организация" используется в функциональных опциях, привязанных к регистрам сведений с периодичностью
+ // Месяц или реже.
+ КонецЕсли;
+
+ Форма.УстановитьПараметрыФункциональныхОпцийФормы(ПараметрыФО);
+
+КонецПроцедуры
+
+// Процедура устанавливает функциональные опции формы документа.
+//
+// Параметры:
+// Форма - ФормаКлиентскогоПриложения - Форма, в которой требуется установить функциональные опции.
+//
+Процедура УстановитьПараметрыФункциональныхОпцийФормыДокумента(Форма) Экспорт
+
+ УстановитьПараметрОрганизацияФункциональныхОпцийФормы(Форма, Форма.Объект.Организация, Форма.Объект.Дата);
+
+КонецПроцедуры
+
+
////////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС ПОЛЯ ВЫБОРА ОРГАНИЗАЦИИ С ОБОСОБЛЕННЫМИ ПОДРАЗДЕЛЕНИЯМИ
//
diff --git a/src/CommonModules/ОбщегоНазначенияБТС/Ext/Module.bsl b/src/CommonModules/ОбщегоНазначенияБТС/Ext/Module.bsl
index 3add30251..1f5ee00ed 100644
--- a/src/CommonModules/ОбщегоНазначенияБТС/Ext/Module.bsl
+++ b/src/CommonModules/ОбщегоНазначенияБТС/Ext/Module.bsl
@@ -1246,4 +1246,11 @@
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("Пауза", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ОбщегоНазначенияБЭД/Ext/Module.bsl b/src/CommonModules/ОбщегоНазначенияБЭД/Ext/Module.bsl
index 64bbbb9ae..64451e6d1 100644
--- a/src/CommonModules/ОбщегоНазначенияБЭД/Ext/Module.bsl
+++ b/src/CommonModules/ОбщегоНазначенияБЭД/Ext/Module.bsl
@@ -4,6 +4,17 @@
#Область ДляВызоваИзДругихПодсистем
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("Пауза", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
// КлиентЭДО
// Возвращает хеш сумму строки по алгоритму MD5.
@@ -1459,17 +1470,6 @@
КонецФункции
-// Проверяет что в приложении используется версия БСП, в которой доступен механизм серверных оповещений.
-// Использовать перед вызовом модуля СерверныеОповещения для поддержки совместимости с более ранними версиями БСП
-//
-// Возвращаемое значение:
-// Булево
-//
-Функция ДоступныСерверныеОповещения() Экспорт
- ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
- Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБСП, "3.1.7.0") > 0;
-КонецФункции
-
// Добавляет поле с типом NULL в динамический список.
// Такое поле можно будет заполнять сериализуемыми данными в обработчике списка ПриПолученииДанныхНаСервере
//
@@ -1607,27 +1607,6 @@
КонецЕсли;
КонецПроцедуры
-// Параметры:
-// Множество1 - Массив из Произвольный
-// Множество2 - Массив из Произвольный
-//
-// Возвращаемое значение:
-// Массив из Произвольный
-Функция ПересечениеМассивов(Множество1, Множество2) Экспорт
-
- Результат = Новый Массив; // См. ПересечениеМассивов
-
- Для Каждого Элемент Из Множество2 Цикл
- Индекс = Множество1.Найти(Элемент);
- Если Индекс <> Неопределено Тогда
- Результат.Добавить(Элемент);
- КонецЕсли;
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции
-
// Параметры:
// ДвоичныеДанные - ДвоичныеДанные
//
@@ -1818,6 +1797,35 @@
КонецПроцедуры
+// Добавляет индекс в таблицу, если его еще нет.
+//
+// Параметры:
+// Таблица - ТаблицаЗначений
+// ДобавляемыйИндекс - Строка
+//
+Процедура ДобавитьИндексПриНеобходимости(Таблица, ДобавляемыйИндекс) Экспорт
+
+ ЕстьИндекс = Ложь;
+
+ Для Каждого СуществующийИндекс Из Таблица.Индексы Цикл
+
+ Если Строка(СуществующийИндекс) = ДобавляемыйИндекс Тогда
+
+ ЕстьИндекс = Истина;
+ Прервать;
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Если ЕстьИндекс Тогда
+ Возврат;
+ КонецЕсли;
+
+ Таблица.Индексы.Добавить(ДобавляемыйИндекс);
+
+КонецПроцедуры
+
#КонецОбласти
#Область Организации
@@ -2196,6 +2204,9 @@
// Получает данные о юридическом (физическом) лице по ссылке.
//
+// Параметры:
+// ЮрФизЛицо - ОпределяемыйТип.УчастникЭДО
+//
// Возвращаемое значение:
// Структура - см. ЭлектронноеВзаимодействие.СтруктураДанныхЮрФизЛица
//
@@ -2206,9 +2217,9 @@
Если НЕ ЗначениеЗаполнено(ЮрФизЛицо) Тогда
Возврат Сведения;
КонецЕсли;
-
+ ОписаниеЗамера = НачатьЗамер("Переопределяемый.ПолучитьДанныеЮрФизЛица");
ЭлектронноеВзаимодействиеПереопределяемый.ПолучитьДанныеЮрФизЛица(ЮрФизЛицо, Сведения);
-
+ ЗакончитьЗамер("Переопределяемый.ПолучитьДанныеЮрФизЛица", ОписаниеЗамера);
Возврат Сведения;
КонецФункции
@@ -2575,6 +2586,74 @@
#КонецОбласти
+#Область ЗамерыПроизводительностиБСП
+
+// Параметры:
+// ИмяКлючевойОперации - Строка
+//
+// Возвращаемое значение:
+// - Неопределено
+// - см. ОценкаПроизводительности.НачатьЗамерДлительнойОперации
+Функция НачатьЗамер(ИмяКлючевойОперации) Экспорт
+ Если ИмяКлючевойОперации = ""
+ Или Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+ Возврат ОценкаПроизводительности.НачатьЗамерДлительнойОперации(ИмяКлючевойОперации);
+КонецФункции
+
+// Параметры:
+// ШагДействия - Строка
+// ОписаниеЗамера - см. ОценкаПроизводительности.НачатьЗамерДлительнойОперации
+// ОбработаноДанных - Число
+// Комментарий - Строка
+Процедура ЗафиксироватьЭтап(ШагДействия, ОписаниеЗамера, ОбработаноДанных = 0, Комментарий = "") Экспорт
+ Если ОписаниеЗамера = Неопределено Или ОписаниеЗамера.Количество() = 0
+ Или Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
+ Возврат;
+ КонецЕсли;
+ ОценкаПроизводительности.ЗафиксироватьЗамерДлительнойОперации(ОписаниеЗамера, ОбработаноДанных, ШагДействия,
+ Комментарий);
+КонецПроцедуры
+
+// Параметры:
+// КлючДействия - Строка
+// ОписаниеЗамера - см. ОценкаПроизводительности.НачатьЗамерДлительнойОперации
+// ОбработаноДанных - Число
+// - Неопределено
+// Комментарий - Строка
+Процедура ЗакончитьЗамер(КлючДействия, ОписаниеЗамера, ОбработаноДанных = 0, Комментарий = "") Экспорт
+ Если КлючДействия = Неопределено
+ Или Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
+ Возврат;
+ КонецЕсли;
+ Если ОбработаноДанных = Неопределено Тогда
+ ОбработаноДанных = 0;
+ КонецЕсли;
+
+ ОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, ОбработаноДанных, КлючДействия,
+ Комментарий);
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СерверныеОповещения
+
+// См. СерверныеОповещения.ОтправитьСерверноеОповещение
+Процедура ОтправитьСерверноеОповещение(ИмяОповещения, Результат, Адресаты, ОтправитьСразу = Ложь) Экспорт
+
+ УстановитьОтключениеБезопасногоРежима(Истина);
+ УстановитьПривилегированныйРежим(Истина);
+
+ СерверныеОповещения.ОтправитьСерверноеОповещение(ИмяОповещения, Результат, Адресаты, ОтправитьСразу);
+
+ УстановитьОтключениеБезопасногоРежима(Ложь);
+ УстановитьПривилегированныйРежим(Ложь);
+
+КонецПроцедуры
+
+#КонецОбласти // СерверныеОповещения
+
//-- Локализация
#КонецОбласти
diff --git a/src/CommonModules/ОбщегоНазначенияБЭДКлиент/Ext/Module.bsl b/src/CommonModules/ОбщегоНазначенияБЭДКлиент/Ext/Module.bsl
index 3e6975e03..6de2f15e4 100644
--- a/src/CommonModules/ОбщегоНазначенияБЭДКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ОбщегоНазначенияБЭДКлиент/Ext/Module.bsl
@@ -1050,6 +1050,108 @@
#КонецОбласти
+#Область ЗамерыПроизводительностиБСП
+
+// Параметры:
+// КлючЗамера - Строка
+// ОписаниеЗамера - см. ОценкаПроизводительностиКлиент.НачатьЗамерДлительнойОперации
+// КоличествоДанных - Число
+// ОбработчикЗавершения - ОписаниеОповещения
+//
+// Возвращаемое значение:
+// ОписаниеОповещения - ОписаниеОповещения
+Функция ОповещениеОЗавершенииЗамераДлительнойОперации(КлючЗамера,
+ ОписаниеЗамера, КоличествоДанных, ОбработчикЗавершения) Экспорт
+
+ ДополнительныеПараметры = Новый Структура;
+ ДополнительныеПараметры.Вставить("ОповещениеОЗавершении", ОбработчикЗавершения);
+ ДополнительныеПараметры.Вставить("КлючЗамера", КлючЗамера);
+ ДополнительныеПараметры.Вставить("ОписаниеЗамера", ОписаниеЗамера);
+ ДополнительныеПараметры.Вставить("КоличествоДанных", КоличествоДанных);
+ Возврат Новый ОписаниеОповещения("ПослеЗамераДлительнойОперации",
+ ОбщегоНазначенияБЭДКлиент, ДополнительныеПараметры);
+КонецФункции
+
+// Параметры:
+// КлючЗамера - Строка
+// ОбработчикЗавершения - ОписаниеОповещения
+//
+// Возвращаемое значение:
+// ОписаниеОповещения - ОписаниеОповещения
+Функция ОповещениеОЗавершенииЗамера(КлючЗамера, ОбработчикЗавершения) Экспорт
+
+ ДополнительныеПараметры = Новый Структура;
+ ДополнительныеПараметры.Вставить("ОповещениеОЗавершении", ОбработчикЗавершения);
+ ДополнительныеПараметры.Вставить("КлючЗамера", КлючЗамера);
+ Возврат Новый ОписаниеОповещения("ПослеЗамера",
+ ОбщегоНазначенияБЭДКлиент, ДополнительныеПараметры);
+КонецФункции
+
+// Параметры:
+// ИмяКлючевойОперации - Строка
+//
+// Возвращаемое значение:
+// - Неопределено
+// - см. ОценкаПроизводительностиКлиент.ЗамерВремени
+Функция НачатьЗамер(ИмяКлючевойОперации) Экспорт
+ Если ИмяКлючевойОперации = ""
+ Или Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+ Возврат ОценкаПроизводительностиКлиент.ЗамерВремени(ИмяКлючевойОперации, Ложь, Ложь);
+КонецФункции
+
+// Параметры:
+// ИмяКлючевойОперации - Строка
+//
+// Возвращаемое значение:
+// - Неопределено
+// - см. ОценкаПроизводительностиКлиент.НачатьЗамерДлительнойОперации
+Функция НачатьЗамерДлительнойОперации(ИмяКлючевойОперации) Экспорт
+ Если ИмяКлючевойОперации = ""
+ Или Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+ Возврат ОценкаПроизводительностиКлиент.НачатьЗамерДлительнойОперации(ИмяКлючевойОперации, Ложь, Ложь);
+КонецФункции
+
+// Параметры:
+// Результат - Структура
+// ДополнительныеПараметры - Структура:
+// *ОписаниеЗамера - см. ОценкаПроизводительностиКлиент.НачатьЗамерДлительнойОперации
+// *КоличествоДанных - Число
+// *КлючЗамера - Строка
+// *ОповещениеОЗавершении - ОписаниеОповещения
+Процедура ПослеЗамераДлительнойОперации(Результат, ДополнительныеПараметры) Экспорт
+ ОценкаПроизводительностиКлиент.ЗакончитьЗамерДлительнойОперации(ДополнительныеПараметры.ОписаниеЗамера,
+ ДополнительныеПараметры.КоличествоДанных, ДополнительныеПараметры.КлючЗамера);
+ ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеОЗавершении, Результат);
+КонецПроцедуры
+
+// Параметры:
+// КлючДействия - Строка
+// - Неопределено
+// Ошибка - Булево
+Процедура ЗакончитьЗамер(КлючДействия, Ошибка = Ложь) Экспорт
+ Если КлючДействия = Неопределено
+ Или Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
+ Возврат;
+ КонецЕсли;
+ ОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(КлючДействия, Ошибка);
+КонецПроцедуры
+
+// Параметры:
+// Результат - Структура
+// ДополнительныеПараметры - Структура:
+// *КлючЗамера - Строка
+// *ОповещениеОЗавершении - ОписаниеОповещения
+Процедура ПослеЗамера(Результат, ДополнительныеПараметры) Экспорт
+ ЗакончитьЗамер(ДополнительныеПараметры.КлючЗамера);
+ ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеОЗавершении, Результат);
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git a/src/CommonModules/ОбщегоНазначенияБЭДКлиентСервер/Ext/Module.bsl b/src/CommonModules/ОбщегоНазначенияБЭДКлиентСервер/Ext/Module.bsl
index 686eb16fc..6f45f6bab 100644
--- a/src/CommonModules/ОбщегоНазначенияБЭДКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ОбщегоНазначенияБЭДКлиентСервер/Ext/Module.bsl
@@ -24,6 +24,7 @@
// * АвтоматическоеПолучениеЭДО - Строка
// * РаботаСНоменклатурой - Строка
// * ТЭДО - Строка
+// * МашиночитаемыеДоверенности - Строка
Функция ПодсистемыБЭД() Экспорт
Подсистемы = Новый Структура;
@@ -48,6 +49,7 @@
Подсистемы.Вставить("АвтоматическоеПолучениеЭДО", "ЭлектронноеВзаимодействие.ОбменСКонтрагентами.АвтоматическоеПолучениеЭДО");
Подсистемы.Вставить("РаботаСНоменклатурой", "ЭлектронноеВзаимодействие.РаботаСНоменклатурой");
Подсистемы.Вставить("ТЭДО", "ЭлектронноеВзаимодействие.ОбменСКонтрагентами.ТрансграничныйЭДО");
+ Подсистемы.Вставить("МашиночитаемыеДоверенности", "ЭлектронноеВзаимодействие.ОбменСКонтрагентами.МашиночитаемыеДоверенности");
Возврат Подсистемы;
@@ -607,6 +609,55 @@
Возврат Ложь;
КонецФункции
+// Параметры:
+// Массив1 - Массив из Произвольный
+// Массив2 - Массив из Произвольный
+//
+// Возвращаемое значение:
+// Массив из Произвольный
+Функция ПересечениеМассивов(Массив1, Массив2) Экспорт
+
+ Результат = Новый Массив;
+
+ Для Каждого Элемент Из Массив2 Цикл
+ Индекс = Массив1.Найти(Элемент);
+ Если Индекс <> Неопределено Тогда
+ Результат.Добавить(Элемент);
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Создает массив и помещает в него переданные значения.
+//
+// Параметры:
+// Значение1 - Произвольный
+// Значение2 - Произвольный
+// Значение3 - Произвольный
+// Значение4 - Произвольный
+//
+// Возвращаемое значение:
+// Массив Из Произвольный
+Функция МассивЗначений(Знач Значение1, Знач Значение2 = Неопределено, Знач Значение3 = Неопределено,
+ Знач Значение4 = Неопределено) Экспорт
+
+ Результат = Новый Массив;
+ Результат.Добавить(Значение1);
+ Если Значение2 <> Неопределено Тогда
+ Результат.Добавить(Значение2);
+ КонецЕсли;
+ Если Значение3 <> Неопределено Тогда
+ Результат.Добавить(Значение3);
+ КонецЕсли;
+ Если Значение4 <> Неопределено Тогда
+ Результат.Добавить(Значение4);
+ КонецЕсли;
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти
#КонецОбласти
diff --git a/src/CommonModules/ОбщегоНазначенияКлиентСервер/Ext/Module.bsl b/src/CommonModules/ОбщегоНазначенияКлиентСервер/Ext/Module.bsl
index a490488b7..2bf4068b5 100644
--- a/src/CommonModules/ОбщегоНазначенияКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ОбщегоНазначенияКлиентСервер/Ext/Module.bsl
@@ -2174,21 +2174,20 @@
////////////////////////////////////////////////////////////////////////////////
// Математические процедуры и функции.
-// Выполняет пропорциональное распределение суммы в соответствии
-// с заданными коэффициентами распределения.
+// Выполняет пропорциональное распределение суммы в соответствии с заданными коэффициентами распределения.
//
// Параметры:
// РаспределяемаяСумма - Число - сумма, которую надо распределить, если сумма равна 0 - то возвращается Неопределено;
// Если передана отрицательная - расчет по модулю и после инверсия знаков результата.
// Коэффициенты - Массив - коэффициенты распределения, должны быть положительны или отрицательными одновременно
-// Точность - Число - точность округления при распределении. Необязателен.
+// Точность - Число - точность округления при распределении. Не влияет на погрешность - итог по суммам
+// распределения всегда равен распределяемой сумме.
//
// Возвращаемое значение:
-// Массив - массив размерностью равный массиву коэффициентов, содержит
-// суммы в соответствии с весом коэффициента (из массива коэффициентов).
-// В случае, если распределить невозможно (кол-во коэффициентов = 0
-// есть коэффициенты с отрицательным значением или суммарный вес коэффициентов = 0),
-// тогда будет возвращено Неопределено.
+// - Массив Из Число - массив размерностью равный массиву коэффициентов, содержит суммы в соответствии с весом коэффициента
+// (из массива коэффициентов).
+// - Неопределено - В случае, если распределить невозможно: кол-во коэффициентов = 0, есть коэффициенты с разным знаком
+// или суммарный вес коэффициентов = 0.
//
// Пример:
//
@@ -2269,28 +2268,28 @@
РаспределеннаяСумма = РаспределеннаяСумма + Результат[Индекс];
КонецЦикла;
- СуммарнаяПогрешность = РаспределяемаяСумма - РаспределеннаяСумма;
- Если СуммарнаяПогрешность = 0 Тогда
- // Если СуммарнаяПогрешность = 0, то все идеально.
- ИначеЕсли СуммарнаяПогрешность > 0 И ЗначениеЗаполнено(Точность) Тогда
- // Погрешности округления отнесем на коэффициент с максимальным весом.
- Результат[ИндексМаксимальногоКоэффициента] = Результат[ИндексМаксимальногоКоэффициента] + СуммарнаяПогрешность;
-
- Иначе
- // Погрешности округления отнесем на коэффициенты с максимальным весом, распределяя с шагом в 1
- ИндексыВПорядкеВеса = ИндексыВПорядкеВеса(КоэффициентыАбсолютные);
- ЗначениеПогрешности = 1 / Pow(10, Точность) * ?(СуммарнаяПогрешность < 0, -1, 1);
+ СуммарнаяПогрешность = РаспределяемаяСумма - РаспределеннаяСумма;
- КоличествоЭлементовПогрешности = ЦЕЛ(СуммарнаяПогрешность / ЗначениеПогрешности);
- ИндексВеса = -1;
- Для НомерЭлементаПогрешности = 1 По КоличествоЭлементовПогрешности Цикл
- ИндексВеса = ИндексВеса + 1;
- Если ИндексВеса = Размерность Тогда
- ИндексВеса = 0;
- КонецЕсли;
- Индекс = ИндексыВПорядкеВеса[ИндексВеса];
- Результат[Индекс] = Результат[Индекс] + ЗначениеПогрешности;
- КонецЦикла;
+ Если ЗначениеЗаполнено(СуммарнаяПогрешность) Тогда
+ РаспределяетсяЦелоеЧислоСНулевойТочностью = Точность = 0 И РаспределяемаяСумма = ЦЕЛ(РаспределяемаяСумма);
+ РаспределятьПропорционально = РаспределяетсяЦелоеЧислоСНулевойТочностью Или СуммарнаяПогрешность < 0;
+ Если РаспределятьПропорционально Тогда
+ ИндексыВПорядкеВеса = ИндексыВПорядкеВеса(КоэффициентыАбсолютные);
+ ЗначениеПогрешности = 1 / Pow(10, Точность) * ?(СуммарнаяПогрешность < 0, -1, 1);
+
+ КоличествоЭлементовПогрешности = ЦЕЛ(СуммарнаяПогрешность / ЗначениеПогрешности);
+ ИндексВеса = -1;
+ Для НомерЭлементаПогрешности = 1 По КоличествоЭлементовПогрешности Цикл
+ ИндексВеса = ИндексВеса + 1;
+ Если ИндексВеса = Размерность Тогда
+ ИндексВеса = 0;
+ КонецЕсли;
+ Индекс = ИндексыВПорядкеВеса[ИндексВеса];
+ Результат[Индекс] = Результат[Индекс] + ЗначениеПогрешности;
+ КонецЦикла;
+ Иначе
+ Результат[ИндексМаксимальногоКоэффициента] = Результат[ИндексМаксимальногоКоэффициента] + СуммарнаяПогрешность;
+ КонецЕсли;
КонецЕсли;
Если ВыполнятьИнверсию Тогда
diff --git a/src/CommonModules/ОбщегоНазначенияПереопределяемый/Ext/Module.bsl b/src/CommonModules/ОбщегоНазначенияПереопределяемый/Ext/Module.bsl
index f2e7c81cf..388d3e70c 100644
--- a/src/CommonModules/ОбщегоНазначенияПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/ОбщегоНазначенияПереопределяемый/Ext/Module.bsl
@@ -653,6 +653,17 @@
//
Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
+ //++ Локализация
+
+ // ИнтеграцияСМаркетплейсами
+ Если Метаданные.ОбщиеМодули.Найти("ИнтеграцияСМаркетплейсамиСервер") <> Неопределено Тогда
+ МодульИнтеграцияСМаркетплейсамиСервер = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияСМаркетплейсамиСервер");
+ МодульИнтеграцияСМаркетплейсамиСервер.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
+ КонецЕсли;
+ // Конец ИнтеграцияСМаркетплейсами
+
+ //-- Локализация
+
КонецПроцедуры
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ОзонПэйСервис/Ext/Module.bsl b/src/CommonModules/ОзонПэйСервис/Ext/Module.bsl
index cc759c8d4..adace370b 100644
--- a/src/CommonModules/ОзонПэйСервис/Ext/Module.bsl
+++ b/src/CommonModules/ОзонПэйСервис/Ext/Module.bsl
@@ -99,7 +99,7 @@
Результат.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиНеизвестнаяОшибка();
Результат.СообщениеОбОшибке = НСтр("ru = 'Неизвестная ошибка при подключении к сервису.'");
Результат.ИнформацияОбОшибке = НСтр(
- "ru = 'Сервис платежной системы Озон Пэй вернул не декларированный код состояния.'");
+ "ru = 'Сервис платежной системы Ozon Pay вернул не декларированный код состояния.'");
ПлатежныеСистемыСлужебный.ЗаписатьИнформациюВЖурналРегистрации(Результат.ИнформацияОбОшибке, Истина);
@@ -138,7 +138,7 @@
// Выполняет запрос получения информации о статусе операции в сервисе платежной системы Озон Пэй.
//
// Параметры:
-// ПараметрыСтатуса - см. ПлатежныеСистемыСлужебный.ПараметрыОпределенияСтатусаОперации
+// ПараметрыСтатуса - см. ПлатежныеСистемы.ДанныеОперации.
// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения к сервису.
//
// Возвращаемое значение:
@@ -171,7 +171,7 @@
СписокСвойствОшибки = "КодОшибки,СообщениеОбОшибке,ИнформацияОбОшибке";
ПлатежныеСистемыСлужебный.ЗаписатьИнформациюВЖурналРегистрации(
- НСтр("ru = 'Получение данных операции Озон Пэй'"));
+ НСтр("ru = 'Получение данных операции Ozon Pay'"));
АутентификацияСервиса = ПараметрыАутентификацииПлатежнойСистемы(НастройкаПодключения);
Если Не ПустаяСтрока(АутентификацияСервиса.КодОшибки) Тогда
@@ -205,6 +205,8 @@
Возврат Результат;
КонецЕсли;
+ ЭтоОплата = (ПараметрыСтатуса.ТипОперации = ПлатежныеСистемыКлиентСервер.ТипОперацииОплата());
+
// Обработка ответа сервиса платежной системы
Если РезультатЗапроса.КодСостояния = 200 Тогда
@@ -212,11 +214,11 @@
// Попытка найти информацию о текущей операции
ПараметрыОтбора = Новый Структура();
- Если ПараметрыСтатуса.Оплата Тогда
- ПараметрыОтбора.Вставить("ТипОперации" , ТипОперацииСервисаОплата());
+ Если ЭтоОплата Тогда
+ ПараметрыОтбора.Вставить("ТипОперации", ТипОперацииСервисаОплата());
ПараметрыОтбора.Вставить("ВнешнийИдентификатор", "");
Иначе
- ПараметрыОтбора.Вставить("ТипОперации" , ТипОперацииСервисаВозврат());
+ ПараметрыОтбора.Вставить("ТипОперации", ТипОперацииСервисаВозврат());
ПараметрыОтбора.Вставить("ВнешнийИдентификатор", ПараметрыСтатуса.Идентификатор);
КонецЕсли;
@@ -227,7 +229,7 @@
Результат.СтатусОперации = СтрокаОперации.СтатусОперации;
- Если ПараметрыСтатуса.Оплата Тогда
+ Если ЭтоОплата Тогда
Результат.ПараметрыОперации.ИдентификаторОперации = ПараметрыСтатуса.ИдентификаторОплаты;
Иначе
Результат.ПараметрыОперации.ИдентификаторОперации = СтрокаОперации.ИдентификаторТранзакции;
@@ -243,11 +245,11 @@
Если СтатусСравнение = "STATUS_CANCELED"
Или СтатусСравнение = "STATUS_PARTITION_CANCELED" Тогда
Результат.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОтменена();
- ИначеЕсли ПараметрыСтатуса.Оплата Тогда
+ ИначеЕсли ЭтоОплата Тогда
Результат.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииВыполняется();
Иначе
Результат.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиОбъектНеНайден();
- Если ПараметрыСтатуса.Оплата Тогда
+ Если ЭтоОплата Тогда
Результат.СообщениеОбОшибке = НСтр("ru = 'Не найден заказ в платежной системе'");
Иначе
Результат.СообщениеОбОшибке = НСтр("ru = 'Не найден возврат в платежной системе'");
@@ -271,7 +273,7 @@
КонецЕсли;
ПлатежныеСистемыСлужебный.ЗаписатьИнформациюВЖурналРегистрации(
- НСтр("ru = 'Получение данных операции Озон Пэй завершена'"));
+ НСтр("ru = 'Получение данных операции Ozon Pay завершено'"));
Возврат Результат;
@@ -464,7 +466,7 @@
Функция ВозвратОплаты(ДанныеЗаказа, НастройкаПодключения) Экспорт
ПлатежныеСистемыСлужебный.ЗаписатьИнформациюВЖурналРегистрации(
- НСтр("ru = 'Создание заказа на возврат Озон Пэй'"));
+ НСтр("ru = 'Создание заказа на возврат Ozon Pay'"));
Результат = ПлатежныеСистемыСлужебный.НовыйРезультатСтатусОперации();
@@ -483,7 +485,7 @@
ДанныеЗапроса);
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Не удалось отправить запрос на возврат в сервиса Озон Пэй.
+ НСтр("ru = 'Не удалось отправить запрос на возврат в сервиса Ozon Pay.
|Настройка подключения: %1 (ID:%2)'"),
Строка(НастройкаПодключения),
Строка(НастройкаПодключения.УникальныйИдентификатор()));
@@ -509,7 +511,7 @@
Результат.ПараметрыОперации.ТипОперации = ПлатежныеСистемыКлиентСервер.ТипОперацииВозврат();
ПлатежныеСистемыСлужебный.ЗаписатьИнформациюВЖурналРегистрации(
- НСтр("ru = 'Заказ на возврат Озон Пэй создан успешно'"));
+ НСтр("ru = 'Заказ на возврат Ozon Pay создан успешно'"));
Иначе
diff --git a/src/CommonModules/ОзонПэйСлужебный/Ext/Module.bsl b/src/CommonModules/ОзонПэйСлужебный/Ext/Module.bsl
index c4e707fc2..3f3533dc6 100644
--- a/src/CommonModules/ОзонПэйСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ОзонПэйСлужебный/Ext/Module.bsl
@@ -144,6 +144,9 @@
РегистрыСведений.ИдентификаторыПлатежныхСистем.ЗаписатьДанныеОперации(ДокументВозврата, ДанныеОперации);
Иначе
+ ПлатежныеСистемыСлужебный.ЗаписатьОшибкуВРегистр(
+ ДокументВозврата,
+ РезультатВозврата.КодОшибки);
ЗаполнитьЗначенияСвойств(
Результат,
РезультатВозврата,
@@ -178,7 +181,7 @@
// ** ИдентификаторМерчанта - Строка - идентификатор мерчанта в Системе быстрых платежей;
// ** НазначениеПлатежа - Строка - назначение платежа;
// * ОплатаИнтернетЭквайринг - Структура, Неопределено - Содержит данные операции, в том случае когда
-// значение свойства СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.Эквайринг:
+// значение свойства СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ИнтернетЭквайринг:
// ** Идентификатор - Строка - идентификатор операции;
// ** ИдентификаторОплаты - Строка - идентификатор операции оплаты;
// ** ИдентификаторОперации - Строка - идентификатор текущей операции;
@@ -215,39 +218,14 @@
КонецПроцедуры
-// Выполняет запись данных оплаты заказа.
-//
-// Параметры:
-// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ по которому была выполнена оплата.
-// ПараметрыОперации - см. ЗаполнитьПараметрыОперации.
-// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения, через
-// которую выполняется оплата.
-//
-Процедура ЗаписатьДанныеОплаты(
- ДокументОперации,
- ПараметрыОперации,
- НастройкаПодключения) Экспорт
-
- РегистрыСведений.ИдентификаторыПлатежныхСистем.НовыйВнутреннийИдентификаторОперации(
- ДокументОперации,
- НастройкаПодключения,
- Истина,
- ПараметрыОперации.ИдентификаторОплаты);
-
- РегистрыСведений.ИдентификаторыПлатежныхСистем.ЗаписатьДанныеОперации(
- ДокументОперации,
- ПараметрыОперации);
-
-КонецПроцедуры
-
// Возвращает данные оплат по документам платежей.
//
// Параметры:
-// ДокументыОпераций - Массив Из ОпределяемыйТип.ДокументОперацииИнтернетЭквайринга - документы операций.
+// ДокументыОпераций - Массив Из ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документы операций.
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - данные оплат по документам:
-// * Ключ - ОпределяемыйТип.ДокументОперацииИнтернетЭквайринга - документ операции.
+// * Ключ - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ операции.
// * Значение - см. ЗаполнитьПараметрыОперации
//
Функция ДанныеОпераций(ДокументыОпераций) Экспорт
@@ -313,11 +291,11 @@
// * НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения.
// * РезультатОбработки - Структура - содержит результаты обработки статуса операции:
// ** СтатусОперации - Строка - текущее состояние операции оплаты. Возможные значения:
-// - "Выполняется" - подтверждение оплаты не получено;
-// - "Отменена" - оплата по ранее сформированной ссылке невозможна;
-// - "Выполнена" - участник Интернет-эквайринга подтвердил оплату;
-// - "Отклонена" - оплата по ранее сформированной ссылке невозможна;
-// - "Ошибка" - неизвестный статус операции.
+// # "Выполняется" - подтверждение оплаты не получено;
+// # "Отменена" - оплата по ранее сформированной ссылке невозможна;
+// # "Выполнена" - участник Интернет-эквайринга подтвердил оплату;
+// # "Отклонена" - оплата по ранее сформированной ссылке невозможна;
+// # "Ошибка" - неизвестный статус операции.
// ** ПараметрыОперации - см. ПлатежныеСистемыСлужебный.НовыйОбновляемыеДанныеОперации.
// ** СообщениеОбОшибке - Строка - информация об ошибке
//
@@ -571,7 +549,7 @@
СписокСвойствОшибки = "КодОшибки,СообщениеОбОшибке,ИнформацияОбОшибке";
ИдентификаторОплаты = РегистрыСведений.ИдентификаторыПлатежныхСистем.ИдентификаторОплаты(ДокументОплаты);
- ПараметрыСтатуса = ПлатежныеСистемыСлужебный.ПараметрыОпределенияСтатусаОперации(ДокументВозврата);
+ ПараметрыОперации = ПлатежныеСистемы.ДанныеОперации(ДокументВозврата);
Если ПустаяСтрока(ИдентификаторОплаты) Тогда
@@ -587,9 +565,9 @@
Возврат Результат;
// Если первая итерация или уже получен отрицательный терминальный статус, то дополнительных проверок не требуется.
- ИначеЕсли ПараметрыСтатуса = Неопределено
- Или (Не ПараметрыСтатуса.Оплата
- И ПараметрыСтатуса.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОтменена()) Тогда
+ ИначеЕсли ПараметрыОперации = Неопределено
+ Или (ПараметрыОперации.ТипОперации = ПлатежныеСистемыКлиентСервер.ТипОперацииВозврат()
+ И ПараметрыОперации.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОтменена()) Тогда
Результат.ОбновитьДанныеОперации = Истина;
Результат.ИдентификаторОплаты = ИдентификаторОплаты;
@@ -603,7 +581,7 @@
// Если по документу ранее была сформирована оплата, делать по нему возврат запрещено.
// Необходимо получить статус оплаты, а для возврата сформировать новый документ.
- ИначеЕсли ПараметрыСтатуса.Оплата Тогда
+ ИначеЕсли ПараметрыОперации.ТипОперации = ПлатежныеСистемыКлиентСервер.ТипОперацииОплата() Тогда
Результат.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиНеверныйФорматЗапроса();
Результат.СообщениеОбОшибке = НСтр(
diff --git a/src/CommonModules/ОзонПэйСобытия/Ext/Module.bsl b/src/CommonModules/ОзонПэйСобытия/Ext/Module.bsl
index 429951c2a..72703b63b 100644
--- a/src/CommonModules/ОзонПэйСобытия/Ext/Module.bsl
+++ b/src/CommonModules/ОзонПэйСобытия/Ext/Module.bsl
@@ -1,11 +1,23 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Подсистема "ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ОзонПэй".
+// ОбщийМодуль.ОзонПэйСлужебный.
+//
+// Серверные процедуры обработки событий платежной системы Озон Пэй:
+// - обработка событий настройки подключения;
+// - обработка события подготовки запроса токена;
+// - обработка события определения способа оплаты.
+//
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
#Область СлужебныйПрограммныйИнтерфейс
// Определяет видимость подсистемы в общем списке настроек подключения к платежным системам, доступность изменения
diff --git a/src/CommonModules/ОнлайнЗаказыКлиент/Ext/Module.bsl b/src/CommonModules/ОнлайнЗаказыКлиент/Ext/Module.bsl
index afddd3c77..d8a4018eb 100644
--- a/src/CommonModules/ОнлайнЗаказыКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ОнлайнЗаказыКлиент/Ext/Module.bsl
@@ -201,6 +201,17 @@
КонецФункции
+// Возвращает способ оплаты, соответствующий Яндекс Пэй
+//
+// Возвращаемое значение:
+// ПеречислениеСсылка.СпособыОплатыОнлайнЗаказов -
+//
+Функция СпособОплатыЯндексПэй() Экспорт
+
+ Возврат ПредопределенноеЗначение("Перечисление.СпособыОплатыОнлайнЗаказов.ЯндексПэй");
+
+КонецФункции
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -278,7 +289,9 @@
ПараметрКоманды,
ПараметрыВыполненияКоманды) Экспорт
- ОткрытьФормуURLЗаказа(ПараметрКоманды);
+ ОткрытьФормуURLЗаказа(
+ ПараметрКоманды,
+ ПараметрыВыполненияКоманды.Форма);
КонецПроцедуры
@@ -290,12 +303,14 @@
//
// Параметры:
// ДокументЗаказа - ОпределяемыйТип.ДокументОнлайнЗаказаБИП - основание онлайн-заказа,
-// для которого нужно сформировать/открыть/обновить ссылку.
+// для которого нужно сформировать/открыть/обновить ссылку.
+// Владелец - ФормаКлиентскогоПриложения - форма которая будет установлена в качестве владельца.
//
-Процедура ОткрытьФормуURLЗаказа(Знач ДокументЗаказа)
+Процедура ОткрытьФормуURLЗаказа(Знач ДокументЗаказа, Знач Владелец)
Параметры = Новый Структура;
Параметры.Вставить("ДокументЗаказа", ДокументЗаказа);
+ Параметры.Вставить("Владелец", Владелец);
ОбработкаПродолжения = Новый ОписаниеОповещения(
"ОткрытьФормуURLЗаказаПродолжение",
@@ -368,7 +383,7 @@
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("Параметры", ПараметрыФормы);
- ПараметрыОткрытия.Вставить("Владелец", ЭтотОбъект);
+ ПараметрыОткрытия.Вставить("Владелец", Параметры.Владелец);
ПараметрыОткрытия.Вставить("ОписаниеОповещения", ОписаниеОповещения);
ПараметрыОткрытия.Вставить("РежимОткрытияОкна", РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
diff --git a/src/CommonModules/ОнлайнЗаказыКлиентСобытия/Ext/Module.bsl b/src/CommonModules/ОнлайнЗаказыКлиентСобытия/Ext/Module.bsl
index 4e693754a..a38d9e394 100644
--- a/src/CommonModules/ОнлайнЗаказыКлиентСобытия/Ext/Module.bsl
+++ b/src/CommonModules/ОнлайнЗаказыКлиентСобытия/Ext/Module.bsl
@@ -63,13 +63,18 @@
ИначеЕсли СпособОплаты = ПредопределенноеЗначение("Перечисление.СпособыОплатыОнлайнЗаказов.Эквайринг")
И ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ИнтернетЭквайринг") Тогда
- ПараметрыОткрытия.Подсистема = МодульНастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЭквайринг();
-
+ ПараметрыОткрытия.Подсистема = МодульНастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг();
+
ИначеЕсли СпособОплаты = ПредопределенноеЗначение("Перечисление.СпособыОплатыОнлайнЗаказов.ОзонПэй")
И ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ОзонПэй") Тогда
ПараметрыОткрытия.Подсистема = МодульНастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй();
-
+
+ ИначеЕсли СпособОплаты = ПредопределенноеЗначение("Перечисление.СпособыОплатыОнлайнЗаказов.ЯндексПэй")
+ И ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ ПараметрыОткрытия.Подсистема = МодульНастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй();
+
Иначе
Возврат;
КонецЕсли;
@@ -99,7 +104,7 @@
КонецПроцедуры
-// Определяет поведение системы при подключени платежной системы.
+// Определяет поведение системы при подключении платежной системы.
//
// Параметры:
// СпособОплаты - ПеречислениеСсылка.СпособыОплатыОнлайнЗаказов - способ оплаты по настройке подключения.
@@ -169,7 +174,19 @@
"ОзонПэй",
ПараметрыПодключения,
ПараметрыФормы);
+
+ ИначеЕсли СпособОплаты = ПредопределенноеЗначение("Перечисление.СпособыОплатыОнлайнЗаказов.ЯндексПэй") Тогда
+ ПараметрыПодключения = МодульНастройкиПлатежныхСистемКлиент.НовыйПараметрыПодключения(
+ ,
+ ,
+ ОповещениеОЗавершении);
+
+ МодульНастройкиПлатежныхСистемСлужебныйКлиент.ПодключитьПлатежнуюСистему(
+ "ЯндексПэй",
+ ПараметрыПодключения,
+ ПараметрыФормы);
+
КонецЕсли;
КонецПроцедуры
diff --git a/src/CommonModules/ОнлайнЗаказыПереопределяемый/Ext/Module.bsl b/src/CommonModules/ОнлайнЗаказыПереопределяемый/Ext/Module.bsl
index 2c30ee841..52340bbff 100644
--- a/src/CommonModules/ОнлайнЗаказыПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/ОнлайнЗаказыПереопределяемый/Ext/Module.bsl
@@ -130,6 +130,7 @@
// Определяет состав табличной части товары и ее представление пользователю.
// Обязательные поля:
// "ИдентификаторТовара" - Строка - содержит уникальный идентификатор товарной позиции онлайн-заказа;
+// "ИдентификаторСтроки" - Строка - содержит уникальный идентификатор в случае внедрения подсистемы Яндекс Пэй;
// "Наименование" - Строка - наименование товарной позиции онлайн-заказа;
// "Количество" - Число - количество товарной позиции в онлайн-заказе;
// "СуммаСоСкидкой" - Число - сумма товарной позиции с учетом НДС;
@@ -253,7 +254,7 @@
// ****** Идентификатор - Строка - идентификатор параметра для заполнения.
// ** ИнтернетЭквайринг - Структура - Содержит описание параметров оплаты через Интернет-эквайринг,
// Неопределено, если подсистема не внедрена, сценарий не используется
-// или не выбрана настройка подключения.
+// или не выбрана настройка подключения:
// *** НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКИнтернетЭквайрингу -
// настройка подключения к интернет-эквайрингу, выбранная для онлайн-заказов.
// *** НазначениеПлатежа - Строка - информация о платеже, которая будет отображена пользователю
@@ -282,11 +283,25 @@
// ***** Идентификатор - Строка - идентификатор параметра для заполнения.
// ** ОзонПэй - Структура - Содержит описание параметров оплаты через Ozon Pay,
// Неопределено, если подсистема не внедрена, сценарий не используется
-// или не выбрана настройка подключения
+// или не выбрана настройка подключения:
// *** НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам -
// настройка подключения к Озон Пэй, выбранная для онлайн-заказов.
// *** НазначениеПлатежа - Строка - в текущей версии не используется.
// *** ШаблоныНазначения - ТаблицаЗначений - в текущей версии не используется.
+// ** ЯндексПэй - Структура - Содержит описание параметров оплаты через Яндекс Пэй,
+// Неопределено, если подсистема не внедрена, сценарий не используется
+// или не выбрана настройка подключения:
+// *** НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам -
+// настройка подключения к Яндекс Пэй, выбранная для онлайн-заказов.
+// *** НазначениеПлатежа - Строка - комментарий к платежу, доступный для просмотра в
+// личном кабинете мерчанта
+// *** ШаблоныНазначения - ТаблицаЗначений - настройки заполнения шаблонов платежей:
+// **** ОбъектМетаданных - Строка - имя объекта метаданных операции.
+// **** Идентификатор - Строка - идентификатор шаблона.
+// **** Наименование - Строка - наименование шаблона для пользователя.
+// **** Параметры -Массив Из Структура - параметры заполнения шаблона:
+// ***** Наименование - Строка - наименование параметра для пользователя.
+// ***** Идентификатор - Строка - идентификатор параметра для заполнения.
// * ПараметрыФискализации - Структура, Неопределено - Содержит параметры фискализации онлайн-заказа,
// Неопределено, если подсистема не внедрена или не выбрана настройка подключения к облачной кассе:
// ** НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКОблачнымКассам -
@@ -392,6 +407,7 @@
// - "СБПb2b" - оплата через систему быстрых платежей (b2b).
// - "ИнтернетЭквайринг" - оплата картой.
// - "ОзонПэй" - оплата через Озон Пэй.
+// - "ЯндексПэй" - оплата через Яндекс Пэй.
// * Значение - Структура - содержит данные оплаты, может принимать следующие значения:
// - Для случая когда ключ имеет значение равное "СБПc2b":
// ** НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКСистемеБыстрыхПлатежей - настройка
@@ -448,7 +464,7 @@
// подключения.
// **** НазначениеПлатежа - Строка - назначение платежа.
// - Для случая когда ключ имеет значение равное "ОзонПэй":
-// ** НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКИнтернетЭквайрингу - настройка
+// ** НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка
// выполнения операции.
// ** РезультатОбработки - Структура - результат загрузки статуса операции:
// *** СообщениеОбОшибке - Строка - сообщение пользователю. Заполняется в случае ошибки.
@@ -465,6 +481,22 @@
// **** ИдентификаторОплаты - Строка - идентификатор операции оплаты.
// **** СпособОплаты - Строка - способ оплаты. Доступные значения определяются методами
// общего модуля ПлатежныеСистемыКлиентСервер.
+// - Для случая когда ключ имеет значение равное "ЯндексПэй":
+// ** НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка
+// выполнения операции.
+// ** РезультатОбработки - Структура - результат загрузки статуса операции:
+// *** СообщениеОбОшибке - Строка - сообщение пользователю. Заполняется в случае ошибки.
+// *** СтатусОперации - Строка - текущее состояние операции. Возможные значения:
+// "Выполнена" - выполнение операции подтверждено.
+// "Выполняется" - операция в процессе выполнения.
+// "Отменена" - ранее сформированная операция отменена.
+// "Отклонена" - выполнение операции отклонено.
+// "Ошибка" - не удалось определить статус операции.
+// *** ПараметрыОперации - Структура - дополнительные данные по оплате:
+// **** ДатаОперации - Дата - дата получения статуса оплаты.
+// **** СуммаОперации - Число - сумма операции.
+// **** ИдентификаторОперации - Строка - идентификатор текущей операции.
+// **** ИдентификаторОплаты - Строка - идентификатор операции оплаты.
// ПараметрыФискализации - Структура, Неопределено - содержит описание параметров фискализации.
// Неопределено в случае если подсистема облачные кассы не внедрена или операция фискализации не была инициализирована.
// * ДокументОперации - ОпределяемыйТип.ДокументОперацииОблачнойКассы - ссылка на документ,
diff --git a/src/CommonModules/ОнлайнЗаказыСервис/Ext/Module.bsl b/src/CommonModules/ОнлайнЗаказыСервис/Ext/Module.bsl
index a82672ff3..b5a351d50 100644
--- a/src/CommonModules/ОнлайнЗаказыСервис/Ext/Module.bsl
+++ b/src/CommonModules/ОнлайнЗаказыСервис/Ext/Module.bsl
@@ -103,6 +103,11 @@
// *** ДатаОперации - Дата - фактическая дата оплаты в UTC;
// *** СпособОплаты - Строка - способ оплаты. Доступные значения определяются методами
// общего модуля ПлатежныеСистемыКлиентСервер.
+// ** ОплатаЯндексПэй - Структура, Неопределено - Содержит данные операции оплаты, в том случае когда
+// значение Свойства СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй:
+// *** ИдентификаторОплаты - Строка - идентификатор операции оплаты;
+// *** ИдентификаторОперации - Строка - идентификатор текущей операции;
+// *** ДатаОперации - Дата - фактическая дата оплаты в UTC.
// * КодОшибки - Строка - строковый код возникшей ошибки, который
// может быть обработан вызывающим методом:
// - <Пустая строка> - получение URL заказа выполнено успешно;
@@ -329,6 +334,7 @@
// * ТокенСПБb2b - Строка - Токен подключения, используемый для оплаты СБП b2b;
// * ТокенИнтернетЭквайринг - Строка - Токен подключения, используемый для оплаты по карте;
// * ТокенОзонПэй - Строка - Токен подключения, используемый для оплаты через Озон Пэй;
+// * ТокенЯндексПэй - Строка - Токен подключения, используемый для оплаты через Яндекс Пэй;
// * ТокенОблачнаяКасса - Строка - Токен подключения облачной кассы;
// * КодОшибки - Строка - строковый код возникшей ошибки;
// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
@@ -392,34 +398,6 @@
КонецФункции
-// Выполняет получение URL для перехода к настройке внешнего вида страницы онлайн-заказов.
-// Параметры:
-// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКОнлайнЗаказам -
-// настройка выполнения операции.
-//
-// Возвращаемое значение:
-// Структура - результат получения URL:
-// * URLНастройкиПодключения - Строка - URL для перехода к настройке внешнего вида страницы онлайн-заказов.
-// * КодОшибки - Строка - строковый код возникшей ошибки, который
-// может быть обработан вызывающим методом:
-// - <Пустая строка> - получение URL заказа выполнено успешно;
-// - "НеверныйФорматЗапроса" - передан некорректный запрос или настройка подключения;
-// - "НеверныйЛогинИлиПароль" - некорректный логин/пароль ИПП;
-// - "СервисВременноНеДоступен" - временная недоступность сервиса;
-// - "ПревышеноКоличествоПопыток" - превышено количество попыток
-// обращения к сервису с некорректным логином и паролем;
-// - "ОшибкаПодключения" - ошибка при подключении к сервису;
-// - "ОшибкаСервиса" - внутренняя ошибка сервиса;
-// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
-// * ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора.
-//
-Функция URLНастройкиПодключения(НастройкаПодключения) Экспорт
-
- Возврат ОперацияURLНастройкиПодключения(
- НастройкаПодключения);
-
-КонецФункции
-
#КонецОбласти
#Область ВызовОперацииСозданиеНастройки
@@ -573,6 +551,11 @@
ЗаписьДанныхСообщения.ЗаписатьЗначение(ПараметрыОперации.ТокенОзонПэй);
КонецЕсли;
+ Если Не ПустаяСтрока(ПараметрыОперации.ТокенЯндексПэй) Тогда
+ ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("yandexPayAuthToken");
+ ЗаписьДанныхСообщения.ЗаписатьЗначение(ПараметрыОперации.ТокенЯндексПэй);
+ КонецЕсли;
+
НастройкиПриемаОплатПоРеквизитам = ПараметрыНастройки.НастройкиПриемаОплатПоРеквизитам;
ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("c2bRequisitesPaymentEnabled");
@@ -1696,7 +1679,7 @@
ЧтениеОтвета = Новый ЧтениеJSON;
ЧтениеОтвета.УстановитьСтроку(ТелоJSON);
Результат = ПрочитатьJSON(ЧтениеОтвета);
- Если СокрЛП(Результат.detail) = "Контрольная сумма заказа не совпадает" Тогда
+ Если СокрЛП(Результат.detail) = "Контрольная сумма заказа не совпадает" Тогда // АПК:1297 Ответ стороннего сервиса
Возврат Ложь;
Иначе
Возврат Истина;
@@ -2236,17 +2219,19 @@
// orderId - идентификатор онлайн-заказа.
// error - описание ошибки.
//
- // {
- // "orders": [
- // {
+ //{
+ // "orders": [
+ // {
// "id": "string",
// "status": "string",
// "paymentType": "string",
// "amount": 0,
+ // "currency": "string",
// "sbpPayment": {
// "qrc": "string",
// "paymentId": "string",
- // "operationDate": "string",
+ // "operationDate": "2026-04-27T07:06:13.924Z",
+ // "paymentModel": "C2B",
// "sbpOrderId": "string",
// "merchantId": "string",
// "paymentPurpose": "string",
@@ -2256,27 +2241,44 @@
// "b2bUip": "string"
// },
// "acquiringPayment": {
+ // "paymentLinkId": "string",
// "operationId": "string",
// "acquiringApiProviderId": "string",
// "merchantId": "string",
- // "paymentPurpose": "string"
+ // "paymentPurpose": "string",
+ // "operationDate": "2026-04-27T07:06:13.925Z"
+ // },
+ // "yandexPayPayment": {
+ // "saleToken": "string",
+ // "operationDate": "2026-04-27T07:06:13.925Z"
// },
// "ozonPayPayment": {
// "ozonPayOrderId": "string",
// "ozonPayExtOrderId": "string",
- // "operationDate": "2025-09-16T06:02:52.581Z"
+ // "operationDate": "2026-04-27T07:06:13.925Z",
+ // "paymentType": "string"
+ // },
+ // "fiscalization": {
+ // "status": "REQUEST_EXPECTED",
+ // "providerResponseStatus": 0,
+ // "providerResponse": {},
+ // "attemptsCount": 0,
+ // "receiptOperationId": "string",
+ // "receiptId": "string",
+ // "comment": "string"
// },
// "orderDataChecksumVersion": "string",
- // "orderDataChecksumValue": "string"
- // }
- // ],
- // "orderErrors": [
- // {
+ // "orderDataChecksumValue": "string",
+ // "shareServiceOrderPageUrl": "string"
+ // }
+ // ],
+ // "orderErrors": [
+ // {
// "orderId": "string",
// "error": "ACCESS_DENIED"
- // }
- // ]
- // }
+ // }
+ // ]
+ //}
Попытка
@@ -2302,6 +2304,7 @@
ОплатаСБП = Неопределено;
ОплатаИнтернетЭквайринг = Неопределено;
ОплатаОзонПэй = Неопределено;
+ ОплатаЯндексПэй = Неопределено;
ПараметрыФискализации = Неопределено;
ДанныеЗаказа = Новый Структура;
@@ -2398,6 +2401,33 @@
КонецЕсли;
+ Если ДанныеЗаказаВСервисе.Свойство("yandexPayPayment")
+ И ЗначениеЗаполнено(ДанныеЗаказаВСервисе.yandexPayPayment) Тогда
+
+ Эталон = Новый Структура;
+ Эталон.Вставить("saleToken", "");
+ Эталон.Вставить("operationDate", "");
+ ЗаполнитьЗначенияСвойств(Эталон, ДанныеЗаказаВСервисе.yandexPayPayment);
+
+ // АПИ яндекса не возвращает идентификатор транзакции операции оплаты,
+ // поэтому sale_token устанавливается в качестве идентификатора оплаты и операции.
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+ МодульЯндексПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСлужебный");
+ ЗакодированныйИдентификатор = МодульЯндексПэйСлужебный.КодироватьИдентификаторОплаты(
+ Эталон.saleToken,
+ МодульЯндексПэйСлужебный.ТипСсылкиДинамическая());
+ Иначе
+ ЗакодированныйИдентификатор = Эталон.saleToken;
+ КонецЕсли;
+
+ ОплатаЯндексПэй = Новый Структура;
+ ОплатаЯндексПэй.Вставить("ИдентификаторОплаты", ЗакодированныйИдентификатор);
+ ОплатаЯндексПэй.Вставить("ИдентификаторОперации", ЗакодированныйИдентификатор);
+ ОплатаЯндексПэй.Вставить("ДатаОперации", ДатаВUTC(Эталон.operationDate));
+
+ КонецЕсли;
+
ДанныеЗаказа = Новый Структура;
ДанныеЗаказа.Вставить("ИдентификаторЗаказа", ДанныеЗаказаВСервисе.id);
@@ -2410,6 +2440,7 @@
ДанныеЗаказа.Вставить("ОплатаИнтернетЭквайринг", ОплатаИнтернетЭквайринг);
ДанныеЗаказа.Вставить("ПараметрыФискализации", ПараметрыФискализации);
ДанныеЗаказа.Вставить("ОплатаОзонПэй", ОплатаОзонПэй);
+ ДанныеЗаказа.Вставить("ОплатаЯндексПэй", ОплатаЯндексПэй);
ДанныеЗаказов.Добавить(ДанныеЗаказа);
@@ -2829,7 +2860,7 @@
Результат = Новый Структура;
Результат.Вставить("ИнформацияОбОшибке", "");
- Результат.Вставить("Ошибка", Ложь);
+ Результат.Вставить("Ошибка", Ложь);
УстановитьПривилегированныйРежим(Истина);
@@ -2868,7 +2899,7 @@
Функция НовыйОписаниеДанныхАутентификации()
ДанныеАутентификации = Новый Структура;
- ДанныеАутентификации.Вставить("Идентификатор", "");
+ ДанныеАутентификации.Вставить("Идентификатор", "");
ДанныеАутентификации.Вставить("КонтрольнаяСумма", "");
Возврат ДанныеАутентификации;
@@ -2980,7 +3011,7 @@
Если Не ЗначениеЗаполнено(ИдентификаторПоДаннымСервиса) Тогда
Возврат Неопределено;
ИначеЕсли ИдентификаторПоДаннымСервиса = "SBP" Тогда
- Если ДанныеЗаказаВСервисе.sbpPayment.paymentModel = "C2B" Тогда
+ Если ДанныеЗаказаВСервисе.sbpPayment.paymentModel = ОнлайнЗаказыСлужебный.ИдентификаторВариантаСБПC2B() Тогда
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.СБПc2b;
ИначеЕсли ДанныеЗаказаВСервисе.sbpPayment.paymentModel = ОнлайнЗаказыСлужебный.ИдентификаторВариантаСБПB2B() Тогда
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.СБПb2b;
@@ -3003,6 +3034,8 @@
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.Наличные;
ИначеЕсли ИдентификаторПоДаннымСервиса = "OZON_PAY" Тогда
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй;
+ ИначеЕсли ИдентификаторПоДаннымСервиса = "YANDEX_PAY" Тогда
+ Возврат Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй;
ИначеЕсли ИдентификаторПоДаннымСервиса = "OTHER" Тогда
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.Прочее;
Иначе
@@ -3035,4 +3068,36 @@
#КонецОбласти
+#Область РаботаСПорталом
+
+// Выполняет получение URL для перехода к настройке внешнего вида страницы онлайн-заказов.
+// Параметры:
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКОнлайнЗаказам -
+// настройка выполнения операции.
+//
+// Возвращаемое значение:
+// Структура - результат получения URL:
+// * URLНастройкиПодключения - Строка - URL для перехода к настройке внешнего вида страницы онлайн-заказов.
+// * КодОшибки - Строка - строковый код возникшей ошибки, который
+// может быть обработан вызывающим методом:
+// - <Пустая строка> - получение URL заказа выполнено успешно;
+// - "НеверныйФорматЗапроса" - передан некорректный запрос или настройка подключения;
+// - "НеверныйЛогинИлиПароль" - некорректный логин/пароль ИПП;
+// - "СервисВременноНеДоступен" - временная недоступность сервиса;
+// - "ПревышеноКоличествоПопыток" - превышено количество попыток
+// обращения к сервису с некорректным логином и паролем;
+// - "ОшибкаПодключения" - ошибка при подключении к сервису;
+// - "ОшибкаСервиса" - внутренняя ошибка сервиса;
+// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
+// * ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора.
+//
+Функция URLНастройкиПодключения(НастройкаПодключения) Экспорт
+
+ Возврат ОперацияURLНастройкиПодключения(
+ НастройкаПодключения);
+
+КонецФункции
+
+#КонецОбласти
+
#КонецОбласти
diff --git a/src/CommonModules/ОнлайнЗаказыСлужебный/Ext/Module.bsl b/src/CommonModules/ОнлайнЗаказыСлужебный/Ext/Module.bsl
index 368efd419..3cefa3606 100644
--- a/src/CommonModules/ОнлайнЗаказыСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ОнлайнЗаказыСлужебный/Ext/Module.bsl
@@ -55,7 +55,6 @@
Методы.Вставить("АктуализироватьURLShare", Истина);
Методы.Вставить("ВключитьНастройкуПодключения", Истина);
Методы.Вставить("ДеактивироватьЗаказ", Истина);
- Методы.Вставить("ЗагрузкаСтатусовОнлайнЗаказов", Истина);
Методы.Вставить("НоваяНастройкаПодключения", Истина);
Методы.Вставить("НовыйЗаказ", Истина);
Методы.Вставить("ОбновитьЗаказСВложениями", Истина);
@@ -419,6 +418,7 @@
НастройкаОплаты = НастройкаОнлайнЗаказовОбъект.НастройкиОплаты.Добавить();
НастройкаОплаты.СпособОплаты = СпособОплаты;
НастройкаОплаты.НастройкаПодключения = НастройкаПодключения;
+ НастройкаОплаты.Используется = Истина;
НастройкаОнлайнЗаказовОбъект.Записать();
@@ -448,6 +448,25 @@
КонецФункции
+//См. Справочники.НастройкиПодключенияКОнлайнЗаказам.НоваяНастройкаПодключения
+//
+Функция НоваяНастройкаПодключения(
+ Организация,
+ НастройкиОплат,
+ НастройкаОблачнойКассы = Неопределено) Экспорт
+
+ Если Не НастройкаОнлайнЗаказовДоступна() Тогда
+ ВызватьИсключение НСтр("ru = 'Нарушение прав доступа. Пользователю запрещено создание настроек подключения Онлайн-заказов.
+ |Обратитесь к администратору.'");
+ КонецЕсли;
+
+ Возврат Справочники.НастройкиПодключенияКОнлайнЗаказам.НоваяНастройкаПодключения(
+ Организация,
+ НастройкиОплат,
+ НастройкаОблачнойКассы);
+
+КонецФункции
+
#КонецОбласти
#Область ШаблоныСообщений
@@ -606,6 +625,17 @@
#Область ИдентификаторыСпособовОплат
+// Возвращает идентификатор способа оплаты СБП(c2b).
+//
+// Возвращаемое значение:
+// Строка - идентификатор операции.
+//
+Функция ИдентификаторВариантаСБПC2B() Экспорт
+
+ Возврат "C2B";
+
+КонецФункции
+
// Возвращает идентификатор способа оплаты СБП(b2b).
//
// Возвращаемое значение:
@@ -676,6 +706,95 @@
#КонецОбласти
+#Область ОбработчикиОбновления
+
+// Заполняет новые реквизиты справочника "НастройкиПодключенияКОнлайнЗаказам"
+// при переходе на версию 2.8.4.
+//
+// Параметры:
+// Параметры - Структура - параметры обновления.
+//
+Процедура ОбновитьПризнакиИспользованияНастроекОплатФискализации(Параметры) Экспорт
+
+ Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
+ Возврат;
+ КонецЕсли;
+
+ НачатьТранзакцию();
+
+ Попытка
+
+ Блокировка = Новый БлокировкаДанных;
+ Блокировка.Добавить("Справочник.НастройкиПодключенияКОнлайнЗаказам");
+ Блокировка.Заблокировать();
+
+ ТекстЗапроса = Новый Массив;
+
+ ТекстЗапроса.Добавить(
+ "ВЫБРАТЬ РАЗЛИЧНЫЕ
+ | НастройкиПодключенияКОнлайнЗаказамНастройкиОплаты.Ссылка КАК Ссылка
+ |ПОМЕСТИТЬ ВТ_НастройкиОнлайнЗаказов
+ |ИЗ
+ | Справочник.НастройкиПодключенияКОнлайнЗаказам.НастройкиОплаты КАК НастройкиПодключенияКОнлайнЗаказамНастройкиОплаты
+ |ГДЕ
+ | НЕ НастройкиПодключенияКОнлайнЗаказамНастройкиОплаты.Используется");
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОблачныеКассы") Тогда
+ ТекстЗапроса.Добавить(
+ "
+ |ОБЪЕДИНИТЬ ВСЕ
+ |
+ |ВЫБРАТЬ
+ | НастройкиПодключенияКОнлайнЗаказам.Ссылка
+ |ИЗ
+ | Справочник.НастройкиПодключенияКОнлайнЗаказам КАК НастройкиПодключенияКОнлайнЗаказам
+ |ГДЕ
+ | НЕ НастройкиПодключенияКОнлайнЗаказам.НастройкаПодключенияКОблачнойКассе.Ссылка ЕСТЬ NULL");
+ КонецЕсли;
+
+ ТекстЗапроса.Добавить(
+ ";
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ РАЗЛИЧНЫЕ
+ | ВТ_НастройкиОнлайнЗаказов.Ссылка КАК Ссылка
+ |ИЗ
+ | ВТ_НастройкиОнлайнЗаказов КАК ВТ_НастройкиОнлайнЗаказов");
+
+
+ Запрос = Новый Запрос;
+ Запрос.Текст = СтрСоединить(ТекстЗапроса, Символы.ПС);
+
+ РезультатЗапроса = Запрос.Выполнить();
+ ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
+
+ Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
+
+ НастройкаОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
+ НастройкаОбъект.Заблокировать();
+
+ Для Каждого НастройкаОплаты Из НастройкаОбъект.НастройкиОплаты Цикл
+ НастройкаОплаты.Используется = Истина;
+ КонецЦикла;
+
+ ОбновлениеИнформационнойБазы.ЗаписатьДанные(
+ НастройкаОбъект,
+ Ложь,
+ Истина);
+
+ КонецЦикла;
+
+ ЗафиксироватьТранзакцию();
+
+ Исключение
+ ОтменитьТранзакцию();
+ ВызватьИсключение ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ КонецПопытки;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область ОбработчикиРегламентныхЗаданий
// Создает регламентное задание "ЗагрузкаСтатусовОнлайнЗаказов".
@@ -1006,6 +1125,9 @@
Если КодОшибки = КодОшибкиНеверныйФорматЗапроса()
И КодОшибкиСервиса = "BAD_REQUEST" Тогда
Возврат НСтр("ru = 'Неверный набор параметров или формат запроса к сервису.'");
+ ИначеЕсли КодОшибки = КодОшибкиНеверныйФорматЗапроса()
+ И КодОшибкиСервиса = "EXPIRATION_TIMESTAMP_TOO_FAR" Тогда
+ Возврат НСтр("ru = 'Превышен максимальный срок жизни онлайн-заказа (30 дней).'");
ИначеЕсли КодОшибки = КодОшибкиНеверныйФорматЗапроса()
И КодОшибкиСервиса = "BAD_PAYMENT_GATEWAY_B2B_TOKEN_CHECK" Тогда
Возврат НСтр("ru = 'Не удалось проверить корректность токена B2B.'");
@@ -1015,6 +1137,15 @@
ИначеЕсли КодОшибки = КодОшибкиНеверныйФорматЗапроса()
И КодОшибкиСервиса = "BAD_CLOUD_SALES_REGISTER_TOKEN_CHECK" Тогда
Возврат НСтр("ru = 'Не удалось проверить корректность токена облачной кассы.'");
+ ИначеЕсли КодОшибки = КодОшибкиНеверныйФорматЗапроса()
+ И КодОшибкиСервиса = "BAD_PAYMENT_GATEWAY_ACQUIRING_TOKEN_CHECK" Тогда
+ Возврат НСтр("ru = 'Не удалось проверить корректность токена интернет-эквайринга.'");
+ ИначеЕсли КодОшибки = КодОшибкиНеверныйФорматЗапроса()
+ И КодОшибкиСервиса = "BAD_PAYMENT_GATEWAY_OZON_PAY_TOKEN_CHECK" Тогда
+ Возврат НСтр("ru = 'Не удалось проверить корректность токена Озон Пэй.'");
+ ИначеЕсли КодОшибки = КодОшибкиНеверныйФорматЗапроса()
+ И КодОшибкиСервиса = "BAD_PAYMENT_GATEWAY_YANDEX_PAY_TOKEN_CHECK" Тогда
+ Возврат НСтр("ru = 'Не удалось проверить корректность токена Озон Пэй.'");
ИначеЕсли КодОшибки = КодОшибкиНеверныйФорматЗапроса()
И КодОшибкиСервиса = "FISCALIZATION_UNAVAILABLE" Тогда
Возврат НСтр("ru = 'По указанной настройке облачной кассы фискализация невозможна.'");
@@ -1040,10 +1171,8 @@
КонецЕсли;
Если КодОшибки = "ПревышеноКоличествоПопыток"
- И КодОшибкиСервиса = "TOO_MANY_REQUESTS" Тогда
- Возврат НСтр("ru = 'Превышено количество попыток обращения к сервису ОФД с не верными данными авторизации.'")
- + " "
- + НСтр("ru = 'Проверьте правильность данных авторизации и повторите попытку через 30 минут.'");
+ И КодОшибкиСервиса = "ORDER_CREATION_LIMIT_EXCEEDED" Тогда
+ Возврат НСтр("ru = 'Превышен суточный лимит количества регистрации новых онлайн-заказов.'");
КонецЕсли;
Если КодОшибки = "ОшибкаСервиса" Тогда
@@ -1063,6 +1192,18 @@
ИначеЕсли КодОшибки = "ОтсутствуетДоступКСервису"
И КодОшибкиСервиса = "PAYMENT_GATEWAY_B2B_TOKEN_OWNER_MISMATCH" Тогда
Возврат НСтр("ru = 'Не удалось проверить корректность токена B2B. Токен принадлежит другому пользователю интернет-поддержки.'");
+ ИначеЕсли КодОшибки = "ОтсутствуетДоступКСервису"
+ И КодОшибкиСервиса = "CLOUD_SALES_REGISTER_TOKEN_OWNER_MISMATCH" Тогда
+ Возврат НСтр("ru = 'Не удалось проверить корректность токена облачной кассы. Токен принадлежит другому пользователю интернет-поддержки.'");
+ ИначеЕсли КодОшибки = "ОтсутствуетДоступКСервису"
+ И КодОшибкиСервиса = "PAYMENT_GATEWAY_ACQUIRING_TOKEN_OWNER_MISMATCH" Тогда
+ Возврат НСтр("ru = 'Не удалось проверить корректность токена интернет-эквайринга. Токен принадлежит другому пользователю интернет-поддержки.'");
+ ИначеЕсли КодОшибки = "ОтсутствуетДоступКСервису"
+ И КодОшибкиСервиса = "PAYMENT_GATEWAY_OZON_PAY_TOKEN_OWNER_MISMATCH" Тогда
+ Возврат НСтр("ru = 'Не удалось проверить корректность токена Озон Пэй. Токен принадлежит другому пользователю интернет-поддержки.'");
+ ИначеЕсли КодОшибки = "ОтсутствуетДоступКСервису"
+ И КодОшибкиСервиса = "PAYMENT_GATEWAY_YANDEX_PAY_TOKEN_OWNER_MISMATCH" Тогда
+ Возврат НСтр("ru = 'Не удалось проверить корректность токена Яндекс Пэй. Токен принадлежит другому пользователю интернет-поддержки.'");
КонецЕсли;
Возврат НСтр("ru = 'Неизвестная ошибка.'");
@@ -1243,25 +1384,6 @@
#Область НастройкаПодключения
-//См. Справочники.НастройкиПодключенияКОнлайнЗаказам.НоваяНастройкаПодключения
-//
-Функция НоваяНастройкаПодключения(
- Организация,
- НастройкиОплат,
- НастройкаОблачнойКассы = Неопределено) Экспорт
-
- Если Не НастройкаОнлайнЗаказовДоступна() Тогда
- ВызватьИсключение НСтр("ru = 'Нарушение прав доступа. Пользователю запрещено создание настроек подключения Онлайн-заказов.
- |Обратитесь к администратору.'");
- КонецЕсли;
-
- Возврат Справочники.НастройкиПодключенияКОнлайнЗаказам.НоваяНастройкаПодключения(
- Организация,
- НастройкиОплат,
- НастройкаОблачнойКассы);
-
-КонецФункции
-
//См. Справочники.НастройкиПодключенияКОнлайнЗаказам.ВключитьНастройку
//
Функция ВключитьНастройкуПодключения(НастройкаПодключения) Экспорт
@@ -1514,6 +1636,7 @@
// * ТокенСПБb2b - Строка - Токен подключения, используемый для оплаты СБП b2b;
// * ТокенИнтернетЭквайринг - Строка - Токен подключения, используемый для оплаты по карте;
// * ТокенОзонПэй - Строка - Токен подключения, используемый для оплаты через Озон Пэй;
+// * ТокенЯндексПэй - Строка - Токен подключения, используемый для оплаты через Яндекс Пэй;
// * ТокенОблачнаяКасса - Строка - Токен подключения облачной кассы;
// * КодОшибки - Строка - строковый код возникшей ошибки;
// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
@@ -1531,6 +1654,7 @@
ПараметрыОперации.Вставить("ТокенСПБb2b", "");
ПараметрыОперации.Вставить("ТокенИнтернетЭквайринг", "");
ПараметрыОперации.Вставить("ТокенОзонПэй", "");
+ ПараметрыОперации.Вставить("ТокенЯндексПэй", "");
ПараметрыОперации.Вставить("ТокенОблачнаяКасса", "");
ПараметрыОперации.Вставить("КодОшибки ", "");
ПараметрыОперации.Вставить("СообщениеОбОшибке ", "");
@@ -1595,6 +1719,7 @@
// * ТокенСПБb2b - Строка - Токен подключения, используемый для оплаты СБП b2b;
// * ТокенИнтернетЭквайринг - Строка - Токен подключения, используемый для оплаты по карте;
// * ТокенОзонПэй - Строка - Токен подключения, используемый для оплаты через Озон Пэй;
+// * ТокенЯндексПэй - Строка - Токен подключения, используемый для оплаты через Яндекс Пэй;
// * ТокенОблачнаяКасса - Строка - Токен подключения облачной кассы;
// * КодОшибки - Строка - строковый код возникшей ошибки;
// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
@@ -1648,6 +1773,8 @@
ПараметрыОперации.ТокенИнтернетЭквайринг = РезультатОперации.Токен;
ИначеЕсли СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй Тогда
ПараметрыОперации.ТокенОзонПэй = РезультатОперации.Токен;
+ ИначеЕсли СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй Тогда
+ ПараметрыОперации.ТокенЯндексПэй = РезультатОперации.Токен;
КонецЕсли;
КонецПроцедуры
@@ -1924,7 +2051,7 @@
// СпособОплаты - ПеречислениеСсылка.СпособыОплатыОнлайнЗаказов - Способ оплаты для которого выбирается настройка.
//
// Возвращаемое значение:
-// ФиксированныйМассив - парметры выбора настройки
+// ФиксированныйМассив - параметры выбора настройки
//
Функция ПараметрыВыбораОплаты(СпособОплаты) Экспорт
@@ -2090,12 +2217,21 @@
Возврат РезультатОперации;
КонецЕсли;
+ ЗаказНаОплату = СформироватьОписаниеЗаказаНаОплату(
+ РезультатОперации,
+ ДокументЗаказа,
+ ПараметрыНастройки);
+
+ Если ЗначениеЗаполнено(РезультатОперации.КодОшибки) Тогда
+ Возврат РезультатОперации;
+ КонецЕсли;
+
ДанныеЗаказа = ДанныеЗаказаНаОплатуПоДокументу(
РезультатОперации,
ДокументЗаказа,
ПараметрыНастройки,
АктуальнаяВерсияКонтрольнойСуммы(),
- Неопределено);
+ ЗаказНаОплату);
Если ЗначениеЗаполнено(РезультатОперации.КодОшибки) Тогда
Возврат РезультатОперации;
@@ -2153,7 +2289,8 @@
РезультатАктивации = АктивироватьЗаказ(
ДокументЗаказа,
НастройкаПодключения,
- Новый Соответствие);
+ Новый Соответствие,
+ ЗаказНаОплату);
ЗаполнитьЗначенияСвойств(РезультатОперации, РезультатАктивации);
@@ -2164,6 +2301,7 @@
ПараметрыОперации.Вставить("ДокументЗаказа", ДокументЗаказа);
ПараметрыОперации.Вставить("ПечатныеФормы", ДанныеВложений.ПечатныеФормы);
ПараметрыОперации.Вставить("ПрисоединенныеФайлы", ДанныеВложений.ПрисоединенныеФайлы);
+ ПараметрыОперации.Вставить("ЗаказНаОплату", ЗаказНаОплату);
РезультатОтправки = ОтправитьВложения(ПараметрыОперации);
@@ -2187,7 +2325,7 @@
РезультатОперации.URLЗаказа,
НастройкаПодключения,
РезультатОперации.СтатусЗаказа);
-
+
Возврат РезультатОперации;
КонецФункции
@@ -2230,6 +2368,7 @@
РезультатОперации = НовыйРезультатДанныеЗаказа();
РезультатОперации.Вставить("ОшибкиВалидацииЗаказа", Новый Массив);
+ РезультатОперации.Вставить("ЗаказНаОплату", Неопределено);
// Подготовка параметров настройки подключения.
ПараметрыНастройки = ПараметрыНастройки(НастройкаПодключения);
@@ -2246,12 +2385,23 @@
Возврат РезультатОперации;
КонецЕсли;
+ ЗаказНаОплату = СформироватьОписаниеЗаказаНаОплату(
+ РезультатОперации,
+ ДокументЗаказа,
+ ПараметрыНастройки);
+
+ Если ЗначениеЗаполнено(РезультатОперации.КодОшибки) Тогда
+ Возврат РезультатОперации;
+ КонецЕсли;
+
+ РезультатОперации.ЗаказНаОплату = ЗаказНаОплату;
+
ДанныеЗаказа = ДанныеЗаказаНаОплатуПоДокументу(
РезультатОперации,
ДокументЗаказа,
ПараметрыНастройки,
АктуальнаяВерсияКонтрольнойСуммы(),
- Неопределено);
+ ЗаказНаОплату);
Если ЗначениеЗаполнено(РезультатОперации.КодОшибки) Тогда
Возврат РезультатОперации;
@@ -2376,6 +2526,8 @@
КонецЕсли;
+ ПараметрыОперации.Вставить("ЗаказНаОплату", РезультатОбновления.ЗаказНаОплату);
+
РезультатОтправки = ОтправитьВложения(ПараметрыОперации);
Если ЗначениеЗаполнено(РезультатОтправки.КодОшибки) Тогда
@@ -2998,10 +3150,11 @@
ОписаниеЧисла = ОбщегоНазначения.ОписаниеТипаЧисло(15, 2, ДопустимыйЗнак.Неотрицательный);
Товары.Колонки.Добавить("ИдентификаторТовара", ОбщегоНазначения.ОписаниеТипаСтрока(50));
- Товары.Колонки.Добавить("Наименование", ОбщегоНазначения.ОписаниеТипаСтрока(200));
- Товары.Колонки.Добавить("СуммаСоСкидкой", ОписаниеЧисла);
- Товары.Колонки.Добавить("Скидка", ОписаниеЧисла);
- Товары.Колонки.Добавить("СуммаНДС", ОписаниеЧисла);
+ Товары.Колонки.Добавить("ИдентификаторСтроки", ОбщегоНазначения.ОписаниеТипаСтрока(2048));
+ Товары.Колонки.Добавить("Наименование", ОбщегоНазначения.ОписаниеТипаСтрока(200));
+ Товары.Колонки.Добавить("СуммаСоСкидкой", ОписаниеЧисла);
+ Товары.Колонки.Добавить("Скидка", ОписаниеЧисла);
+ Товары.Колонки.Добавить("СуммаНДС", ОписаниеЧисла);
Товары.Колонки.Добавить(
"Количество",
ОбщегоНазначения.ОписаниеТипаЧисло(15, 3, ДопустимыйЗнак.Неотрицательный));
@@ -3058,6 +3211,12 @@
КолонкаСуммаНДС.Идентификатор = "СуммаНДС";
КолонкаСуммаНДС.ПорядокОтображения = 5;
+ КолонкаИдентификаторСтроки = НоваяКолонкаТовары();
+ КолонкаИдентификаторСтроки.Представление = НСтр("ru = 'Идентификатор строки'");
+ КолонкаИдентификаторСтроки.Идентификатор = "ИдентификаторСтроки";
+ КолонкаИдентификаторСтроки.Видимость = Ложь;
+ КолонкаИдентификаторСтроки.ПорядокОтображения = 6;
+
ВизуализацияТоваров = Новый Массив;
ВизуализацияТоваров.Добавить(КолонкаИдентификаторТовара);
ВизуализацияТоваров.Добавить(КолонкаНаименование);
@@ -3065,6 +3224,7 @@
ВизуализацияТоваров.Добавить(КолонкаСуммаСоСкидкой);
ВизуализацияТоваров.Добавить(КолонкаСкидка);
ВизуализацияТоваров.Добавить(КолонкаСуммаНДС);
+ ВизуализацияТоваров.Добавить(КолонкаИдентификаторСтроки);
Возврат ВизуализацияТоваров;
@@ -3158,18 +3318,25 @@
// * ПоРеквизитам - см. НовыйПараметрыОплатыПоРеквизитам.
// * ИнтернетЭквайринг - Структура, Неопределено - Параметры оплат через Интернет-эквайринг,
// Неопределено, если подсистема не внедрена, сценарий не используется
-// или не выбрана настройка подключения.
+// или не выбрана настройка подключения:
// ** НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКИнтернетЭквайрингу -
// настройка подключения к интернет-эквайрингу, выбранная для онлайн-заказов.
// ** ШаблоныНазначения - см. НастройкиПлатежныхСистемСлужебный.НовыйШаблоныНазначений.
// ** НазначениеПлатежа - Строка - Назначение платежа.
// * ОзонПэй - Структура, Неопределено - Параметры оплат через Озон Пэй,
// Неопределено, если подсистема не внедрена, сценарий не используется
-// или не выбрана настройка подключения
+// или не выбрана настройка подключения:
// ** НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам -
// настройка подключения к Озон Пэй, выбранная для онлайн-заказов.
// ** ШаблоныНазначения - см. НастройкиПлатежныхСистемСлужебный.НовыйШаблоныНазначений.
// ** НазначениеПлатежа - Строка - Назначение платежа.
+// * ЯндексПэй - Структура, Неопределено - Параметры оплат через Яндекс Пэй,
+// Неопределено, если подсистема не внедрена, сценарий не используется
+// или не выбрана настройка подключения:
+// ** НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам -
+// настройка подключения к Яндекс Пэй, выбранная для онлайн-заказов.
+// ** ШаблоныНазначения - см. НастройкиПлатежныхСистемСлужебный.НовыйШаблоныНазначений.
+// ** НазначениеПлатежа - Строка - Комментарий к платежу, доступный для просмотра в личном кабинете мерчанта.
//
Функция ПараметрыОплатЗаказа(ДокументЗаказа, НастройкиОплат)
@@ -3178,6 +3345,7 @@
ПараметрыОплат.Вставить("ПоРеквизитам", НовыйПараметрыОплатыПоРеквизитам());
ПараметрыОплат.Вставить("ИнтернетЭквайринг", Неопределено);
ПараметрыОплат.Вставить("ОзонПэй", Неопределено);
+ ПараметрыОплат.Вставить("ЯндексПэй", Неопределено);
ОнлайнЗаказыСобытия.ПриФормированииПараметровОплат(ДокументЗаказа, ПараметрыОплат, НастройкиОплат);
@@ -3288,6 +3456,10 @@
ЗаказНаОплату.ПараметрыОплат.ИнтернетЭквайринг.Удалить("ШаблоныНазначения");
КонецЕсли;
+ Если ЗаказНаОплату.ПараметрыОплат.ЯндексПэй <> Неопределено Тогда
+ ЗаказНаОплату.ПараметрыОплат.ЯндексПэй.Удалить("ШаблоныНазначения");
+ КонецЕсли;
+
// Валидация данных заказа на оплату и настроек.
ПроверитьЗаказНаОплату(
ЗаказНаОплату,
@@ -3445,6 +3617,24 @@
Строка(РезультатОперации.ИнформацияОбОшибке),
Истина);
+ Иначе
+
+ СрокЖизниЗаказа = УниверсальноеВремя(ЗаказНаОплату.ОбщиеПараметрыЗаказа.СрокЖизни, ЧасовойПоясСеанса());
+ ТекущееВремяСеанса = УниверсальноеВремя(ТекущаяДатаСеанса(), ЧасовойПоясСеанса());
+
+ Если (СрокЖизниЗаказа - ТекущееВремяСеанса) / 60 > 43200 Тогда
+
+ РезультатОперации.КодОшибки = КодОшибкиНеверныйФорматЗапроса();
+ РезультатОперации.СообщениеОбОшибке =
+ НСтр("ru = 'Превышен максимальный срок жизни онлайн-заказа (30 дней).'");
+ РезультатОперации.ИнформацияОбОшибке = НСтр("ru = 'При проверке онлайн-заказа возникли ошибки.'");
+
+ ЗаписатьИнформациюВЖурналРегистрации(
+ Строка(РезультатОперации.ИнформацияОбОшибке),
+ Истина);
+
+ КонецЕсли;
+
КонецЕсли;
Если ЗаказНаОплату.ОбщиеПараметрыЗаказа.ТипКонтрагента <> "ФизическоеЛицо"
@@ -3804,6 +3994,8 @@
ЗаписьДанныхСообщения.ЗаписатьНачалоМассива();
+ ПараметрыЯндексПэй = НовыйПараметрыЯндексПэй(НастройкиОплаты);
+
Для Каждого Товар Из ДанныеЗаказа.Товары Цикл
ЗаписьДанныхСообщения.ЗаписатьНачалоОбъекта();
@@ -3828,6 +4020,8 @@
ЗаписьДанныхСообщения.ЗаписатьКонецОбъекта();
+ ПроверитьСтрокуТоваровДляЯндексПэй(ПараметрыЯндексПэй, Товар);
+
КонецЦикла;
ЗаписьДанныхСообщения.ЗаписатьКонецМассива();
@@ -3836,27 +4030,35 @@
Если НастройкиОплаты.СБП <> Неопределено Тогда
ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("sbpPaymentParams");
-
ЗаписьДанныхСообщения.ЗаписатьНачалоОбъекта();
- ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("paymentPurpose");
- ЗаписьДанныхСообщения.ЗаписатьЗначение(НастройкиОплаты.СБП.НазначениеПлатежа);
-
- Если НастройкиОплаты.СБП.ВариантСБП = ИдентификаторВариантаСБПB2B() Тогда
+ Для Каждого ВариантСБП Из НастройкиОплаты.СБП Цикл
- ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("b2bAccount");
- ЗаписьДанныхСообщения.ЗаписатьЗначение(НастройкиОплаты.СБП.РасчетныйСчет);
+ Если ВариантСБП.Ключ = ИдентификаторВариантаСБПC2B() Тогда
+
+ ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("c2bPaymentPurpose");
+ ЗаписьДанныхСообщения.ЗаписатьЗначение(ВариантСБП.Значение.НазначениеПлатежа);
+
+ ИначеЕсли ВариантСБП.Ключ = ИдентификаторВариантаСБПB2B() Тогда
+
+ ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("b2bPaymentPurpose");
+ ЗаписьДанныхСообщения.ЗаписатьЗначение(ВариантСБП.Значение.НазначениеПлатежа);
+
+ ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("b2bAccount");
+ ЗаписьДанныхСообщения.ЗаписатьЗначение(ВариантСБП.Значение.РасчетныйСчет);
+
+ ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("b2bTakeTax");
+ ЗаписьДанныхСообщения.ЗаписатьЗначение(ВариантСБП.Значение.ОблагаетсяНДС);
+
+ ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("b2bTotalTaxAmount");
+ ЗаписьДанныхСообщения.ЗаписатьЗначение(ВариантСБП.Значение.СуммаНДС);
+
+ ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("b2bUip");
+ ЗаписьДанныхСообщения.ЗаписатьЗначение(ВариантСБП.Значение.ИдентификаторПлатежа);
+
+ КонецЕсли;
- ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("b2bTakeTax");
- ЗаписьДанныхСообщения.ЗаписатьЗначение(НастройкиОплаты.СБП.ОблагаетсяНДС);
-
- ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("b2bTotalTaxAmount");
- ЗаписьДанныхСообщения.ЗаписатьЗначение(НастройкиОплаты.СБП.СуммаНДС);
-
- ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("b2bUip");
- ЗаписьДанныхСообщения.ЗаписатьЗначение(НастройкиОплаты.СБП.ИдентификаторПлатежа);
-
- КонецЕсли;
+ КонецЦикла;
ЗаписьДанныхСообщения.ЗаписатьКонецОбъекта();
@@ -3889,6 +4091,39 @@
КонецЕсли;
+ // Параметры оплаты через Яндекс Пэй
+ Если НеобходимоОтправитьЯндекс(ПараметрыЯндексПэй) Тогда
+
+ ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("yandexPayParams");
+
+ ЗаписьДанныхСообщения.ЗаписатьНачалоОбъекта();
+
+ ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("comment");
+ ЗаписьДанныхСообщения.ЗаписатьЗначение(НастройкиОплаты.ЯндексПэй.НазначениеПлатежа);
+
+ // Идентификаторы номенклатуры
+ ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("cartItems");
+
+ ЗаписьДанныхСообщения.ЗаписатьНачалоМассива();
+
+ Для Каждого Идентификатор Из ПараметрыЯндексПэй.Идентификаторы Цикл
+
+ ЗаписьДанныхСообщения.ЗаписатьНачалоОбъекта();
+
+ ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("productId");
+ ЗаписьДанныхСообщения.ЗаписатьЗначение(Идентификатор);
+
+ ЗаписьДанныхСообщения.ЗаписатьКонецОбъекта();
+
+ КонецЦикла;
+
+ ЗаписьДанныхСообщения.ЗаписатьКонецМассива();
+ // Конец Идентификаторы номенклатуры
+
+ ЗаписьДанныхСообщения.ЗаписатьКонецОбъекта();
+
+ КонецЕсли;
+
// Параметры фискализации
Если ЗначениеЗаполнено(ДанныеЗаказа.ПараметрыФискализации) Тогда
ЗаписьДанныхСообщения.ЗаписатьИмяСвойства("fiscalizationRequest");
@@ -3996,6 +4231,8 @@
// Неопределено в случае если настройка для оплат через Интернет-эквайринг не выбрана.
// * ОзонПэй - Структура, Неопределено - Параметры оплаты через Озон Пэй,
// Неопределено в случае если настройка для оплат через Озон Пэй не выбрана.
+// * ЯндексПэй - Структура, Неопределено - Параметры оплаты через Яндекс Пэй,
+// Неопределено в случае если настройка для оплат через Яндекс Пэй не выбрана.
//
Функция НастройкиОплаты(
НастройкиОплатПодключения,
@@ -4008,6 +4245,7 @@
НастройкиОплатСервиса.Вставить("ПоРеквизитам", Неопределено);
НастройкиОплатСервиса.Вставить("ИнтернетЭквайринг", Неопределено);
НастройкиОплатСервиса.Вставить("ОзонПэй", Неопределено);
+ НастройкиОплатСервиса.Вставить("ЯндексПэй", Неопределено);
НастройкиОплатСервиса.ПоРеквизитам = ПараметрыОплатЗаказа.ПоРеквизитам;
@@ -4126,8 +4364,8 @@
// ** ПараметрыЗаказа - Структура - дополнительные данные по заказу:
// *** URLЗаказа - Строка - URL онлайн-заказа;
// *** СпособОплаты - Строка - Идентификатор способа оплаты, пустая если СтатусЗаказа <> "Выполнен".
-// Может принимать следующие значения: "СБПc2b", "СБПb2b", "Наличные", "ПоРеквизитам", "Эквайринг",
-// "ОзонПэй", "Прочее".
+// Может принимать следующие значения: "СБПc2b", "СБПb2b", "Наличные", "ПоРеквизитам",
+// "Эквайринг", "ОзонПэй", "ЯндексПэй", "Прочее".
// *** СуммаОплаты - Число - Сумма оплаты онлайн-заказа, пустая если СтатусЗаказа <> "Выполнен".
//
Функция ДанныеЗаказов(ДокументыЗаказов) Экспорт
@@ -4228,7 +4466,7 @@
//
// Возвращаемое значение:
// Структура - результат получения данных онлайн-заказа:
-// * ДанныеЗаказов - Соответствие - Содержит публичные данные онлайн-заказов:
+// * ДанныеЗаказов - Соответствие Из КлючИЗначение - Содержит публичные данные онлайн-заказов:
// ** Ключ - Строка - Идентификатор онлайн-заказа
// ** Значение - Структура - Содержит публичные данные онлайн-заказа
// *** URL - Строка - URL документа онлайн-заказа в сервисе Share, пустая строка в случае если документ не создан;
@@ -4243,6 +4481,15 @@
КонецФункции
+// Определяет строковый идентификатор для указанного способа оплаты онлайн-заказа.
+//
+// Параметры:
+// СпособОплаты - ПеречислениеСсылка.СпособыОплатыОнлайнЗаказов - Способ оплаты, для которого
+// требуется получить идентификатор
+//
+// Возвращаемое значение:
+// Строка - Строковый идентификатор способа оплаты
+//
Функция ИдентификаторПоСпособуОплаты(СпособОплаты)
Если СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.СБПc2b Тогда
@@ -4257,6 +4504,8 @@
Возврат "Эквайринг";
ИначеЕсли СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй Тогда
Возврат "ОзонПэй";
+ ИначеЕсли СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй Тогда
+ Возврат "ЯндексПэй";
Иначе
Возврат "Прочее";
КонецЕсли
@@ -4285,7 +4534,7 @@
//
// Параметры:
// ИдентификаторСпособаОплаты - Строка - строковое представление, по которому нужно получить ссылку. Допустимые
-// значения: "СБПc2b", "СБПb2b", "ИнтернетЭквайринг", "ОзонПэй".
+// значения: "СБПc2b", "СБПb2b", "ИнтернетЭквайринг", "Эквайринг", "ОзонПэй", "ЯндексПэй".
//
// Возвращаемое значение:
// ПеречислениеСсылка.СпособыОплатыОнлайнЗаказов - найденная ссылка.
@@ -4298,8 +4547,12 @@
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.СБПb2b;
ИначеЕсли ИдентификаторСпособаОплаты = "ИнтернетЭквайринг" Тогда
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.Эквайринг;
+ ИначеЕсли ИдентификаторСпособаОплаты = "Эквайринг" Тогда
+ Возврат Перечисления.СпособыОплатыОнлайнЗаказов.Эквайринг;
ИначеЕсли ИдентификаторСпособаОплаты = "ОзонПэй" Тогда
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй;
+ ИначеЕсли ИдентификаторСпособаОплаты = "ЯндексПэй" Тогда
+ Возврат Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй;
КонецЕсли;
ВызватьИсключение (НСтр("ru = 'Передан неизвестный идентификатор способа оплаты.'"));
@@ -4508,7 +4761,8 @@
РезультатАктивации = АктивироватьЗаказ(
ПараметрыОперации.ДокументЗаказа,
ПараметрыСсылки.НастройкаПодключения,
- ДанныеВложений);
+ ДанныеВложений,
+ ПараметрыОперации.ЗаказНаОплату);
ЗаполнитьЗначенияСвойств(РезультатОперации, РезультатАктивации);
Возврат РезультатОперации;
@@ -5329,7 +5583,8 @@
Возврат АктивироватьЗаказ(
ДокументЗаказа,
НастройкаПодключения,
- ДанныеВложений);
+ ДанныеВложений,
+ Неопределено);
КонецФункции
@@ -5341,6 +5596,7 @@
// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКОнлайнЗаказам -
// настройка выполнения операции.
// ДанныеВложений - см. ПодготовитьДанныеВложений.
+// ЗаказНаОплату - Неопределено, Структура - содержит описание онлайн-заказа.
//
// Возвращаемое значение:
// Структура - результат создания ссылки онлайн-заказа:
@@ -5371,7 +5627,8 @@
Функция АктивироватьЗаказ(
ДокументЗаказа,
НастройкаПодключения,
- ДанныеВложений) Экспорт
+ ДанныеВложений,
+ ЗаказНаОплату) Экспорт
СлужебнаяОнлайнЗаказыДоступны();
@@ -5417,13 +5674,17 @@
Возврат РезультатОперации;
КонецЕсли;
- ЗаказНаОплату = СформироватьОписаниеЗаказаНаОплату(
- РезультатОперации,
- ДокументЗаказа,
- ПараметрыНастройки);
+ Если ЗаказНаОплату = Неопределено Тогда
- Если ЗначениеЗаполнено(РезультатОперации.КодОшибки) Тогда
- Возврат РезультатОперации;
+ ЗаказНаОплату = СформироватьОписаниеЗаказаНаОплату(
+ РезультатОперации,
+ ДокументЗаказа,
+ ПараметрыНастройки);
+
+ Если ЗначениеЗаполнено(РезультатОперации.КодОшибки) Тогда
+ Возврат РезультатОперации;
+ КонецЕсли;
+
КонецЕсли;
ПараметрыОперацииURLShare = ПараметрыОперацииURLShare(
@@ -5806,6 +6067,8 @@
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.ПоРеквизитам;
ИначеЕсли ИдентификаторСпособаОплаты = "ОзонПэй" Тогда
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй;
+ ИначеЕсли ИдентификаторСпособаОплаты = "ЯндексПэй" Тогда
+ Возврат Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй;
ИначеЕсли ИдентификаторСпособаОплаты = "Прочее" Тогда
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.Прочее;
Иначе
@@ -6515,6 +6778,142 @@
#КонецОбласти
+#Область ЯндексПэй
+
+// Формирует параметры необходимые для контроля списка товаров на ограничения, накладываемые Яндекс Пэй
+//
+// Параметры:
+// НастройкиОплаты - Структура - настройки оплат онлайн-заказа.
+//
+// Возвращаемое значение:
+// Структура - Новый параметры яндекс пэй:
+// * ЕстьНастройкаЯндексПэй - Булево - признак того, что в настройке оплаты включено
+// использование оплаты через Яндекс Пэй.
+// * ЗаполненыИдентификаторыЯндекс - Булево - Истина, если во всех строках заполнены
+// идентификаторы для Яндекс Пэй
+// * Идентификаторы - Массив Из Строка - идентификаторы номенклатуры, которые
+// необходимо использовать при формировании платежной ссылки через Яндекс Пэй.
+// * Ошибки - Массив Из Строка - ошибки при проверке списка товаров.
+// * МодульЯндексПэйСлужебный - Неопределено, ОбщийМодуль - общий модуль, если ЕстьНастройкаЯндексПэй.
+// * ОбщаяСуммаЗаказа - Число - общая сумма заказа для проверки
+//
+Функция НовыйПараметрыЯндексПэй(НастройкиОплаты)
+
+ Результат = Новый Структура;
+
+ Результат.Вставить(
+ "ЕстьНастройкаЯндексПэй",
+ НастройкиОплаты.ЯндексПэй <> Неопределено);
+ Результат.Вставить("ЗаполненыИдентификаторыЯндекс", Истина);
+ Результат.Вставить("Идентификаторы", Новый Массив);
+ Результат.Вставить("Ошибки", Новый Массив);
+ Результат.Вставить("МодульЯндексПэйСлужебный", Неопределено);
+ Результат.Вставить("ОбщаяСуммаЗаказа", 0);
+
+ Если Результат.ЕстьНастройкаЯндексПэй Тогда
+ Результат.МодульЯндексПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСлужебный");
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Выполняет проверку строки товаров на соответствие требованиям Яндекс Пэй.
+//
+// Параметры:
+// ПараметрыЯндексПэй - см. НовыйПараметрыЯндексПэй.
+// Товар - СтрокаТаблицыЗначений - проверяемая строка.
+//
+Процедура ПроверитьСтрокуТоваровДляЯндексПэй(ПараметрыЯндексПэй, Товар)
+
+ Если Не ПараметрыЯндексПэй.ЕстьНастройкаЯндексПэй Тогда
+ // Если оплата через Яндекс Пэй не включена в настройке, то нет необходимости
+ // выполнять какие-либо проверки.
+ Возврат;
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(Товар.ИдентификаторСтроки) Тогда
+ ОписаниеОшибки = ПараметрыЯндексПэй.МодульЯндексПэйСлужебный.ОшибкаСтрокиКорзиныОнлайнЗаказы(Товар);
+ Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
+ ПараметрыЯндексПэй.Ошибки.Добавить(
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = '%1: %2'"),
+ Товар.ИдентификаторСтроки,
+ ОписаниеОшибки));
+ Иначе
+ ПараметрыЯндексПэй.Идентификаторы.Добавить(Товар.ИдентификаторСтроки);
+ КонецЕсли;
+ Иначе
+ ПараметрыЯндексПэй.ЗаполненыИдентификаторыЯндекс = Ложь;
+ КонецЕсли;
+
+ ПараметрыЯндексПэй.ОбщаяСуммаЗаказа = ПараметрыЯндексПэй.ОбщаяСуммаЗаказа + Товар.СуммаСоСкидкой;
+
+КонецПроцедуры
+
+// Определяет, нужно ли выполнять отправку параметров, необходимых для оплаты через Яндекс Пэй.
+// Проверяется включение способа оплаты в настройке и правильность заполнения товаров.
+// Если все условия выполнены, то возвращается Истина.
+// Если использование Яндекс Пэй не включено, то просто возвращается Ложь.
+// Если использование Яндекс Пэй включено, но есть ошибки проверки введенных данных,
+// то дополнительно в журнал регистрации заносится описание ошибок.
+//
+// Параметры:
+// ПараметрыЯндексПэй - см. НовыйПараметрыЯндексПэй.
+//
+// Возвращаемое значение:
+// Булево - Истина, если требуется отправить параметры оплаты через Яндекс Пэй.
+//
+Функция НеобходимоОтправитьЯндекс(ПараметрыЯндексПэй)
+
+ Если Не ПараметрыЯндексПэй.ЕстьНастройкаЯндексПэй Тогда
+ // Если оплата через Яндекс Пэй не включена в настройке, то нет необходимости
+ // дальнейшей проверки и занесения информации в журнал.
+ Возврат Ложь;
+ КонецЕсли;
+
+ Ошибки = Новый Массив;
+ Если Не ПараметрыЯндексПэй.ЗаполненыИдентификаторыЯндекс
+ Или ПараметрыЯндексПэй.Идентификаторы.Количество() = 0 Тогда
+ Ошибки.Добавить(
+ НСтр("ru = 'Заполнены не все идентификаторы номенклатуры для Яндекс Пэй'"));
+ КонецЕсли;
+
+ ОшибкаСуммы = ПараметрыЯндексПэй.МодульЯндексПэйСлужебный.ОшибкаСуммаКорзиныВнешний(
+ ПараметрыЯндексПэй.ОбщаяСуммаЗаказа);
+ Если ЗначениеЗаполнено(ОшибкаСуммы) Тогда
+ Ошибки.Добавить(ОшибкаСуммы);
+ КонецЕсли;
+
+ Если ПараметрыЯндексПэй.Ошибки.Количество() > 0 Тогда
+ Ошибки.Добавить(
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Строки списка товаров с ошибками:
+ |%1'"),
+ СтрСоединить(ПараметрыЯндексПэй.Ошибки, Символы.ПС)));
+ КонецЕсли;
+
+ Если Ошибки.Количество() > 0 Тогда
+
+ ТекстДляЖурнала = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'В списке товаров есть ошибки, не позволяющие использовать оплату через Яндекс Пэй:'"),
+ СтрСоединить(Ошибки, Символы.ПС));
+
+ ЗаписатьИнформациюВЖурналРегистрации(
+ ТекстДляЖурнала,
+ Истина);
+
+ Возврат Ложь;
+
+ КонецЕсли;
+
+ // Нет ошибок.
+ Возврат Истина;
+
+КонецФункции
+
+#КонецОбласти
+
#Область ПрочиеСлужебныеПроцедурыФункции
// Возвращает имя события для журнала регистрации, которое используется
@@ -6602,6 +7001,8 @@
МодульНастройкиПлатежныхСистемКлиентСервер = ОбщегоНазначения.ОбщийМодуль("НастройкиПлатежныхСистемКлиентСервер");
Если ИдентификаторПлатежнойСистемы = МодульНастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй() Тогда
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй;
+ ИначеЕсли ИдентификаторПлатежнойСистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй() Тогда
+ Возврат Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй;
КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -6625,6 +7026,8 @@
МодульНастройкиПлатежныхСистемКлиентСервер = ОбщегоНазначения.ОбщийМодуль("НастройкиПлатежныхСистемКлиентСервер");
Если ИдентификаторПлатежнойСистемы = МодульНастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй() Тогда
Возврат Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй;
+ ИначеЕсли ИдентификаторПлатежнойСистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй() Тогда
+ Возврат Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй;
КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -6639,91 +7042,9 @@
#Область ОбновлениеИнформационнойБазы
-// Заполняет новые реквизиты справочника "НастройкиПодключенияКОнлайнЗаказам"
-// при переходе на версию 2.8.4.
-//
-// Параметры:
-// Параметры - Структура - параметры обновления.
-//
-Процедура ОбновитьПризнакиИспользованияНастроекОплатФискализации(Параметры) Экспорт
-
- Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
- Возврат;
- КонецЕсли;
-
- НачатьТранзакцию();
-
- Попытка
-
- Блокировка = Новый БлокировкаДанных;
- Блокировка.Добавить("Справочник.НастройкиПодключенияКОнлайнЗаказам");
- Блокировка.Заблокировать();
-
- ТекстЗапроса = Новый Массив;
-
- ТекстЗапроса.Добавить(
- "ВЫБРАТЬ РАЗЛИЧНЫЕ
- | НастройкиПодключенияКОнлайнЗаказамНастройкиОплаты.Ссылка КАК Ссылка
- |ПОМЕСТИТЬ ВТ_НастройкиОнлайнЗаказов
- |ИЗ
- | Справочник.НастройкиПодключенияКОнлайнЗаказам.НастройкиОплаты КАК НастройкиПодключенияКОнлайнЗаказамНастройкиОплаты
- |ГДЕ
- | НЕ НастройкиПодключенияКОнлайнЗаказамНастройкиОплаты.Используется");
-
- Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОблачныеКассы") Тогда
- ТекстЗапроса.Добавить(
- "
- |ОБЪЕДИНИТЬ ВСЕ
- |
- |ВЫБРАТЬ
- | НастройкиПодключенияКОнлайнЗаказам.Ссылка
- |ИЗ
- | Справочник.НастройкиПодключенияКОнлайнЗаказам КАК НастройкиПодключенияКОнлайнЗаказам
- |ГДЕ
- | НЕ НастройкиПодключенияКОнлайнЗаказам.НастройкаПодключенияКОблачнойКассе.Ссылка ЕСТЬ NULL");
- КонецЕсли;
-
- ТекстЗапроса.Добавить(
- ";
- |
- |////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ РАЗЛИЧНЫЕ
- | ВТ_НастройкиОнлайнЗаказов.Ссылка КАК Ссылка
- |ИЗ
- | ВТ_НастройкиОнлайнЗаказов КАК ВТ_НастройкиОнлайнЗаказов");
-
-
- Запрос = Новый Запрос;
- Запрос.Текст = СтрСоединить(ТекстЗапроса, Символы.ПС);
-
- РезультатЗапроса = Запрос.Выполнить();
- ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
-
- Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
-
- НастройкаОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
- НастройкаОбъект.Заблокировать();
-
- Для Каждого НастройкаОплаты Из НастройкаОбъект.НастройкиОплаты Цикл
- НастройкаОплаты.Используется = Истина;
- КонецЦикла;
-
- ОбновлениеИнформационнойБазы.ЗаписатьДанные(
- НастройкаОбъект,
- Ложь,
- Истина);
-
- КонецЦикла;
-
- ЗафиксироватьТранзакцию();
-
- Исключение
- ОтменитьТранзакцию();
- ВызватьИсключение ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- КонецПопытки;
-
-КонецПроцедуры
-
#КонецОбласти
#КонецОбласти
+
+
+
diff --git a/src/CommonModules/ОнлайнЗаказыСобытия/Ext/Module.bsl b/src/CommonModules/ОнлайнЗаказыСобытия/Ext/Module.bsl
index bfd388f43..530e7b428 100644
--- a/src/CommonModules/ОнлайнЗаказыСобытия/Ext/Module.bsl
+++ b/src/CommonModules/ОнлайнЗаказыСобытия/Ext/Module.bsl
@@ -44,6 +44,11 @@
Возврат;
КонецЕсли;
+ Если СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй
+ И Не ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+ Возврат;
+ КонецЕсли;
+
Результат = ОнлайнЗаказыСлужебный.НовыйРезультатОперации();
Результат.Вставить("Ошибка", Ложь);
Результат.Вставить("Токен", Неопределено);
@@ -101,6 +106,20 @@
КонецФункции
+// Добавляет в список процедуры-обработчики обновления данных ИБ
+// для всех поддерживаемых версий библиотеки или конфигурации.
+// Вызывается перед началом обновления данных ИБ для построения плана обновления.
+//
+// Параметры:
+// Обработчики - ТаблицаЗначений - описание полей, см. в процедуре
+// ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления().
+//
+Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
+
+ ОнлайнЗаказыСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики);
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -119,6 +138,8 @@
// Неопределено если подсистема ИнтернетЭквайринг не используется.
// * ОзонПэй - Структура, Неопределено - Параметры оплат через Озон Пэй,
// Неопределено если подсистема ОзонПэй не используется.
+// * ЯндексПэй - Структура, Неопределено - Параметры оплат через Яндекс Пэй,
+// Неопределено если подсистема ОзонПэй не используется.
// НастройкиОплат - Соответствие из КлючИЗначение - Содержит данные используемых настроек в разрезе способов оплат:
// * Ключ - ПеречислениеСсылка.СпособыОплатыОнлайнЗаказов - способ оплаты
// * Значение - Произвольный - Используемая настройка подключения, для данного способа оплаты.
@@ -179,6 +200,16 @@
ПараметрыОплат.ОзонПэй.Вставить("НастройкаПодключения", НастройкаОплаты.Значение);
+ ИначеЕсли НастройкаОплаты.Ключ = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ МодульПлатежныеСистемыСлужебный = ОбщегоНазначения.ОбщийМодуль("ПлатежныеСистемыСлужебный");
+ ПараметрыОплат.ЯндексПэй = МодульПлатежныеСистемыСлужебный.ПараметрыОплаты(
+ ДокументЗаказа,
+ НастройкаОплаты.Значение);
+
+ ПараметрыОплат.ЯндексПэй.Вставить("НастройкаПодключения", НастройкаОплаты.Значение);
+
КонецЕсли;
КонецЦикла;
@@ -201,6 +232,8 @@
// Неопределено в случае если настройка для оплат через Интернет-эквайринг не выбрана.
// * ОзонПэй - Структура, Неопределено - Параметры оплаты через Озон Пэй,
// Неопределено в случае если настройка для оплат через Озон Пэй не выбрана.
+// * ЯндексПэй - Структура, Неопределено - Параметры оплаты через Яндекс Пэй,
+// Неопределено в случае если настройка для оплат через Яндекс Пэй не выбрана.
//
Процедура ПриЗаполненииНастроекОплатыФизическихЛиц(
НастройкиОплатПодключения,
@@ -213,14 +246,19 @@
И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.СистемаБыстрыхПлатежей.ПереводыСБПc2b") Тогда
НастройкиОплатыСБПc2b = Новый Структура;
- НастройкиОплатыСБПc2b.Вставить("ВариантСБП", "C2B");
НастройкиОплатыСБПc2b.Вставить("НазначениеПлатежа", "");
Если ПараметрыОплатЗаказа.СБП.c2b <> Неопределено Тогда
НастройкиОплатыСБПc2b.НазначениеПлатежа = ПараметрыОплатЗаказа.СБП.c2b.НазначениеПлатежа;
КонецЕсли;
- НастройкиОплатСервиса.СБП = НастройкиОплатыСБПc2b;
+ Если НастройкиОплатСервиса.СБП = Неопределено Тогда
+ НастройкиОплатСервиса.СБП = Новый Структура;
+ КонецЕсли;
+
+ НастройкиОплатСервиса.СБП.Вставить(
+ ОнлайнЗаказыСлужебный.ИдентификаторВариантаСБПC2B(),
+ НастройкиОплатыСБПc2b);
ИначеЕсли НастройкаОплаты.Ключ = Перечисления.СпособыОплатыОнлайнЗаказов.Эквайринг
И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ИнтернетЭквайринг") Тогда
@@ -241,6 +279,18 @@
НастройкиОплатСервиса.ОзонПэй = НастройкиОплаты;
+ ИначеЕсли НастройкаОплаты.Ключ = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ НастройкиОплаты = Новый Структура;
+ НастройкиОплаты.Вставить("НазначениеПлатежа", "");
+
+ Если ПараметрыОплатЗаказа.ЯндексПэй <> Неопределено Тогда
+ НастройкиОплаты.НазначениеПлатежа = ПараметрыОплатЗаказа.ЯндексПэй.НазначениеПлатежа;
+ КонецЕсли;
+
+ НастройкиОплатСервиса.ЯндексПэй = НастройкиОплаты;
+
КонецЕсли;
КонецЦикла;
@@ -262,6 +312,8 @@
// Неопределено в случае если настройка для оплат через Интернет-эквайринг не выбрана.
// * ОзонПэй - Структура, Неопределено - Параметры оплаты через Озон Пэй,
// Неопределено в случае если настройка для оплат через Озон Пэй не выбрана.
+// * ЯндексПэй - Структура, Неопределено - Параметры оплаты через Яндекс Пэй,
+// Неопределено в случае если настройка для оплат через Яндекс Пэй не выбрана.
//
Процедура ПриЗаполненииНастроекОплатыЮридическихЛиц(
НастройкиОплатПодключения,
@@ -273,7 +325,6 @@
И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.СистемаБыстрыхПлатежей.ПереводыСБПb2b") Тогда
НастройкиОплатыСБПb2b = Новый Структура;
- НастройкиОплатыСБПb2b.Вставить("ВариантСБП", "B2B");
НастройкиОплатыСБПb2b.Вставить("ОблагаетсяНДС", Ложь);
НастройкиОплатыСБПb2b.Вставить("СуммаНДС", 0);
НастройкиОплатыСБПb2b.Вставить("РасчетныйСчет", "");
@@ -284,7 +335,13 @@
ЗаполнитьЗначенияСвойств(НастройкиОплатыСБПb2b, ПараметрыОплатЗаказа.СБП.b2b);
КонецЕсли;
- НастройкиОплатСервиса.СБП = НастройкиОплатыСБПb2b;
+ Если НастройкиОплатСервиса.СБП = Неопределено Тогда
+ НастройкиОплатСервиса.СБП = Новый Структура;
+ КонецЕсли;
+
+ НастройкиОплатСервиса.СБП.Вставить(
+ ОнлайнЗаказыСлужебный.ИдентификаторВариантаСБПB2B(),
+ НастройкиОплатыСБПb2b);
КонецЕсли;
КонецЦикла;
@@ -321,9 +378,13 @@
// ** ИдентификаторОплаты - Строка - идентификатор оплаты;
// ** ИдентификаторОперации - Строка - идентификатор оплаты в системе банка;
// ** ДатаОперации - Дата - фактическая дата оплаты в UTC;
-// ** НазначениеПлатежа - Строка - назначение платежа;
// ** СпособОплаты - Строка - способ оплаты. Доступные значения определяются методами
// общего модуля ПлатежныеСистемыКлиентСервер.
+// * ОплатаЯндексПэй - Структура, Неопределено - Содержит данные операции оплаты, в том случае когда
+// значение Свойства СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй:
+// ** ИдентификаторОплаты - Строка - идентификатор операции оплаты;
+// ** ИдентификаторОперации - Строка - идентификатор текущей операции;
+// ** ДатаОперации - Дата - фактическая дата оплаты в UTC.
// ПараметрыОплаты - Соответствие Из КлючИЗначение - Содержит параметры оплат в разрезе ее способов
// ПараметрыНастройкиОплаты - Структура - Содержит параметры настройки вида оплаты
// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКОнлайнЗаказам - Настройка подключения,
@@ -379,6 +440,15 @@
ПараметрыОплаты);
КонецЕсли;
+ Если ДанныеЗаказа.СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+ МодульЯндексПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСлужебный");
+ МодульЯндексПэйСлужебный.ЗаполнитьПараметрыОплаты(
+ ДанныеЗаказа,
+ НастройкаОплаты,
+ ПараметрыОплаты);
+ КонецЕсли;
+
КонецПроцедуры
// Выполняет запись данных оплат заказа в соответствующие подсистемы.
@@ -453,15 +523,29 @@
ПараметрыОзон = ПараметрыОплаты.Получить("ОзонПэй");
- МодульОзонПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ОзонПэйСлужебный");
+ МодульПлатежныеСистемыСлужебный = ОбщегоНазначения.ОбщийМодуль("ПлатежныеСистемыСлужебный");
УстановитьПривилегированныйРежим(Истина);
- МодульОзонПэйСлужебный.ЗаписатьДанныеОплаты(
+ МодульПлатежныеСистемыСлужебный.ЗаписатьДанныеОплаты(
ДокументЗаказа,
ПараметрыОзон.РезультатОбработки.ПараметрыОперации,
ПараметрыОзон.НастройкаПодключения);
УстановитьПривилегированныйРежим(Ложь);
+ ИначеЕсли СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ ПараметрыЯндекс = ПараметрыОплаты.Получить("ЯндексПэй");
+
+ МодульПлатежныеСистемыСлужебный = ОбщегоНазначения.ОбщийМодуль("ПлатежныеСистемыСлужебный");
+
+ УстановитьПривилегированныйРежим(Истина);
+ МодульПлатежныеСистемыСлужебный.ЗаписатьДанныеОплаты(
+ ДокументЗаказа,
+ ПараметрыЯндекс.РезультатОбработки.ПараметрыОперации,
+ ПараметрыЯндекс.НастройкаПодключения);
+ УстановитьПривилегированныйРежим(Ложь);
+
КонецЕсли;
КонецПроцедуры
@@ -511,6 +595,14 @@
ДанныеОпераций = МодульОзонПэйСлужебный.ДанныеОпераций(ОплаченныеЗаказы);
УстановитьПривилегированныйРежим(Ложь);
+ ИначеЕсли СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+ МодульЯндексПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСлужебный");
+
+ УстановитьПривилегированныйРежим(Истина);
+ ДанныеОпераций = МодульЯндексПэйСлужебный.ДанныеОпераций(ОплаченныеЗаказы);
+ УстановитьПривилегированныйРежим(Ложь);
+
КонецЕсли;
КонецПроцедуры
@@ -562,7 +654,8 @@
ЗаполнитьЗначенияСвойств(РезультатОперации, РезультатПолучения);
ИначеЕсли ВидТокена = ОнлайнЗаказыСлужебный.ИдентификаторВидаТокенаПриемОплат()
- И СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй Тогда
+ И (СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй
+ Или СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй) Тогда
Если Не ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.БазоваяФункциональностьПлатежныхСистем") Тогда
Возврат;
@@ -573,7 +666,7 @@
НастройкаПодключения,
ИдентификаторСервиса());
ЗаполнитьЗначенияСвойств(РезультатОперации, РезультатПолучения);
-
+
КонецЕсли;
Если Не ПустаяСтрока(РезультатОперации.СообщениеОбОшибке) Тогда
@@ -640,7 +733,8 @@
ИдентификаторСервиса());
ИначеЕсли ВидТокена = ОнлайнЗаказыСлужебный.ИдентификаторВидаТокенаПриемОплат()
- И СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй Тогда
+ И (СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй
+ Или СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй) Тогда
Если Не ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.БазоваяФункциональностьПлатежныхСистем") Тогда
Возврат;
@@ -736,7 +830,17 @@
ИдентификаторСервиса(),
ИдентификаторПлатежногоСервиса(НастройкиПоСпособуОплаты.Ключ),
РезультатОперации);
+
+ ИначеЕсли НастройкиПоСпособуОплаты.Ключ = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.БазоваяФункциональностьПлатежныхСистем") Тогда
+ МодульПлатежныеСистемыСлужебный = ОбщегоНазначения.ОбщийМодуль("ПлатежныеСистемыСлужебный");
+ МодульПлатежныеСистемыСлужебный.ПриРевизииТокенов(
+ НастройкиПоСпособуОплаты.Значение,
+ ИдентификаторСервиса(),
+ ИдентификаторПлатежногоСервиса(НастройкиПоСпособуОплаты.Ключ),
+ РезультатОперации);
+
КонецЕсли;
КонецЦикла;
@@ -829,6 +933,17 @@
КонецЕсли;
+ Если ПараметрыОплат.ЯндексПэй <> Неопределено Тогда
+
+ // У Яндекс Пэй информация попадает не в назначение платежа, а в комментарий.
+ // В описании АПИ нет ограничений.
+
+ МодульНастройкиПлатежныхСистемСлужебный.ПроверитьНазначениеПлатежа(
+ ПараметрыОплат.ЯндексПэй.НазначениеПлатежа,
+ РезультатОперации);
+
+ КонецЕсли;
+
КонецПроцедуры
// Выполняет подготовку параметров выбора настройки подключения по способу оплаты.
@@ -910,6 +1025,8 @@
Если СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй Тогда
Возврат "ОзонПэй";
+ ИначеЕсли СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй Тогда
+ Возврат "ЯндексПэй";
Иначе
ВызватьИсключение (НСтр("ru = 'Передан неизвестный способ оплаты платежной системы.'"));
КонецЕсли;
diff --git a/src/CommonModules/ОнлайнОплатыСлужебный/Ext/Module.bsl b/src/CommonModules/ОнлайнОплатыСлужебный/Ext/Module.bsl
index 0ac90d92f..61ad5a8b5 100644
--- a/src/CommonModules/ОнлайнОплатыСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ОнлайнОплатыСлужебный/Ext/Module.bsl
@@ -96,7 +96,6 @@
Методы.Вставить("ОбновитьКонстантуПредопределенныеШаблоныСообщений");
Методы.Вставить("ОтменаПлатежнойСсылки", Истина);
Методы.Вставить("ПлатежнаяСсылка", Истина);
- Методы.Вставить("ПолучениеУведомленийОтОнлайнОплат", Истина);
Методы.Вставить("СтатусПодключенияМагазина", Истина);
КонецПроцедуры
diff --git a/src/CommonModules/ОперативныеВзаиморасчетыСервер/Ext/Module.bsl b/src/CommonModules/ОперативныеВзаиморасчетыСервер/Ext/Module.bsl
index df1d83523..880b26508 100644
--- a/src/CommonModules/ОперативныеВзаиморасчетыСервер/Ext/Module.bsl
+++ b/src/CommonModules/ОперативныеВзаиморасчетыСервер/Ext/Module.bsl
@@ -207,7 +207,7 @@
ДвиженияПредоплатыДляСуммированияКлиенты = ОстаткиНераспределенныхАвансовПлановойОплатыНаНачалоПересчета(Запрос, Истина);
ДвиженияПредоплатыДляСуммированияКлиенты.Индексы.Добавить("ОбъектРасчетов,АналитикаУчетаПоПартнерам,Валюта");
- ОстаткиАвансовКлиенты = ДвиженияПредоплатыДляСуммированияКлиенты.Скопировать(Новый Структура("Зачтено, ОстатокПоложительный", Ложь, Истина));
+ ОстаткиАвансовКлиенты = ОстаткиАвансов(Запрос, Истина);
ОстаткиАвансовКлиенты.Индексы.Добавить("ОбъектРасчетов,АналитикаУчетаПоПартнерам,Валюта");
ДвиженияПредоплатыДляСуммированияКлиенты.Свернуть("ОбъектРасчетов,АналитикаУчетаПоПартнерам,Валюта,ДатаДвижения,Регистратор,ЭтоРеализацияВПути,ПорядокОперации,Просуммировано","Сумма");
@@ -242,7 +242,7 @@
ДвиженияПредоплатыДляСуммированияПоставщики = ОстаткиНераспределенныхАвансовПлановойОплатыНаНачалоПересчета(Запрос, Ложь);
ДвиженияПредоплатыДляСуммированияПоставщики.Индексы.Добавить("ОбъектРасчетов,АналитикаУчетаПоПартнерам,Валюта");
- ОстаткиАвансовПоставщики = ДвиженияПредоплатыДляСуммированияПоставщики.Скопировать(Новый Структура("Зачтено, ОстатокПоложительный", Ложь, Истина));
+ ОстаткиАвансовПоставщики = ОстаткиАвансов(Запрос, Ложь);
ОстаткиАвансовПоставщики.Индексы.Добавить("ОбъектРасчетов,АналитикаУчетаПоПартнерам,Валюта");
ДвиженияПредоплатыДляСуммированияПоставщики.Свернуть("ОбъектРасчетов,АналитикаУчетаПоПартнерам,Валюта,ДатаДвижения,Регистратор,ЭтоРеализацияВПути,ПорядокОперации,Просуммировано","Сумма");
@@ -5020,6 +5020,38 @@
КонецФункции
+// Остатки авансов на начало пересчета
+//
+// Параметры:
+// Запрос - Запрос - Запрос
+//
+// Возвращаемое значение:
+// ТаблицаЗначений
+Функция ОстаткиАвансов(Запрос, ЭтоРасчетыСКлиентами = Ложь)
+
+ Запрос.Текст = "
+ |ВЫБРАТЬ
+ | Расчеты.ОбъектРасчетов КАК ОбъектРасчетов,
+ | Расчеты.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
+ | Расчеты.Валюта КАК Валюта,
+ | СУММА(Расчеты.Предоплата) КАК Сумма
+ |ИЗ
+ | ВТРасчетыПоСрокамОстаткиКлиенты КАК Расчеты
+ |СГРУППИРОВАТЬ ПО
+ | Расчеты.ОбъектРасчетов,
+ | Расчеты.АналитикаУчетаПоПартнерам,
+ | Расчеты.Валюта
+ |";
+
+ Если НЕ ЭтоРасчетыСКлиентами Тогда
+ Запрос.Текст = СтрЗаменить(Запрос.Текст,"ВТРасчетыПоСрокамОстаткиКлиенты","ВТРасчетыПоСрокамОстаткиПоставщики");
+ КонецЕсли;
+
+ Результат = Запрос.Выполнить().Выгрузить();
+ Возврат Результат;
+
+КонецФункции
+
Функция ПолучитьПриходныеДвиженияПоПлановымОплатам(Запрос, ГлобальныеПеременные, ЭтоРасчетыСКлиентами = Ложь)
Запрос.Текст = "
@@ -5214,6 +5246,7 @@
// * ОбъектРасчетовПриемник - СправочникСсылка.ОбъектыРасчетов - Объект расчетов приемник
// * АналитикаУчетаПоПартнерамПриемник - СправочникСсылка.КлючиАналитикиУчетаПоПартнерам - Аналитика приемник
// * ВалютаПриемник - СправочникСсылка.Валюты - Валюта приемник
+// ТекущаяГлубинаРекурсии - Число - Используется для ограничения поиска связей объектов расчетов
//
// Возвращаемое значение:
// ТаблицаЗначений:
@@ -5228,7 +5261,11 @@
// * АналитикаУчетаПоПартнерамПриемник - СправочникСсылка.КлючиАналитикиУчетаПоПартнерам - Аналитика приемник
// * ВалютаПриемник - СправочникСсылка.Валюты - Валюта приемник
//
-Функция ПолучитьТаблицуСвязейРекурсивно(ТаблицаТекущихПриемников, РассчитываемыеИзмерения = Неопределено)
+Функция ПолучитьТаблицуСвязейРекурсивно(ТаблицаТекущихПриемников, РассчитываемыеИзмерения = Неопределено, ТекущаяГлубинаРекурсии = 0)
+
+ Если ТекущаяГлубинаРекурсии >= 100 Тогда
+ Возврат Новый ТаблицаЗначений;
+ КонецЕсли;
МассивПакетовЗапроса = Новый Массив;
МассивОбъединенийЗапроса = Новый Массив;
@@ -5486,7 +5523,7 @@
ЗаполнитьЗначенияСвойств(РассчитываемыеИзмерения.Добавить(), СтрокаПриемника);
КонецЦикла;
Если ТаблицаПриемников.Количество() > 0 Тогда
- ТаблицаСвязей = ПолучитьТаблицуСвязейРекурсивно(ТаблицаПриемников, РассчитываемыеИзмерения);
+ ТаблицаСвязей = ПолучитьТаблицуСвязейРекурсивно(ТаблицаПриемников, РассчитываемыеИзмерения, ТекущаяГлубинаРекурсии + 1);
Для Каждого СтрокаПриемника Из ТаблицаСвязей Цикл
ЗаполнитьЗначенияСвойств(ТаблицаПриемников.Добавить(), СтрокаПриемника);
КонецЦикла;
@@ -6295,7 +6332,7 @@
// Если сначала провели документ уточнения, а потом заказ.
Если НачалоДня(СтрокаУточнения.ДатаДвижения) < СтрокаОстатка.ДатаВозникновения Тогда
ДокументРегистратор = СтрокаОстатка.ДокументПлан;
- ПорядокОперации = СтрокаОстатка.ПорядокОперации;
+ ПорядокОперации = "";
Период = СтрокаОстатка.ДатаВозникновения;
Иначе
ДокументРегистратор = СтрокаУточнения.Регистратор;
@@ -6394,7 +6431,7 @@
// Если сначала провели документ уточнения, а потом заказ.
Если НачалоДня(СтрокаУточнения.ДатаДвижения) < СтрокаОстатка.ДатаВозникновения Тогда
ДокументРегистратор = СтрокаОстатка.ДокументПлан;
- ПорядокОперации = СтрокаОстатка.ПорядокОперации;
+ ПорядокОперации = "";
Период = СтрокаОстатка.ДатаВозникновения;
Иначе
ДокументРегистратор = СтрокаУточнения.Регистратор;
diff --git a/src/CommonModules/ОплатаСервиса/Ext/Module.bsl b/src/CommonModules/ОплатаСервиса/Ext/Module.bsl
index 83b5918cc..42bdb7d88 100644
--- a/src/CommonModules/ОплатаСервиса/Ext/Module.bsl
+++ b/src/CommonModules/ОплатаСервиса/Ext/Module.bsl
@@ -894,4 +894,11 @@
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗагрузитьТарифыСервиса", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/ОповещениеПользователейБТС/Ext/Module.bsl b/src/CommonModules/ОповещениеПользователейБТС/Ext/Module.bsl
index 46f6e381d..11a80332e 100644
--- a/src/CommonModules/ОповещениеПользователейБТС/Ext/Module.bsl
+++ b/src/CommonModules/ОповещениеПользователейБТС/Ext/Module.bsl
@@ -58,4 +58,11 @@
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОбработкаОповещенийПользователей", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ОповещенияОСобытияхЭДО/Ext/Module.bsl b/src/CommonModules/ОповещенияОСобытияхЭДО/Ext/Module.bsl
index e22750c8d..ea75d6c86 100644
--- a/src/CommonModules/ОповещенияОСобытияхЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ОповещенияОСобытияхЭДО/Ext/Module.bsl
@@ -310,7 +310,7 @@
// Булево
//
Функция ДоступноСерверноеОповещениеОНовыхДокументах() Экспорт
- Возврат ОбщегоНазначенияБЭД.ДоступныСерверныеОповещения() И ЭлектронныеДокументыЭДО.ЕстьПравоОбработкиДокументов();
+ Возврат ЭлектронныеДокументыЭДО.ЕстьПравоОбработкиДокументов();
КонецФункции
// Создает служебного пользователя для получения оповещений от сервиса ЭДО.
@@ -527,11 +527,8 @@
КонецПроцедуры
Процедура ОповеститьОНаличииНовыхДокументов()
- Если ОбщегоНазначенияБЭД.ДоступныСерверныеОповещения() Тогда
- ИмяОповещения = ОповещенияОСобытияхЭДОКлиентСервер.ИмяОповещенияОНовыхДокументах();
- МодульОповещений = ОбщегоНазначения.ОбщийМодуль("СерверныеОповещения");
- МодульОповещений.ОтправитьСерверноеОповещение(ИмяОповещения, ЕстьСобытияЭДО(), Неопределено);
- КонецЕсли;
+ ИмяОповещения = ОповещенияОСобытияхЭДОКлиентСервер.ИмяОповещенияОНовыхДокументах();
+ ОбщегоНазначенияБЭД.ОтправитьСерверноеОповещение(ИмяОповещения, ЕстьСобытияЭДО(), Неопределено);
КонецПроцедуры
Процедура УстановитьАктивностьЗаданияПроверкиНовыхЭлектронныхДокументов(Использование)
@@ -671,5 +668,11 @@
#КонецОбласти
-#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПроверитьНовыеЭлектронныеДокументы", Истина);
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ОтражениеВУчетеЭДО/Ext/Module.bsl b/src/CommonModules/ОтражениеВУчетеЭДО/Ext/Module.bsl
index 3be4b4a75..5690c501e 100644
--- a/src/CommonModules/ОтражениеВУчетеЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ОтражениеВУчетеЭДО/Ext/Module.bsl
@@ -17,6 +17,22 @@
КонецФункции
+#Область ДляВызоваИзДругихПодсистем
+
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗаполнитьВходящиеДокументыНастроек");
+ Методы.Вставить("ОтразитьЭлектронныеДокументы", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
@@ -943,6 +959,16 @@
КонецЕсли;
КонецПроцедуры
+// Определяет необходимость контроля отражения в учете электронных документов
+//
+// Возвращаемое значение:
+// Булево
+Функция ТребуетсяКонтрольОтраженияВУчете() Экспорт
+
+ Возврат ПолучитьФункциональнуюОпцию("ИспользоватьКонтрольОтраженияВУчетеЭДО");
+
+КонецФункции
+
#КонецОбласти
#Область СпособыОбработки
@@ -1192,6 +1218,8 @@
// СпособОбработки - Строка
Процедура ОтразитьДанныеЭлектронногоДокументаСКонтролем(ДанныеДокумента, СпособОбработки = Неопределено) Экспорт
+ КлючЗамера = "ОтразитьДанныеЭлектронногоДокументаСКонтролем";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
ЭтоСводныйУПД = ЭтоСводныйУПД(ДанныеДокумента);
ДоступноОтражение = ДоступноОтражениеВУчете(ДанныеДокумента.Формат,
@@ -1244,7 +1272,7 @@
НаКонтроль = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ДанныеДокумента.ЭлектронныйДокумент);
ВыполнитьКонтрольОтраженияВУчете(НаКонтроль);
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера, ОбъектыУчета.Количество());
КонецПроцедуры
// Выполняет проверку электронного документа на наличие непроведенных учетных документов.
@@ -2440,7 +2468,7 @@
Если Запрос.Выполнить().Пустой() Тогда
- ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Нельзя создать настройку получения по идентификаторам, без общей настойки по организации
+ ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Нельзя создать настройку получения по идентификаторам, без общей настройки по организации
|Сначала добавьте настройку по организации'"));
ОтменитьТранзакцию();
Возврат Ложь;
diff --git a/src/CommonModules/ОчередьЗаданийСлужебный/Ext/Module.bsl b/src/CommonModules/ОчередьЗаданийСлужебный/Ext/Module.bsl
index f1c4ba99b..0b967ba98 100644
--- a/src/CommonModules/ОчередьЗаданийСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ОчередьЗаданийСлужебный/Ext/Module.bsl
@@ -73,5 +73,14 @@
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОбработкаОчередиЗаданийБТС", Истина);
+ Методы.Вставить("ЗапускОбработкиЗаданий", Истина);
+ Методы.Вставить("ПланированиеОбработкиЗаданий", Истина);
+ Методы.Вставить("РегламентнаяОбработкаОчередиЗаданий", Истина);
+
+КонецПроцедуры
#КонецОбласти
diff --git a/src/CommonModules/ПакетнаяОбработкаТабличнойЧастиКлиентСервер/Ext/Module.bsl b/src/CommonModules/ПакетнаяОбработкаТабличнойЧастиКлиентСервер/Ext/Module.bsl
index 4db8f7259..edd00f6fe 100644
--- a/src/CommonModules/ПакетнаяОбработкаТабличнойЧастиКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ПакетнаяОбработкаТабличнойЧастиКлиентСервер/Ext/Module.bsl
@@ -5717,6 +5717,28 @@
ЧитаемыеПоля, ИзменяемыеПоля, КэшированныеЗначения);
КонецЕсли;
+
+ Если СтруктураДействий.Свойство("ЗаполнитьРеквизитыРасчетаАкциза", СтруктураПараметровДействия)
+ И ЗначениеЗаполнено(СтруктураПараметровДействия) Тогда
+
+ ЧитаемыеПоля = Новый Структура();
+ ЧитаемыеПоля.Вставить("Номенклатура");
+ ЧитаемыеПоля.Вставить("Количество");
+
+ ИзменяемыеПоля = Новый Структура();
+ ИзменяемыеПоля.Вставить("ПодакцизныйТовар");
+ ИзменяемыеПоля.Вставить("КатегорияПодакцизныхТоваров");
+ ИзменяемыеПоля.Вставить("ТвердаяСтавкаАкциза");
+ ИзменяемыеПоля.Вставить("ЕдиницаИзмеренияАкциза");
+ ИзменяемыеПоля.Вставить("КоэффициентПересчета");
+ ИзменяемыеПоля.Вставить("НалоговаяБазаАкцизы");
+ ИзменяемыеПоля.Вставить("СуммаАкциза");
+ ИзменяемыеПоля.Вставить("МаркируемаяПродукция");
+
+ ДополнитьОписаниеПолей("ЗаполнитьРеквизитыРасчетаАкциза",
+ ЧитаемыеПоля, ИзменяемыеПоля, КэшированныеЗначения);
+
+ КонецЕсли;
Если СтруктураДействий.Свойство("ПересчитатьКоличествоНеОтгружать") Тогда
diff --git a/src/CommonModules/ПакетнаяОбработкаТабличнойЧастиСервер/Ext/Module.bsl b/src/CommonModules/ПакетнаяОбработкаТабличнойЧастиСервер/Ext/Module.bsl
index b98f9e1b2..ab98398f0 100644
--- a/src/CommonModules/ПакетнаяОбработкаТабличнойЧастиСервер/Ext/Module.bsl
+++ b/src/CommonModules/ПакетнаяОбработкаТабличнойЧастиСервер/Ext/Module.bsl
@@ -2964,6 +2964,18 @@
КонецПроцедуры
+// Заполняет реквизиты расчета Акциза для строки документа
+//
+// Параметры:
+// ТекущаяСтрока - Структура - текущая строка табличной части.
+// СтруктураДействий - Структура - допустимые действия для табличной части.
+// КэшированныеЗначения - см. ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения.
+Процедура ЗаполнитьРеквизитыРасчетаАкциза(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения) Экспорт
+
+ УчетПодакцизныхТоваров.ЗаполнитьРеквизитыРасчетаАкциза(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
+
+КонецПроцедуры
+
Процедура ПересчитатьСуммуАкцизаВСтрокеТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения) Экспорт
УчетПодакцизныхТоваров.ПересчитатьСуммуАкцизаПакетно(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
@@ -3242,6 +3254,9 @@
ОбработчикиСтрок.Добавить("ЗаполнитьПризнакПодакцизныйТовар",
"ПакетнаяОбработкаТабличнойЧастиСервер.ЗаполнитьПризнакПодакцизныйТовар");
+ ОбработчикиСтрок.Добавить("ЗаполнитьРеквизитыРасчетаАкциза",
+ "ПакетнаяОбработкаТабличнойЧастиСервер.ЗаполнитьРеквизитыРасчетаАкциза");
+
ОбработчикиСтрок.Добавить("ПересчитатьСуммуАкциза",
"ПакетнаяОбработкаТабличнойЧастиСервер.ПересчитатьСуммуАкцизаВСтрокеТЧ");
@@ -3748,6 +3763,7 @@
РегистрыСведений.ШтрихкодыНоменклатуры.ДополнитьТекстЗапросаПроверитьРегистрациюШтрихкода(Действия, ОписаниеЗапроса, КэшированныеЗначения);
УчетПодакцизныхТоваров.ДополнитьТекстЗапросаЗаполнитьПризнакПодакцизныйТовар(Действия, ОписаниеЗапроса, КэшированныеЗначения);
+ УчетПодакцизныхТоваров.ДополнитьТекстЗапросаРеквизитыРасчетаАкциза(Действия, ОписаниеЗапроса, КэшированныеЗначения);
УчетПодакцизныхТоваров.ДополнитьТекстЗапросаПересчитатьСуммуАкциза(Действия, ОписаниеЗапроса, КэшированныеЗначения);
ПакетнаяОбработкаТабличнойЧастиСерверЛокализация.ДополнитьТекстыЗапросовИсточниковДанных(Действия, ОписаниеЗапроса, КэшированныеЗначения);
diff --git a/src/CommonModules/ПакетыДокументовЭДО/Ext/Module.bsl b/src/CommonModules/ПакетыДокументовЭДО/Ext/Module.bsl
index 62cd007d8..681a922ae 100644
--- a/src/CommonModules/ПакетыДокументовЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ПакетыДокументовЭДО/Ext/Module.bsl
@@ -69,9 +69,22 @@
#КонецОбласти // ДляВызоваИзДругихПодсистем
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ДобавитьДокументыВПакет", Истина);
+ Методы.Вставить("СоздатьПакетДокументов", Истина);
+ Методы.Вставить("УдалитьДокументИзПакета", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти // ПрограммныйИнтерфейс
-#Область СлужебныйПрограммныйИнтерфейс
+#Область СлужебныйПрограммныйИнтерфейс
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда
@@ -689,8 +702,37 @@
// Параметры:
// СвойстваДокументовДляОписанияПакета - см. ЭлектронныеДокументыЭДО.СвойстваДокументовДляОписанияПакетов
-Процедура ЗагрузитьДокументыПакета(СвойстваДокументовДляОписанияПакета) Экспорт
- ПакетыДокументовЭДОСлужебный.ЗагрузитьДокументыПакета(СвойстваДокументовДляОписанияПакета);
+// ЗакрытыйПакет - Булево
+Процедура ЗагрузитьДокументыПакета(СвойстваДокументовДляОписанияПакета, ЗакрытыйПакет) Экспорт
+ ПакетыДокументовЭДОСлужебный.ЗагрузитьДокументыПакета(СвойстваДокументовДляОписанияПакета, ЗакрытыйПакет);
+КонецПроцедуры
+
+// Параметры:
+// ИдентификаторПакета - УникальныйИдентификатор
+// ЭлектронныеДокументы - Массив из ДокументСсылка.ЭлектронныйДокументВходящийЭДО,ДокументСсылка.ЭлектронныйДокументИсходящийЭДО
+Процедура ОбъединитьДокументыВПакет(ИдентификаторПакета, ЭлектронныеДокументы) Экспорт
+
+ Если Не ЗначениеЗаполнено(ЭлектронныеДокументы) Тогда
+ Возврат;
+ КонецЕсли;
+
+ СвойстваДокументовДляОписанияПакетов = ЭлектронныеДокументыЭДО.СвойстваДокументовДляОписанияПакетов(
+ ЭлектронныеДокументы);
+
+ РегистрыСведений.ПакетыДокументовЭДО.Удалить(ИдентификаторПакета);
+ РегистрыСведений.ПакетыДокументовЭДО.ОбновитьОписание(ИдентификаторПакета, СвойстваДокументовДляОписанияПакетов);
+
+ ТекущиеДокументыПакета = ДокументыПакета(ИдентификаторПакета);
+ Для Каждого ТекущийДокументПакета Из ТекущиеДокументыПакета Цикл
+ РегистрыСведений.СоставПакетовДокументовЭДО.Удалить(ТекущийДокументПакета);
+ КонецЦикла;
+
+ Для Каждого ЭлектронныйДокумент Из ЭлектронныеДокументы Цикл
+ СвойстваДокумента = СвойстваДокументовДляОписанияПакетов.Найти(ЭлектронныйДокумент, "Ссылка");
+ РегистрыСведений.СоставПакетовДокументовЭДО.Записать(ИдентификаторПакета, ЭлектронныйДокумент,
+ СвойстваДокумента);
+ КонецЦикла;
+
КонецПроцедуры
#Область ОграниченияПакетаДокументов
@@ -863,6 +905,35 @@
КонецФункции
+// Возвращает признак того, что пакет имеет признак ЗакрытыйПакет
+//
+// Параметры:
+// ИдентификаторПакета - УникальныйИдентификатор
+//
+// Возвращаемое значение:
+// Булево
+Функция ЭтоЗакрытыйПакет(ИдентификаторПакета) Экспорт
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ПакетыДокументовЭДО.ЗакрытыйПакет КАК ЗакрытыйПакет
+ |ИЗ
+ | РегистрСведений.ПакетыДокументовЭДО КАК ПакетыДокументовЭДО
+ |ГДЕ
+ | ПакетыДокументовЭДО.ИдентификаторПакета = &ИдентификаторПакета";
+ Запрос.УстановитьПараметр("ИдентификаторПакета", ИдентификаторПакета);
+ РезультатЗапроса = Запрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Выборка = РезультатЗапроса.Выбрать();
+ Выборка.Следующий();
+ Возврат Выборка.ЗакрытыйПакет;
+
+КонецФункции
+
#КонецОбласти // ОграниченияПакетаДокументов
#КонецОбласти
diff --git a/src/CommonModules/ПакетыДокументовЭДОКлиент/Ext/Module.bsl b/src/CommonModules/ПакетыДокументовЭДОКлиент/Ext/Module.bsl
index 642236507..f01b87930 100644
--- a/src/CommonModules/ПакетыДокументовЭДОКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ПакетыДокументовЭДОКлиент/Ext/Module.bsl
@@ -1012,6 +1012,10 @@
ДанныеФайла = РаботаСФайламиКлиент.ДанныеФайла(ВыбранноеЗначение, Новый УникальныйИдентификатор, Истина);
+ Если НЕ РаботаСФайламиБЭДКлиент.ФайлМожноОтправитьПоЭДО(ДанныеФайла.ИмяФайла) Тогда
+ Возврат;
+ КонецЕсли;
+
РезультатПроверкиПревышения = ПакетыДокументовЭДОКлиентСервер.ПроверкаПревышенияМаксимальногоРазмераПакета(
ПараметрыДобавленияВПакет.ОграниченияОбъемаПакетаДокументов,
ПараметрыДобавленияВПакет.ОбъемПакетаДокументов,
@@ -1101,6 +1105,12 @@
Возврат;
КонецЕсли;
+ РезультатОперации = РаботаСФайламиБЭДКлиентСервер.ИсключитьНедопустимыеФайлы(ПомещенныеФайлы);
+ РаботаСФайламиБЭДКлиент.ПоказатьПредупреждениеОНедопустимыхФайлах(РезультатОперации);
+ Если НЕ ЗначениеЗаполнено(ПомещенныеФайлы) Тогда
+ Возврат;
+ КонецЕсли;
+
ПодготовитьФайлыДляДобавленияВПакет(ПомещенныеФайлы, ПараметрыДобавленияВПакет);
КонецПроцедуры
diff --git a/src/CommonModules/ПакетыДокументовЭДОПовтИспНаВызов/Ext/Module.bsl b/src/CommonModules/ПакетыДокументовЭДОПовтИспНаВызов/Ext/Module.bsl
index 0339ca8fd..e5a3bf6d8 100644
--- a/src/CommonModules/ПакетыДокументовЭДОПовтИспНаВызов/Ext/Module.bsl
+++ b/src/CommonModules/ПакетыДокументовЭДОПовтИспНаВызов/Ext/Module.bsl
@@ -20,4 +20,13 @@
Возврат ПакетыДокументовЭДО.ДокументыПакета(Новый УникальныйИдентификатор(ИдентификаторПакета));
КонецФункции
+// Параметры:
+// ИдентификаторПакета - Строка
+//
+// Возвращаемое значение:
+// Булево
+Функция ЭтоЗакрытыйПакет(ИдентификаторПакета) Экспорт
+ Возврат ПакетыДокументовЭДО.ЭтоЗакрытыйПакет(Новый УникальныйИдентификатор(ИдентификаторПакета));
+КонецФункции
+
#КонецОбласти
diff --git a/src/CommonModules/ПакетыДокументовЭДОСлужебный/Ext/Module.bsl b/src/CommonModules/ПакетыДокументовЭДОСлужебный/Ext/Module.bsl
index 21cc6ed68..0a73faead 100644
--- a/src/CommonModules/ПакетыДокументовЭДОСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ПакетыДокументовЭДОСлужебный/Ext/Module.bsl
@@ -259,7 +259,8 @@
// Параметры:
// СвойстваДокументовДляОписанияПакета - см. ЭлектронныеДокументыЭДО.СвойстваДокументовДляОписанияПакетов
-Процедура ЗагрузитьДокументыПакета(СвойстваДокументовДляОписанияПакета) Экспорт
+// ЗакрытыйПакет - Булево
+Процедура ЗагрузитьДокументыПакета(СвойстваДокументовДляОписанияПакета, ЗакрытыйПакет) Экспорт
ЭлектронныеДокументы = СвойстваДокументовДляОписанияПакета.ВыгрузитьКолонку("Ссылка"); // Массив из ДокументСсылка.ЭлектронныйДокументВходящийЭДО,ДокументСсылка.ЭлектронныйДокументИсходящийЭДО
@@ -293,6 +294,7 @@
НоваяЗаписьПакета = РегистрыСведений.ПакетыДокументовЭДО.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(НоваяЗаписьПакета, СвойстваПервогоДокумента);
НоваяЗаписьПакета.ИдентификаторПакета = ИдентификаторПакета;
+ НоваяЗаписьПакета.ЗакрытыйПакет = ЗакрытыйПакет;
НоваяЗаписьПакета.Записать();
КонецЕсли;
diff --git a/src/CommonModules/ПартионныйУчетСервер/Ext/Module.bsl b/src/CommonModules/ПартионныйУчетСервер/Ext/Module.bsl
index b30228100..f2dafc36a 100644
--- a/src/CommonModules/ПартионныйУчетСервер/Ext/Module.bsl
+++ b/src/CommonModules/ПартионныйУчетСервер/Ext/Module.bsl
@@ -98,6 +98,8 @@
| ВЫБОР
| КОГДА ДанныеРегистра.ПериодОтклонения <> ДАТАВРЕМЯ(1,1,1)
| ТОГДА ДанныеРегистра.ПериодОтклонения
+ | КОГДА ДанныеРегистра.Период >= НАЧАЛОПЕРИОДА(ДокументыСторно.Дата, МЕСЯЦ)
+ | ТОГДА ДАТАВРЕМЯ(1,1,1)
| ИНАЧЕ ДанныеРегистра.Период КОНЕЦ КАК ПериодОтклонения,
| &ПоляВТ,
// При сторнировании текущего периода:
@@ -389,6 +391,8 @@
| ВЫБОР
| КОГДА ДанныеРегистра.ПериодОтклонения <> ДАТАВРЕМЯ(1,1,1)
| ТОГДА ДанныеРегистра.ПериодОтклонения
+ | КОГДА ДанныеРегистра.Период >= НАЧАЛОПЕРИОДА(ДокументыСторно.Дата, МЕСЯЦ)
+ | ТОГДА ДАТАВРЕМЯ(1,1,1)
| ИНАЧЕ ДанныеРегистра.Период КОНЕЦ КАК ПериодОтклонения,
| &ПоляВыборки,
// Суммы НДС при сторнировании не заполняем, т.к. распределение сторнированных сумм НДС выполняется в механизме учета НДС
@@ -981,6 +985,8 @@
" ВЫБОР
| КОГДА ДанныеРегистра.ПериодОтклонения <> ДАТАВРЕМЯ(1,1,1)
| ТОГДА ДанныеРегистра.ПериодОтклонения
+ | КОГДА ДанныеРегистра.Период >= НАЧАЛОПЕРИОДА(ДокументыСторно.Дата, МЕСЯЦ)
+ | ТОГДА ДАТАВРЕМЯ(1,1,1)
| ИНАЧЕ ДанныеРегистра.Период КОНЕЦ КАК ПериодОтклонения";
ИначеЕсли ЕстьДокументДвижения И ИмяПоля = "ДокументДвижения" Тогда
ШаблонПоля =
diff --git a/src/CommonModules/ПереводыСБПb2bСервис/Ext/Module.bsl b/src/CommonModules/ПереводыСБПb2bСервис/Ext/Module.bsl
index 00dde0e69..8ebc7738f 100644
--- a/src/CommonModules/ПереводыСБПb2bСервис/Ext/Module.bsl
+++ b/src/CommonModules/ПереводыСБПb2bСервис/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -971,7 +971,8 @@
СистемаБыстрыхПлатежейСлужебный.УвеличитьКоличествоПопытокЗапросаСтатуса(
ОтложеннаяОперация.ДокументОперации,
Метаданные.РегистрыСведений.ИдентификаторыОперацийСБПb2b.Имя);
- Если ОтложеннаяОперация.КоличествоПопыток >= НастройкиПлатежныхСистемСлужебный.МаксимальноеКоличествоПопытокЗапросаСтатуса("СБП", Истина) Тогда
+ ИмяПодсистемыСБП = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП();
+ Если ОтложеннаяОперация.КоличествоПопыток >= НастройкиПлатежныхСистемСлужебный.МаксимальноеКоличествоПопытокЗапросаСтатуса(ИмяПодсистемыСБП, Истина) Тогда
ПриЗагрузкеСтатусаОперации(
ОтложеннаяОперация.ДокументОперации,
КлючЗначение.Ключ,
@@ -1076,7 +1077,8 @@
СистемаБыстрыхПлатежейСлужебный.УвеличитьКоличествоПопытокЗапросаСтатуса(
Операция.ДокументОперации,
Метаданные.РегистрыСведений.ИдентификаторыОперацийСБПb2b.Имя);
- Если Операция.КоличествоПопыток >= НастройкиПлатежныхСистемСлужебный.МаксимальноеКоличествоПопытокЗапросаСтатуса("СБП", Истина) Тогда
+ ИмяПодсистемыСБП = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП();
+ Если Операция.КоличествоПопыток >= НастройкиПлатежныхСистемСлужебный.МаксимальноеКоличествоПопытокЗапросаСтатуса(ИмяПодсистемыСБП, Истина) Тогда
ПриЗагрузкеСтатусаОперации(
Операция.ДокументОперации,
КлючЗначение.Ключ,
diff --git a/src/CommonModules/ПереводыСБПc2b/Ext/Module.bsl b/src/CommonModules/ПереводыСБПc2b/Ext/Module.bsl
index e0432835f..3240856bf 100644
--- a/src/CommonModules/ПереводыСБПc2b/Ext/Module.bsl
+++ b/src/CommonModules/ПереводыСБПc2b/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -574,10 +574,11 @@
Если Макет.ВысотаТаблицы = 0 Тогда
Возврат ТабличныйДокумент;
КонецЕсли;
-
- ДанныеQRКода = СистемаБыстрыхПлатежей.ИзображениеQRКодаСБП(
+
+ ДанныеQRКода = НастройкиПлатежныхСистем.ИзображениеQRКода(
ДанныеСсылки.КассоваяСсылка,
- 300);
+ 300,
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП());
Макет.Рисунки.КассоваяСсылка.Картинка = Новый Картинка(ДанныеQRКода);
@@ -1171,9 +1172,10 @@
ПереводыСБПc2bСлужебный.ПроверитьПраваНаВыполнениеОперации();
- Возврат СистемаБыстрыхПлатежей.ИзображениеQRКодаСБП(
+ Возврат НастройкиПлатежныхСистем.ИзображениеQRКода(
ИдентификаторыОперацииОплаты(ДокументОперации),
Размер,
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП(),
3);
КонецФункции
diff --git a/src/CommonModules/ПереводыСБПc2bСервис/Ext/Module.bsl b/src/CommonModules/ПереводыСБПc2bСервис/Ext/Module.bsl
index a5191999d..3851a70b2 100644
--- a/src/CommonModules/ПереводыСБПc2bСервис/Ext/Module.bsl
+++ b/src/CommonModules/ПереводыСБПc2bСервис/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -2067,7 +2067,8 @@
СистемаБыстрыхПлатежейСлужебный.УвеличитьКоличествоПопытокЗапросаСтатуса(
ОтложеннаяОперация.ДокументОперации,
Метаданные.РегистрыСведений.ИдентификаторыОперацийСБПc2b.Имя);
- Если ОтложеннаяОперация.КоличествоПопыток >= НастройкиПлатежныхСистемСлужебный.МаксимальноеКоличествоПопытокЗапросаСтатуса("СБП", Истина) Тогда
+ ИмяПодсистемыСБП = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП();
+ Если ОтложеннаяОперация.КоличествоПопыток >= НастройкиПлатежныхСистемСлужебный.МаксимальноеКоличествоПопытокЗапросаСтатуса(ИмяПодсистемыСБП, Истина) Тогда
ПриЗагрузкеСтатусаОперации(
ОтложеннаяОперация.ДокументОперации,
ОтложеннаяОперация.НастройкаПодключения,
@@ -2148,7 +2149,8 @@
СистемаБыстрыхПлатежейСлужебный.УвеличитьКоличествоПопытокЗапросаСтатуса(
ОтложеннаяОперация.ДокументОперации,
Метаданные.РегистрыСведений.ИдентификаторыОперацийСБПc2b.Имя);
- Если ОтложеннаяОперация.КоличествоПопыток >= НастройкиПлатежныхСистемСлужебный.МаксимальноеКоличествоПопытокЗапросаСтатуса("СБП", Ложь) Тогда
+ ИмяПодсистемыСБП = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП();
+ Если ОтложеннаяОперация.КоличествоПопыток >= НастройкиПлатежныхСистемСлужебный.МаксимальноеКоличествоПопытокЗапросаСтатуса(ИмяПодсистемыСБП, Ложь) Тогда
ПриЗагрузкеСтатусаОперации(
ОтложеннаяОперация.ДокументОперации,
ОтложеннаяОперация.НастройкаПодключения,
diff --git a/src/CommonModules/ПлатежиВБюджет/Ext/Module.bsl b/src/CommonModules/ПлатежиВБюджет/Ext/Module.bsl
index 5d864fc55..1b20bcd8c 100644
--- a/src/CommonModules/ПлатежиВБюджет/Ext/Module.bsl
+++ b/src/CommonModules/ПлатежиВБюджет/Ext/Module.bsl
@@ -300,7 +300,14 @@
//
Функция ОшибкиЗаполненияРеквизитовПлательщика(ДокументОбъект, РеквизитыПлательщика, ВыводитьСообщение, Отказ = Ложь) Экспорт
+ ОшибкиЗаполнения = Новый Массив;
+
+ Если Не ЗначениеЗаполнено(РеквизитыПлательщика.Объект) Тогда
+ Возврат ОшибкиЗаполнения;
+ КонецЕсли;
+
ОшибкиЗаполнения = ДенежныеСредстваСерверЛокализация.ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(Истина, ДокументОбъект, РеквизитыПлательщика, Ложь, Отказ);
+
ИНН = СокрЛП(РеквизитыПлательщика.ИНН);
КПП = СокрЛП(РеквизитыПлательщика.КПП);
@@ -350,7 +357,14 @@
//
Функция ОшибкиЗаполненияРеквизитовПолучателя(ДокументОбъект, РеквизитыПолучателя, ВыводитьСообщение, Отказ = Ложь) Экспорт
+ ОшибкиЗаполнения = Новый Массив;
+
+ Если Не ЗначениеЗаполнено(РеквизитыПолучателя.Объект) Тогда
+ Возврат ОшибкиЗаполнения;
+ КонецЕсли;
+
ОшибкиЗаполнения = ДенежныеСредстваСерверЛокализация.ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(Ложь, ДокументОбъект, РеквизитыПолучателя, Ложь, Отказ);
+
ИНН = СокрЛП(РеквизитыПолучателя.ИНН);
КПП = СокрЛП(РеквизитыПолучателя.КПП);
diff --git a/src/CommonModules/ПлатежныеСистемы/Ext/Module.bsl b/src/CommonModules/ПлатежныеСистемы/Ext/Module.bsl
index 5233fe6cb..3b9b6793d 100644
--- a/src/CommonModules/ПлатежныеСистемы/Ext/Module.bsl
+++ b/src/CommonModules/ПлатежныеСистемы/Ext/Module.bsl
@@ -53,6 +53,262 @@
#Область ПрикладныеОперации
+#Область КассовыеСсылки
+
+// Создает запрос на совершение оплаты и активирует QR-код продавца для приема оплаты на заданную сумму.
+// Если Платежная система не поддерживает работу с кассовыми ссылками, то возвращается ошибка с кодом
+// НеверныйФорматЗапроса.
+// Ссылка читается успешно активированной, если КодОшибки содержит пустую строку.
+// Метод может быть вызван в тестовом режиме для тестирования активации кассовой ссылки и получения URL-адреса.
+// В этом случае параметр ДокументОперации можно не указывать, а результат операции деактивации ссылки заносится
+// в свойство РезультатДеактивации.
+//
+// Параметры:
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения к
+// платежному сервису.
+// ПараметрыКассовойСсылки - Структура - параметры ссылки, которую нужно активировать:
+// * КлючСсылки - Строка - ключ кассовой ссылки.
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы -документ, который отражает операцию оплаты
+// в информационной базе.
+// ДополнительныеПараметры - Произвольный - дополнительные настройки формирования заказа на оплату.
+//
+// Возвращаемое значение:
+// Структура - результат создания запроса на возврат оплаты в платежной системе:
+// * КодОшибки - Строка - строковый код возникшей ошибки.
+// Возможные значения:
+// "" - активация кассовой ссылки выполнена успешно.
+// "НеверныйФорматЗапроса" - передан некорректный запрос или настройка подключения.
+// "НеверныйЛогинИлиПароль" - неверный логин или пароль или параметры подключения к платежной системе.
+// "ОтсутствуетДоступКСервису" - недостаточно прав для выполнения запроса.
+// "ПревышеноКоличествоПопыток" - превышено количество попыток обращения к сервису с некорректным логином и
+// паролем.
+// "СервисВременноНеДоступен" - сервер временно не имеет возможности обрабатывать запросы.
+// "ОшибкаСервиса" - внутренняя ошибка сервиса.
+// "ОшибкаПодключения" - ошибка работы сети Интернет.
+// "НеизвестнаяОшибка" - при получении информации возникла неизвестная (не обрабатываемая) ошибка.
+// "ИнтеграцияНеИспользуется" - настройка подключения неактивна.
+// "ОперацияВыполнена" - ошибка создания нового заказа на возврат оплаты.
+// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя.
+// * ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора.
+// * ПлатежнаяСсылка - Строка - адрес страницы по которой выполняется оплата. Можно преобразовать в QR-код
+// и отобразить на экране, если есть проблемы со считыванием физической таблички с кодом.
+// * ИдентификаторОперации - Строка - идентификатор заказа на оплату в платежной системе
+//
+Функция АктивироватьКассовуюСсылку(
+ НастройкаПодключения,
+ ПараметрыКассовойСсылки,
+ ДокументОперации,
+ ДополнительныеПараметры = Неопределено) Экспорт
+
+ // Проверка входных параметров
+ ИмяФункции = "ПлатежныеСистемы.АктивироватьКассовуюСсылку";
+
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "НастройкаПодключения",
+ НастройкаПодключения,
+ Тип("СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам"));
+
+ Возврат ПлатежныеСистемыСлужебный.АктивироватьКассовуюСсылку(
+ НастройкаПодключения,
+ ПараметрыКассовойСсылки,
+ ДокументОперации,
+ ДополнительныеПараметры);
+
+КонецФункции
+
+// Вызывает метод принудительной деактивации кассовой ссылки. Метод может быть вызван независимо от текущего
+// состояния ссылки: для ранее деактивированной ссылки будет возвращен успешный результат.
+// Если Платежная система не поддерживает работу с кассовыми ссылками, то возвращается ошибка с кодом
+// НеверныйФорматЗапроса.
+// Считается, что кассовая ссылка успешно отключена, если КодОшибки содержит пустую строку.
+//
+// Параметры:
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения к
+// платежному сервису.
+// ПараметрыКассовойСсылки - Структура - параметры ссылки, которую нужно активировать:
+// * КлючСсылки - Строка - ключ кассовой ссылки. Обязателен для заполнения.
+// * ИдентификаторОперации - Строка - идентификатор заказа на оплату. Может быть не заполнен.
+//
+// Возвращаемое значение:
+// Структура - результат создания запроса на возврат оплаты в платежной системе:
+// * КодОшибки - Строка - строковый код возникшей ошибки.
+// Возможные значения:
+// "" - деактивация кассовой ссылки выполнена успешно.
+// "НеверныйФорматЗапроса" - передан некорректный запрос или настройка подключения.
+// "НеверныйЛогинИлиПароль" - неверный логин или пароль или параметры подключения к платежной системе.
+// "ОтсутствуетДоступКСервису" - недостаточно прав для выполнения запроса.
+// "ПревышеноКоличествоПопыток" - превышено количество попыток обращения к сервису с некорректным логином и
+// паролем.
+// "СервисВременноНеДоступен" - сервер временно не имеет возможности обрабатывать запросы.
+// "ОшибкаСервиса" - внутренняя ошибка сервиса.
+// "ОшибкаПодключения" - ошибка работы сети Интернет.
+// "НеизвестнаяОшибка" - при получении информации возникла неизвестная (не обрабатываемая) ошибка.
+// "ИнтеграцияНеИспользуется" - настройка подключения неактивна.
+// "ОперацияВыполнена" - ошибка создания нового заказа на возврат оплаты.
+// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя.
+// * ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора.
+//
+Функция ДеактивироватьКассовуюСсылку(
+ НастройкаПодключения,
+ ПараметрыКассовойСсылки) Экспорт
+
+ // Проверка входных параметров
+ ИмяФункции = "ПлатежныеСистемы.ДеактивироватьКассовуюСсылку";
+
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "НастройкаПодключения",
+ НастройкаПодключения,
+ Тип("СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам"));
+
+ Эталон = Новый Структура("КлючСсылки", Неопределено);
+ ЗаполнитьЗначенияСвойств(Эталон, ПараметрыКассовойСсылки);
+
+ Если Не ЗначениеЗаполнено(Эталон.КлючСсылки) Тогда
+ ВызватьИсключение НСтр("ru = 'Не указана кассовая ссылка для деактивации'");
+ КонецЕсли;
+
+ Возврат ПлатежныеСистемыСлужебный.ДеактивироватьКассовуюСсылку(
+ НастройкаПодключения,
+ ПараметрыКассовойСсылки);
+
+КонецФункции
+
+// Конструктор параметра ПараметрыКассовойСсылки для методов АктивироватьКассовуюСсылку и
+// ДеактивироватьКассовуюСсылку.
+//
+// Параметры:
+// КлючСсылки - Строка - ключ кассовой ссылки.
+//
+// Возвращаемое значение:
+// Структура - параметры ссылки, которую нужно активировать:
+// * КлючСсылки - Строка - ключ кассовой ссылки.
+//
+Функция НовыйПараметрыКассовойСсылки(КлючСсылки = "") Экспорт
+
+ Результат = Новый Структура;
+ Результат.Вставить("КлючСсылки", КлючСсылки);
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область ДинамическиеСсылки
+
+// Создает новый заказ на оплату и получает идентификатор оплаты для формирования QR-кода.
+// Если Платежная система не предусматривает возможности прямого создания платежных ссылок,
+// то возвращается ошибка с кодом НеверныйФорматЗапроса.
+//
+// Параметры:
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ,
+// который отражает оплату в информационной базе.
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам -
+// настройка выполнения операции.
+// ДополнительныеПараметры - Структура, Неопределено - дополнительные настройки формирования
+// заказа на оплату.
+//
+// Возвращаемое значение:
+// Структура - результат создания динамической ссылки в Системе быстрых платежей:
+// * ПлатежнаяСсылка - Строка - идентификатор, по которому выполняется оплата.
+// * ИдентификаторОперации - Строка - идентификатор заказа на оплату в платежной системе
+// * КодОшибки - Строка - строковый код возникшей ошибки, который
+// может быть обработан вызывающим методом:
+// <Пустая строка> - создание нового заказа выполнено успешно;
+// "НеверныйФорматЗапроса" - передан некорректный запрос или настройка подключения;
+// "УжеОплачен" - документ уже оплачен;
+// "НеверныйЛогинИлиПароль" - неверный логин или пароль или параметры
+// подключения к участнику СБП;
+// "ТребуетсяОплата" - требуется оплата сервиса;
+// "ОтсутствуетДоступКСервису" - у пользователя нет доступа к сервису;
+// "ПревышеноКоличествоПопыток" - превышено количество попыток
+// обращения к сервису с некорректным логином и паролем;
+// "ОшибкаПодключения" - ошибка при подключении к сервису;
+// "ОшибкаСервиса" - внутренняя ошибка сервиса;
+// "НеизвестнаяОшибка" - при получении информации возникла
+// неизвестная (не обрабатываемая) ошибка;
+// "СервисВременноНеДоступен" - на сервере ведутся регламентные работы;
+// "ИнтеграцияНеИспользуется" - использование отключено в настройках.
+// "ОперацияВыполнена" - уже выполнена операция оплаты по указанному документу.
+// "ОперацияВыполняется" - по указанному документу есть операция с другими параметрами.
+// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя.
+// * ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора.
+//
+Функция ДинамическаяСсылка(
+ ДокументОперации,
+ НастройкаПодключения,
+ ДополнительныеПараметры = Неопределено) Экспорт
+
+ // Проверка входных параметров
+ ИмяФункции = "ПлатежныеСистемы.ДинамическаяСсылка";
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "ДокументОперации",
+ ДокументОперации,
+ Метаданные.ОпределяемыеТипы.ДокументОперацииПлатежнойСистемы.Тип);
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "НастройкаПодключения",
+ НастройкаПодключения,
+ Тип("СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам"));
+
+ Возврат ПлатежныеСистемыСлужебный.ДинамическаяСсылка(
+ ДокументОперации,
+ НастройкаПодключения,
+ ДополнительныеПараметры);
+
+КонецФункции
+
+// Вызывает метод принудительной отмены динамической ссылки. Метод может быть вызван независимо от текущего
+// состояния ссылки: для ранее отмененной ссылки будет возвращен успешный результат.
+// Если Платежная система не предусматривает возможности прямой работы с платежными ссылками,
+// то возвращается ошибка с кодом НеверныйФорматЗапроса.
+// Считается, что платежная ссылка успешно отключена, если КодОшибки содержит пустую строку.
+//
+// Параметры:
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ,
+// который отражает оплату в информационной базе.
+//
+// Возвращаемое значение:
+// Структура - результат создания запроса на возврат оплаты в платежной системе:
+// * КодОшибки - Строка - строковый код возникшей ошибки.
+// Возможные значения:
+// "" - деактивация кассовой ссылки выполнена успешно.
+// "НеверныйФорматЗапроса" - передан некорректный запрос или настройка подключения.
+// "НеверныйЛогинИлиПароль" - неверный логин или пароль или параметры подключения к платежной системе.
+// "ОтсутствуетДоступКСервису" - недостаточно прав для выполнения запроса.
+// "ПревышеноКоличествоПопыток" - превышено количество попыток обращения к сервису с некорректным логином и
+// паролем.
+// "СервисВременноНеДоступен" - сервер временно не имеет возможности обрабатывать запросы.
+// "ОшибкаСервиса" - внутренняя ошибка сервиса.
+// "ОшибкаПодключения" - ошибка работы сети Интернет.
+// "НеизвестнаяОшибка" - при получении информации возникла неизвестная (не обрабатываемая) ошибка.
+// "ИнтеграцияНеИспользуется" - настройка подключения неактивна.
+// "ОперацияВыполнена" - ошибка создания нового заказа на возврат оплаты.
+// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя.
+// * ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора.
+//
+Функция ОтменитьДинамическуюСсылку(ДокументОперации) Экспорт
+
+ // Проверка входных параметров
+ ИмяФункции = "ПлатежныеСистемы.ОтменитьДинамическуюСсылку";
+
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "ДокументОперации",
+ ДокументОперации,
+ Метаданные.ОпределяемыеТипы.ДокументОперацииПлатежнойСистемы.Тип);
+
+ Возврат ПлатежныеСистемыСлужебный.ОтменитьДинамическуюСсылку(ДокументОперации);
+
+КонецФункции
+
+#КонецОбласти
+
+#Область Возвраты
+
// Создает запрос на частичный/полный возврат по ранее созданному заказу на оплату.
//
// Параметры:
@@ -60,6 +316,8 @@
// информационной базе.
// ДокументОплаты - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ, который отражает оплату в
// информационной базе.
+// - Строка - для платежной системы Яндекс Пэй допускается в данном параметре указать
+// строковый идентификатор операции оплаты, по которой выполняется возврат.
// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения к сервису.
// ДополнительныеПараметры - Структура, Неопределено - дополнительные настройки формирования запроса на возврат оплаты.
//
@@ -112,11 +370,6 @@
"ДокументВозврата",
ДокументВозврата,
Метаданные.ОпределяемыеТипы.ДокументОперацииПлатежнойСистемы.Тип);
- ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
- ИмяФункции,
- "ДокументОплаты",
- ДокументОплаты,
- Метаданные.ОпределяемыеТипы.ДокументОперацииПлатежнойСистемы.Тип);
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
ИмяФункции,
"НастройкаПодключения",
@@ -130,6 +383,10 @@
Новый ОписаниеТипов("Структура"));
КонецЕсли;
+ // Проверка типа ДокументОплаты в ПлатежныеСистемыСобытия, поскольку для некоторых
+ // платежных систем допускается передача строкового идентификатора, а для других только
+ // ссылки определенного типа.
+
Возврат ПлатежныеСистемыСлужебный.ВозвратОплаты(
ДокументВозврата,
ДокументОплаты,
@@ -138,16 +395,23 @@
КонецФункции
+#КонецОбласти
+
+#Область Статусы
+
// Выполняет получение статуса операции в платежной системе.
// Если терминальный статус операции был загружен ранее, то метод вернет информацию из базы данных, в противном случае
// будет выполнен запрос к сервису платежной системы.
-//
+//
// Параметры:
// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ, который отражает операцию в
// информационной базе.
// ВремяОжидания - Число - время ожидания терминального статуса в секундах.
-// Если параметр заполнен, то получение статуса будет выполняться в цикле с небольшими задержками между запросами.
-// Значение по умолчанию: 0 (один запрос).
+// Если параметр заполнен, то получение статуса будет выполняться в цикле с незначительными задержками
+// между запросами. Если Значение = 0, то поведение зависит от параметра ДлительнаяОперация.
+// ДлительнаяОперация - Булево - анализируется только при Значение = 0:
+// если Ложь, то операция будет выполнена только 1 раз;
+// если Истина, то длительность будет определятся общими настройками платежных систем.
//
// Возвращаемое значение:
// Структура - результат получения статуса операции:
@@ -184,7 +448,7 @@
// ** ДатаОперации - Дата - фактическая дата оплаты в UTC.
// ** СуммаОперации - Число - фактическая сумма операции.
//
-Функция СтатусОперации(ДокументОперации, ВремяОжидания = 0) Экспорт
+Функция СтатусОперации(ДокументОперации, ВремяОжидания = 0, ДлительнаяОперация = Ложь) Экспорт
// Проверка входных параметров
ИмяФункции = "ПлатежныеСистемы.СтатусОперации";
@@ -200,10 +464,48 @@
ВремяОжидания,
Тип("Число"));
- Возврат ПлатежныеСистемыСлужебный.СтатусОперации(ДокументОперации, ВремяОжидания);
+ Возврат ПлатежныеСистемыСлужебный.СтатусОперации(
+ ДокументОперации,
+ ВремяОжидания,
+ ,
+ ДлительнаяОперация);
КонецФункции
+// Выполняет установку признака загрузки статуса регламентным заданием, если
+// ранее под документу была сгенерирован идентификатор оплаты. Установка
+// признака доступна только для сформированных операций у которых текущий статус
+// "Выполняется".
+//
+// Параметры:
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ, который отражает
+// операцию оплаты или возврата в информационной базе;
+// Значение - Булево - если Истина, данные статуса будут загружены регламентным заданием.
+//
+// Возвращаемое значение:
+// Булево - Истина, если признак отложенной загрузки статуса установлен,
+// Ложь если операция не найдена.
+//
+Функция УстановитьОтложенноеПолучениеСтатуса(ДокументОперации, Значение) Экспорт
+
+ // Проверка входных параметров
+ ИмяФункции = "ПлатежныеСистемы.УстановитьОтложенноеПолучениеСтатуса";
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "ДокументОперации",
+ ДокументОперации,
+ Метаданные.ОпределяемыеТипы.ДокументОперацииПлатежнойСистемы.Тип);
+
+ ПлатежныеСистемыСлужебный.ПроверитьПраваНаВыполнениеОперации();
+
+ Возврат РегистрыСведений.ИдентификаторыПлатежныхСистем.УстановитьОтложенноеПолучениеСтатуса(
+ ДокументОперации,
+ Значение);
+
+КонецФункции
+
+#КонецОбласти
+
#КонецОбласти
#Область ДополнительныеОперации
@@ -215,8 +517,8 @@
// информационной базе.
//
// Возвращаемое значение:
-// Неопределено - данные операции по документу не найдены.
-// Структура:
+// Неопределено, Структура - данные операции; Неопределено, если данные операции по документу не найдены:
+// * Идентификатор - Строка - внутренний идентификатор операции.
// * ИдентификаторОперации - Строка - идентификатор операции в платежной системе.
// * ИдентификаторОплаты - Строка - идентификатор оплаты в платежной системе.
// * ТипОперации - Строка - тип выполненной операции в платежной системе.
@@ -231,11 +533,16 @@
// см. НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОшибка - выполнение операции завершилось ошибкой в
// платежной системе.
// * ДатаОперации - Дата - фактическая дата операции в UTC.
+// * ДатаЗапросаСтатуса - Дата - дата последнего запроса статуса операции.
// * СуммаОперации - Число - фактическая суммы операции по документу.
// * НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения к
// сервису.
+// * ПлатежнаяСистема - ПеречислениеСсылка.ПлатежныеСервисы - платежная система, через которую выполнена операция.
// * СпособОплаты - Строка - способ оплаты. Доступные значения определяются методами
// общего модуля ПлатежныеСистемыКлиентСервер.
+// * КассоваяСсылка - Строка - идентификатор (ключ) кассовой ссылки.
+// * ПлатежнаяСсылка - Строка - адрес страницы по которой выполняется оплата.
+// * ДатаДействияСсылки - Дата - дата действия платежной ссылки в UTC.
//
Функция ДанныеОперации(ДокументОперации) Экспорт
@@ -252,18 +559,24 @@
Иначе
Результат = Новый Структура();
+ Результат.Вставить("Идентификатор", ДанныеРегистра.Идентификатор);
Результат.Вставить("ИдентификаторОперации", ДанныеРегистра.ИдентификаторОперации);
- Результат.Вставить("ИдентификаторОплаты" , ДанныеРегистра.ИдентификаторОплаты);
- Результат.Вставить("СтатусОперации" , ДанныеРегистра.СтатусОперации);
- Результат.Вставить("ДатаОперации" , ДанныеРегистра.ДатаОперации);
- Результат.Вставить("СуммаОперации" , ДанныеРегистра.СуммаОперации);
- Результат.Вставить("НастройкаПодключения" , ДанныеРегистра.НастройкаПодключения);
- Результат.Вставить("СпособОплаты" , ДанныеРегистра.СпособОплаты);
+ Результат.Вставить("ИдентификаторОплаты", ДанныеРегистра.ИдентификаторОплаты);
+ Результат.Вставить("СтатусОперации", ДанныеРегистра.СтатусОперации);
+ Результат.Вставить("ДатаОперации", ДанныеРегистра.ДатаОперации);
+ Результат.Вставить("СуммаОперации", ДанныеРегистра.СуммаОперации);
+ Результат.Вставить("НастройкаПодключения", ДанныеРегистра.НастройкаПодключения);
+ Результат.Вставить("ПлатежнаяСистема", ДанныеРегистра.ПлатежнаяСистема);
+ Результат.Вставить("СпособОплаты", ДанныеРегистра.СпособОплаты);
+ Результат.Вставить("КассоваяСсылка", ДанныеРегистра.КассоваяСсылка);
+ Результат.Вставить("ПлатежнаяСсылка", ДанныеРегистра.ПлатежнаяСсылка);
+ Результат.Вставить("ДатаДействияСсылки", ДанныеРегистра.ДатаДействияСсылки);
+ Результат.Вставить("ДатаЗапросаСтатуса", ДанныеРегистра.ДатаЗапросаСтатуса);
Если ДанныеРегистра.Оплата Тогда
- Результат.Вставить("ТипОперации" , ПлатежныеСистемыКлиентСервер.ТипОперацииОплата());
+ Результат.Вставить("ТипОперации", ПлатежныеСистемыКлиентСервер.ТипОперацииОплата());
Иначе
- Результат.Вставить("ТипОперации" , ПлатежныеСистемыКлиентСервер.ТипОперацииВозврат());
+ Результат.Вставить("ТипОперации", ПлатежныеСистемыКлиентСервер.ТипОперацииВозврат());
КонецЕсли;
КонецЕсли;
diff --git a/src/CommonModules/ПлатежныеСистемыКлиент/Ext/Module.bsl b/src/CommonModules/ПлатежныеСистемыКлиент/Ext/Module.bsl
index 316830689..c56989b6e 100644
--- a/src/CommonModules/ПлатежныеСистемыКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ПлатежныеСистемыКлиент/Ext/Module.bsl
@@ -7,7 +7,7 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Подсистема "ИнтернетПоддержкаПользователей.ПлатежныеСистемы".
+// Подсистема "ИнтернетПоддержкаПользователей.ПлатежныеСистемы.БазоваяФункциональностьПлатежныхСистем".
// ОбщийМодуль.ПлатежныеСистемыКлиент.
//
// Клиентские процедуры настройки подключения к платежным системам:
@@ -18,7 +18,7 @@
#Область СлужебныйПрограммныйИнтерфейс
-#Область ПодключитьПлатежнуюСистему
+#Область ПлатежныеСистемы
// Открывает форму создания новой настройки подключения к платежной системе.
//
@@ -69,6 +69,34 @@
КонецПроцедуры
+// Вызывает открытие формы кассовых ссылок из формы настройки подключения к платежным системам.
+//
+// Параметры:
+// ПараметрыНастройки - Структура - содержит в себе описание настроек подключения:
+// * НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - Ссылка на
+// элемент справочника, для которого необходимо открыть форму настройки кассовых ссылок.
+// * ПлатежнаяСистема - ПеречислениеСсылка.ПлатежныеСервисы - платежная система настройки.
+// ОповещениеПослеЗакрытияФормыКассовыхСсылок - ОписаниеОповещения - оповещение о закрытии формы кассовых ссылок.
+//
+Процедура ПриНастройкеКассовыхСсылок(
+ ПараметрыНастройки,
+ ОповещениеПослеЗакрытияФормыКассовыхСсылок) Экспорт
+
+ ПараметрыОплаты = НастройкиПлатежныхСистемВызовСервера.ПараметрыОплатыПоНастройке(
+ ПараметрыНастройки.НастройкаПодключения);
+
+ ИнтеграцияПодсистемБИПКлиент.ПриНастройкеКассовыхСсылокПлатежныхСистем(
+ ПараметрыНастройки,
+ ПараметрыОплаты,
+ ОповещениеПослеЗакрытияФормыКассовыхСсылок);
+
+ ПлатежныеСистемыКлиентПереопределяемый.ПриНастройкеКассовыхСсылок(
+ ПараметрыНастройки,
+ ПараметрыОплаты,
+ ОповещениеПослеЗакрытияФормыКассовыхСсылок);
+
+КонецПроцедуры
+
#КонецОбласти
#КонецОбласти
@@ -92,6 +120,7 @@
КонецПроцедуры
+
#КонецОбласти
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ПлатежныеСистемыКлиентПереопределяемый.xml b/src/CommonModules/ПлатежныеСистемыКлиентПереопределяемый.xml
new file mode 100644
index 000000000..cd6a45a4c
--- /dev/null
+++ b/src/CommonModules/ПлатежныеСистемыКлиентПереопределяемый.xml
@@ -0,0 +1,23 @@
+
+
+
+
+ ПлатежныеСистемыКлиентПереопределяемый
+
+
+ ru
+ Платежные системы клиент переопределяемый
+
+
+
+ false
+ true
+ false
+ false
+ true
+ false
+ false
+ DontUse
+
+
+
\ No newline at end of file
diff --git a/src/CommonModules/ПлатежныеСистемыКлиентПереопределяемый/Ext/Module.bsl b/src/CommonModules/ПлатежныеСистемыКлиентПереопределяемый/Ext/Module.bsl
new file mode 100644
index 000000000..e86e52c53
--- /dev/null
+++ b/src/CommonModules/ПлатежныеСистемыКлиентПереопределяемый/Ext/Module.bsl
@@ -0,0 +1,45 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2026, ООО 1С-Софт
+// Все права защищены. Эта программа и сопроводительные материалы предоставляются
+// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
+// Текст лицензии доступен по ссылке:
+// https://creativecommons.org/licenses/by/4.0/legalcode
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Подсистема "ИнтернетПоддержкаПользователей.ПлатежныеСистемы.БазоваяФункциональностьПлатежныхСистем".
+// ОбщийМодуль.ПлатежныеСистемыКлиентПереопределяемый.
+//
+// Переопределяемые клиентские процедуры работы с платежными системами:
+// - открытие списка кассовых ссылок.
+//
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Область ПрограммныйИнтерфейс
+
+#Область РаботаСКассовымиСсылками
+
+// Определяет алгоритм, выполняющийся при открытии формы кассовых ссылок из формы настройки подключения к
+// платежным системам.
+// Вызывается только в том случае, если платежная система поддерживает работу с кассовыми ссылками.
+//
+// Параметры:
+// ПараметрыНастройки - Структура - содержит в себе описание настроек подключения:
+// * НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - Ссылка на
+// элемент справочника, для которого необходимо открыть форму настройки кассовых ссылок.
+// * ПлатежнаяСистема - ПеречислениеСсылка.ПлатежныеСервисы - платежная система настройки.
+// ПараметрыОплаты - Соответствие Из КлючИЗначение - содержит имена и значения полей регистра сведений,
+// хранящего данные о настройках оплат.
+// ОповещениеПослеЗакрытияФормы - ОписаниеОповещения - оповещение о закрытии формы кассовых ссылок
+//
+Процедура ПриНастройкеКассовыхСсылок(
+ ПараметрыНастройки,
+ ПараметрыОплаты,
+ ОповещениеПослеЗакрытияФормы) Экспорт
+
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
diff --git a/src/CommonModules/ПлатежныеСистемыКлиентСервер/Ext/Module.bsl b/src/CommonModules/ПлатежныеСистемыКлиентСервер/Ext/Module.bsl
index bb8e851ac..0824ac52d 100644
--- a/src/CommonModules/ПлатежныеСистемыКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ПлатежныеСистемыКлиентСервер/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -18,6 +18,85 @@
#Область ПрограммныйИнтерфейс
+#Область ПроверкаДоступности
+
+// Формирует описание доступности общих методов для всех платежных систем.
+// Информация формируется независимо от внедрения подсистем в конфигурацию.
+//
+// Возвращаемое значение:
+// Соответствие Из КлючИЗначение - данные о доступности методов:
+// * Ключ - Строка - имя подсистемы. Задается методами
+// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй
+// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй
+// * Значение - Структура - доступность метода. Если метод недоступен, то при его вызове будет сгенерировано
+// сообщение об ошибке. Содержит следующие свойства:
+// ** КассоваяСсылка - Булево - Истина, если для подсистемы доступна работа с кассовыми ссылками.
+// ** ДинамическаяСсылка - Булево - Истина, если для подсистемы доступна работа с динамическими ссылками
+// без подсистемы Онлайн-Заказы.
+// ** ОтменаОплаты - Булево - Истина, если платежная система предоставляет метод для
+// отмены динамических ссылок.
+//
+Функция ДоступныеМетоды() Экспорт
+
+ Результат = Новый Соответствие;
+
+ ПараметрыОзон = Новый Структура;
+ ПараметрыОзон.Вставить("КассоваяСсылка", Ложь);
+ ПараметрыОзон.Вставить("ДинамическаяСсылка", Ложь);
+ ПараметрыОзон.Вставить("ОтменаОплаты", Ложь);
+
+ Результат.Вставить(
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй(),
+ ПараметрыОзон);
+
+ ПараметрыЯндекс = Новый Структура;
+ ПараметрыЯндекс.Вставить("КассоваяСсылка", Истина);
+ ПараметрыЯндекс.Вставить("ДинамическаяСсылка", Истина);
+ ПараметрыЯндекс.Вставить("ОтменаОплаты", Истина);
+
+ Результат.Вставить(
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй(),
+ ПараметрыЯндекс);
+
+ Возврат Результат;
+
+КонецФункции
+
+// Проверяет доступность метода для указанной платежной системы.
+// Проверка выполняется без учета внедрения подсистемы в конфигурацию.
+//
+// Параметры:
+// ИмяПлатежнойСистемы - Строка - имя подсистемы. Задается методами
+// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй
+// НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй
+// ИмяМетода - Строка - имя метода, доступность которого необходимо проверить.
+// Возможные значения: "КассоваяСсылка", "ДинамическаяСсылка", "ОтменаОплаты"
+//
+// Возвращаемое значение:
+// Неопределено, Булево - Истина, если указанный метод доступен для указанной платежной системы.
+// Ложь, если указанный метод не доступен.
+// Неопределено, если указаны ошибочные параметры.
+//
+Функция МетодДоступен(ИмяПлатежнойСистемы, ИмяМетода) Экспорт
+
+ Если Не (ЗначениеЗаполнено(ИмяПлатежнойСистемы) И ЗначениеЗаполнено(ИмяМетода)) Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ ДоступныеМетоды = ДоступныеМетоды().Получить(ИмяПлатежнойСистемы);
+ Если ДоступныеМетоды = Неопределено Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Эталон = Новый Структура(ИмяМетода, Неопределено);
+ ЗаполнитьЗначенияСвойств(Эталон, ДоступныеМетоды);
+
+ Возврат Эталон[ИмяМетода];
+
+КонецФункции
+
+#КонецОбласти
+
#Область ТипыОпераций
// Возвращает тип операции "Оплата".
diff --git a/src/CommonModules/ПлатежныеСистемыКлиентСобытия/Ext/Module.bsl b/src/CommonModules/ПлатежныеСистемыКлиентСобытия/Ext/Module.bsl
index ac5e64f0d..025a835ae 100644
--- a/src/CommonModules/ПлатежныеСистемыКлиентСобытия/Ext/Module.bsl
+++ b/src/CommonModules/ПлатежныеСистемыКлиентСобытия/Ext/Module.bsl
@@ -1,11 +1,21 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Подсистема "ИнтернетПоддержкаПользователей.ПлатежныеСистемы.БазоваяФункциональностьПлатежныхСистем".
+// ОбщийМодуль.ПлатежныеСистемыКлиентСобытия.
+//
+// Клиентские процедуры обработки событий платежных систем:
+// - обработка выбора или изменения настройки в общем списке;
+// - обработка навигационных ссылок в фоме мастера.
+//
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
#Область СлужебныйПрограммныйИнтерфейс
// Выполняет обработку выбора строки в общем списке настроек
diff --git a/src/CommonModules/ПлатежныеСистемыПереопределяемый/Ext/Module.bsl b/src/CommonModules/ПлатежныеСистемыПереопределяемый/Ext/Module.bsl
index 190d621af..827075fc3 100644
--- a/src/CommonModules/ПлатежныеСистемыПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/ПлатежныеСистемыПереопределяемый/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -32,7 +32,15 @@
// выполнении оплат и возвратов.
// * ИсключаемыеПоля - Массив из Строка - наименования измерений, ресурсов или реквизитов, которые необходимо скрыть
// на форме настройки подключения.
-// * ШаблоныНазначений - см. НастройкиПлатежныхСистемСлужебный.НовыйШаблоныНазначений.
+// * ШаблоныНазначений - ТаблицаЗначений - настройки заполнения шаблонов платежей:
+// ** ОбъектМетаданных - Строка - имя объекта метаданных операции.
+// ** Идентификатор - Строка - идентификатор шаблона.
+// ** Наименование - Строка - наименование шаблона для пользователя.
+// ** Параметры - Структура - параметры заполнения шаблона:
+// *** Наименование - Строка - наименование параметра для пользователя.
+// *** Идентификатор - Строка - идентификатор параметра для заполнения.
+// * ИспользоватьНастройкуКассовыхСсылок - Булево - признак доступности настройки кассовых ссылок для
+// платежной системы.
//
Процедура ПриОпределенииНастроекПодключения(ПараметрыНастройки, Настройки) Экспорт
@@ -130,6 +138,56 @@
ОтключитьЛогикуБИП) Экспорт
+КонецПроцедуры
+
+// Позволяет определить данные кассовых ссылок для конкретной настройки подключения к платежной системе.
+//
+// Параметры:
+// ДанныеКассовыхСсылок - Структура - значение данных кассовых ссылок, которые необходимо заполнить:
+// * Количество - Число - количество ссылок.
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - Ссылка на
+// элемент справочника, для которого проверяются кассовые ссылки.
+//
+Процедура ПриОпределенииДанныхКассовыхСсылок(ДанныеКассовыхСсылок, НастройкаПодключения) Экспорт
+
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ПрикладныеОперации
+
+// Определяет алгоритм обработки операции, статус которых был получен регламентным заданием.
+//
+// Параметры:
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ, который отражает операцию в
+// информационной базе.
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКИнтернетЭквайрингу - настройка выполнения операций.
+// ПлатежнаяСистема - ПеречислениеСсылка.ПлатежныеСервисы - платежная система.
+// РезультатОбработки - Структура - результат загрузки статуса операции:
+// * СтатусОперации - Строка - текущее состояние операции операции. Для проверки статуса
+// операции, необходимо использовать функции программного интерфейса общего модуля
+// НастройкиПлатежныхСистемКлиентСервер. Возможные значения:
+// "Отклонена" - операция отклонена.
+// "Отменена" - операция отменена
+// "Выполнена" - выполнение операции подтверждено банком.
+// "Ошибка" - не удалось выполнить проверку статуса операции из-за ошибки или банк вернул ошибку.
+// * ПараметрыОперации - Структура - дополнительные данные по оплате:
+// ** ДатаОперации - Дата - фактическая дата оплаты в UTC;
+// ** СуммаОперации - Число - фактическая суммы операции по документу;
+// ** ИдентификаторОперации - Строка - идентификатор текущей операции;
+// ** ИдентификаторОплаты- Строка - идентификатор оплаты;
+// * СообщениеОбОшибке - Строка - сообщение пользователю. Заполняется в случае ошибки.
+// Обработан - Булево - признак обработки операции. Необходимо установить Истина, после завершения обработки.
+//
+Процедура ПриЗагрузкеСтатусаОперации(
+ ДокументОперации,
+ НастройкаПодключения,
+ ПлатежнаяСистема,
+ РезультатОбработки,
+ Обработан) Экспорт
+
+
КонецПроцедуры
#КонецОбласти
diff --git a/src/CommonModules/ПлатежныеСистемыСервис/Ext/Module.bsl b/src/CommonModules/ПлатежныеСистемыСервис/Ext/Module.bsl
index af94179f8..e9a3a79ef 100644
--- a/src/CommonModules/ПлатежныеСистемыСервис/Ext/Module.bsl
+++ b/src/CommonModules/ПлатежныеСистемыСервис/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -23,6 +23,42 @@
#Область ОбщегоНазначения
+// Формирует описание параметров выполнения операции к сервису методом GET.
+//
+// Параметры:
+// Адрес - Строка - относительный адрес операции в сервисе.
+//
+// Возвращаемое значение:
+// Структура:
+// * method - Строка - http метод "GET".
+// * path - Строка - относительный адрес операции в сервисе. Заполняется по входному параметру Адрес.
+// * requestHeaders - Соответствие из КлючИЗначение - список заголовков запроса:
+// ** Ключ - Строка
+// ** Значение - Строка
+// * uriVariables - Соответствие из КлючИЗначение - список параметров URI:
+// ** Ключ - Строка - имя параметра в поле "path".
+// ** Значение - Строка - значение подмены.
+// * queryParams - Соответствие из КлючИЗначение - список параметров запроса:
+// ** Ключ - Строка
+// ** Значение - Массив из Строка, Строка
+//
+Функция НовыйПараметрыОперацииСервисаGET(Адрес) Экспорт
+
+ Заголовки = Новый Соответствие();
+ ПараметрыURI = Новый Соответствие();
+ ПараметрыЗапроса = Новый Соответствие();
+
+ Результат = Новый Структура();
+ Результат.Вставить("method", "GET");
+ Результат.Вставить("path", Адрес);
+ Результат.Вставить("requestHeaders", Заголовки);
+ Результат.Вставить("uriVariables", ПараметрыURI);
+ Результат.Вставить("queryParams", ПараметрыЗапроса);
+
+ Возврат Результат;
+
+КонецФункции
+
// Формирует описание параметров выполнения операции к сервису методом POST.
//
// Параметры:
@@ -285,42 +321,6 @@
КонецФункции
-// Формирует описание параметров выполнения операции к сервису методом GET.
-//
-// Параметры:
-// Адрес - Строка - относительный адрес операции в сервисе.
-//
-// Возвращаемое значение:
-// Структура:
-// * method - Строка - http метод "GET".
-// * path - Строка - относительный адрес операции в сервисе. Заполняется по входному параметру Адрес.
-// * requestHeaders - Соответствие из КлючИЗначение - список заголовков запроса:
-// ** Ключ - Строка
-// ** Значение - Строка
-// * uriVariables - Соответствие из КлючИЗначение - список параметров URI:
-// ** Ключ - Строка - имя параметра в поле "path".
-// ** Значение - Строка - значение подмены.
-// * queryParams - Соответствие из КлючИЗначение - список параметров запроса:
-// ** Ключ - Строка
-// ** Значение - Массив из Строка, Строка
-//
-Функция НовыйПараметрыОперацииСервисаGET(Адрес)
-
- Заголовки = Новый Соответствие();
- ПараметрыURI = Новый Соответствие();
- ПараметрыЗапроса = Новый Соответствие();
-
- Результат = Новый Структура();
- Результат.Вставить("method", "GET");
- Результат.Вставить("path", Адрес);
- Результат.Вставить("requestHeaders", Заголовки);
- Результат.Вставить("uriVariables", ПараметрыURI);
- Результат.Вставить("queryParams", ПараметрыЗапроса);
-
- Возврат Результат;
-
-КонецФункции
-
// Выполняет вызов операции в 6 итераций. Повторные вызовы операции требуются
// для случаев, когда результат выполнения вызова не определен.
// Между вызовами добавляется пауза, чтобы не нагружать сервис банка.
@@ -539,28 +539,33 @@
КонецЕсли;
ИдентификаторОзонПэй = "-";
+ ИдентификаторЯндексПэй = "-";
+
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ОзонПэй") Тогда
МодульОзонПэйСервис = ОбщегоНазначения.ОбщийМодуль("ОзонПэйСервис");
ИдентификаторОзонПэй = МодульОзонПэйСервис.ИдентификаторПлатежнойСистемы();
КонецЕсли;
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+ МодульЯндексПэйСервис = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСервис");
+ ИдентификаторЯндексПэй = МодульЯндексПэйСервис.ИдентификаторПлатежнойСистемы();
+ КонецЕсли;
Для Каждого Описание Из ПолученноеОписание Цикл // Соответствие Из КлючИЗначение
ИдентификаторСервиса = Описание.Получить("id");
Если ИдентификаторСервиса = ИдентификаторОзонПэй Тогда
- ОписаниеСервиса = Новый Структура;
- ОписаниеСервиса.Вставить(
- "Описание",
- ПолучитьОписание(Описание, "description"));
-
- ОписаниеСервиса.Вставить(
- "Подключение",
- ПолучитьОписание(Описание, "settingsDescription"));
-
- Результат.Вставить(
- Перечисления.ПлатежныеСервисы.ОзонПэй,
- ОписаниеСервиса);
+ ДобавитьОписаниеСервиса(
+ Результат,
+ Описание,
+ Перечисления.ПлатежныеСервисы.ОзонПэй);
+
+ ИначеЕсли ИдентификаторСервиса = ИдентификаторЯндексПэй Тогда
+ ДобавитьОписаниеСервиса(
+ Результат,
+ Описание,
+ Перечисления.ПлатежныеСервисы.ЯндексПэй);
КонецЕсли;
@@ -570,6 +575,30 @@
КонецФункции
+// Добавляет описание конкретного сервиса на основе данных из файла.
+//
+// Параметры:
+// Результат - см. ОписанияПлатежныхСистем.
+// ОписаниеИзФайла - Соответствие Из КлючИЗначение - Структура с данными, полученными из файла описания.
+// ПлатежнаяСистема - ПеречислениеСсылка.ПлатежныеСервисы - платежная система.
+//
+Процедура ДобавитьОписаниеСервиса(Результат, ОписаниеИзФайла, ПлатежнаяСистема)
+
+ ОписаниеСервиса = Новый Структура;
+ ОписаниеСервиса.Вставить(
+ "Описание",
+ ПолучитьОписание(ОписаниеИзФайла, "description"));
+
+ ОписаниеСервиса.Вставить(
+ "Подключение",
+ ПолучитьОписание(ОписаниеИзФайла, "settingsDescription"));
+
+ Результат.Вставить(
+ ПлатежнаяСистема,
+ ОписаниеСервиса);
+
+КонецПроцедуры
+
// Формирует описание из полученного значения
//
// Параметры:
diff --git a/src/CommonModules/ПлатежныеСистемыСлужебный/Ext/Module.bsl b/src/CommonModules/ПлатежныеСистемыСлужебный/Ext/Module.bsl
index 707cc3faf..57a7f26f8 100644
--- a/src/CommonModules/ПлатежныеСистемыСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ПлатежныеСистемыСлужебный/Ext/Module.bsl
@@ -22,20 +22,6 @@
#Область СлужебныйПрограммныйИнтерфейс
-#Область ИнтеграцияСБиблиотекойСтандартныхПодсистем
-
-// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
-//
-Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
-
- Методы.Вставить("ПодсказкиПлатежнойСистемы", Истина);
- Методы.Вставить("ПроверитьПараметрыПодключения", Истина);
- Методы.Вставить("ПроверитьПараметрыПодключенияНового", Истина);
-
-КонецПроцедуры
-
-#КонецОбласти
-
#Область ОбщегоНазначения
// Создает описание результат операции.
@@ -170,19 +156,93 @@
Если ПлатежныйСервис = ПредопределенноеЗначение("Перечисление.ПлатежныеСервисы.ОзонПэй") Тогда
Возврат НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй();
+ ИначеЕсли ПлатежныйСервис = ПредопределенноеЗначение("Перечисление.ПлатежныеСервисы.ЯндексПэй") Тогда
+ Возврат НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй();
Иначе
Возврат "";
КонецЕсли;
КонецФункции
+// Проверяет права на вызов прикладных операций платежной системы. В случае отсутствия прав, вызывается исключение.
+//
+Процедура ПроверитьПраваНаВыполнениеОперации() Экспорт
+
+ Если Не ПлатежныеСистемы.ОперацииДоступны() Тогда
+ ВызватьИсключение НСтр(
+ "ru = 'Нарушение прав доступа. Пользователю запрещено выполнение операций с платежными системами.
+ |Обратитесь к администратору.'");
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Проводит проверку, что настройка подключения заполнена и используется.
+//
+// Параметры:
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения к сервису.
+// ПараметрыНастройкиПодключения - Неопределено - Параметры настройки будут определены внутри метода.
+// - см. Справочники.НастройкиПодключенияКПлатежнымСистемам.ПараметрыНастройкиПодключения.
+//
+// Возвращаемое значение:
+// Структура:
+// * КодОшибки - Строка - строковый код возникшей ошибки.
+// Возможные значения:
+// "" - нет ошибок.
+// см. КодОшибкиНеверныйФорматЗапроса - не передан документ операции или настройка подключения к сервису.
+// см. КодОшибкиИнтеграцияНеИспользуется - настройка подключения неактивна.
+// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя.
+// * ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора.
+//
+Функция ПроверитьНастройкуПодключения(НастройкаПодключения, ПараметрыНастройкиПодключения = Неопределено) Экспорт
+
+ Результат = НовыйРезультатОперации();
+
+ Если Не ЗначениеЗаполнено(НастройкаПодключения) Тогда
+
+ Результат.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиНеверныйФорматЗапроса();
+ Результат.СообщениеОбОшибке = НСтр(
+ "ru = 'Настройка подключения к платежной системе не определена. Обратитесь к администратору.'");
+ Результат.ИнформацияОбОшибке = НСтр(
+ "ru = 'Для выполнения операции с платежной системой необходимо выполнить настройку подключения.'");
+
+ ЗаписатьИнформациюВЖурналРегистрации(Результат.ИнформацияОбОшибке, Истина);
+
+ Возврат Результат;
+
+ КонецЕсли;
+
+ Если ПараметрыНастройкиПодключения = Неопределено Тогда
+ ПараметрыНастройкиПодключения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
+ НастройкаПодключения,
+ "Используется");
+ КонецЕсли;
+
+ Если Не ПараметрыНастройкиПодключения.Используется Тогда
+
+ Результат.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиИнтеграцияНеИспользуется();
+ Результат.СообщениеОбОшибке = НСтр(
+ "ru = 'Настройка подключения не используется. Обратитесь к администратору.'");
+ Результат.ИнформацияОбОшибке = НСтр("ru = 'Настройка подключения не используется.'");
+
+ ЗаписатьИнформациюВЖурналРегистрации(Результат.ИнформацияОбОшибке, Истина);
+
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти
#Область ПрикладныеОперации
// См. ПлатежныеСистемы.ВозвратОплаты
//
-Функция ВозвратОплаты(ДокументВозврата, ДокументОплаты, НастройкаПодключения, ДополнительныеПараметры) Экспорт
+Функция ВозвратОплаты(
+ ДокументВозврата,
+ ДокументОплаты,
+ НастройкаПодключения,
+ ДополнительныеПараметры) Экспорт
ПроверитьПраваНаВыполнениеОперации();
@@ -208,6 +268,195 @@
ДокументОплаты,
ПараметрыНастройкиПодключения,
ДополнительныеПараметры,
+ Результат,
+ "ПлатежныеСистемы.ВозвратОплаты");
+
+ Возврат Результат;
+
+КонецФункции
+
+// См. ПлатежныеСистемы.АктивироватьКассовуюСсылку
+//
+Функция АктивироватьКассовуюСсылку(
+ НастройкаПодключения,
+ ПараметрыКассовойСсылки,
+ ДокументОперации,
+ ДополнительныеПараметры = Неопределено) Экспорт
+
+ ПроверитьПраваНаВыполнениеОперации();
+
+ Результат = НовыйРезультатОперации();
+ Результат.Вставить("ПлатежнаяСсылка", "");
+ Результат.Вставить("ИдентификаторОперации", "");
+
+ ПараметрыНастройкиПодключения = Справочники.НастройкиПодключенияКПлатежнымСистемам.ПараметрыНастройкиПодключения(
+ НастройкаПодключения);
+
+ Если Не ДоступнаРаботаСКассовымиСсылками(ПараметрыНастройкиПодключения.ПлатежнаяСистема) Тогда
+
+ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Платежная система %1 не поддерживает работу с кассовыми ссылками'"),
+ ПараметрыНастройкиПодключения.ПлатежнаяСистема);
+ Результат.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиНеверныйФорматЗапроса();
+ Результат.СообщениеОбОшибке = ТекстОшибки;
+ Результат.ИнформацияОбОшибке = ТекстОшибки;
+
+ Возврат Результат;
+
+ КонецЕсли;
+
+ РезультатПроверки = ПроверитьОбщиеПараметрыОперации(
+ ДокументОперации,
+ НастройкаПодключения,
+ ПараметрыНастройкиПодключения);
+
+ Если Не ПустаяСтрока(РезультатПроверки.КодОшибки) Тогда
+ ЗаполнитьЗначенияСвойств(
+ Результат,
+ РезультатПроверки,
+ "КодОшибки,СообщениеОбОшибке,ИнформацияОбОшибке");
+ Возврат Результат;
+ КонецЕсли;
+
+ ПлатежныеСистемыСобытия.ПриАктивацииКассовойСсылки(
+ ПараметрыНастройкиПодключения,
+ ПараметрыКассовойСсылки,
+ ДокументОперации,
+ ДополнительныеПараметры,
+ Результат);
+
+ Возврат Результат;
+
+КонецФункции
+
+// См. ПлатежныеСистемы.ДеактивироватьКассовуюСсылку
+//
+Функция ДеактивироватьКассовуюСсылку(
+ НастройкаПодключения,
+ ПараметрыКассовойСсылки) Экспорт
+
+ ПроверитьПраваНаВыполнениеОперации();
+
+ Результат = НовыйРезультатОперации();
+
+ ПараметрыНастройкиПодключения = Справочники.НастройкиПодключенияКПлатежнымСистемам.ПараметрыНастройкиПодключения(
+ НастройкаПодключения);
+
+ Если Не ДоступнаРаботаСКассовымиСсылками(ПараметрыНастройкиПодключения.ПлатежнаяСистема) Тогда
+
+ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Платежная система %1 не поддерживает работу с кассовыми ссылками'"),
+ ПараметрыНастройкиПодключения.ПлатежнаяСистема);
+ Результат.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиНеверныйФорматЗапроса();
+ Результат.СообщениеОбОшибке = ТекстОшибки;
+ Результат.ИнформацияОбОшибке = ТекстОшибки;
+
+ Возврат Результат;
+
+ КонецЕсли;
+
+ РезультатПроверки = ПроверитьНастройкуПодключения(
+ НастройкаПодключения,
+ ПараметрыНастройкиПодключения);
+ Если Не ПустаяСтрока(РезультатПроверки.КодОшибки) Тогда
+ ЗаполнитьЗначенияСвойств(
+ Результат,
+ РезультатПроверки,
+ "КодОшибки,СообщениеОбОшибке,ИнформацияОбОшибке");
+ Возврат Результат;
+ КонецЕсли;
+
+ ПлатежныеСистемыСобытия.ПриДеактивацииКассовойСсылки(
+ ПараметрыНастройкиПодключения,
+ ПараметрыКассовойСсылки,
+ Результат);
+
+ Возврат Результат;
+
+КонецФункции
+
+// См. ПлатежныеСистемы.ДинамическаяСсылка
+//
+Функция ДинамическаяСсылка(
+ ДокументОперации,
+ НастройкаПодключения,
+ ДополнительныеПараметры = Неопределено) Экспорт
+
+ ПроверитьПраваНаВыполнениеОперации();
+
+ Результат = НовыйРезультатОперации();
+ Результат.Вставить("ПлатежнаяСсылка", "");
+ Результат.Вставить("ИдентификаторОперации", "");
+
+ ПараметрыНастройкиПодключения = Справочники.НастройкиПодключенияКПлатежнымСистемам.ПараметрыНастройкиПодключения(
+ НастройкаПодключения);
+
+ ДоступноСозданиеДинамическихСсылок = ДоступноСозданиеДинамическихСсылок(
+ ПараметрыНастройкиПодключения.ПлатежнаяСистема);
+
+ Если ЗначениеЗаполнено(ДоступноСозданиеДинамическихСсылок.КодОшибки) Тогда
+ ЗаполнитьЗначенияСвойств(Результат, ДоступноСозданиеДинамическихСсылок);
+ Возврат Результат;
+ КонецЕсли;
+
+ РезультатПроверки = ПроверитьОбщиеПараметрыОперации(
+ ДокументОперации,
+ НастройкаПодключения,
+ ПараметрыНастройкиПодключения);
+ Если Не ПустаяСтрока(РезультатПроверки.КодОшибки) Тогда
+ ЗаполнитьЗначенияСвойств(
+ Результат,
+ РезультатПроверки,
+ "КодОшибки,СообщениеОбОшибке,ИнформацияОбОшибке");
+ Возврат Результат;
+ КонецЕсли;
+
+ ПлатежныеСистемыСобытия.ПриПолученииДинамическойСсылки(
+ ПараметрыНастройкиПодключения,
+ ДокументОперации,
+ ДополнительныеПараметры,
+ Результат);
+
+ Возврат Результат;
+
+КонецФункции
+
+// См. ПлатежныеСистемы.ОтменитьДинамическуюСсылку
+//
+Функция ОтменитьДинамическуюСсылку(ДокументОперации) Экспорт
+
+ ПроверитьПраваНаВыполнениеОперации();
+
+ Результат = НовыйРезультатОперации();
+
+ ДанныеОперации = ПлатежныеСистемы.ДанныеОперации(ДокументОперации);
+
+ Если ДанныеОперации = Неопределено Тогда
+ Результат.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиНеверныйФорматЗапроса();
+ Результат.СообщениеОбОшибке = НСтр("ru = 'Не найдена операция по указанному документу.'");
+ Результат.ИнформацияОбОшибке = Результат.СообщениеОбОшибке;
+ Возврат Результат;
+ КонецЕсли;
+
+ ДоступноСозданиеДинамическихСсылок = ДоступноСозданиеДинамическихСсылок(
+ ДанныеОперации.ПлатежнаяСистема);
+ Если ЗначениеЗаполнено(ДоступноСозданиеДинамическихСсылок.КодОшибки) Тогда
+ ЗаполнитьЗначенияСвойств(Результат, ДоступноСозданиеДинамическихСсылок);
+ Возврат Результат;
+ КонецЕсли;
+
+ РезультатПроверки = ПроверитьНастройкуПодключения(ДанныеОперации.НастройкаПодключения);
+ Если Не ПустаяСтрока(РезультатПроверки.КодОшибки) Тогда
+ ЗаполнитьЗначенияСвойств(
+ Результат,
+ РезультатПроверки,
+ "КодОшибки,СообщениеОбОшибке,ИнформацияОбОшибке");
+ Возврат Результат;
+ КонецЕсли;
+
+ ПлатежныеСистемыСобытия.ПриОтменеДинамическойСсылки(
+ ДокументОперации,
+ ДанныеОперации,
Результат);
Возврат Результат;
@@ -218,6 +467,24 @@
#Область СтатусОперации
+// Выполняет загрузку статусов операций платежных систем, по которым было отложено получение результата.
+//
+// Возвращаемое значение:
+// Массив из ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - данные обработанных документов.
+//
+Функция СтатусыОпераций() Экспорт
+
+ ОбработанныеОперации = Новый Массив;
+
+ Если ПлатежныеСистемы.ОперацииДоступны() Тогда
+ ДанныеОпераций = ДанныеОперацийСТерминальнымСтатусом(ОбработанныеОперации);
+ ОбработатьСтатусыОпераций(ДанныеОпераций, ОбработанныеОперации);
+ КонецЕсли;
+
+ Возврат ОбработанныеОперации;
+
+КонецФункции
+
// Выполняет получение статуса операции в платежной системе.
// Если терминальный статус операции был загружен ранее, то метод вернет информацию из базы данных, в противном случае
// будет выполнен запрос к сервису платежной системы.
@@ -229,11 +496,17 @@
// Если параметр заполнен, то получение статуса будет выполняться в цикле с небольшими задержками между запросами.
// Значение по умолчанию: 0 (один запрос).
// ЗапросНаличияСтатуса - Булево - если Истина, будет выполнен запрос наличия статуса.
+// ДлительнаяОперация - Булево - если Истина и ВремяОжидания = 0, то длительность будет определятся
+// общими настройками платежных систем.
//
// Возвращаемое значение:
// см. НовыйРезультатСтатусОперации
//
-Функция СтатусОперации(ДокументОперации, ВремяОжидания, ЗапросНаличияСтатуса = Истина) Экспорт
+Функция СтатусОперации(
+ ДокументОперации,
+ ВремяОжидания = 0,
+ ЗапросНаличияСтатуса = Истина,
+ ДлительнаяОперация = Ложь) Экспорт
ПроверитьПраваНаВыполнениеОперации();
@@ -241,12 +514,20 @@
СписокСвойствОшибки = "КодОшибки,СообщениеОбОшибке,ИнформацияОбОшибке";
// Чтение сохраненных данных под документу операции
- ПараметрыСтатуса = ПараметрыОпределенияСтатусаОперации(ДокументОперации);
- Если ПараметрыСтатуса = Неопределено Тогда
+ ПараметрыОперации = ПлатежныеСистемы.ДанныеОперации(ДокументОперации);
+
+ Если ПараметрыОперации = Неопределено Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Данные операции платежной системы по документу %1 не найдены. Обратитесь к администратору.'"),
Строка(ДокументОперации));
- ИначеЕсли ПустаяСтрока(ПараметрыСтатуса.ИдентификаторОплаты) Тогда
+ КонецЕсли;
+
+ ИмяПоляИдентификатор = "ИдентификаторОплаты";
+ Если ПараметрыОперации.ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй Тогда
+ ИмяПоляИдентификатор = "ИдентификаторОперации";
+ КонецЕсли;
+
+ Если ПустаяСтрока(ПараметрыОперации[ИмяПоляИдентификатор]) Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'По документу %1 отсутствует информация о выполнении операции в платежной системе.
|Необходимо повторно выполнить операцию.'"),
@@ -254,16 +535,13 @@
КонецЕсли;
// Если ранее был получен терминальный статус, то вернем его
- Если ТерминальныйСтатус(ПараметрыСтатуса.СтатусОперации) Тогда
+ Если ТерминальныйСтатус(ПараметрыОперации.СтатусОперации) Тогда
- Результат.СтатусОперации = ПараметрыСтатуса.СтатусОперации;
+ Результат.СтатусОперации = ПараметрыОперации.СтатусОперации;
ЗаполнитьЗначенияСвойств(
Результат.ПараметрыОперации,
- ПараметрыСтатуса,
- "ИдентификаторОперации,ИдентификаторОплаты,ДатаОперации,СуммаОперации");
- Результат.ПараметрыОперации.ТипОперации = ?(ПараметрыСтатуса.Оплата,
- ПлатежныеСистемыКлиентСервер.ТипОперацииОплата(),
- ПлатежныеСистемыКлиентСервер.ТипОперацииВозврат());
+ ПараметрыОперации,
+ "ИдентификаторОперации,ИдентификаторОплаты,ДатаОперации,СуммаОперации,ТипОперации");
Возврат Результат;
@@ -271,12 +549,12 @@
// Подготовка параметров настройки подключения
ПараметрыНастройкиПодключения = Справочники.НастройкиПодключенияКПлатежнымСистемам.ПараметрыНастройкиПодключения(
- ПараметрыСтатуса.НастройкаПодключения);
+ ПараметрыОперации.НастройкаПодключения);
// Проверка общих параметров подключения
РезультатПроверки = ПроверитьОбщиеПараметрыОперации(
ДокументОперации,
- ПараметрыСтатуса.НастройкаПодключения,
+ ПараметрыОперации.НастройкаПодключения,
ПараметрыНастройкиПодключения);
Если Не ПустаяСтрока(РезультатПроверки.КодОшибки) Тогда
ЗаполнитьЗначенияСвойств(Результат, РезультатПроверки, СписокСвойствОшибки);
@@ -284,29 +562,56 @@
Возврат Результат;
КонецЕсли;
- ПараметрыВызова = НастройкиПлатежныхСистемСлужебный.НовыйИтеративныйВызовОперации(ВремяОжидания);
- ПоследняяПопытка = (ПараметрыСтатуса.Оплата
- И ПараметрыСтатуса.ДатаДействияСсылки <> Дата(1, 1, 1)
- И (ПараметрыСтатуса.ДатаДействияСсылки + 600) < ТекущаяУниверсальнаяДата());
- Если ПоследняяПопытка Тогда
- // При окончании срока действия платежной ссылки, выполняется проверка статуса операции и регистрация отмены
- // динамической ссылки в ИБ, если операция так и не была завершена.
- ПараметрыВызова.МаксимальноеКоличествоЗапросов = 1;
- КонецЕсли;
+ ПоследняяПопытка = (ПараметрыОперации.ТипОперации = ПлатежныеСистемыКлиентСервер.ТипОперацииОплата()
+ И (ПараметрыОперации.ДатаДействияСсылки + 600) < ТекущаяУниверсальнаяДата());
- ВыполненВызов = Ложь;
+ РезультатПроверки = НовыйРезультатСтатусОперацииСлужебный();
- Пока НастройкиПлатежныхСистемСлужебный.ВозможенВызовОперации(ПараметрыВызова) Цикл
+ ЗаполнитьЗначенияСвойств(Результат.ПараметрыОперации, ПараметрыОперации);
+ Результат.СтатусОперации = ПараметрыОперации.СтатусОперации;
+
+ Если ВремяОжидания <> 0 Или ДлительнаяОперация Тогда
- РезультатПроверки = НовыйРезультатСтатусОперацииСлужебный();
+ ПараметрыВызова = НастройкиПлатежныхСистемСлужебный.НовыйИтеративныйВызовОперации(ВремяОжидания);
+
+ Если ПоследняяПопытка Тогда
+ // При окончании срока действия платежной ссылки, выполняется проверка статуса операции и регистрация отмены
+ // динамической ссылки в ИБ, если операция так и не была завершена.
+ ПараметрыВызова.МаксимальноеКоличествоЗапросов = 1;
+ КонецЕсли;
+
+ Пока НастройкиПлатежныхСистемСлужебный.ВозможенВызовОперации(ПараметрыВызова) Цикл
+
+ ПлатежныеСистемыСобытия.ПриПолученииСтатусаОперации(
+ ПараметрыОперации,
+ ПараметрыНастройкиПодключения,
+ ЗапросНаличияСтатуса,
+ РезультатПроверки);
+
+ Если Не ПустаяСтрока(РезультатПроверки.КодОшибки) Тогда
+ ЗаполнитьЗначенияСвойств(Результат, РезультатПроверки, СписокСвойствОшибки);
+ Результат.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОшибка();
+ Возврат Результат;
+ КонецЕсли;
+
+ Если РезультатПроверки.ОбновитьДатуЗапросаСтатуса Тогда
+ ПараметрыОперации.ДатаЗапросаСтатуса = ТекущаяУниверсальнаяДата();
+ КонецЕсли;
+
+ Если ТерминальныйСтатус(РезультатПроверки.СтатусОперации) Тогда
+ Прервать;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Иначе
+
ПлатежныеСистемыСобытия.ПриПолученииСтатусаОперации(
- ПараметрыСтатуса,
+ ПараметрыОперации,
ПараметрыНастройкиПодключения,
ЗапросНаличияСтатуса,
РезультатПроверки);
- ВыполненВызов = Истина;
-
Если Не ПустаяСтрока(РезультатПроверки.КодОшибки) Тогда
ЗаполнитьЗначенияСвойств(Результат, РезультатПроверки, СписокСвойствОшибки);
Результат.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОшибка();
@@ -314,40 +619,38 @@
КонецЕсли;
Если РезультатПроверки.ОбновитьДатуЗапросаСтатуса Тогда
- ПараметрыСтатуса.ДатаЗапросаСтатуса = ТекущаяУниверсальнаяДата();
+ ПараметрыОперации.ДатаЗапросаСтатуса = ТекущаяУниверсальнаяДата();
КонецЕсли;
-
- Если ТерминальныйСтатус(РезультатПроверки.СтатусОперации) Тогда
- Прервать;
- КонецЕсли;
-
- КонецЦикла;
-
- Если Не ВыполненВызов Тогда
- Результат.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиНеизвестнаяОшибка();
- Результат.СообщениеОбОшибке = НСтр(
- "ru = 'Не удалось получить статус операции за отведенное время. Повторите попытку.'");
- Результат.ИнформацияОбОшибке = НСтр(
- "ru = 'Не удалось получить статус операции за отведенное время. Повторите попытку.'");
- Возврат Результат;
+
КонецЕсли;
- ЗаполнитьЗначенияСвойств(Результат, РезультатПроверки);
-
Если ПоследняяПопытка
- И Результат.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииВыполняется() Тогда
+ И РезультатПроверки.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииВыполняется() Тогда
Результат.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОтменена();
КонецЕсли;
+ ЗаполнитьЗначенияСвойств(Результат, РезультатПроверки);
+
+ ЗаполнитьИсходными = СтрРазделить(
+ "ИдентификаторОперации,ИдентификаторОплаты,ТипОперации,СуммаОперации",
+ ",");
+ Для Каждого ИмяСвойства Из ЗаполнитьИсходными Цикл
+ Если ЗначениеЗаполнено(ПараметрыОперации[ИмяСвойства])
+ И Не ЗначениеЗаполнено(Результат.ПараметрыОперации[ИмяСвойства]) Тогда
+ Результат.ПараметрыОперации[ИмяСвойства] = ПараметрыОперации[ИмяСвойства];
+ КонецЕсли;
+ КонецЦикла;
+
ДанныеОперации = НовыйОбновляемыеДанныеОперации();
ДанныеОперации.СтатусОперации = Результат.СтатусОперации;
ДанныеОперации.ИдентификаторОперации = Результат.ПараметрыОперации.ИдентификаторОперации;
+ ДанныеОперации.ИдентификаторОплаты = Результат.ПараметрыОперации.ИдентификаторОплаты;
ДанныеОперации.ДатаОперации = Результат.ПараметрыОперации.ДатаОперации;
ДанныеОперации.СуммаОперации = Результат.ПараметрыОперации.СуммаОперации;
Если РезультатПроверки.ОбновитьДатуЗапросаСтатуса Тогда
- ДанныеОперации.ДатаЗапросаСтатуса = ПараметрыСтатуса.ДатаЗапросаСтатуса;
+ ДанныеОперации.ДатаЗапросаСтатуса = ПараметрыОперации.ДатаЗапросаСтатуса;
КонецЕсли;
РегистрыСведений.ИдентификаторыПлатежныхСистем.ЗаписатьДанныеОперации(ДокументОперации, ДанныеОперации);
@@ -356,49 +659,29 @@
КонецФункции
-// Получает данные для определения статуса выполнения операции в платежной системе.
-//
+// Проверяет код ошибки при выполнении операции и заносит данные в регистр, если
+// ошибка не связана с доступностью платежной системы.
+//
// Параметры:
-// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ отражающий операцию в информационной
-// базе.
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ, отражающий операцию.
+// КодОшибки - Строка - строковый код полученной ошибки.
//
-// Возвращаемое значение:
-// Неопределено - данные операции не найдены.
-// Структура:
-// * Идентификатор - Строка - внутренний идентификатор операции.
-// * ИдентификаторОперации - Строка -идентификатор операции в платежной системе.
-// * ИдентификаторОплаты - Строка - идентификатор оплаты в платежной системе.
-// * Оплата - Булево - Истина, если тип операции "Оплата", Ложь - "Возврат".
-// * СтатусОперации - Строка - статус операции в платежной системе.
-// * ДатаДействияСсылки - Дата - дата действия платежной ссылки в UTC.
-// * НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения к
-// сервису.
-// * ДатаЗапросаСтатуса - Дата - дата последней операции получения статуса в UTC.
-//
-Функция ПараметрыОпределенияСтатусаОперации(ДокументОперации) Экспорт
-
- ПараметрыСтатуса = РегистрыСведений.ИдентификаторыПлатежныхСистем.ПараметрыОпределенияСтатусаОперации(
- ДокументОперации);
-
- Если ПараметрыСтатуса = Неопределено Тогда
- Возврат Неопределено;
+Процедура ЗаписатьОшибкуВРегистр(ДокументОперации, КодОшибки) Экспорт
+
+ Если Не (КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиСервисВременноНеДоступен()
+ Или КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиОшибкаСервиса()
+ Или КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиОшибкаПодключения()
+ Или КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиБлокировкаСервисовИПП()) Тогда
+
+ ОбновляемыеДанные = НовыйОбновляемыеДанныеОперации();
+ ОбновляемыеДанные.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОшибка();
+ РегистрыСведений.ИдентификаторыПлатежныхСистем.ЗаписатьДанныеОперации(
+ ДокументОперации,
+ ОбновляемыеДанные);
+
КонецЕсли;
- Результат = Новый Структура();
- Результат.Вставить("Идентификатор", ПараметрыСтатуса.Идентификатор);
- Результат.Вставить("ИдентификаторОперации", ПараметрыСтатуса.ИдентификаторОперации);
- Результат.Вставить("ИдентификаторОплаты", ПараметрыСтатуса.ИдентификаторОплаты);
- Результат.Вставить("Оплата", ПараметрыСтатуса.Оплата);
- Результат.Вставить("СтатусОперации", ПараметрыСтатуса.СтатусОперации);
- Результат.Вставить("ДатаОперации", ПараметрыСтатуса.ДатаОперации);
- Результат.Вставить("СуммаОперации", ПараметрыСтатуса.СуммаОперации);
- Результат.Вставить("ДатаДействияСсылки", ПараметрыСтатуса.ДатаДействияСсылки);
- Результат.Вставить("НастройкаПодключения", ПараметрыСтатуса.НастройкаПодключения);
- Результат.Вставить("ДатаЗапросаСтатуса", ПараметрыСтатуса.ДатаЗапросаСтатуса);
-
- Возврат Результат;
-
-КонецФункции
+КонецПроцедуры
#КонецОбласти
@@ -419,6 +702,7 @@
// * СуммаОперации - Число - фактическая сумма операции по документу.
// * НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения к
// сервису.
+// * ПлатежнаяСистема - ПеречислениеСсылка.ПлатежныеСервисы - платежная система, через которую выполнена операция.
// * ПлатежнаяСсылка - Строка - адрес страницы по которой выполняется оплата.
// * ДатаДействияСсылки - Дата - дата действия платежной ссылки в UTC.
//
@@ -458,6 +742,7 @@
// * ДатаДействияСсылки - Дата - дата действия платежной ссылки в UTC.
// * СпособОплаты - Строка - способ оплаты. Доступные значения определяются методами
// общего модуля ПлатежныеСистемыКлиентСервер.
+// * КассоваяСсылка - Булево - признак, что операция выполняется с использованием статической ссылки.
//
Функция ДанныеОпераций(ДокументыОпераций) Экспорт
@@ -499,6 +784,32 @@
КонецФункции
+// Выполняет запись данных оплаты заказа.
+//
+// Параметры:
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ по которому была выполнена оплата.
+// ПараметрыОперации - см. ОзонПэйСлужебный.ЗаполнитьПараметрыОперации.
+// - см. ЯндексПэйСлужебный.ЗаполнитьПараметрыОперации.
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения, через
+// которую выполняется оплата.
+//
+Процедура ЗаписатьДанныеОплаты(
+ ДокументОперации,
+ ПараметрыОперации,
+ НастройкаПодключения) Экспорт
+
+ РегистрыСведений.ИдентификаторыПлатежныхСистем.НовыйВнутреннийИдентификаторОперации(
+ ДокументОперации,
+ НастройкаПодключения,
+ Истина,
+ ПараметрыОперации.ИдентификаторОплаты);
+
+ РегистрыСведений.ИдентификаторыПлатежныхСистем.ЗаписатьДанныеОперации(
+ ДокументОперации,
+ ПараметрыОперации);
+
+КонецПроцедуры
+
#КонецОбласти
#Область ЖурналРегистрации
@@ -640,6 +951,8 @@
// * ИсключаемыеПоля - Массив из Строка - наименования измерений, ресурсов или реквизитов, которые необходимо скрыть
// на форме настройки подключения.
// * ШаблоныНазначений - см. НастройкиПлатежныхСистемСлужебный.НовыйШаблоныНазначений.
+// * ИспользоватьНастройкуКассовыхСсылок - Булево - признак доступности настройки кассовых ссылок для
+// платежной системы.
//
Функция НастройкиПодключения(Знач ПлатежнаяСистема) Экспорт
@@ -650,6 +963,7 @@
Результат.Вставить("ОбъектМетаданных" , ОбъектМетаданных);
Результат.Вставить("ИсключаемыеПоля", ИсключаемыеПоля);
Результат.Вставить("ШаблоныНазначений", НастройкиПлатежныхСистемСлужебный.НовыйШаблоныНазначений());
+ Результат.Вставить("ИспользоватьНастройкуКассовыхСсылок", Ложь);
ПараметрыНастройки = Новый Структура();
ПараметрыНастройки.Вставить("ПлатежнаяСистема", ПлатежнаяСистема);
@@ -699,7 +1013,8 @@
// получить идентификатор платежной системы.
//
// Возвращаемое значение:
-// Строка - идентификатор. Допустимые значения: "ОзонПэй". Пустая строка - не удалось определить платежную систему.
+// Строка - идентификатор. Допустимые значения: "ОзонПэй", "ЯндексПэй". Пустая строка - не удалось
+// определить платежную систему.
//
Функция ИдентификаторПлатежнойСистемыПоНастройке(НастройкаПодключения) Экспорт
@@ -709,7 +1024,11 @@
| ВЫБОР
| КОГДА НастройкиПодключения.ПлатежнаяСистема = ЗНАЧЕНИЕ(Перечисление.ПлатежныеСервисы.ОзонПэй)
| ТОГДА &ОзонПэй
- | ИНАЧЕ """"
+ | ИНАЧЕ ВЫБОР
+ | КОГДА НастройкиПодключения.ПлатежнаяСистема = ЗНАЧЕНИЕ(Перечисление.ПлатежныеСервисы.ЯндексПэй)
+ | ТОГДА &ЯндексПэй
+ | ИНАЧЕ """"
+ | КОНЕЦ
| КОНЕЦ КАК ИдентификаторПлатежнойСистемы
|ИЗ
| Справочник.НастройкиПодключенияКПлатежнымСистемам КАК НастройкиПодключения
@@ -720,6 +1039,9 @@
Запрос.УстановитьПараметр(
"ОзонПэй",
НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй());
+ Запрос.УстановитьПараметр(
+ "ЯндексПэй",
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй());
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.ИдентификаторПлатежнойСистемы;
@@ -754,6 +1076,46 @@
КонецФункции
+// Определяет настройки оплат для указанной настройки подключения.
+//
+// Параметры:
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения к сервису.
+//
+// Возвращаемое значение:
+// Соответствие Из КлючИЗначение - содержит имена и значения полей регистра сведений,
+// хранящего данные о настройках оплат.
+//
+Функция ПараметрыОплатыПоНастройке(НастройкаПодключения) Экспорт
+
+ Результат = Новый Соответствие;
+
+ Если Не ЗначениеЗаполнено(НастройкаПодключения) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ ПлатежнаяСистема = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НастройкаПодключения, "ПлатежнаяСистема");
+ НастройкиПодключения = НастройкиПодключения(ПлатежнаяСистема);
+ НастройкиОплаты = РеквизитыНастройкиОплаты(НастройкиПодключения);
+
+ ЗначенияНастроек = ЗначенияНастроекОплаты(НастройкиОплаты, НастройкиПодключения, НастройкаПодключения);
+ Для Каждого КлючЗначение Из ЗначенияНастроек Цикл
+ Результат.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение);
+ КонецЦикла;
+
+ Для Каждого ОписаниеРеквизита Из НастройкиОплаты Цикл
+ Если ОписаниеРеквизита.НастройкаПодключения Тогда
+ Продолжить;
+ КонецЕсли;
+ Поиск = Результат.Получить(ОписаниеРеквизита.Имя);
+ Если Поиск = Неопределено Тогда
+ Результат.Вставить(ОписаниеРеквизита.Имя);
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти
#Область ОнлайнЗаказы
@@ -761,9 +1123,9 @@
// Выполняет заполнение параметров оплат через Платежные системы документа операции.
//
// Параметры:
-// ДокументОперации - ОпределяемыйТип.ДокументОперацииИнтернетЭквайринга - документ, для которого формируются
-// параметры оплат.
-// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения к
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ, для которого формируются
+// параметры оплат.
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения к
// платежным системам
//
// Возвращаемое значение:
@@ -797,6 +1159,8 @@
Если ПлатежныйСервис = Перечисления.ПлатежныеСервисы.ОзонПэй Тогда
Возврат НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй();
+ ИначеЕсли ПлатежныйСервис = Перечисления.ПлатежныеСервисы.ЯндексПэй Тогда
+ Возврат НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй();
Иначе
Возврат "Прочее";
КонецЕсли
@@ -915,10 +1279,10 @@
// Отзывает токены сервиса для неиспользуемых сервисом настроек подключения.
//
// Параметры:
-// НастройкаПодключения - Массив Из СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам -
+// ИспользуемыеНастройки - Массив Из СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам -
// используемые сервисом настройки подключения к платежной системе.
// ИмяСервиса - Строка - имя сервиса в котором использовались токены.
-// ИдентификаторПлатежнойСистемы - Строка - Идентификатор варианта платежной системы.
+// ИдентификаторПлатежногоСервиса - Строка - Идентификатор варианта платежной системы.
// РезультатОперации - Структура - результат получения токена:
// * КодОшибки - Строка - строковый код возникшей ошибки, который может быть обработан вызывающим методом.
// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя.
@@ -951,6 +1315,20 @@
#КонецОбласти
+#Область ИнтеграцияСБиблиотекойСтандартныхПодсистем
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+//
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПодсказкиПлатежнойСистемы", Истина);
+ Методы.Вставить("ПроверитьПараметрыПодключения", Истина);
+ Методы.Вставить("ПроверитьПараметрыПодключенияНового", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -994,6 +1372,8 @@
ВызватьИсключение НСтр("ru = 'Не заполнено значение параметра ""ПлатежнаяСистема"".'");
ИначеЕсли ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ОзонПэй Тогда
Результат = ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ОзонПэй");
+ ИначеЕсли ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй Тогда
+ Результат = ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй");
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Неклассифицированное значение параметра ""ПлатежнаяСистема"": %1'"),
@@ -1004,18 +1384,6 @@
КонецФункции
-// Проверяет права на вызов прикладных операций платежной системы. В случае отсутствия прав, вызывается исключение.
-//
-Процедура ПроверитьПраваНаВыполнениеОперации() Экспорт
-
- Если Не ПлатежныеСистемы.ОперацииДоступны() Тогда
- ВызватьИсключение НСтр(
- "ru = 'Нарушение прав доступа. Пользователю запрещено выполнение операций с платежными системами.
- |Обратитесь к администратору.'");
- КонецЕсли;
-
-КонецПроцедуры
-
// Производит валидацию общих параметров заказа.
//
// Параметры:
@@ -1127,14 +1495,79 @@
Функция ПлатежныйСервисПоИдентификатору(
ИдентификаторПлатежногоСервиса)
- Если ИдентификаторПлатежногоСервиса = "ОзонПэй" Тогда
+ Если ИдентификаторПлатежногоСервиса = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыОзонПэй() Тогда
Возврат Перечисления.ПлатежныеСервисы.ОзонПэй;
+ ИначеЕсли ИдентификаторПлатежногоСервиса = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыЯндексПэй() Тогда
+ Возврат Перечисления.ПлатежныеСервисы.ЯндексПэй;
КонецЕсли;
ВызватьИсключение НСтр("ru = 'Не удалось определить платежный сервис по идентификатору'");
КонецФункции
+// Проверяет, что для указанной платежной системы доступна работа с кассовыми ссылками.
+//
+// Параметры:
+// ПлатежнаяСистема - ПеречислениеСсылка.ПлатежныеСервисы - платежная система для которой необходимо выполнить
+// проверку.
+//
+// Возвращаемое значение:
+// Булево - результат проверки.
+//
+Функция ДоступнаРаботаСКассовымиСсылками(ПлатежнаяСистема)
+
+ Если ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ Возврат Ложь;
+
+КонецФункции
+
+// Проверяет, что для указанной платежной системы доступно прямое создание динамических ссылок.
+//
+// Параметры:
+// ПлатежнаяСистема - ПеречислениеСсылка.ПлатежныеСервисы - платежная система для которой необходимо выполнить
+// проверку.
+//
+// Возвращаемое значение:
+// см. НовыйРезультатОперации
+//
+Функция ДоступноСозданиеДинамическихСсылок(ПлатежнаяСистема)
+
+ Результат = НовыйРезультатОперации();
+
+ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Платежная система %1 не поддерживает получение платежных ссылок.'"),
+ ПлатежнаяСистема);
+
+ Если ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй Тогда
+
+ Возврат Результат;
+
+ ИначеЕсли ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ОзонПэй Тогда
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОнлайнЗаказы") Тогда
+ ТекстОшибки = НСтр("ru = 'Платежная система Ozon Pay не поддерживает прямое получение платежных ссылок.
+ |Воспользуйтесь функционалом подсистемы Онлайн-заказы'");
+ КонецЕсли;
+
+ Результат.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиНеверныйФорматЗапроса();
+ Результат.СообщениеОбОшибке = ТекстОшибки;
+ Результат.ИнформацияОбОшибке = ТекстОшибки;
+
+ Иначе
+
+ Результат.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиНеверныйФорматЗапроса();
+ Результат.СообщениеОбОшибке = ТекстОшибки;
+ Результат.ИнформацияОбОшибке = ТекстОшибки;
+
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти
#Область НастройкиПодключения
@@ -1222,6 +1655,49 @@
КонецФункции
+// Формирует текст надписи для кассовых ссылок на форме элемента справочников настроек подключения.
+//
+// Параметры:
+// ИспользоватьНастройкуКассовыхСсылок - Булево - признак доступности настройки кассовых ссылок для
+// платежной системы.
+// ДекорацияФормы - ДекорацияФормы - декорация, в которую необходимо выводить информацию;
+// Ссылка - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - Ссылка на элемент
+// справочника, для которого проверяются кассовые ссылки.
+//
+Процедура ЗаполнитьДекорациюКассовыеСсылки(ИспользоватьНастройкуКассовыхСсылок, ДекорацияФормы, Ссылка) Экспорт
+
+ Если Не ИспользоватьНастройкуКассовыхСсылок Тогда
+ ДекорацияФормы.Видимость = Ложь;
+ Возврат;
+ КонецЕсли;
+
+ Если Ссылка.Пустая() Тогда
+ Возврат;
+ КонецЕсли;
+
+ ДанныеКассовыхСсылок = Новый Структура("Количество", 0);
+ ИнтеграцияПодсистемБИП.ПриОпределенииДанныхКассовыхСсылокПлатежныеСистемы(
+ ДанныеКассовыхСсылок,
+ Ссылка);
+ ПлатежныеСистемыПереопределяемый.ПриОпределенииДанныхКассовыхСсылок(
+ ДанныеКассовыхСсылок,
+ Ссылка);
+
+ Если ДанныеКассовыхСсылок.Количество <> 0 Тогда
+ ПредставлениеСсылки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Настроить (%1)'"),
+ ДанныеКассовыхСсылок.Количество);
+ Иначе
+ ПредставлениеСсылки = НСтр("ru = 'Настроить'")
+ КонецЕсли;
+
+ ДекорацияФормы.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Кассовые QR-коды: %1'"),
+ ПредставлениеСсылки));
+
+КонецПроцедуры
+
#КонецОбласти
#Область НастройкиАутентификации
@@ -2010,7 +2486,7 @@
// * СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
// * ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора.
//
-Процедура ОтозватьТокен(НастройкаПодключения, ИмяСервиса, РезультатОперации)
+Процедура ОтозватьТокен(НастройкаПодключения, ИмяСервиса, РезультатОперации)
ИдентификаторСервиса = НастройкиПлатежныхСистемСлужебный.ИдентификаторСервисаПоИмени(ИмяСервиса);
@@ -2056,4 +2532,287 @@
#КонецОбласти
+#Область СтатусыОпераций
+
+// Определяет операции по котором необходимо выполнить получение статуса в сервисе.
+//
+// Параметры:
+// ОбработанныеОперации - Массив из ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - данные обработанных
+// документов.
+//
+// Возвращаемое значение:
+// Массив из Структура - данные операция, по которым необходимо загрузить статус:
+// * ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ, отражающий операцию в
+// информационной базе.
+// * НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка, по которой была
+// выполнена операция.
+// * ПлатежнаяСистема - ПеречислениеСсылка.ПлатежныеСервисы - платежная система, к которой относится настройка.
+// * КассоваяСсылка - Строка - кассовая ссылка, которая использовалась при оплате. Пустая строка, если
+// если оплаты была выполнена по динамической ссылке, либо использование кассовых ссылок недоступно.
+// * ИдентификаторОперации - Строка - идентификатор операции в платежной системе.
+// * ДатаДействияСсылки - Дата - срок, до которого ссылка остается активной. Применимо только к
+// операции оплаты.
+// * Оплата - Булево - Истина, если это операция оплаты.
+// * ЗапроситьСтатус - Булево - всегда Истина.
+// * ДатаЗапросаСтатуса - Дата - дата и время последнего запроса статуса.
+// * КоличествоПопыток - Число - текущее количество попыток.
+Функция ДанныеОперацийСТерминальнымСтатусом(ОбработанныеОперации)
+
+ ОтложенныеОперации = РегистрыСведений.ИдентификаторыПлатежныхСистем.ОтложенныеОперации();
+
+ ДанныеОпераций = Новый Массив;
+ ДатаЗапросаСтатуса = ТекущаяДатаСеанса();
+
+ Для Каждого КлючЗначение Из ОтложенныеОперации Цикл
+
+ Для Каждого Операция Из КлючЗначение.Значение Цикл
+
+ // Если операция уже в терминальном статусе, выполнять запрос
+ // не имеет смысла, необходимо выполнить обработку в прикладной
+ // логике и перейти к следующей.
+ Если Операция.СтатусОперации <> НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииВыполняется() Тогда
+ ПриЗагрузкеСтатусаОперации(
+ Операция.ДокументОперации,
+ Операция.НастройкаПодключения,
+ КлючЗначение.Ключ,
+ Операция.ПараметрыОперации,
+ Операция.СтатусОперации,
+ "",
+ ОбработанныеОперации);
+ Продолжить;
+ КонецЕсли;
+
+ // Формирование данных для запроса статуса статуса.
+ ОтложеннаяОперация = Новый Структура;
+ ОтложеннаяОперация.Вставить("ДокументОперации", Операция.ДокументОперации);
+ ОтложеннаяОперация.Вставить("НастройкаПодключения", Операция.НастройкаПодключения);
+ ОтложеннаяОперация.Вставить("ПлатежнаяСистема", КлючЗначение.Ключ);
+ ОтложеннаяОперация.Вставить("КассоваяСсылка", Операция.КассоваяСсылка);
+ ОтложеннаяОперация.Вставить("ИдентификаторОперации", Операция.ПараметрыОперации.ИдентификаторОперации);
+ ОтложеннаяОперация.Вставить("ДатаДействияСсылки", Операция.ДатаДействияСсылки);
+ ОтложеннаяОперация.Вставить("Оплата", Операция.Оплата);
+ ОтложеннаяОперация.Вставить("ЗапроситьСтатус", Истина);
+ ОтложеннаяОперация.Вставить("ДатаЗапросаСтатуса", ДатаЗапросаСтатуса);
+ ОтложеннаяОперация.Вставить("КоличествоПопыток", Операция.КоличествоПопыток);
+
+ ДанныеОпераций.Добавить(ОтложеннаяОперация);
+
+ КонецЦикла;
+
+ КонецЦикла;
+
+ Возврат ДанныеОпераций;
+
+КонецФункции
+
+// Формирует новое описание параметров операции, используется в длительных операциях и переопределяемых методах.
+//
+// Возвращаемое значение:
+// Структура - содержит описание параметров операции:
+// * ДатаОперации - Дата - фактическая дата операции в UTC.
+// * СуммаОперации - Число - фактическая суммы возврата по документу.
+// * ИдентификаторОперации - Строка - идентификатор текущей операции.
+// * ИдентификаторОплаты - Строка - идентификатор операции оплаты.
+//
+Функция НовыйОписаниеПараметровОперации() Экспорт
+
+ ПараметрыОперации = Новый Структура;
+ ПараметрыОперации.Вставить("ДатаОперации", Дата(1, 1, 1));
+ ПараметрыОперации.Вставить("СуммаОперации", 0);
+ ПараметрыОперации.Вставить("ИдентификаторОперации", "");
+ ПараметрыОперации.Вставить("ИдентификаторОплаты", "");
+
+ Возврат ПараметрыОперации;
+
+КонецФункции
+
+// Определяет алгоритм обработки операций, статус которых был получен регламентным заданием.
+//
+// Параметры:
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - документ, который отражает операцию в
+// информационной базе.
+// НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКИнтернетЭквайрингу - настройка выполнения операций.
+// ПлатежнаяСистема - ПеречислениеСсылка.ПлатежныеСервисы - платежная система.
+// ПараметрыОперации - см. НовыйОписаниеПараметровОперации.
+// СтатусОперации - Строка - текущее состояние операции операции.
+// СообщениеОбОшибке - Строка - сообщение пользователю. Заполняется в случае ошибки;
+// ОбработанныеОперации - Массив из ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - данные обработанных
+// документов.
+//
+Процедура ПриЗагрузкеСтатусаОперации(
+ ДокументОперации,
+ НастройкаПодключения,
+ ПлатежнаяСистема,
+ ПараметрыОперации,
+ СтатусОперации,
+ СообщениеОбОшибке,
+ ОбработанныеОперации)
+
+ Если Не (СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииВыполнена()
+ Или СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОтклонена()
+ Или СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОтменена()
+ Или СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОшибка()) Тогда
+
+ ЗаписатьИнформациюВЖурналРегистрации(
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Передан не валидный статус операции %1 в отложенную обработку.'"),
+ СтатусОперации),
+ Истина);
+ ПлатежныеСистемы.УстановитьОтложенноеПолучениеСтатуса(
+ ДокументОперации,
+ Ложь);
+
+ Возврат;
+
+ КонецЕсли;
+
+ Попытка
+
+ РезультатОбработки = Новый Структура;
+ РезультатОбработки.Вставить("СтатусОперации", СтатусОперации);
+ РезультатОбработки.Вставить("СообщениеОбОшибке", СообщениеОбОшибке);
+ РезультатОбработки.Вставить("ПараметрыОперации", ПараметрыОперации);
+
+ Обработан = Ложь;
+
+ ИнтеграцияПодсистемБИП.ПриЗагрузкеСтатусаОперацииПлатежныхСистем(
+ ДокументОперации,
+ НастройкаПодключения,
+ ПлатежнаяСистема,
+ РезультатОбработки,
+ Обработан);
+ ПлатежныеСистемыПереопределяемый.ПриЗагрузкеСтатусаОперации(
+ ДокументОперации,
+ НастройкаПодключения,
+ ПлатежнаяСистема,
+ РезультатОбработки,
+ Обработан);
+
+ Если Обработан = Истина Тогда
+ ПлатежныеСистемы.УстановитьОтложенноеПолучениеСтатуса(
+ ДокументОперации,
+ Ложь);
+ ОбработанныеОперации.Добавить(ДокументОперации);
+ КонецЕсли;
+
+ Исключение
+
+ Если ТранзакцияАктивна() Тогда
+
+ ОтменаТранзакции = Ложь;
+ Пока ТранзакцияАктивна() Цикл
+ ОтменитьТранзакцию(); // АПК:325 Отмена незакрытых транзакций.
+ ОтменаТранзакции = Истина;
+ КонецЦикла;
+
+ Если ОтменаТранзакции Тогда
+ ЗаписатьИнформациюВЖурналРегистрации(
+ НСтр("ru = 'По завершении выполнения обработчика ПлатежныеСистемыСлужебный.ПриЗагрузкеСтатусаОперации
+ |не была закрыта транзакция.'"),
+ Истина);
+ КонецЕсли;
+
+ КонецЕсли;
+
+ ЗаписатьИнформациюВЖурналРегистрации(
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),
+ Истина);
+
+ КонецПопытки;
+
+КонецПроцедуры
+
+// Загружает статусы операций.
+//
+// Параметры:
+// ДанныеОпераций - см. ДанныеОперацийСТерминальнымСтатусом.
+// ОбработанныеОперации - Массив из ОпределяемыйТип.ДокументОперацииПлатежнойСистемы - данные обработанных
+// документов.
+//
+Процедура ОбработатьСтатусыОпераций(ДанныеОпераций, ОбработанныеОперации)
+
+ ДопустимыеОперации = Новый Соответствие;
+ ПлатежныеСистемыСобытия.ПриОпределенииДопустимыхОперацийДляОпределенияСтатуса(ДопустимыеОперации);
+
+ Для Каждого ОтложеннаяОперация Из ДанныеОпераций Цикл
+ // Проверяем, какие из найденных операций могут быть обработаны в зависимости от вида операции.
+
+ ДоступныеОперации = ДопустимыеОперации.Получить(
+ ОтложеннаяОперация.ПлатежнаяСистема);
+
+ ПолучениеСтатусаНевозможно = (
+ ДоступныеОперации = Неопределено
+ Или (ОтложеннаяОперация.Оплата И Не ДоступныеОперации.Оплата)
+ Или (Не ОтложеннаяОперация.Оплата И Не ДоступныеОперации.Возврат));
+
+ Если ПолучениеСтатусаНевозможно Тогда
+ ПлатежныеСистемы.УстановитьОтложенноеПолучениеСтатуса(
+ ОтложеннаяОперация.ДокументОперации,
+ Ложь);
+ Продолжить;
+ КонецЕсли;
+
+ РезультатПроверки = СтатусОперации(
+ ОтложеннаяОперация.ДокументОперации,
+ 0,
+ ОтложеннаяОперация.ЗапроситьСтатус,
+ Истина);
+
+ Если ЗначениеЗаполнено(РезультатПроверки.КодОшибки) Тогда
+ РегистрыСведений.ИдентификаторыПлатежныхСистем.УвеличитьКоличествоПопытокЗапросаСтатуса(
+ ОтложеннаяОперация.ДокументОперации);
+ МаксимальноеКоличествоПопыток = НастройкиПлатежныхСистемСлужебный.МаксимальноеКоличествоПопытокЗапросаСтатуса(
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг(),
+ Ложь);
+ Если ОтложеннаяОперация.КоличествоПопыток >= МаксимальноеКоличествоПопыток Тогда
+ ПриЗагрузкеСтатусаОперации(
+ ОтложеннаяОперация.ДокументОперации,
+ ОтложеннаяОперация.НастройкаПодключения,
+ ОтложеннаяОперация.ПлатежнаяСистема,
+ НовыйОписаниеПараметровОперации(),
+ НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОшибка(),
+ РезультатПроверки.СообщениеОбОшибке,
+ ОбработанныеОперации);
+ КонецЕсли;
+ Продолжить;
+ КонецЕсли;
+
+ ОбновляемыеДанныеОперации = НовыйОбновляемыеДанныеОперации();
+ ОбновляемыеДанныеОперации.ИдентификаторОплаты = РезультатПроверки.ПараметрыОперации.ИдентификаторОплаты;
+ ОбновляемыеДанныеОперации.СтатусОперации = РезультатПроверки.СтатусОперации;
+ ОбновляемыеДанныеОперации.ДатаОперации = РезультатПроверки.ПараметрыОперации.ДатаОперации;
+ ОбновляемыеДанныеОперации.СуммаОперации = РезультатПроверки.ПараметрыОперации.СуммаОперации;
+ ОбновляемыеДанныеОперации.ДатаЗапросаСтатуса = ТекущаяДатаСеанса();
+
+ РегистрыСведений.ИдентификаторыПлатежныхСистем.ЗаписатьДанныеОперации(
+ ОтложеннаяОперация.ДокументОперации,
+ ОбновляемыеДанныеОперации);
+
+ Если РезультатПроверки.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииВыполнена()
+ Или РезультатПроверки.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОтклонена()
+ Или РезультатПроверки.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОтменена()
+ Или РезультатПроверки.СтатусОперации = НастройкиПлатежныхСистемКлиентСервер.СтатусОперацииОшибка() Тогда
+
+ ПараметрыОперации = НовыйОписаниеПараметровОперации();
+ ЗаполнитьЗначенияСвойств(
+ ПараметрыОперации,
+ РезультатПроверки.ПараметрыОперации);
+
+ ПриЗагрузкеСтатусаОперации(
+ ОтложеннаяОперация.ДокументОперации,
+ ОтложеннаяОперация.НастройкаПодключения,
+ ОтложеннаяОперация.ПлатежнаяСистема,
+ ПараметрыОперации,
+ РезультатПроверки.СтатусОперации,
+ РезультатПроверки.СообщениеОбОшибке,
+ ОбработанныеОперации);
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ПлатежныеСистемыСобытия/Ext/Module.bsl b/src/CommonModules/ПлатежныеСистемыСобытия/Ext/Module.bsl
index eb29e5db4..8d876a62e 100644
--- a/src/CommonModules/ПлатежныеСистемыСобытия/Ext/Module.bsl
+++ b/src/CommonModules/ПлатежныеСистемыСобытия/Ext/Module.bsl
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2025, ООО 1С-Софт
+// Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
@@ -34,13 +34,18 @@
МодульОзонПэйСобытия.ПриДобавленииОписанияПлатежныхСервисов(ОписаниеПодсистем);
КонецЕсли;
+ Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+ МодульЯндексПэйСобытия = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСобытия");
+ МодульЯндексПэйСобытия.ПриДобавленииОписанияПлатежныхСервисов(ОписаниеПодсистем);
+ КонецЕсли;
+
КонецПроцедуры
// Преобразует способ оплаты, полученный из сервиса значения соответствующие методам
// общего модуля ПлатежныеСистемыКлиентСервер.
//
// Параметры:
-// ИдентификаторСистемы - Строка - идентификатор платежной системы. Доступные значения - "ОзонПэй".
+// ИдентификаторСистемы - Строка - идентификатор платежной системы. Доступные значения - "ОзонПэй", "ЯндексПэй".
// СпособОплатыСервис - Строка - способ оплаты, полученный из сервиса.
// СпособОплаты - Строка - результат преобразования способа оплаты.
//
@@ -55,7 +60,9 @@
МодульОзонПэйСобытия = ОбщегоНазначения.ОбщийМодуль("ОзонПэйСобытия");
МодульОзонПэйСобытия.ПриОпределенииСпособаОплаты(СпособОплатыСервис, СпособОплаты);
-
+
+ // Для Яндекс Пэй способ оплаты не передается
+
КонецЕсли;
КонецПроцедуры
@@ -84,6 +91,12 @@
МодульОзонПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ОзонПэйСлужебный");
РезультатПодсказки = МодульОзонПэйСлужебный.ПодсказкиПлатежнойСистемы(ОписанияПлатежныхСистем);
+
+ ИначеЕсли ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ МодульЯндексПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСлужебный");
+ РезультатПодсказки = МодульЯндексПэйСлужебный.ПодсказкиПлатежнойСистемы(ОписанияПлатежныхСистем);
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
@@ -115,6 +128,16 @@
МодульОзонПэйСервис.КореньАдресаИнтеграции(),
МодульОзонПэйСервис.ИдентификаторПлатежнойСистемы());
+ ИначеЕсли ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ МодульЯндексПэйСервис = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСервис");
+
+ РезультатОперации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ "%1/%2",
+ МодульЯндексПэйСервис.КореньАдресаИнтеграции(),
+ МодульЯндексПэйСервис.ИдентификаторПлатежнойСистемы());
+
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось получить идентификатор платежной системы ""%1"".
@@ -135,6 +158,11 @@
Если ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ОзонПэй Тогда
МодульОзонПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ОзонПэйСлужебный");
РезультатОперации = МодульОзонПэйСлужебный.РеквизитыНастройкиАутентификации();
+
+ ИначеЕсли ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй Тогда
+ МодульЯндексПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСлужебный");
+ РезультатОперации = МодульЯндексПэйСлужебный.РеквизитыНастройкиАутентификации();
+
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось получить реквизиты настройки аутентификации платежной системы ""%1"".
@@ -158,7 +186,13 @@
МодульОзонПэйСервис = ОбщегоНазначения.ОбщийМодуль("ОзонПэйСервис");
РезультатОперации = МодульОзонПэйСервис.ПроверитьПараметрыПодключения(ДанныеАутентификации);
+
+ ИначеЕсли ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+ МодульЯндексПэйСервис = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСервис");
+ РезультатОперации = МодульЯндексПэйСервис.ПроверитьПараметрыПодключения(ДанныеАутентификации);
+
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось выполнить проверку данных авторизации платежной системы ""%1"".
@@ -191,7 +225,14 @@
МодульОзонПэйСобытия.ПриПодготовкеЗапроса_tokens_request(
ПараметрыАутентификации,
ЗаписьДанныхСообщения);
+
+ ИначеЕсли ПараметрыАутентификации.ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй Тогда
+ МодульЯндексПэйСобытия = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСобытия");
+ МодульЯндексПэйСобытия.ПриПодготовкеЗапроса_tokens_request(
+ ПараметрыАутентификации,
+ ЗаписьДанныхСообщения);
+
КонецЕсли;
КонецПроцедуры
@@ -209,17 +250,25 @@
// информационной базе.
// ПараметрыНастройкиПодключения - см. Справочники.НастройкиПодключенияКПлатежнымСистемам.ПараметрыНастройкиПодключения
// ДополнительныеПараметры - Структура, Неопределено - дополнительные настройки формирования запроса на возврат оплаты.
-// РезультатОперации - см. ПлатежныеСистемыСлужебный.ВозвратОплаты
+// РезультатОперации - см. ПлатежныеСистемыСлужебный.ВозвратОплаты.
+// ИмяФункции - Строка - имя метода из которого был выполнен вызов для вывода сообщения в случае ошибок.
//
Процедура ПриСозданииВозвратаОплаты(
ДокументВозврата,
ДокументОплаты,
ПараметрыНастройкиПодключения,
ДополнительныеПараметры,
- РезультатОперации) Экспорт
+ РезультатОперации,
+ ИмяФункции) Экспорт
Если ПараметрыНастройкиПодключения.ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ОзонПэй
И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ОзонПэй") Тогда
+
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "ДокументОплаты",
+ ДокументОплаты,
+ Метаданные.ОпределяемыеТипы.ДокументОперацииПлатежнойСистемы.Тип);
МодульОзонПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ОзонПэйСлужебный");
РезультатВозвратаОплаты = МодульОзонПэйСлужебный.ВозвратОплаты(
@@ -227,6 +276,27 @@
ДокументОплаты,
ПараметрыНастройкиПодключения.Ссылка,
ДополнительныеПараметры);
+
+ ИначеЕсли ПараметрыНастройкиПодключения.ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ // Для Яндекс Пэй можно указать строковый идентификатор, чтобы выполнить возврат по документу,
+ // созданному в другой базе.
+ ОжидаемыеТипыСвойств = Метаданные.ОпределяемыеТипы.ДокументОперацииПлатежнойСистемы.Тип.Типы();
+ ОжидаемыеТипыСвойств.Добавить(Тип("Строка"));
+
+ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
+ ИмяФункции,
+ "ДокументОплаты",
+ ДокументОплаты,
+ ОжидаемыеТипыСвойств);
+
+ МодульЯндексПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСлужебный");
+ РезультатВозвратаОплаты = МодульЯндексПэйСлужебный.ВозвратОплаты(
+ ДокументВозврата,
+ ДокументОплаты,
+ ПараметрыНастройкиПодключения.Ссылка,
+ ДополнительныеПараметры);
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
@@ -242,7 +312,7 @@
// Определяет механизм получения статуса операции в платежной системе.
//
// Параметры:
-// ПараметрыСтатуса - см. ПлатежныеСистемыСлужебный.ПараметрыОпределенияСтатусаОперации
+// ПараметрыСтатуса - см. ПлатежныеСистемы.ДанныеОперации.
// ПараметрыНастройкиПодключения - см. Справочники.НастройкиПодключенияКПлатежнымСистемам.ПараметрыНастройкиПодключения
// ЗапросНаличияСтатуса - Булево - если Истина, будет выполнен запрос наличия статуса.
// РезультатОперации - Структура - результат получения статуса операции.
@@ -261,6 +331,29 @@
ПараметрыСтатуса,
ПараметрыНастройкиПодключения.Ссылка);
+ ИначеЕсли ПараметрыНастройкиПодключения.ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ Если ПараметрыСтатуса.ТипОперации = ПлатежныеСистемыКлиентСервер.ТипОперацииОплата() Тогда
+
+ // Для Яндекс Пэй возможно получение статуса только по идентификатору заказа на оплату.
+ // Кроме того, на текущий момент, операция возврата является синхронной и не предполагает
+ // отложенное получение.
+
+ МодульЯндексПэйСервис = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСервис");
+ РезультатСтатусаОперации = МодульЯндексПэйСервис.СтатусОперации(
+ ПараметрыСтатуса,
+ ПараметрыНастройкиПодключения.Ссылка);
+
+ Иначе
+
+ РезультатСтатусаОперации = ПлатежныеСистемыСлужебный.НовыйРезультатСтатусОперацииСлужебный();
+ РезультатСтатусаОперации.КодОшибки = НастройкиПлатежныхСистемСлужебный.КодОшибкиНеверныйФорматЗапроса();
+ РезультатСтатусаОперации.СообщениеОбОшибке = НСтр("ru = 'Получение статуса операции возврата недоступно.'");
+ РезультатСтатусаОперации.ИнформацияОбОшибке = РезультатСтатусаОперации.СообщениеОбОшибке;
+
+ КонецЕсли;
+
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось получить статус операции платежной системы ""%1"".
@@ -272,6 +365,241 @@
КонецПроцедуры
+// Вызывается при активизации кассовой ссылки.
+//
+// Параметры:
+// ПараметрыНастройкиПодключения - см. Справочники.НастройкиПодключенияКПлатежнымСистемам.ПараметрыНастройкиПодключения.
+// ПараметрыКассовойСсылки - Структура - параметры ссылки, которую нужно активировать:
+// * КлючСсылки - Строка - ключ кассовой ссылки.
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы -документ, который отражает операцию оплаты
+// в информационной базе.
+// ДополнительныеПараметры - Произвольный -дополнительные настройки формирования заказа на оплату.
+// РезультатОперации - см. ПлатежныеСистемы.АктивироватьКассовуюСсылку.
+//
+Процедура ПриАктивацииКассовойСсылки(
+ ПараметрыНастройкиПодключения,
+ ПараметрыКассовойСсылки,
+ ДокументОперации,
+ ДополнительныеПараметры,
+ РезультатОперации) Экспорт
+
+ Если ПараметрыНастройкиПодключения.ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ МодульЯндексПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСлужебный");
+
+ РезультатАктивации = МодульЯндексПэйСлужебный.АктивироватьКассовуюСсылку(
+ ПараметрыНастройкиПодключения.Ссылка,
+ ПараметрыКассовойСсылки,
+ ДокументОперации,
+ ДополнительныеПараметры);
+
+ Иначе
+
+ ИнформацияДляЖурнала = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Ошибка при вызове метода ПлатежныеСистемыСобытия.ПриОтменеДинамическойСсылки.
+ |Указанная платежная система недоступна для использования в данном методе,
+ |либо соответствующая подсистема не внедрена в конфигурацию.
+ |Платежная система: %1
+ |Настройка подключения: %2'"),
+ ПараметрыНастройкиПодключения.ПлатежнаяСистема,
+ ПараметрыНастройкиПодключения.Ссылка);
+
+ ПлатежныеСистемыСлужебный.ЗаписатьИнформациюВЖурналРегистрации(
+ ИнформацияДляЖурнала,
+ Истина);
+
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось активировать кассовую ссылку с использованием платежной системы ""%1"".
+ |Обратитесь к администратору'"),
+ Строка(ПараметрыНастройкиПодключения.ПлатежнаяСистема));
+
+ КонецЕсли;
+
+ ЗаполнитьЗначенияСвойств(РезультатОперации, РезультатАктивации);
+
+КонецПроцедуры
+
+// Вызывается при деактивации кассовой ссылки.
+//
+// Параметры:
+// ПараметрыНастройкиПодключения - см. Справочники.НастройкиПодключенияКПлатежнымСистемам.ПараметрыНастройкиПодключения.
+// ПараметрыКассовойСсылки - Структура - параметры ссылки, которую нужно активировать:
+// * КлючСсылки - Строка - ключ кассовой ссылки.
+// * ИдентификаторОперации - Строка - идентификатор заказа на оплату.
+// РезультатОперации - см. ПлатежныеСистемы.ДеактивироватьКассовуюСсылку.
+//
+Процедура ПриДеактивацииКассовойСсылки(
+ ПараметрыНастройкиПодключения,
+ ПараметрыКассовойСсылки,
+ РезультатОперации) Экспорт
+
+ Если ПараметрыНастройкиПодключения.ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ МодульЯндексПэйСервис = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСервис");
+
+ РезультатДеактивации = МодульЯндексПэйСервис.ДеактивироватьКассовуюСсылку(
+ ПараметрыНастройкиПодключения.Ссылка,
+ ПараметрыКассовойСсылки);
+
+ Иначе
+
+ ИнформацияДляЖурнала = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Ошибка при вызове метода ПлатежныеСистемыСобытия.ПриДеактивацииКассовойСсылки:
+ |Указанная платежная система недоступна для использования в данном методе,
+ |либо соответствующая подсистема не внедрена в конфигурацию.
+ |Платежная система: %1
+ |Настройка подключения: %2'"),
+ ПараметрыНастройкиПодключения.ПлатежнаяСистема,
+ ПараметрыНастройкиПодключения.Ссылка);
+
+ ПлатежныеСистемыСлужебный.ЗаписатьИнформациюВЖурналРегистрации(
+ ИнформацияДляЖурнала,
+ Истина);
+
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось деактивировать кассовую ссылку с использованием платежной системы ""%1"".
+ |Обратитесь к администратору'"),
+ Строка(ПараметрыНастройкиПодключения.ПлатежнаяСистема));
+
+ КонецЕсли;
+
+ ЗаполнитьЗначенияСвойств(РезультатОперации, РезультатДеактивации);
+
+КонецПроцедуры
+
+// Вызывается при получении динамической ссылки.
+//
+// Параметры:
+// ПараметрыНастройкиПодключения - см. Справочники.НастройкиПодключенияКПлатежнымСистемам.ПараметрыНастройкиПодключения
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы -документ, который отражает операцию оплаты
+// в информационной базе.
+// ДополнительныеПараметры - Произвольный -дополнительные настройки формирования заказа на оплату.
+// РезультатОперации - см. ПлатежныеСистемы.ДинамическаяСсылка.
+//
+Процедура ПриПолученииДинамическойСсылки(
+ ПараметрыНастройкиПодключения,
+ ДокументОперации,
+ ДополнительныеПараметры,
+ РезультатОперации) Экспорт
+
+ Если ПараметрыНастройкиПодключения.ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ МодульЯндексПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСлужебный");
+
+ РезультатПолучения = МодульЯндексПэйСлужебный.ДинамическаяСсылка(
+ ДокументОперации,
+ ПараметрыНастройкиПодключения.Ссылка,
+ ДополнительныеПараметры);
+
+ Иначе
+
+ ИнформацияДляЖурнала = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Ошибка при вызове метода ПлатежныеСистемыСобытия.ПриПолученииДинамическойСсылки:
+ |Указанная платежная система недоступна для использования в данном методе,
+ |либо соответствующая подсистема не внедрена в конфигурацию.
+ |Платежная система: %1
+ |Настройка подключения: %2'"),
+ ПараметрыНастройкиПодключения.ПлатежнаяСистема,
+ ПараметрыНастройкиПодключения.Ссылка);
+
+ ПлатежныеСистемыСлужебный.ЗаписатьИнформациюВЖурналРегистрации(
+ ИнформацияДляЖурнала,
+ Истина);
+
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось получить платежную ссылку с использованием платежной системы ""%1"".
+ |Обратитесь к администратору'"),
+ Строка(ПараметрыНастройкиПодключения.ПлатежнаяСистема));
+
+ КонецЕсли;
+
+ ЗаполнитьЗначенияСвойств(РезультатОперации, РезультатПолучения);
+
+КонецПроцедуры
+
+// Вызывается при отмене динамической ссылки.
+//
+// Параметры:
+// ДокументОперации - ОпределяемыйТип.ДокументОперацииПлатежнойСистемы -документ, который отражает операцию оплаты
+// в информационной базе.
+// ДанныеОперации - см. ПлатежныеСистемы.ДанныеОперации
+// РезультатОперации - см. ПлатежныеСистемы.ОтменитьДинамическуюСсылку.
+//
+Процедура ПриОтменеДинамическойСсылки(
+ ДокументОперации,
+ ДанныеОперации,
+ РезультатОперации) Экспорт
+
+ Если ДанныеОперации.ПлатежнаяСистема = Перечисления.ПлатежныеСервисы.ЯндексПэй
+ И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
+
+ МодульЯндексПэйСлужебный = ОбщегоНазначения.ОбщийМодуль("ЯндексПэйСлужебный");
+
+ РезультатОтмены = МодульЯндексПэйСлужебный.ОтменитьДинамическуюСсылку(
+ ДокументОперации,
+ ДанныеОперации);
+
+ Иначе
+
+ ИнформацияДляЖурнала = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Ошибка при вызове метода ПлатежныеСистемыСобытия.ПриОтменеДинамическойСсылки.
+ |Указанная платежная система недоступна для использования в данном методе,
+ |либо соответствующая подсистема не внедрена в конфигурацию.
+ |Платежная система: %1
+ |Настройка подключения: %2'"),
+ ДанныеОперации.ПлатежнаяСистема,
+ ДанныеОперации.НастройкаПодключения);
+
+ ПлатежныеСистемыСлужебный.ЗаписатьИнформациюВЖурналРегистрации(
+ ИнформацияДляЖурнала,
+ Истина);
+
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось отменить платежную ссылку с использованием платежной системы ""%1"".
+ |Обратитесь к администратору'"),
+ Строка(ДанныеОперации.ПлатежнаяСистема));
+
+ КонецЕсли;
+
+ ЗаполнитьЗначенияСвойств(РезультатОперации, РезультатОтмены);
+
+КонецПроцедуры
+
+// Определяет для каких операций доступно отложенное получение статуса в разрезе платежных систем.
+//
+// Параметры:
+// ДопустимыеОперации - Соответствие Из КлючИЗначение - описание допустимых операций:
+// * Ключ - ПеречислениеСсылка.ПлатежныеСервисы - платежная системы.
+// * Значение - Структура - доступные операции:
+// ** Оплата - Булево - Истина, если доступно выполнение операций оплаты. Ложь, если оплаты и
+// получение статусов по ним возможно только с использованием подсистемы Онлайн-заказы.
+// ** Возврат - Булево - Истина, если есть метод, позволяющий получить статус возврата.
+// Ложь, если возврат является синхронной операцией и платежный сервис не предоставляет
+// механизмов получения статуса.
+//
+Процедура ПриОпределенииДопустимыхОперацийДляОпределенияСтатуса(ДопустимыеОперации) Экспорт
+
+ ДопустимыеОперации.Вставить(
+ Перечисления.ПлатежныеСервисы.ОзонПэй,
+ Новый Структура(
+ "Оплата, Возврат",
+ Истина, // Хотя оплаты в Озон Пэй возможны только через подсистему Онлайн-Заказы,
+ Истина)); // а возвраты выполняются синхронно, все же есть возможность получить статусы
+ // обеих этих операций.
+ // Поэтому здесь оба свойства = Истина.
+
+ ДопустимыеОперации.Вставить(
+ Перечисления.ПлатежныеСервисы.ЯндексПэй,
+ Новый Структура(
+ "Оплата, Возврат",
+ Истина, // Доступна прямая работа с динамическими и статическими ссылками.
+ Ложь)); // Возврат - синхронный метод. Нельзя отложить. Нет метода для получения статуса возврата.
+
+КонецПроцедуры
+
#КонецОбласти
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ПодключениеСервисовСопровождения/Ext/Module.bsl b/src/CommonModules/ПодключениеСервисовСопровождения/Ext/Module.bsl
index 8cacb6fec..08db56e95 100644
--- a/src/CommonModules/ПодключениеСервисовСопровождения/Ext/Module.bsl
+++ b/src/CommonModules/ПодключениеСервисовСопровождения/Ext/Module.bsl
@@ -365,7 +365,6 @@
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ОбновитьДанныеСервисовСопровождения");
- Методы.Вставить("ПодключениеТестовыхПериодов", Истина);
Методы.Вставить("ПодключитьТестовыйПериод", Истина);
Методы.Вставить("ПроверитьСостояниеЗапросаНаПодключение", Истина);
diff --git a/src/CommonModules/ПолучениеВнешнихКомпонент/Ext/Module.bsl b/src/CommonModules/ПолучениеВнешнихКомпонент/Ext/Module.bsl
index 221fe9343..fed2e19fd 100644
--- a/src/CommonModules/ПолучениеВнешнихКомпонент/Ext/Module.bsl
+++ b/src/CommonModules/ПолучениеВнешнихКомпонент/Ext/Module.bsl
@@ -615,7 +615,6 @@
Методы.Вставить("ИнтерактивноеОбновлениеВнешнихКомпонентИзСервиса", Истина);
Методы.Вставить("ИнтерактивноеОбновлениеВнешнихКомпонентИзФайла", Истина);
Методы.Вставить("ОбновитьНастройкиПолучениеВнешнихКомпонент");
- Методы.Вставить("ОбновлениеВнешнихКомпонент", Истина);
Методы.Вставить("УстановитьНастройкиПолученияВнешнихКомпонент");
КонецПроцедуры
diff --git a/src/CommonModules/ПолучениеОбновленийПрограммы/Ext/Module.bsl b/src/CommonModules/ПолучениеОбновленийПрограммы/Ext/Module.bsl
index 6daa620cc..0cc3b1f88 100644
--- a/src/CommonModules/ПолучениеОбновленийПрограммы/Ext/Module.bsl
+++ b/src/CommonModules/ПолучениеОбновленийПрограммы/Ext/Module.bsl
@@ -708,10 +708,8 @@
Методы.Вставить("ИсправитьРасписаниеЗагрузкиИсправлений");
Методы.Вставить("ОбновитьРасписаниеЗагрузкиИсправлений");
Методы.Вставить("ОбновитьРасписаниеЗаданияПоОбновлениюИнформацииОВерсияхПлатформы");
- Методы.Вставить("ОбновлениеИнформацииОВерсияхПлатформы", Истина);
Методы.Вставить("ОбновлениеИнформационнойБазы_ОбновитьНастройкиПолученияОбновлений_2_1_8_1");
Методы.Вставить("ПроверитьНаличиеОбновленияВФоновомРежиме", Истина);
- Методы.Вставить("РегламентноеЗаданиеПолучениеИУстановкаИсправленийКонфигурации", Истина);
КонецПроцедуры
diff --git a/src/CommonModules/ПриглашенияЭДО/Ext/Module.bsl b/src/CommonModules/ПриглашенияЭДО/Ext/Module.bsl
index c1652c747..d2e82a68b 100644
--- a/src/CommonModules/ПриглашенияЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ПриглашенияЭДО/Ext/Module.bsl
@@ -371,12 +371,13 @@
//
// Параметры:
// КлючПриглашения - Строка - значение измерения регистра сведений ПриглашенияКОбменуЭлектроннымиДокументами.
+// ЗаполнятьПредставлениеКонтрагента - Булево
//
// Возвращаемое значение:
// см. ПриглашенияЭДОСлужебный.ДанныеПриглашения
-Функция ДанныеПриглашения(КлючПриглашения) Экспорт
+Функция ДанныеПриглашения(КлючПриглашения, ЗаполнятьПредставлениеКонтрагента = Истина) Экспорт
- Возврат ПриглашенияЭДОСлужебный.ДанныеПриглашения(КлючПриглашения);
+ Возврат ПриглашенияЭДОСлужебный.ДанныеПриглашения(КлючПриглашения, ЗаполнятьПредставлениеКонтрагента);
КонецФункции
@@ -386,10 +387,11 @@
// ПараметрыПриглашения - ФиксированнаяСтруктура:
// * ИдентификаторОрганизации - Строка
// * ИдентификаторКонтрагента - Строка
+// ЗаполнятьПредставлениеКонтрагента - Булево
//
// Возвращаемое значение:
// см. ДанныеПриглашения
-Функция ДанныеПриглашенияПоПараметрам(ПараметрыПриглашения) Экспорт
+Функция ДанныеПриглашенияПоПараметрам(ПараметрыПриглашения, ЗаполнятьПредставлениеКонтрагента = Истина) Экспорт
КлючПриглашенияНаИдентификатор = ПриглашенияЭДОКлиентСервер.КлючПриглашенияНаИдентификатор();
КлючПриглашенияНаИдентификатор.ИдентификаторОрганизации = ПараметрыПриглашения.ИдентификаторОрганизации;
@@ -399,7 +401,7 @@
КлючПриглашения.Ключ = КлючПриглашенияПоНатуральнымКлючам(КлючПриглашенияНаИдентификатор);
КлючПриглашения.ИдентификаторОрганизации = ПараметрыПриглашения.ИдентификаторОрганизации;
- Возврат ДанныеПриглашения(КлючПриглашения);
+ Возврат ДанныеПриглашения(КлючПриглашения, ЗаполнятьПредставлениеКонтрагента);
КонецФункции
@@ -1041,39 +1043,65 @@
// * ИдентификаторОрганизации - Строка
// * ИдентификаторКонтрагента - Строка
// КлючУчастникаЭДО - см. НовыйКлючУчастникаЭДО.
+// КэшЦиклов - Соответствие из КлючИЗначение, Неопределено - Возвращаемый параметр, кэширует значение между циклами.
// Возвращаемое значение:
// Структура:
// * Ссылка - ОпределяемыйТип.УчастникЭДО, Неопределено - Контрагент или организация
// * ЭтоОрганизация - Булево, Неопределено - Является ли участник ЭДО организацией
-Функция УчастникЭДОПоКлючуИПриглашению(Знач ПараметрыПриглашения, Знач КлючУчастникаЭДО) Экспорт
+Функция УчастникЭДОПоКлючуИПриглашению(Знач ПараметрыПриглашения, Знач КлючУчастникаЭДО,
+ КэшЦиклов = Неопределено) Экспорт
ОписаниеУчастникаЭДО = Новый Структура("Ссылка, ЭтоОрганизация", Неопределено, Неопределено);
ДанныеПриглашения = Неопределено;
+ УчастникЭДО = Неопределено;
+ УчастникЭДОИзПриглашения = Неопределено;
Если Не ЗначениеЗаполнено(КлючУчастникаЭДО.ИНН) Тогда
Возврат ОписаниеУчастникаЭДО;
КонецЕсли;
+ КлючКэша = "";
+ КэшУчастниковЭДОПоКлючамИПриглашениям = Неопределено;
+ Если КэшЦиклов <> Неопределено Тогда
+ Если КэшЦиклов["КэшУчастниковЭДОПоКлючамИПриглашениям"] = Неопределено Тогда
+ КэшЦиклов["КэшУчастниковЭДОПоКлючамИПриглашениям"] = Новый Соответствие;
+ КонецЕсли;
+ КэшУчастниковЭДОПоКлючамИПриглашениям = КэшЦиклов["КэшУчастниковЭДОПоКлючамИПриглашениям"];
+ КонецЕсли;
+
Если Не ЗначениеЗаполнено(ПараметрыПриглашения)
Или Не ЗначениеЗаполнено(ПараметрыПриглашения.ИдентификаторКонтрагента) Тогда
Иначе
- ДанныеПриглашения = ДанныеПриглашенияПоПараметрам(ПараметрыПриглашения);
+ КлючКэша = СтрШаблон("%1/%2/%3/%4",
+ ПараметрыПриглашения.ИдентификаторОрганизации,
+ ПараметрыПриглашения.ИдентификаторКонтрагента,
+ КлючУчастникаЭДО.ИНН,
+ КлючУчастникаЭДО.КПП);
+ Если КэшУчастниковЭДОПоКлючамИПриглашениям <> Неопределено
+ И КэшУчастниковЭДОПоКлючамИПриглашениям[КлючКэша] <> Неопределено Тогда
+ Возврат КэшУчастниковЭДОПоКлючамИПриглашениям[КлючКэша];
+ КонецЕсли;
+
+ ЗаполнятьПредставлениеКонтрагента = Ложь;
+ ДанныеПриглашения = ДанныеПриглашенияПоПараметрам(ПараметрыПриглашения, ЗаполнятьПредставлениеКонтрагента);
КонецЕсли;
- Если ДанныеПриглашения = Неопределено Тогда
- Возврат ОписаниеУчастникаЭДО;
+ Если Не ДанныеПриглашения = Неопределено Тогда
+ УчастникЭДОИзПриглашения = ДанныеПриглашения.Контрагент;
КонецЕсли;
- УчастникЭДОИзПриглашения = ДанныеПриглашения.Контрагент;
Если УчастникЭДОИзПриглашения = Неопределено Тогда
УчастникЭДОИзПриглашения = ИнтеграцияЭДО.ПолучитьПустуюСсылку("Контрагенты");
КонецЕсли;
Если УчастникЭДОИзПриглашения = Неопределено Тогда
+ Если КэшУчастниковЭДОПоКлючамИПриглашениям <> Неопределено Тогда
+ КэшУчастниковЭДОПоКлючамИПриглашениям[КлючКэша] = ОписаниеУчастникаЭДО;
+ КонецЕсли;
Возврат ОписаниеУчастникаЭДО;
КонецЕсли;
@@ -1099,8 +1127,11 @@
УчастникЭДО = УчастникЭДОИзПриглашения;
КонецЕсли;
+ ДоступноКэшированиеРезультата = Истина;
Если Не ЗначениеЗаполнено(УчастникЭДО) Тогда
+ ДоступноКэшированиеРезультата = Ложь; // Кэширование не доступно, т.к. данные зависят от ДатаСведений.
+
РеквизитыКонтрагента = Новый Структура();
РеквизитыКонтрагента.Вставить("ИНН", КлючУчастникаЭДО.ИНН);
РеквизитыКонтрагента.Вставить("КПП", КлючУчастникаЭДО.КПП);
@@ -1114,6 +1145,9 @@
ОписаниеУчастникаЭДО.ЭтоОрганизация = ЭтоОрганизация;
ОписаниеУчастникаЭДО.Ссылка = УчастникЭДО;
+ Если КэшУчастниковЭДОПоКлючамИПриглашениям <> Неопределено И ДоступноКэшированиеРезультата Тогда
+ КэшУчастниковЭДОПоКлючамИПриглашениям[КлючКэша] = ОписаниеУчастникаЭДО;
+ КонецЕсли;
Возврат ОписаниеУчастникаЭДО;
КонецФункции
@@ -2023,4 +2057,12 @@
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ДанныеЗаполненияНастройкиОтправкиПриглашений", Истина);
+ Методы.Вставить("ПараметрыСвязиИдентификаторов", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ПриглашенияЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl b/src/CommonModules/ПриглашенияЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
index 85dc7303c..377f37045 100644
--- a/src/CommonModules/ПриглашенияЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ПриглашенияЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
@@ -1700,4 +1700,14 @@
КонецФункции
-#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗагрузитьПриглашенияВЦентреЭДО", Истина);
+ Методы.Вставить("ОтклонитьПриглашения", Истина);
+ Методы.Вставить("ОтправитьПриглашения", Истина);
+ Методы.Вставить("ПринятьПриглашения", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ПриглашенияЭДОСлужебный/Ext/Module.bsl b/src/CommonModules/ПриглашенияЭДОСлужебный/Ext/Module.bsl
index f40faba34..eca3cc881 100644
--- a/src/CommonModules/ПриглашенияЭДОСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ПриглашенияЭДОСлужебный/Ext/Module.bsl
@@ -315,8 +315,6 @@
КонецФункции
-// Принимает все приглашения в статусте ТребуетсяСогласие
-//
// Параметры:
// КлючиСинхронизации - см. СинхронизацияЭДОКлиентСервер.НовыеКлючиСинхронизации
// КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
@@ -813,8 +811,8 @@
|ИЗ
| РегистрСведений.ПриглашенияКОбменуЭлектроннымиДокументами КАК ПриглашенияКОбменуЭлектроннымиДокументами
|ГДЕ
- | ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторОрганизации = &ИдентификаторОрганизации
- | И ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторКонтрагента = &ИдентификаторКонтрагента";
+ | ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторКонтрагента = &ИдентификаторКонтрагента
+ | И ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторОрганизации = &ИдентификаторОрганизации";
Запрос.УстановитьПараметр("ИдентификаторОрганизации", НатуральныеКлючиПриглашения.ИдентификаторОрганизации);
Запрос.УстановитьПараметр("ИдентификаторКонтрагента", НатуральныеКлючиПриглашения.ИдентификаторКонтрагента);
@@ -825,9 +823,9 @@
|ИЗ
| РегистрСведений.ПриглашенияКОбменуЭлектроннымиДокументами КАК ПриглашенияКОбменуЭлектроннымиДокументами
|ГДЕ
- | ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторОрганизации = &ИдентификаторОрганизации
+ | ПриглашенияКОбменуЭлектроннымиДокументами.ИНН = &ИНН
+ | И ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторОрганизации = &ИдентификаторОрганизации
| И ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторОператора = &ИдентификаторОператора
- | И ПриглашенияКОбменуЭлектроннымиДокументами.ИНН = &ИНН
| И ПриглашенияКОбменуЭлектроннымиДокументами.КПП = &КПП";
Запрос.УстановитьПараметр("ИдентификаторОрганизации", НатуральныеКлючиПриглашения.ИдентификаторОрганизации);
@@ -841,8 +839,8 @@
|ИЗ
| РегистрСведений.ПриглашенияКОбменуЭлектроннымиДокументами КАК ПриглашенияКОбменуЭлектроннымиДокументами
|ГДЕ
- | ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторОрганизации = &ИдентификаторОрганизации
- | И ПриглашенияКОбменуЭлектроннымиДокументами.ИНН = &ИНН
+ | ПриглашенияКОбменуЭлектроннымиДокументами.ИНН = &ИНН
+ | И ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторОрганизации = &ИдентификаторОрганизации
| И ПриглашенияКОбменуЭлектроннымиДокументами.КПП = &КПП";
Запрос.УстановитьПараметр("ИдентификаторОрганизации", НатуральныеКлючиПриглашения.ИдентификаторОрганизации);
@@ -887,6 +885,13 @@
Если ЗначениеЗаполнено(Контрагент) Тогда
МенеджерЗаписи.Контрагент = Контрагент;
+ ИмяРеквизитаИНН = ИнтеграцияЭДО.ИмяНаличиеОбъектаРеквизитаВПрикладномРешении("ИННКонтрагента");
+ ИмяРеквизитаКПП = ИнтеграцияЭДО.ИмяНаличиеОбъектаРеквизитаВПрикладномРешении("КППКонтрагента");
+ ПараметрыКонтрагента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Контрагент,
+ ИмяРеквизитаИНН + ", " + ИмяРеквизитаКПП);
+
+ МенеджерЗаписи.ИНН = ПараметрыКонтрагента[ИмяРеквизитаИНН];
+ МенеджерЗаписи.КПП = ПараметрыКонтрагента[ИмяРеквизитаКПП];
КонецЕсли;
Если ЗначениеЗаполнено(ТекстПриглашения) Тогда
@@ -1387,6 +1392,7 @@
// Параметры:
// КлючПриглашения - см. ПриглашенияЭДОКлиентСервер.НовыйКлючПриглашения
+// ЗаполнятьПредставлениеКонтрагента - Булево
//
// Возвращаемое значение:
// Неопределено, Структура - Данные приглашения:
@@ -1410,16 +1416,10 @@
// * EmailОрганизации - Строка
// * ОбменМеждуСобственнымиОрганизациями - Булево
// * ИспользоватьЦентрЭДО - Булево
-Функция ДанныеПриглашения(КлючПриглашения) Экспорт
+Функция ДанныеПриглашения(КлючПриглашения, ЗаполнятьПредставлениеКонтрагента = Истина) Экспорт
- Отбор = УчетныеЗаписиЭДО.НовыйОтборУчетныхЗаписей();
- Отбор.УчетныеЗаписи = "&МассивИдентификаторовЭДО";
-
- ЗапросУчетныхЗаписей = УчетныеЗаписиЭДО.ЗапросУчетныхЗаписей("УчетныеЗаписиЭДО", Отбор);
-
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
+ ИтоговыйЗапрос = Новый Запрос(
+ "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПриглашенияКОбменуЭлектроннымиДокументами.Статус КАК Статус,
| ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторОрганизации КАК ИдентификаторОрганизации,
| ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторКонтрагента КАК ИдентификаторКонтрагента,
@@ -1443,17 +1443,24 @@
| УчетныеЗаписиЭДО.ИспользоватьЦентрЭДО КАК ИспользоватьЦентрЭДО
|ИЗ
| РегистрСведений.ПриглашенияКОбменуЭлектроннымиДокументами КАК ПриглашенияКОбменуЭлектроннымиДокументами
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ УчетныеЗаписиЭДО КАК УчетныеЗаписиЭДО
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.УчетныеЗаписиЭДО КАК УчетныеЗаписиЭДО
| ПО ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторОрганизации = УчетныеЗаписиЭДО.ИдентификаторЭДО
- | И ПриглашенияКОбменуЭлектроннымиДокументами.Ключ = &КлючПриглашения";
-
- Запросы = Новый Массив;
- Запросы.Добавить(ЗапросУчетныхЗаписей);
- ИтоговыйЗапрос = ОбщегоНазначенияБЭД.СоединитьЗапросы(Запрос, Запросы);
+ |ГДЕ
+ | ПриглашенияКОбменуЭлектроннымиДокументами.Ключ = &КлючПриглашения
+ | И ПриглашенияКОбменуЭлектроннымиДокументами.ИдентификаторОрганизации = &ИдентификаторОрганизации");
ИтоговыйЗапрос.УстановитьПараметр("КлючПриглашения", КлючПриглашения.Ключ);
- ИтоговыйЗапрос.УстановитьПараметр("МассивИдентификаторовЭДО",
- ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(КлючПриглашения.ИдентификаторОрганизации));
+ ИтоговыйЗапрос.УстановитьПараметр("ИдентификаторОрганизации", КлючПриглашения.ИдентификаторОрганизации);
+
+ ЗаменяемаяЧастьТекстаЗапроса = "ПРЕДСТАВЛЕНИЕ(ПриглашенияКОбменуЭлектроннымиДокументами.Контрагент)";
+ Если Не СтрНайти(ИтоговыйЗапрос.Текст, ЗаменяемаяЧастьТекстаЗапроса) Тогда
+ // Запрос всегда должен быть в консистентном состоянии с частью текста запроса.
+ ВызватьИсключение НСтр("ru = 'Не найдена заменяемая часть текста запроса.'");
+ КонецЕсли;
+ Если Не ЗаполнятьПредставлениеКонтрагента Тогда
+ ТекстЗамены = """""";
+ ИтоговыйЗапрос.Текст = СтрЗаменить(ИтоговыйЗапрос.Текст, ЗаменяемаяЧастьТекстаЗапроса, ТекстЗамены);
+ КонецЕсли;
Выборка = ИтоговыйЗапрос.Выполнить().Выбрать();
Если Не Выборка.Следующий() Тогда
@@ -1669,4 +1676,13 @@
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОтправитьПриглашения", Истина);
+ Методы.Вставить("ПринятьОтклонитьПриглашения", Истина);
+ Методы.Вставить("ШаблонСоглашенияНаРоуминг", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ПриобретениеТоваровУслугЛокализация/Ext/Module.bsl b/src/CommonModules/ПриобретениеТоваровУслугЛокализация/Ext/Module.bsl
index 193db1630..8ee2ef4c7 100644
--- a/src/CommonModules/ПриобретениеТоваровУслугЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/ПриобретениеТоваровУслугЛокализация/Ext/Module.bsl
@@ -113,6 +113,8 @@
ИнтеграцияСАТУРНУТ.ЗаполнитьПриобретениеТоваровУслугНаОснованииНакладнаяСАТУРН(Объект, ДанныеЗаполнения);
ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ИмпортПродукцииСАТУРН") Тогда
ИнтеграцияСАТУРНУТ.ЗаполнитьПриобретениеТоваровУслугНаОснованииИмпортПродукцииСАТУРН(Объект, ДанныеЗаполнения);
+ ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ДокументОПредстоящейПоставке") Тогда
+ ЗаполнитьДокументНаОснованииДОПП(Объект, ДанныеЗаполнения);
КонецЕсли;
Если ТипДанныхЗаполнения = Тип("Структура") Тогда
@@ -2740,4 +2742,31 @@
#КонецОбласти
+//++ Локализация
+
+#Область Прочее
+
+Процедура ЗаполнитьДокументНаОснованииДОПП(Объект, ДОПП)
+
+ ДанныеЗаполнения = Документы.ДокументОПредстоящейПоставке.ДанныеЗаполненияНаОсновании(ДОПП);
+
+ Шапка = ДанныеЗаполнения.Шапка;
+ Если Шапка.ТипДоговора = Перечисления.ТипыДоговоров.ВвозИзЕАЭС
+ Или Не ЗначениеЗаполнено(Шапка.Договор) Тогда
+ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС;
+ Иначе
+ Возврат;
+ КонецЕсли;
+
+ ЗаполнитьЗначенияСвойств(Объект, ДанныеЗаполнения.Шапка);
+ Объект.ВалютаВзаиморасчетов = Объект.Валюта;
+
+ Объект.Товары.Загрузить(ДанныеЗаполнения.Товары);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+//-- Локализация
+
#КонецОбласти
diff --git a/src/CommonModules/ПроверкаИПодборПродукцииИСМП/Ext/Module.bsl b/src/CommonModules/ПроверкаИПодборПродукцииИСМП/Ext/Module.bsl
index 04e70900a..0d43f4406 100644
--- a/src/CommonModules/ПроверкаИПодборПродукцииИСМП/Ext/Module.bsl
+++ b/src/CommonModules/ПроверкаИПодборПродукцииИСМП/Ext/Module.bsl
@@ -1319,9 +1319,11 @@
ПараметрыЗаказа = ПроверкаИПодборПродукцииИС.ПараметрыИнтеграцииФормПроверкиИПодбора();
ПараметрыЗаказа.ИмяРодительскойГруппыФормы = "ГруппаТовары";
ПараметрыЗаказа.РазмещатьЭлементыИнтерфейса = Истина;
+ ПараметрыЗаказа.ЕстьЭлектронныйДокумент = ЭлектронноеВзаимодействиеИСМП.ДокументСвязанСЭлектронным(Форма.Объект.Ссылка);
+ ПараметрыЗаказа.ИспользоватьКолонкуСтатусаПроверкиПодбора = Не ПараметрыЗаказа.ЕстьЭлектронныйДокумент;
ПараметрыЗаказа.ИспользоватьБезМаркируемойПродукции = Истина;
ПараметрыЗаказа.БлокироватьТабличнуюЧастьТоварыПриПроверке = Ложь;
- ПараметрыЗаказа.ИспользоватьСтатусПроверкаЗавершена = Ложь;
+ ПараметрыЗаказа.ИспользоватьСтатусПроверкаЗавершена = ПараметрыЗаказа.ЕстьЭлектронныйДокумент;;
ПараметрыЗаказа.ЕстьПравоИзменение = ПравоДоступа("Изменение", Форма.Объект.Ссылка.Метаданные());
ПараметрыЗаказа.ИмяТабличнойЧастиСерии = Неопределено;
ПараметрыЗаказа.ДоступныОбъемноСортовыеКоды = Истина;
diff --git a/src/CommonModules/ПроверкаКонтрагентаПереопределяемый.xml b/src/CommonModules/ПроверкаКонтрагентаПереопределяемый.xml
index 2ea9813d3..ee7ea1e84 100644
--- a/src/CommonModules/ПроверкаКонтрагентаПереопределяемый.xml
+++ b/src/CommonModules/ПроверкаКонтрагентаПереопределяемый.xml
@@ -14,7 +14,7 @@
false
true
true
- false
+ true
false
false
DontUse
diff --git a/src/CommonModules/ПроверкаКонтрагентов/Ext/Module.bsl b/src/CommonModules/ПроверкаКонтрагентов/Ext/Module.bsl
index f5bce0405..c37a76a85 100644
--- a/src/CommonModules/ПроверкаКонтрагентов/Ext/Module.bsl
+++ b/src/CommonModules/ПроверкаКонтрагентов/Ext/Module.bsl
@@ -2053,11 +2053,8 @@
Методы.Вставить("ВключитьПроверкуКонтрагентовВМоделиСервиса");
Методы.Вставить("ОпределитьНедействующихКонтрагентовВОтчетеФоновоеЗадание", Истина);
Методы.Вставить("ПроверитьКонтрагента", Истина);
- Методы.Вставить("ПроверитьКонтрагентаФоновоеЗадание", Истина);
- Методы.Вставить("ПроверитьКонтрагентовВДокументе", Истина);
Методы.Вставить("ПроверитьКонтрагентовПослеВключенияПроверки");
Методы.Вставить("ПроверитьКонтрагентовПослеВключенияПроверкиВФоне", Истина);
- Методы.Вставить("ПроверитьКонтрагентовРегламентноеЗадание", Истина);
Методы.Вставить("ПроверкаДоступностиСервисов", Истина);
КонецПроцедуры
diff --git a/src/CommonModules/ПроверкаКонтрагентовФНС/Ext/Module.bsl b/src/CommonModules/ПроверкаКонтрагентовФНС/Ext/Module.bsl
index f5062782a..e0a713e73 100644
--- a/src/CommonModules/ПроверкаКонтрагентовФНС/Ext/Module.bsl
+++ b/src/CommonModules/ПроверкаКонтрагентовФНС/Ext/Module.bsl
@@ -26,7 +26,6 @@
//
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
- Методы.Вставить("ПроверкаКэшаСостоянийФНС", Истина);
Методы.Вставить("УстановитьРасписаниеПроверкиКэшаСостояний");
КонецПроцедуры
diff --git a/src/CommonModules/РаботаВМоделиСервиса/Ext/Module.bsl b/src/CommonModules/РаботаВМоделиСервиса/Ext/Module.bsl
index 08e880ddf..b0e876d78 100644
--- a/src/CommonModules/РаботаВМоделиСервиса/Ext/Module.bsl
+++ b/src/CommonModules/РаботаВМоделиСервиса/Ext/Module.bsl
@@ -2774,6 +2774,17 @@
КонецФункции
+// Возвращает признак того, что информационная база находится в модели сервиса
+//
+// Возвращаемое значение:
+// Булево - Истина, если информационная база находится в модели сервиса
+//
+Функция ЭтоИнформационнаяБазаВМоделиСервиса() Экспорт
+
+ Возврат Ложь;
+
+КонецФункции
+
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
@@ -5314,12 +5325,21 @@
КонецФункции
+// Параметры:
+// ОбъектМетаданных - ОбъектМетаданных
Процедура ОтключитьИОчиститьИсториюДанных(ОбъектМетаданных)
Если ОбъектМетаданных = Неопределено Тогда
Возврат;
КонецЕсли;
+ Расширение = ОбъектМетаданных.РасширениеКонфигурации();
+
+ Если Расширение <> Неопределено
+ И Не РаботаВМоделиСервисаПовтИсп.РасширениеПоддерживаетИсториюДанных(Расширение.Имя) Тогда
+ Возврат;
+ КонецЕсли;
+
ИсторияДанных.УдалитьВерсии(ОбъектМетаданных);
НастройкиИстории = ИсторияДанных.ПолучитьНастройки(ОбъектМетаданных);
@@ -5398,8 +5418,8 @@
Если РасширенияВМоделиСервиса.ЕстьУстановленныеРасширенияИзменяющиеСтруктуруДанных() Тогда
- Задание = ТехнологияСервиса.ВыполнитьЗаданиеСРасширениями(
- "ПользователиСлужебный.АвторизоватьТекущегоПользователя",
+ Задание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
+ "РаботаВМоделиСервисаБТС.АвторизоватьТекущегоПользователя",
Неопределено,
Новый УникальныйИдентификатор,
НСтр("ru = 'Авторизация текущего пользователя'"))
@@ -5418,4 +5438,13 @@
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОбслуживаниеОбластейДанных", Истина);
+ Методы.Вставить("УдалениеНеактуальныхДанных", Истина);
+ Методы.Вставить("КонтрольРазделителейПриОбновлении");
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/РаботаВМоделиСервисаБТС/Ext/Module.bsl b/src/CommonModules/РаботаВМоделиСервисаБТС/Ext/Module.bsl
index 965a833cf..ade2629b0 100644
--- a/src/CommonModules/РаботаВМоделиСервисаБТС/Ext/Module.bsl
+++ b/src/CommonModules/РаботаВМоделиСервисаБТС/Ext/Module.bsl
@@ -1018,4 +1018,17 @@
#КонецОбласти
+Процедура АвторизоватьТекущегоПользователя() Экспорт
+
+ ПользователиСлужебный.АвторизоватьТекущегоПользователя();
+
+КонецПроцедуры
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("АвторизоватьТекущегоПользователя", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/РаботаВМоделиСервисаПовтИсп/Ext/Module.bsl b/src/CommonModules/РаботаВМоделиСервисаПовтИсп/Ext/Module.bsl
index 5a9e962f7..977b03dc3 100644
--- a/src/CommonModules/РаботаВМоделиСервисаПовтИсп/Ext/Module.bsl
+++ b/src/CommonModules/РаботаВМоделиСервисаПовтИсп/Ext/Module.bsl
@@ -413,6 +413,60 @@
КонецФункции
+// Параметры:
+// ИмяРасширения - Строка
+//
+// Возвращаемое значение:
+// ОбъектМетаданныхКонфигурация
+Функция МетаданныеПодключенногоРасширения(ИмяРасширения) Экспорт
+
+ УстановитьОтключениеБезопасногоРежима(Истина);
+ УстановитьПривилегированныйРежим(Истина);
+ НайденныеРасширения = РасширенияКонфигурации.Получить(Новый Структура("Имя", ИмяРасширения));
+ Если НайденныеРасширения.Количество() = 0 Тогда
+ ВызватьИсключение СтрШаблон(НСтр("ru = 'Расширение ""%1"" не найдено.'"), ИмяРасширения);
+ КонецЕсли;
+
+ МетаданныеРасширения = Новый ОбъектМетаданныхКонфигурация(НайденныеРасширения[0].ПолучитьДанные());
+
+ Возврат МетаданныеРасширения;
+
+КонецФункции
+
+// Параметры:
+// ИмяРасширения - Строка
+//
+// Возвращаемое значение:
+// Булево
+Функция РасширениеПоддерживаетИсториюДанных(ИмяРасширения) Экспорт
+
+ МетаданныеРасширения = РаботаВМоделиСервисаПовтИсп.МетаданныеПодключенногоРасширения(ИмяРасширения);
+ РежимСовместимости = МетаданныеРасширения.РежимСовместимостиРасширенияКонфигурации;
+
+ Если РежимСовместимости = Неопределено Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ НеПоддерживающиеРежимыСовместимости = Новый Массив();
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_1);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_2_13);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_2_16);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_3_1);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_3_2);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_3_3);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_3_4);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_3_5);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_3_6);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_3_7);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_3_8);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_3_9);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_3_10);
+ НеПоддерживающиеРежимыСовместимости.Добавить(Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_3_11);
+
+ Возврат НеПоддерживающиеРежимыСовместимости.Найти(РежимСовместимости) = Неопределено;
+
+КонецФункции
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git a/src/CommonModules/РаботаСАбонентамиЭДО/Ext/Module.bsl b/src/CommonModules/РаботаСАбонентамиЭДО/Ext/Module.bsl
index 873072d57..25fa2a4fe 100644
--- a/src/CommonModules/РаботаСАбонентамиЭДО/Ext/Module.bsl
+++ b/src/CommonModules/РаботаСАбонентамиЭДО/Ext/Module.bsl
@@ -1531,10 +1531,11 @@
| И ДанныеКонтрагентов.ИНН = СостоянияКонтрагентовБЭД.ИНН
| И ДанныеКонтрагентов.КПП = СостоянияКонтрагентовБЭД.КПП
| И &УсловиеСоединенияОбластьДанныхВспомогательныеДанные
- | ЛЕВОЕ СОЕДИНЕНИЕ ПриглашенияРеквизитыКонтрагентов КАК ПриглашенияРеквизитыКонтрагентов
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПриглашенияКОбменуЭлектроннымиДокументами КАК ПриглашенияРеквизитыКонтрагентов
| ПО ДанныеКонтрагентов.ИНН = ПриглашенияРеквизитыКонтрагентов.ИНН
| И ДанныеКонтрагентов.КПП = ПриглашенияРеквизитыКонтрагентов.КПП
| И СОКРЛП(ПриглашенияРеквизитыКонтрагентов.ИНН) <> """"
+ | И ПриглашенияРеквизитыКонтрагентов.Статус В (&СтатусыПриглашенийСИзвестнымИдентификаторомКонтрагента)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АбонентыЭДО КАК АбонентыЭДО
| ПО ДанныеКонтрагентов.ИНН = АбонентыЭДО.ИНН
| И ДанныеКонтрагентов.КПП = АбонентыЭДО.КПП
@@ -1571,18 +1572,6 @@
КонецЕсли;
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеСоединенияОбластьДанныхВспомогательныеДанные", ТекстУсловияВспомогательныхДанных);
- ОписаниеДополнительныхЗапросов = Новый Массив;
-
- ПриглашенияКонтрагенты = ПриглашенияЭДО.ЗапросПриглашений("ПриглашенияКонтрагенты");
- ОписаниеДополнительныхЗапросов.Добавить(ПриглашенияКонтрагенты);
-
- ОтборПриглашений = ПриглашенияЭДО.НовыйОтборПриглашений();
- ОтборПриглашений.Статус = "&СтатусыПриглашенийСИзвестнымИдентификаторомКонтрагента";
- ПриглашенияРеквизитыКонтрагентов = ПриглашенияЭДО.ЗапросПриглашений("ПриглашенияРеквизитыКонтрагентов", ОтборПриглашений);
- ОписаниеДополнительныхЗапросов.Добавить(ПриглашенияРеквизитыКонтрагентов);
-
- Запрос = ОбщегоНазначенияБЭД.СоединитьЗапросы(Запрос, ОписаниеДополнительныхЗапросов);
-
Запрос.УстановитьПараметр("ДанныеКонтрагентов", ДанныеКонтрагентов);
Запрос.УстановитьПараметр("СтатусПриглашенияОшибка", Перечисления.СтатусыПриглашений.Ошибка);
@@ -1711,4 +1700,16 @@
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОбновитьДанныеАбонентаИзСервисаНастроекПоИдентификатору", Истина);
+ Методы.Вставить("ПолучитьИдентификаторыВСервисе1СЭДОПоРеквизитам", Истина);
+ Методы.Вставить("ПроверитьКонтрагентаФоновоеЗадание", Истина);
+ Методы.Вставить("ПроверитьКонтрагентовРегламентноеЗаданиеВыполнения", Истина);
+ Методы.Вставить("ПроверитьКонтрагентовРегламентноеЗаданиеУправления", Истина);
+ Методы.Вставить("РейтингУчетныхЗаписей", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/РаботаСАдресами/Ext/Module.bsl b/src/CommonModules/РаботаСАдресами/Ext/Module.bsl
index d83fb3c3a..103acbaa5 100644
--- a/src/CommonModules/РаботаСАдресами/Ext/Module.bsl
+++ b/src/CommonModules/РаботаСАдресами/Ext/Module.bsl
@@ -921,169 +921,165 @@
Результат = РаботаСАдресамиКлиентСервер.ОписаниеНовойКонтактнойИнформации(
Перечисления.ТипыКонтактнойИнформации.Адрес);
+
+ НаборПолейАдреса = РаботаСАдресами.СведенияОбАдресе(Неопределено);
+ ЗаполнитьЗначенияСвойств(НаборПолейАдреса, ПоляАдреса);
ТипУникальныйИдентификатор = Тип("УникальныйИдентификатор");
- Результат.AddressType = ПоляАдреса.ТипАдреса;
- Если ПоляАдреса.ТипАдреса <> РаботаСАдресамиКлиентСервер.МуниципальныйАдрес()
- И ПоляАдреса.ТипАдреса <> РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес() Тогда
- ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Некорректный тип адреса (%1)'"),
- ПоляАдреса.ТипАдреса);
- ВызватьИсключение ТекстИсключения;
- КонецЕсли;
+ Результат.AddressType = НаборПолейАдреса.ТипАдреса;
- Если ПоляАдреса.ТипАдреса <> РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес() Тогда
- Результат.Value = ПоляАдреса.Представление;
+ Если НаборПолейАдреса.ТипАдреса <> РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес() Тогда
+ Результат.Value = НаборПолейАдреса.Представление;
Иначе
- Результат.Value = ПоляАдреса.МуниципальноеПредставление;
+ Результат.Value = НаборПолейАдреса.МуниципальноеПредставление;
КонецЕсли;
- Результат.Comment = ПоляАдреса.Комментарий;
+ Результат.Comment = НаборПолейАдреса.Комментарий;
- Результат.Country = ПоляАдреса.Страна;
- Результат.CountryCode = ПоляАдреса.КодСтраны;
+ Результат.Country = НаборПолейАдреса.Страна;
+ Результат.CountryCode = НаборПолейАдреса.КодСтраны;
- Результат.ZIPcode = ПоляАдреса.Индекс;
+ Результат.ZIPcode = НаборПолейАдреса.Индекс;
- Результат.areaCode = ПоляАдреса.КодРегиона;
+ Результат.areaCode = НаборПолейАдреса.КодРегиона;
- Результат.area = ПоляАдреса.Регион;
- Результат.areaType = ПоляАдреса.РегионСокращение;
+ Результат.area = НаборПолейАдреса.Регион;
+ Результат.areaType = НаборПолейАдреса.РегионСокращение;
- Результат.City = ПоляАдреса.Город;
- Результат.CityType = ПоляАдреса.ГородСокращение;
+ Результат.City = НаборПолейАдреса.Город;
+ Результат.CityType = НаборПолейАдреса.ГородСокращение;
- Результат.Street = ПоляАдреса.Улица;
- Результат.StreetType = ПоляАдреса.УлицаСокращение;
+ Результат.Street = НаборПолейАдреса.Улица;
+ Результат.StreetType = НаборПолейАдреса.УлицаСокращение;
- Результат.District = ПоляАдреса.Район;
- Результат.DistrictType = ПоляАдреса.РайонСокращение;
+ Результат.District = НаборПолейАдреса.Район;
+ Результат.DistrictType = НаборПолейАдреса.РайонСокращение;
- Результат.MunDistrict = ПоляАдреса.МуниципальныйРайон;
- Результат.MunDistrictType = ПоляАдреса.МуниципальныйРайонСокращение;
+ Результат.MunDistrict = НаборПолейАдреса.МуниципальныйРайон;
+ Результат.MunDistrictType = НаборПолейАдреса.МуниципальныйРайонСокращение;
- Результат.Settlement = ПоляАдреса.Поселение;
- Результат.SettlementType = ПоляАдреса.ПоселениеСокращение;
+ Результат.Settlement = НаборПолейАдреса.Поселение;
+ Результат.SettlementType = НаборПолейАдреса.ПоселениеСокращение;
- Результат.CityDistrict = ПоляАдреса.ВнутригородскойРайон;
- Результат.CityDistrictType = ПоляАдреса.ВнутригородскойРайонСокращение;
+ Результат.CityDistrict = НаборПолейАдреса.ВнутригородскойРайон;
+ Результат.CityDistrictType = НаборПолейАдреса.ВнутригородскойРайонСокращение;
- Результат.Locality = ПоляАдреса.НаселенныйПункт;
- Результат.LocalityType = ПоляАдреса.НаселенныйПунктСокращение;
+ Результат.Locality = НаборПолейАдреса.НаселенныйПункт;
+ Результат.LocalityType = НаборПолейАдреса.НаселенныйПунктСокращение;
- Результат.Territory = ПоляАдреса.Территория;
- Результат.TerritoryType = ПоляАдреса.ТерриторияСокращение;
+ Результат.Territory = НаборПолейАдреса.Территория;
+ Результат.TerritoryType = НаборПолейАдреса.ТерриторияСокращение;
- Результат.Stead = ПоляАдреса.НомерЗемельногоУчастка;
+ Результат.Stead = НаборПолейАдреса.НомерЗемельногоУчастка;
- Результат.HouseType = ПоляАдреса.Здание.ТипЗдания;
- Результат.HouseNumber = ПоляАдреса.Здание.Номер;
+ Результат.HouseType = НаборПолейАдреса.Здание.ТипЗдания;
+ Результат.HouseNumber = НаборПолейАдреса.Здание.Номер;
- Если ПоляАдреса.Свойство("Идентификаторы") Тогда
- Если ТипЗнч(ПоляАдреса.Идентификаторы.РегионИдентификатор) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.Идентификаторы.РегионИдентификатор) Тогда
- Результат.areaID = Формат(ПоляАдреса.Идентификаторы.РегионИдентификатор, "ЧРГ=' '; ЧГ=0");
+ Если НаборПолейАдреса.Свойство("Идентификаторы") Тогда
+ Если ТипЗнч(НаборПолейАдреса.Идентификаторы.РегионИдентификатор) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.Идентификаторы.РегионИдентификатор) Тогда
+ Результат.areaID = Формат(НаборПолейАдреса.Идентификаторы.РегионИдентификатор, "ЧРГ=' '; ЧГ=0");
Результат.ID = Результат.areaID;
КонецЕсли;
- Если ТипЗнч(ПоляАдреса.Идентификаторы.РайонИдентификатор) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.Идентификаторы.РайонИдентификатор) Тогда
- Результат.DistrictID = Строка(ПоляАдреса.Идентификаторы.РайонИдентификатор);
+ Если ТипЗнч(НаборПолейАдреса.Идентификаторы.РайонИдентификатор) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.Идентификаторы.РайонИдентификатор) Тогда
+ Результат.DistrictID = Строка(НаборПолейАдреса.Идентификаторы.РайонИдентификатор);
Результат.ID = Результат.DistrictID;
КонецЕсли;
- Если ТипЗнч(ПоляАдреса.Идентификаторы.ГородИдентификатор) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.Идентификаторы.ГородИдентификатор) Тогда
- Результат.CityID = Строка(ПоляАдреса.Идентификаторы.ГородИдентификатор);
+ Если ТипЗнч(НаборПолейАдреса.Идентификаторы.ГородИдентификатор) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.Идентификаторы.ГородИдентификатор) Тогда
+ Результат.CityID = Строка(НаборПолейАдреса.Идентификаторы.ГородИдентификатор);
Результат.ID = Результат.CityID;
КонецЕсли;
- Если ТипЗнч(ПоляАдреса.Идентификаторы.МуниципальныйРайонИдентификатор) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.Идентификаторы.МуниципальныйРайонИдентификатор) Тогда
- Результат.MunDistrictID = Строка(ПоляАдреса.Идентификаторы.МуниципальныйРайонИдентификатор);
+ Если ТипЗнч(НаборПолейАдреса.Идентификаторы.МуниципальныйРайонИдентификатор) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.Идентификаторы.МуниципальныйРайонИдентификатор) Тогда
+ Результат.MunDistrictID = Строка(НаборПолейАдреса.Идентификаторы.МуниципальныйРайонИдентификатор);
Результат.ID = Результат.MunDistrictID;
КонецЕсли;
- Если ТипЗнч(ПоляАдреса.Идентификаторы.ПоселениеИдентификатор) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.Идентификаторы.ПоселениеИдентификатор) Тогда
- Результат.SettlementID = Строка(ПоляАдреса.Идентификаторы.ПоселениеИдентификатор);
+ Если ТипЗнч(НаборПолейАдреса.Идентификаторы.ПоселениеИдентификатор) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.Идентификаторы.ПоселениеИдентификатор) Тогда
+ Результат.SettlementID = Строка(НаборПолейАдреса.Идентификаторы.ПоселениеИдентификатор);
Результат.ID = Результат.SettlementID;
КонецЕсли;
- Если ТипЗнч(ПоляАдреса.Идентификаторы.ВнутригородскойРайонИдентификатор) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.Идентификаторы.ВнутригородскойРайонИдентификатор) Тогда
- Результат.CityDistrictID = Строка(ПоляАдреса.Идентификаторы.ВнутригородскойРайонИдентификатор);
+ Если ТипЗнч(НаборПолейАдреса.Идентификаторы.ВнутригородскойРайонИдентификатор) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.Идентификаторы.ВнутригородскойРайонИдентификатор) Тогда
+ Результат.CityDistrictID = Строка(НаборПолейАдреса.Идентификаторы.ВнутригородскойРайонИдентификатор);
Результат.ID = Результат.CityDistrictID;
КонецЕсли;
- Если ТипЗнч(ПоляАдреса.Идентификаторы.НаселенныйПунктИдентификатор) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.Идентификаторы.НаселенныйПунктИдентификатор) Тогда
- Результат.LocalityID = Строка(ПоляАдреса.Идентификаторы.НаселенныйПунктИдентификатор);
+ Если ТипЗнч(НаборПолейАдреса.Идентификаторы.НаселенныйПунктИдентификатор) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.Идентификаторы.НаселенныйПунктИдентификатор) Тогда
+ Результат.LocalityID = Строка(НаборПолейАдреса.Идентификаторы.НаселенныйПунктИдентификатор);
Результат.ID = Результат.LocalityID;
КонецЕсли;
- Если ТипЗнч(ПоляАдреса.Идентификаторы.ТерриторияИдентификатор) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.Идентификаторы.ТерриторияИдентификатор) Тогда
- Результат.TerritoryID = Строка(ПоляАдреса.Идентификаторы.ТерриторияИдентификатор);
+ Если ТипЗнч(НаборПолейАдреса.Идентификаторы.ТерриторияИдентификатор) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.Идентификаторы.ТерриторияИдентификатор) Тогда
+ Результат.TerritoryID = Строка(НаборПолейАдреса.Идентификаторы.ТерриторияИдентификатор);
Результат.ID = Результат.TerritoryID;
КонецЕсли;
- Если ТипЗнч(ПоляАдреса.Идентификаторы.УлицаИдентификатор) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.Идентификаторы.УлицаИдентификатор) Тогда
- Результат.StreetID = Строка(ПоляАдреса.Идентификаторы.УлицаИдентификатор);
+ Если ТипЗнч(НаборПолейАдреса.Идентификаторы.УлицаИдентификатор) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.Идентификаторы.УлицаИдентификатор) Тогда
+ Результат.StreetID = Строка(НаборПолейАдреса.Идентификаторы.УлицаИдентификатор);
Результат.ID = Результат.StreetID;
КонецЕсли;
КонецЕсли;
- Если ПоляАдреса.Свойство("ИдентификаторЗемельногоУчастка")
- И ТипЗнч(ПоляАдреса.ИдентификаторЗемельногоУчастка) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.ИдентификаторЗемельногоУчастка) Тогда
- Результат.steadId = Строка(ПоляАдреса.ИдентификаторЗемельногоУчастка);
+ Если НаборПолейАдреса.Свойство("ИдентификаторЗемельногоУчастка")
+ И ТипЗнч(НаборПолейАдреса.ИдентификаторЗемельногоУчастка) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.ИдентификаторЗемельногоУчастка) Тогда
+ Результат.steadId = Строка(НаборПолейАдреса.ИдентификаторЗемельногоУчастка);
КонецЕсли;
- Если ПоляАдреса.Свойство("ИдентификаторДома")
- И ТипЗнч(ПоляАдреса.ИдентификаторДома) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.ИдентификаторДома) Тогда
- Результат.HouseID = Строка(ПоляАдреса.ИдентификаторДома);
+ Если НаборПолейАдреса.Свойство("ИдентификаторДома")
+ И ТипЗнч(НаборПолейАдреса.ИдентификаторДома) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.ИдентификаторДома) Тогда
+ Результат.HouseID = Строка(НаборПолейАдреса.ИдентификаторДома);
КонецЕсли;
- Если ПоляАдреса.Свойство("ИдентификаторАдресногоОбъекта")
- И ТипЗнч(ПоляАдреса.ИдентификаторАдресногоОбъекта) = ТипУникальныйИдентификатор
- И ЗначениеЗаполнено(ПоляАдреса.ИдентификаторАдресногоОбъекта) Тогда
- Результат.ID = Строка(ПоляАдреса.ИдентификаторАдресногоОбъекта);
+ Если НаборПолейАдреса.Свойство("ИдентификаторАдресногоОбъекта")
+ И ТипЗнч(НаборПолейАдреса.ИдентификаторАдресногоОбъекта) = ТипУникальныйИдентификатор
+ И ЗначениеЗаполнено(НаборПолейАдреса.ИдентификаторАдресногоОбъекта) Тогда
+ Результат.ID = Строка(НаборПолейАдреса.ИдентификаторАдресногоОбъекта);
КонецЕсли;
- Для Каждого ТекущийКорпус Из ПоляАдреса.Корпуса Цикл
+ Для Каждого ТекущийКорпус Из НаборПолейАдреса.Корпуса Цикл
Результат.Buildings.Добавить(УправлениеКонтактнойИнформациейКлиентСервер.ЗначениеСтроенияИлиПомещения(ТекущийКорпус.ТипКорпуса, ТекущийКорпус.Номер));
КонецЦикла;
- Для Каждого ТекущееПомещение Из ПоляАдреса.Помещения Цикл
+ Для Каждого ТекущееПомещение Из НаборПолейАдреса.Помещения Цикл
Результат.Apartments.Добавить(УправлениеКонтактнойИнформациейКлиентСервер.ЗначениеСтроенияИлиПомещения(ТекущееПомещение.ТипПомещения, ТекущееПомещение.Номер));
КонецЦикла;
// Заполнение кода КЛАДР последнего в иерархии адресного объекта.
- Если ПоляАдреса.Свойство("КодыКЛАДР") Тогда
- Если Не ПустаяСтрока(ПоляАдреса.КодыКЛАДР.Улица) Тогда
- Результат.CodeKLADR = ПоляАдреса.КодыКЛАДР.Улица;
- ИначеЕсли Не ПустаяСтрока(ПоляАдреса.КодыКЛАДР.НаселенныйПункт) Тогда
- Результат.CodeKLADR = ПоляАдреса.КодыКЛАДР.НаселенныйПункт;
- ИначеЕсли Не ПустаяСтрока(ПоляАдреса.КодыКЛАДР.Город) Тогда
- Результат.CodeKLADR = ПоляАдреса.КодыКЛАДР.Город;
- ИначеЕсли Не ПустаяСтрока(ПоляАдреса.КодыКЛАДР.Район) Тогда
- Результат.CodeKLADR = ПоляАдреса.КодыКЛАДР.Район;
- ИначеЕсли Не ПустаяСтрока(ПоляАдреса.КодыКЛАДР.Регион) Тогда
- Результат.CodeKLADR = ПоляАдреса.КодыКЛАДР.Регион;
+ Если НаборПолейАдреса.Свойство("КодыКЛАДР") Тогда
+ Если Не ПустаяСтрока(НаборПолейАдреса.КодыКЛАДР.Улица) Тогда
+ Результат.CodeKLADR = НаборПолейАдреса.КодыКЛАДР.Улица;
+ ИначеЕсли Не ПустаяСтрока(НаборПолейАдреса.КодыКЛАДР.НаселенныйПункт) Тогда
+ Результат.CodeKLADR = НаборПолейАдреса.КодыКЛАДР.НаселенныйПункт;
+ ИначеЕсли Не ПустаяСтрока(НаборПолейАдреса.КодыКЛАДР.Город) Тогда
+ Результат.CodeKLADR = НаборПолейАдреса.КодыКЛАДР.Город;
+ ИначеЕсли Не ПустаяСтрока(НаборПолейАдреса.КодыКЛАДР.Район) Тогда
+ Результат.CodeKLADR = НаборПолейАдреса.КодыКЛАДР.Район;
+ ИначеЕсли Не ПустаяСтрока(НаборПолейАдреса.КодыКЛАДР.Регион) Тогда
+ Результат.CodeKLADR = НаборПолейАдреса.КодыКЛАДР.Регион;
КонецЕсли;
КонецЕсли;
- Если ПоляАдреса.Свойство("ДополнительныеКоды") Тогда
- Результат.OKTMO = ПоляАдреса.ДополнительныеКоды.ОКТМО;
- Результат.OKATO = ПоляАдреса.ДополнительныеКоды.ОКАТО;
- Результат.IFNSFLCode = ПоляАдреса.ДополнительныеКоды.КодИФНСФЛ;
- Результат.IFNSULCode = ПоляАдреса.ДополнительныеКоды.КодИФНСЮЛ;
- Результат.IFNSFLAreaCode = ПоляАдреса.ДополнительныеКоды.КодУчасткаИФНСФЛ;
- Результат.IFNSULAreaCode = ПоляАдреса.ДополнительныеКоды.КодУчасткаИФНСЮЛ;
+ Если НаборПолейАдреса.Свойство("ДополнительныеКоды") Тогда
+ Результат.OKTMO = НаборПолейАдреса.ДополнительныеКоды.ОКТМО;
+ Результат.OKATO = НаборПолейАдреса.ДополнительныеКоды.ОКАТО;
+ Результат.IFNSFLCode = НаборПолейАдреса.ДополнительныеКоды.КодИФНСФЛ;
+ Результат.IFNSULCode = НаборПолейАдреса.ДополнительныеКоды.КодИФНСЮЛ;
+ Результат.IFNSFLAreaCode = НаборПолейАдреса.ДополнительныеКоды.КодУчасткаИФНСФЛ;
+ Результат.IFNSULAreaCode = НаборПолейАдреса.ДополнительныеКоды.КодУчасткаИФНСЮЛ;
КонецЕсли;
Если Не ЗначениеЗаполнено(Результат.Value) Тогда
@@ -2754,6 +2750,7 @@
НаименованиеСокращение = УправлениеКонтактнойИнформациейКлиентСервер.НаименованиеСокращение(ЧастиАдреса[2]);
Результат.area = НаименованиеСокращение.Наименование;
Результат.areaType = НаименованиеСокращение.Сокращение;
+ Результат.areaValue = ОфициальноеНаименованиеРегиона(Результат.area);
НаименованиеСокращение = УправлениеКонтактнойИнформациейКлиентСервер.НаименованиеСокращение(ЧастиАдреса[3]);
Результат.District = НаименованиеСокращение.Наименование;
@@ -2803,6 +2800,7 @@
СубъектРФ = УправлениеКонтактнойИнформациейКлиентСервер.НаименованиеСокращение(АдресРФ.СубъектРФ);
Результат.area = Строка(СубъектРФ.Наименование);
Результат.areaType = Строка(СубъектРФ.Сокращение);
+ Результат.areaValue = ОфициальноеНаименованиеРегиона(Результат.area);
РайонАдреса = УправлениеКонтактнойИнформациейКлиентСервер.НаименованиеСокращение(РайонАдреса(АдресРФ));
Результат.District = Строка(РайонАдреса.Наименование);
@@ -2812,9 +2810,11 @@
Результат.City = Строка(Город.Наименование);
Результат.CityType = Строка(Город.Сокращение);
- НаселПункт = УправлениеКонтактнойИнформациейКлиентСервер.НаименованиеСокращение(АдресРФ.НаселПункт);
- Результат.Locality = Строка(НаселПункт.Наименование);
- Результат.LocalityType = Строка(НаселПункт.Сокращение);
+ Если ЗначениеГородаОтличаетсяОтНаселенногоПункта(АдресРФ.Город, АдресРФ.НаселПункт) Тогда
+ НаселПункт = УправлениеКонтактнойИнформациейКлиентСервер.НаименованиеСокращение(АдресРФ.НаселПункт);
+ Результат.Locality = Строка(НаселПункт.Наименование);
+ Результат.LocalityType = Строка(НаселПункт.Сокращение);
+ КонецЕсли;
Улица = УправлениеКонтактнойИнформациейКлиентСервер.НаименованиеСокращение(АдресРФ.Улица);
Результат.Street = Строка(Улица.Наименование);
@@ -2862,6 +2862,10 @@
КонецФункции
+Функция ЗначениеГородаОтличаетсяОтНаселенногоПункта(Город, НаселенныйПункт)
+ Возврат СтрСравнить(Город, НаселенныйПункт) <> 0;
+КонецФункции
+
Функция ПреобразоватьКлючЗначениеВСтруктуру(Знач ЗначенияПолей, Знач Представление)
@@ -3349,8 +3353,8 @@
АдресИзJSON = СтрокаАдреса.АдресJSON; // см. РаботаСАдресамиКлиентСервер.ОписаниеНовойКонтактнойИнформации
- АдресПоПолям = Новый Структура(Новый ФиксированнаяСтруктура(ПодготовленныеПоляАдреса)); // см. РаботаСАдресамиКлиентСервер.ПоляАдреса
-
+ АдресПоПолям = ОбщегоНазначения.СкопироватьРекурсивно(ПодготовленныеПоляАдреса); // см. РаботаСАдресамиКлиентСервер.ПоляАдреса
+
// Основные сведения
АдресПоПолям.Комментарий = АдресИзJSON.Comment;
АдресПоПолям.Индекс = АдресИзJSON.ZipCode;
@@ -3385,8 +3389,8 @@
СоответствиеСокращений.Вставить(ЧастьАдреса.Значение.Уровень, ТипКраткий);
Если Параметры.КодыАдреса Или Параметры.КодыКЛАДР Тогда
- Идентификаторы.Вставить(ЧастьАдреса.Значение.Имя + "Идентификатор", ИдентификаторТекущегоУровня);
- Идентификаторы.Вставить(ЧастьАдреса.Значение.Имя, ИдентификаторТекущегоУровня);
+ АдресПоПолям.Идентификаторы.Вставить(ЧастьАдреса.Значение.Имя + "Идентификатор", ИдентификаторТекущегоУровня);
+ АдресПоПолям.Идентификаторы.Вставить(ЧастьАдреса.Значение.Имя, ИдентификаторТекущегоУровня);
КонецЕсли;
УровеньИдентификатора = ?(ЧастьАдреса.Значение.Уровень < 10, ЧастьАдреса.Значение.Уровень * 10, ЧастьАдреса.Значение.Уровень);
diff --git a/src/CommonModules/РаботаСКлассификаторами/Ext/Module.bsl b/src/CommonModules/РаботаСКлассификаторами/Ext/Module.bsl
index be5876898..da14ec58b 100644
--- a/src/CommonModules/РаботаСКлассификаторами/Ext/Module.bsl
+++ b/src/CommonModules/РаботаСКлассификаторами/Ext/Module.bsl
@@ -871,7 +871,6 @@
Методы.Вставить("ИнтерактивноеОбновлениеКлассификаторовИзФайла", Истина);
Методы.Вставить("НастроитьОбновленияКлассификаторов");
Методы.Вставить("ОбновитьНастройкиРаботыСКлассификаторами");
- Методы.Вставить("ОбновлениеКлассификаторов", Истина);
КонецПроцедуры
diff --git a/src/CommonModules/РаботаСНоменклатурой/Ext/Module.bsl b/src/CommonModules/РаботаСНоменклатурой/Ext/Module.bsl
index c0c73b4aa..845915dcc 100644
--- a/src/CommonModules/РаботаСНоменклатурой/Ext/Module.bsl
+++ b/src/CommonModules/РаботаСНоменклатурой/Ext/Module.bsl
@@ -1058,6 +1058,60 @@
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПолучитьКатегорииНаПутиКЭлементу", Истина);
+ Методы.Вставить("ПолучитьКатегорииНаПутиКЭлементуСКорневымиКатегориями", Истина);
+ Методы.Вставить("НайтиКатегорииПоСтрокеПоиска", Истина);
+ Методы.Вставить("ПолучитьКорневыеКатегории", Истина);
+ Методы.Вставить("ПолучитьПредставлениеДочернихКатегорий", Истина);
+ Методы.Вставить("ПолучитьКраткоеОписаниеДочернихКатегорий", Истина);
+ Методы.Вставить("ПолучитьПолноеОписаниеДочернихКатегорий", Истина);
+ Методы.Вставить("ПолучитьПредставлениеКатегорииПоИдентификатору", Истина);
+ Методы.Вставить("ПолучитьОписаниеКатегорииПоИдентификатору", Истина);
+ Методы.Вставить("ПолучитьПолноеОписаниеКатегорииПоИдентификатору", Истина);
+ Методы.Вставить("ПолучитьДанныеКатегорийСервиса", Истина);
+ Методы.Вставить("ПолучитьДополнительныеРеквизитыКатегорий", Истина);
+ Методы.Вставить("ПолучитьЗначенияДополнительногоРеквизитаКатегории", Истина);
+ Методы.Вставить("ПолучитьФильтрыКатегории", Истина);
+ Методы.Вставить("ПолучитьПроизводителейКатегории", Истина);
+ Методы.Вставить("СформироватьПредставлениеКарточкиКатегории", Истина);
+ Методы.Вставить("ЗагрузитьКатегории", Истина);
+ Методы.Вставить("ПолучитьЗначенияСоответствующиеЗаданным", Истина);
+
+ Методы.Вставить("ПолучитьДанныеНоменклатурыСервиса", Истина);
+ Методы.Вставить("ПолучитьПереченьНоменклатуры", Истина);
+ Методы.Вставить("СформироватьПредставленияКарточекНоменклатуры", Истина);
+ Методы.Вставить("ЗагрузитьНоменклатуруИХарактеристики", Истина);
+ Методы.Вставить("КоличествоНоменклатурыПоСтрокеПоиска", Истина);
+ Методы.Вставить("КупитьКарточкиНоменклатуры", Истина);
+ Методы.Вставить("ПолучитьНоменклатуруПоШтрихкодам", Истина);
+ Методы.Вставить("ПараметрыЗаполненияФормыНоменклатурыПодготовлены", Истина);
+
+ Методы.Вставить("ЗакэшироватьИзображенияБаннеров", Истина);
+ Методы.Вставить("ПроверитьСостояниеСервиса", Истина);
+
+ Методы.Вставить("ПолучитьОбновленияВидовНоменклатуры", Истина);
+ Методы.Вставить("ПолучитьОбновленияНоменклатуры", Истина);
+
+ Методы.Вставить("ДанныеСертификатаСоответствия", Истина);
+ Методы.Вставить("ДанныеДекларацииСоответствия", Истина);
+
+ Методы.Вставить("ПолучитьТоварыНациональногоКаталогаКПодписанию", Истина);
+ Методы.Вставить("ПодписатьТоварыНациональногоКаталога", Истина);
+
+ Методы.Вставить("ВыгрузитьНоменклатуру", Истина);
+ Методы.Вставить("ОбновитьВариантыСопоставленияНоменклатуры", Истина);
+ Методы.Вставить("ОбновлениеНоменклатуры", Истина);
+ Методы.Вставить("ОбработкаОчередиЗапросовФСА", Истина);
+ Методы.Вставить("ПоискСоответствийНоменклатурыСервиса", Истина);
+ Методы.Вставить("ПолучитьРеквизитыРубрикатора", Истина);
+ Методы.Вставить("СохранитьПодтвержденныеСопоставления", Истина);
+ Методы.Вставить("СтатистикаСопоставленияНоменклатуры", Истина);
+
+КонецПроцедуры
+
// См. ЭлектронноеВзаимодействие.ПриПолученииСпискаШаблонов.
Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт
@@ -3180,8 +3234,8 @@
// Поиск категорий по строке поиска.
//
// Параметры:
-// ПоисковаяСтрока - Строка - поисковая строка.
-// АдресРезультата - Строка - адрес результата.
+// ПараметрыПоиска - см. РаботаСНоменклатуройСлужебныйКлиентСервер.ПараметрыПоискаКатегорийПоСтроке.
+// АдресРезультата - Строка - адрес результата.
//
Процедура НайтиКатегорииПоСтрокеПоиска(Знач ПараметрыПоиска, Знач АдресРезультата) Экспорт
@@ -3594,21 +3648,16 @@
НастройкиВыгрузки = РаботаСНоменклатуройСлужебный.НастройкиВыгрузкиНоменклатуры();
- Для каждого ОписаниеНастройкиВыгрузки Из НастройкиВыгрузки Цикл
+ Для Каждого ОписаниеНастройкиВыгрузки Из НастройкиВыгрузки Цикл
НастройкаВыгрузки = ОписаниеНастройкиВыгрузки.Значение;
+
Если ТипЗнч(НастройкаВыгрузки) <> Тип("Структура") Тогда
Продолжить;
КонецЕсли;
- РаботаСНоменклатуройСлужебный.ПроверитьГотовностьНоменклатурыКВыгрузке(НастройкаВыгрузки);
- РаботаСНоменклатуройСлужебный.ОбновитьПараметрыНастройкиВыгрузки(ОписаниеНастройкиВыгрузки.Ключ,
- Новый Структура("ИдентификаторЗадания", "РегламентноеЗадание"));
- РаботаСНоменклатуройСлужебный.ВыгрузитьДанныеНоменклатуры(НастройкаВыгрузки);
+
Если НастройкаВыгрузки.Свойство("ОповещатьОНовых") И НастройкаВыгрузки.ОповещатьОНовых = Истина Тогда
РаботаСНоменклатуройСлужебный.НайтиПроверитьНовуюНоменклатуру(НастройкаВыгрузки);
КонецЕсли;
- Если НастройкаВыгрузки.Свойство("ВыгружатьВНациональныйКаталог") И НастройкаВыгрузки.ВыгружатьВНациональныйКаталог = Истина Тогда
- РаботаСНоменклатуройСлужебный.ОбновитьСостоянияВыгрузкиНоменклатуры(НастройкаВыгрузки);
- КонецЕсли;
КонецЦикла;
КонецПроцедуры
@@ -14860,6 +14909,7 @@
Сумма = Сумма + Коэффициент * (ВремКодСимвола - 48);
Коэффициент = 4 - Коэффициент;
КонецЦикла;
+
Сумма = (10 - Сумма % 10) % 10;
КонтрольныйСимвол = Символ(Сумма + 48);
diff --git a/src/CommonModules/РаботаСНоменклатуройСлужебный/Ext/Module.bsl b/src/CommonModules/РаботаСНоменклатуройСлужебный/Ext/Module.bsl
index e49172e57..730724b16 100644
--- a/src/CommonModules/РаботаСНоменклатуройСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/РаботаСНоменклатуройСлужебный/Ext/Module.bsl
@@ -2120,14 +2120,15 @@
НаименованиеЗадания = НСтр(
"ru = 'Получение списка идентификаторов категорий, сопоставленных с сервисом 1С:Бизнес-сеть.'");
- ИмяПроцедуры = "РаботаСНоменклатуройСлужебный.ПолучитьДанныеКатегорий";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификаторФормы);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0.1;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыМетода, ПараметрыВыполнения);
+ ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатуройСлужебный.ПолучитьДанныеКатегорий",
+ ПараметрыМетода,
+ ПараметрыВыполнения);
КонецПроцедуры
@@ -2499,6 +2500,27 @@
// Конец ЭлектронноеВзаимодействие.ТорговыеПредложения
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВыгрузитьДанныеНоменклатуры", Истина);
+ Методы.Вставить("ДоступныеКатегорииСервиса", Истина);
+ Методы.Вставить("ЕстьПроблемыБыстро", Истина);
+ Методы.Вставить("КэшПутейКатегорийСервиса", Истина);
+ Методы.Вставить("ОбновленнаяСтатистикаРезультатов", Истина);
+ Методы.Вставить("ОбязательныеРеквизитыНациональногоКаталога", Истина);
+ Методы.Вставить("ПартнерАктивен", Истина);
+ Методы.Вставить("Пауза", Истина);
+ Методы.Вставить("ПолучитьДанныеКатегорий", Истина);
+ Методы.Вставить("ПолучитьКэшКатегорийСервиса", Истина);
+ Методы.Вставить("ПроверитьГотовностьНоменклатурнойПозиции", Истина);
+ Методы.Вставить("ПроверитьГотовностьНоменклатурыКВыгрузке", Истина);
+ Методы.Вставить("СопоставитьЗначенияРеквизитовАвтоматически", Истина);
+ Методы.Вставить("СтатистикаРезультатовВыгрузки", Истина);
+ Методы.Вставить("УдалитьПроблемы", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
#Область ВыгрузкаНоменклатуры
@@ -3381,11 +3403,13 @@
Возврат Неопределено;
КонецЕсли;
- ИмяМетода = "РаботаСНоменклатуройСлужебный.СтатистикаРезультатовВыгрузки";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
- ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Работа с номенклатурой. Получение статистики результатов выгрузки.'");
+ ПараметрыВыполнения.НаименованиеФоновогоЗадания =
+ НСтр("ru = 'Работа с номенклатурой. Получение статистики результатов выгрузки.'");
- Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, ИмяМетода, Организация);
+ Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
+ "РаботаСНоменклатуройСлужебный.СтатистикаРезультатовВыгрузки",
+ Организация);
КонецФункции
@@ -9796,7 +9820,7 @@
И ЗначениеЗаполнено(СтрокаДанных.ТекстоваяСтрока) Тогда
ЗначениеСвойства = СтрокаДанных.ТекстоваяСтрока;
КонецЕсли;
-
+
Для каждого ТекущийТип Из СоответствиеТипов Цикл
Если ТипЗнч(ЗначениеСвойства) = Тип(ТекущийТип.Ключ) Тогда
ЭлементОписаниеАтрибута.Вставить("type", ТекущийТип.Значение);
@@ -10134,7 +10158,8 @@
Если КодСостояния = 400 Тогда
ВыгрузкаНоменклатурыЗаписьЖурналаРегистрации(ПараметрыКоманды, СтрокаОтвета);
Иначе
- СообщениеОбОшибке = СтрШаблон(НСтр("ru = 'КодСостояния: %1; строка ответа %2'"), КодСостояния, СтрокаОтвета);
+ СообщениеОбОшибке = СтрШаблон(НСтр("ru = 'Код состояния: %1.
+ |Ответ сервиса: %2'"), КодСостояния, СтрокаОтвета);
ВыгрузкаНоменклатурыЗаписьЖурналаРегистрации(ПараметрыКоманды, СообщениеОбОшибке);
КонецЕсли;
КонецЕсли;
@@ -10863,7 +10888,10 @@
Если НРег(ПараметрыКоманды.ТипАутентификации) = "bearer" Тогда
Результат = ТокенАутентификацииВСервисе(Соединение);
- Если Результат.Результат <> Неопределено Тогда
+ Если Результат.Результат = Неопределено Тогда
+ ВыполнятьПовтор = Ложь;
+ ПараметрыКоманды.КодСостояния = 401; // Unauthorized
+ Иначе
Результат.Результат = СтрШаблон("Bearer %1", Результат.Результат);
КонецЕсли;
Иначе
@@ -11018,6 +11046,23 @@
Возврат ОтветСервиса;
КонецЕсли;
+ Если ОтветСервиса.Результат.КодСостояния <> КодСостоянияВыполнено() Тогда
+ ИнформацияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось получить токен аутентификации в сервисе %1.
+ |Код состояния: %2;
+ |Тело ответа: %3'"),
+ Соединение.Сервер,
+ ОтветСервиса.Результат.КодСостояния,
+ ОтветСервиса.Результат.ПолучитьТелоКакСтроку());
+ ВыполнитьЗаписьСобытияВЖурналРегистрации(ИнформацияОбОшибке, УровеньЖурналаРегистрации.Ошибка);
+
+ ОтветСервиса.Результат = Неопределено;
+ ОтветСервиса.ТекстСообщения = НСтр("ru = 'Ошибка аутентификации в сервисе.
+ |Подробнее см. в журнале регистрации.'");
+
+ Возврат ОтветСервиса;
+ КонецЕсли;
+
ТелоОтвета = ЗначениеИзСтрокиJSON(ОтветСервиса.Результат.ПолучитьТелоКакСтроку());
ТикетАутентификацииВСервисе = ДанныеКлючаДоступаИзJSON(ТелоОтвета);
diff --git a/src/CommonModules/РаботаСНоменклатуройСлужебныйВызовСервера/Ext/Module.bsl b/src/CommonModules/РаботаСНоменклатуройСлужебныйВызовСервера/Ext/Module.bsl
index 5647cb472..820e32b47 100644
--- a/src/CommonModules/РаботаСНоменклатуройСлужебныйВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/РаботаСНоменклатуройСлужебныйВызовСервера/Ext/Module.bsl
@@ -15,7 +15,7 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьКатегорииНаПутиКЭлементуВФоне(Идентификатор,
ПараметрыЗапросаНоменклатуры,
@@ -25,7 +25,6 @@
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка категорий от выбранной до корневой.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьКатегорииНаПутиКЭлементу";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
@@ -33,7 +32,6 @@
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыМетода = Новый Структура;
-
ПараметрыМетода.Вставить("ВключитьНоменклатуру", Ложь);
ПараметрыМетода.Вставить("Идентификаторы", Идентификатор);
ПараметрыМетода.Вставить("РежимОтображенияХарактеристик", "");
@@ -47,7 +45,9 @@
КонецЕсли;
КонецЕсли;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыМетода, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьКатегорииНаПутиКЭлементу",
+ ПараметрыМетода,
+ ПараметрыВыполнения);
КонецФункции
@@ -59,7 +59,7 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьКатегорииНаПутиКЭлементуСКорневымиКатегориямиВФоне(
Идентификатор,
@@ -70,7 +70,6 @@
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка категорий от выбранной до корневой.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьКатегорииНаПутиКЭлементуСКорневымиКатегориями";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
@@ -78,7 +77,6 @@
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыМетода = Новый Структура;
-
ПараметрыМетода.Вставить("ВключитьНоменклатуру", Ложь);
ПараметрыМетода.Вставить("Идентификаторы", Идентификатор);
ПараметрыМетода.Вставить("РежимОтображенияХарактеристик", "");
@@ -86,17 +84,19 @@
Если ЗначениеЗаполнено(ПараметрыЗапросаНоменклатуры) Тогда
ЗаполнитьЗначенияСвойств(ПараметрыМетода, ПараметрыЗапросаНоменклатуры);
КонецЕсли;
-
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыМетода, ПараметрыВыполнения);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьКатегорииНаПутиКЭлементуСКорневымиКатегориями",
+ ПараметрыМетода,
+ ПараметрыВыполнения);
КонецФункции
// Поиск категории по строке.
//
// Параметры:
-// ПараметрыПоиска - см. РаботаСНоменклатуройСлужебныйКлиентСервер.ПараметрыПоискаКатегорийПоСтроке.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// ПараметрыПоиска - см. РаботаСНоменклатуройСлужебныйКлиентСервер.ПараметрыПоискаКатегорийПоСтроке.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
// См. ДлительныеОперации.ВыполнитьВФоне.
@@ -106,33 +106,37 @@
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Поиск категорий.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.НайтиКатегорииПоСтрокеПоиска";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПоиска, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.НайтиКатегорииПоСтрокеПоиска",
+ ПараметрыПоиска,
+ ПараметрыВыполнения);
КонецФункции
// Получение корневых категорий.
//
// Параметры:
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
-// ВключитьНоменклатуру - Булево - Признак необходимости получения произвольного списка номенклатуры из сервиса.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// ПараметрыЗапросаНоменклатуры - Неопределено -
+// - Структура - параметры запроса:
+// * ВключитьНоменклатуру - Булево - Признак необходимости получения произвольного списка номенклатуры из
+// сервиса.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция ПолучитьКорневыеКатегорииВФоне(УникальныйИдентификатор, ИдентификаторЗадания, ПараметрыЗапросаНоменклатуры = Неопределено) Экспорт
+Функция ПолучитьКорневыеКатегорииВФоне(УникальныйИдентификатор, ИдентификаторЗадания,
+ ПараметрыЗапросаНоменклатуры = Неопределено) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка категорий.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьКорневыеКатегории";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
@@ -140,14 +144,15 @@
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыПроцедуры = Новый Структура;
-
ПараметрыПроцедуры.Вставить("ВключитьНоменклатуру", Ложь);
Если ПараметрыЗапросаНоменклатуры <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(ПараметрыПроцедуры, ПараметрыЗапросаНоменклатуры);
КонецЕсли;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьКорневыеКатегории",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
@@ -160,7 +165,7 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьДочерниеКатегорииВФоне(Идентификатор, НаборПолей, УникальныйИдентификатор, ИдентификаторЗадания,
НоменклатураИОтборы = Неопределено) Экспорт
@@ -169,14 +174,6 @@
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка категорий.'");
- Если НаборПолей = 1 Тогда
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьПредставлениеДочернихКатегорий";
- ИначеЕсли НаборПолей = 2 Тогда
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьКраткоеОписаниеДочернихКатегорий";
- Иначе
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьПолноеОписаниеДочернихКатегорий";
- КонецЕсли;
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
@@ -186,7 +183,20 @@
ПараметрыПроцедуры.Вставить("Идентификатор", Идентификатор);
ПараметрыПроцедуры.Вставить("НоменклатураИОтборы", НоменклатураИОтборы);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Если НаборПолей = 1 Тогда
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьПредставлениеДочернихКатегорий",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
+
+ ИначеЕсли НаборПолей = 2 Тогда
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьКраткоеОписаниеДочернихКатегорий",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
+ КонецЕсли;
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьПолноеОписаниеДочернихКатегорий",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
@@ -199,7 +209,7 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьКатегориюПоИдентификаторуВФоне(Идентификатор, НаборПолей, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
@@ -207,194 +217,209 @@
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка категорий.'");
- Если НаборПолей = 1 Тогда
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьПредставлениеКатегорииПоИдентификатору";
- ИначеЕсли НаборПолей = 2 Тогда
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьОписаниеКатегорииПоИдентификатору";
- ИначеЕсли НаборПолей = 3 Тогда
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьПолноеОписаниеКатегорииПоИдентификатору";
- КонецЕсли;
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, Идентификатор, ПараметрыВыполнения);
+ Если НаборПолей = 1 Тогда
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьПредставлениеКатегорииПоИдентификатору",
+ Идентификатор,
+ ПараметрыВыполнения);
+
+ ИначеЕсли НаборПолей = 2 Тогда
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьОписаниеКатегорииПоИдентификатору",
+ Идентификатор,
+ ПараметрыВыполнения);
+ КонецЕсли;
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьПолноеОписаниеКатегорииПоИдентификатору",
+ Идентификатор,
+ ПараметрыВыполнения);
КонецФункции
// Получение данных по категории с дополнительными реквизитами и характеристиками.
//
// Параметры:
-// ИдентификаторыКатегорий - Массив (Строка) - идентификаторы категорий.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// ИдентификаторыКатегорий - Массив из Строка - идентификаторы категорий.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьДанныеКатегорийСервиса(ИдентификаторыКатегорий, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение данных по категориям.'");
-
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьДанныеКатегорийСервиса";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение данных по категориям.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ИдентификаторыКатегорий, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьДанныеКатегорийСервиса",
+ ИдентификаторыКатегорий,
+ ПараметрыВыполнения);
КонецФункции
// Получение списка дополнительных реквизитов категории.
//
// Параметры:
-// Идентификатор - Строка - идентификатор категории.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// Идентификатор - Строка - идентификатор категории.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция ПолучитьДополнительныеРеквизитыКатегорийВФоне(Идентификатор, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+Функция ПолучитьДополнительныеРеквизитыКатегорийВФоне(Идентификатор, УникальныйИдентификатор,
+ ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение дополнительных реквизитов категории.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьДополнительныеРеквизитыКатегорий";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение дополнительных реквизитов категории.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, Идентификатор, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьДополнительныеРеквизитыКатегорий",
+ Идентификатор,
+ ПараметрыВыполнения);
КонецФункции
// Получение списка значений дополнительных реквизитов категории.
//
// Параметры:
-// ПараметрыПоиска - Структура - идентификатор категории.
-// Ключи:
-// * ИдентификаторДополнительногоРеквизита - Строка - идентификатор реквизита.
-// * ИдентификаторКатегории - Строка - идентификатор категории.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// ПараметрыПоиска - Структура - параметры поиска:
+// * ИдентификаторДополнительногоРеквизита - Строка - идентификатор реквизита.
+// * ИдентификаторКатегории - Строка - идентификатор категории.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция ПолучитьЗначенияДополнительногоРеквизитаКатегорииВФоне(ПараметрыПоиска, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+Функция ПолучитьЗначенияДополнительногоРеквизитаКатегорииВФоне(ПараметрыПоиска, УникальныйИдентификатор,
+ ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка значений дополнительных реквизитов категории.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьЗначенияДополнительногоРеквизитаКатегории";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка значений дополнительных реквизитов категории.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПоиска, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьЗначенияДополнительногоРеквизитаКатегории",
+ ПараметрыПоиска,
+ ПараметрыВыполнения);
КонецФункции
// Получение фильтров категории.
//
// Параметры:
-// Идентификатор - Строка - идентификатор категории.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// Идентификатор - Строка - идентификатор категории.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьФильтрыКатегорииВФоне(Идентификатор, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение фильтров категории.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьФильтрыКатегории";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение фильтров категории.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, Идентификатор, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьФильтрыКатегории",
+ Идентификатор,
+ ПараметрыВыполнения);
КонецФункции
// Получение списка производителей категории.
//
// Параметры:
-// Идентификатор - Строка - идентификатор категории.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// Идентификатор - Строка - идентификатор категории.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьПроизводителейКатегорииВФоне(Идентификатор, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка производителей категории.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьПроизводителейКатегории";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка производителей категории.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, Идентификатор, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьПроизводителейКатегории",
+ Идентификатор,
+ ПараметрыВыполнения);
КонецФункции
// Формирование представления категории.
//
// Параметры:
-// Идентификатор - Строка - идентификатор категории.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// ИдентификаторыКатегорий - Массив из Строка - идентификаторы категорий.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция СформироватьПредставлениеКарточкиКатегорииВФоне(ИдентификаторыКатегорий, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+Функция СформироватьПредставлениеКарточкиКатегорииВФоне(ИдентификаторыКатегорий, УникальныйИдентификатор,
+ ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Формирование представления категории.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.СформироватьПредставлениеКарточкиКатегории";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Формирование представления категории.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ИдентификаторыКатегорий, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.СформироватьПредставлениеКарточкиКатегории",
+ ИдентификаторыКатегорий,
+ ПараметрыВыполнения);
КонецФункции
// Загрузка категорий.
//
// Параметры:
-// КатегорииКЗагрузке - Массив (Строка) - массив строк идентификаторов категорий.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// КатегорииКЗагрузке - Массив из Строка - массив строк идентификаторов категорий.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// ДополнительныеПараметры - Неопределено -
+// - см. РаботаСНоменклатуройСлужебныйКлиентСервер.ДополнительныеПараметрыЗагрузкиКатегорий.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция ЗагрузитьКатегорииВФоне(КатегорииКЗагрузке, УникальныйИдентификатор, ИдентификаторЗадания, ДополнительныеПараметры) Экспорт
+Функция ЗагрузитьКатегорииВФоне(КатегорииКЗагрузке, УникальныйИдентификатор, ИдентификаторЗадания,
+ ДополнительныеПараметры) Экспорт
Если ДополнительныеПараметры = Неопределено Тогда
ДополнительныеПараметры = РаботаСНоменклатуройСлужебныйКлиентСервер.ДополнительныеПараметрыЗагрузкиКатегорий();
@@ -402,11 +427,9 @@
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Загрузка категорий в базу данных.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ЗагрузитьКатегории";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Загрузка категорий в базу данных.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
-
ПараметрыВыполнения.ДополнительныйРезультат = Истина;
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
@@ -414,43 +437,49 @@
ДополнительныеПараметры.Вставить("КатегорииКЗагрузке", КатегорииКЗагрузке);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ДополнительныеПараметры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ЗагрузитьКатегории",
+ ДополнительныеПараметры,
+ ПараметрыВыполнения);
КонецФункции
-// См. РаботаСНоменклатуройКлиент.ПолучитьЗначенияСоответствующиеЗаданным
+// Получить значения дополнительного реквизита, в соответствии с представлением значений базы.
//
// Параметры:
-// ПараметрыЗапроса - Структура - параметры запроса.
-// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
-// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
+// ПараметрыЗапроса - Структура - параметры запроса:
+// * ИдентификаторКатегории - Строка - идентификатор категории.
+// * ИдентификаторДополнительногоРеквизита - Строка - идентификатор реквизита.
+// * ПредставлениеЗначений - Массив из Строка - строковое представление значений базы.
+// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
+// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция ПолучитьЗначенияСоответствующиеЗаданнымВФоне(ПараметрыЗапроса, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+Функция ПолучитьЗначенияСоответствующиеЗаданнымВФоне(ПараметрыЗапроса, УникальныйИдентификатор,
+ ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Поиск значений соответствующих заданным.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьЗначенияСоответствующиеЗаданным";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Поиск значений соответствующих заданным.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыЗапроса, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьЗначенияСоответствующиеЗаданным",
+ ПараметрыЗапроса,
+ ПараметрыВыполнения);
КонецФункции
Функция ПолучитьКэшКатегорийСервисаВФоне(ОтсутствующиеВКэшеКатегории, РежимПросмотраДереваКатегорий,
- ИдентификаторЗадания, УникальныйИдентификатор) Экспорт
-
+ ИдентификаторЗадания, УникальныйИдентификатор) Экспорт
+
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение данных для формирования списка категорий.'");
- ИмяПроцедуры = "РаботаСНоменклатуройСлужебный.ПолучитьКэшКатегорийСервиса";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
@@ -461,8 +490,10 @@
ПараметрыМетода.Вставить("Идентификаторы", ОтсутствующиеВКэшеКатегории);
ПараметрыМетода.Вставить("РежимПросмотраДереваКатегорий", РежимПросмотраДереваКатегорий);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыМетода, ПараметрыВыполнения);
-
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатуройСлужебный.ПолучитьКэшКатегорийСервиса",
+ ПараметрыМетода,
+ ПараметрыВыполнения);
+
КонецФункции
#КонецОбласти
@@ -477,22 +508,22 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьДанныеНоменклатурыСервиса(ПараметрыМетода, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение данных по номенклатуре.'");
-
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьДанныеНоменклатурыСервиса";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение данных по номенклатуре.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыМетода, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьДанныеНоменклатурыСервиса",
+ ПараметрыМетода,
+ ПараметрыВыполнения);
КонецФункции
@@ -505,21 +536,22 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПолучитьПереченьНоменклатурыВФоне(ПараметрыПоиска, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка номенклатуры.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьПереченьНоменклатуры";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка номенклатуры.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПоиска, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьПереченьНоменклатуры",
+ ПараметрыПоиска,
+ ПараметрыВыполнения);
КонецФункции
@@ -531,14 +563,14 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция СформироватьПредставленияКарточекНоменклатурыВФоне(ИдентификаторыНоменклатуры, ЭтоРежимПросмотра, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+Функция СформироватьПредставленияКарточекНоменклатурыВФоне(ИдентификаторыНоменклатуры, ЭтоРежимПросмотра,
+ УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Формирование представления карточек номенклатуры.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.СформироватьПредставленияКарточекНоменклатуры";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Формирование представления карточек номенклатуры.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
@@ -556,7 +588,9 @@
ПараметрыПроцедуры = Новый Структура("ИдентификаторыНоменклатуры, ХранилищеКэшей, ЭтоРежимПросмотра",
ИдентификаторыНоменклатуры, ХранилищеКэшей, ЭтоРежимПросмотра);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.СформироватьПредставленияКарточекНоменклатуры",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
@@ -568,9 +602,10 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция СоздатьНоменклатуруВФоне(ИдентификаторыНоменклатуры, ДополнительныеПараметры, Знач УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+Функция СоздатьНоменклатуруВФоне(ИдентификаторыНоменклатуры, ДополнительныеПараметры, Знач УникальныйИдентификатор,
+ ИдентификаторЗадания) Экспорт
ПараметрыСозданияНоменклатуры = Новый Структура;
@@ -581,7 +616,6 @@
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Загрузка номенклатуры и характеристик.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ЗагрузитьНоменклатуруИХарактеристики";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.ДополнительныйРезультат = Истина;
@@ -589,7 +623,9 @@
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыСозданияНоменклатуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ЗагрузитьНоменклатуруИХарактеристики",
+ ПараметрыСозданияНоменклатуры,
+ ПараметрыВыполнения);
КонецФункции
@@ -601,21 +637,23 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция ПолучитьКоличествоКарточекНоменклатурыПоСтрокеПоискаВФоне(СтрокаПоиска, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+Функция ПолучитьКоличествоКарточекНоменклатурыПоСтрокеПоискаВФоне(СтрокаПоиска, УникальныйИдентификатор,
+ ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка карточек номенклатуры по строке поиска.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.КоличествоНоменклатурыПоСтрокеПоиска";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, СтрокаПоиска, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.КоличествоНоменклатурыПоСтрокеПоиска",
+ СтрокаПоиска,
+ ПараметрыВыполнения);
КонецФункции
@@ -657,21 +695,23 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция КупитьКарточкиНоменклатурыВФоне(ИдентификаторыНоменклатуры, Знач УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+Функция КупитьКарточкиНоменклатурыВФоне(ИдентификаторыНоменклатуры, Знач УникальныйИдентификатор,
+ ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Покупка карточки 1С:Номенклатуры.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.КупитьКарточкиНоменклатуры";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Покупка карточки 1С:Номенклатуры.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ИдентификаторыНоменклатуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.КупитьКарточкиНоменклатуры",
+ ИдентификаторыНоменклатуры,
+ ПараметрыВыполнения);
КонецФункции
@@ -683,22 +723,22 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне
+// См. ДлительныеОперации.ВыполнитьВФоне
//
Функция ПолучитьНоменклатуруПоШтрихкодамВФоне(Штрихкоды, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение номенклатуры по штрихкодам.'");
-
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьНоменклатуруПоШтрихкодам";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение номенклатуры по штрихкодам.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, Штрихкоды, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьНоменклатуруПоШтрихкодам",
+ Штрихкоды,
+ ПараметрыВыполнения);
КонецФункции
@@ -716,10 +756,10 @@
// АдресРезультата - Строка - адрес во временном хранилище.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьФункцию
+// См. ДлительныеОперации.ВыполнитьФункцию
//
Функция ПодготовкаПараметровЗаполненияНоменклатурыВФоне(Знач УникальныйИдентификатор, Знач ИдентификаторНоменклатуры,
- Знач АдресДанныхИнтерактивногоЗаполнения, Знач АдресРезультата) Экспорт
+ Знач АдресДанныхИнтерактивногоЗаполнения, Знач АдресРезультата) Экспорт
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
@@ -731,7 +771,9 @@
Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
"РаботаСНоменклатурой.ПараметрыЗаполненияФормыНоменклатурыПодготовлены",
- ИдентификаторНоменклатуры, ДанныеФормы, АдресРезультата);
+ ИдентификаторНоменклатуры,
+ ДанныеФормы,
+ АдресРезультата);
КонецФункции
@@ -747,14 +789,14 @@
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
-Функция ЗакэшироватьИзображенияБаннеровФоне(ИдентификаторыИсточников, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+Функция ЗакэшироватьИзображенияБаннеровФоне(ИдентификаторыИсточников, УникальныйИдентификатор,
+ ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение изображения рекламных баннеров поставщиков информации.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ЗакэшироватьИзображенияБаннеров";
ХранилищеКэшей = Новый Соответствие;
Для каждого ИдентификаторИсточника Из ИдентификаторыИсточников Цикл
@@ -768,7 +810,9 @@
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ХранилищеКэшей, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ЗакэшироватьИзображенияБаннеров",
+ ХранилищеКэшей,
+ ПараметрыВыполнения);
КонецФункции
@@ -783,21 +827,22 @@
// ИдентификаторЗадания - УникальныйИдентификатор - Уникальный идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне.
+// См. ДлительныеОперации.ВыполнитьВФоне.
//
Функция ПроверитьСостояниеСервисаВФоне(ИдентификаторФормы, ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Проверка состояния подключения сервиса'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПроверитьСостояниеСервиса";
+ НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Проверка состояния подключения сервиса'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, Неопределено, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПроверитьСостояниеСервиса",
+ Неопределено,
+ ПараметрыВыполнения);
КонецФункции
@@ -857,19 +902,21 @@
КонецПроцедуры
-Функция ПолучитьОбновленияВидовНоменклатурыВФоне(ОбновляемыеОбъекты, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
+Функция ПолучитьОбновленияВидовНоменклатурыВФоне(ОбновляемыеОбъекты, УникальныйИдентификатор,
+ ИдентификаторЗадания) Экспорт
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение обновлений видов номенклатуры.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьОбновленияВидовНоменклатуры";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ОбновляемыеОбъекты, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьОбновленияВидовНоменклатуры",
+ ОбновляемыеОбъекты,
+ ПараметрыВыполнения);
КонецФункции
@@ -878,14 +925,15 @@
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
НаименованиеЗадания = НСтр("ru = '1С:Номенклатура. Получение списка категорий от выбранной до корневой.'");
- ИмяПроцедуры = "РаботаСНоменклатурой.ПолучитьОбновленияНоменклатуры";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ОбновляемыеОбъекты, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСНоменклатурой.ПолучитьОбновленияНоменклатуры",
+ ОбновляемыеОбъекты,
+ ПараметрыВыполнения);
КонецФункции
@@ -942,18 +990,24 @@
Возврат РаботаСНоменклатуройСлужебный.ОбновитьПараметрыНастройкиВыгрузки(Организация, ОбновляемыеПараметры);
КонецФункции
-Функция ИзменитьЗаписиРегистраПоСписку(Знач УникальныйИдентификатор, Знач Организация, Знач МассивКлючей, Знач Состояние) Экспорт
+Функция ИзменитьЗаписиРегистраПоСписку(Знач УникальныйИдентификатор, Знач Организация, Знач МассивКлючей,
+ Знач Состояние) Экспорт
- ИмяМетода = "Обработки.РаботаСНоменклатурой.ЗаписатьДанныеВРегистрНоменклатураКВыгрузке";
НаименованиеЗадания = НСтр("ru = 'Работа с номенклатурой. Обновление состояний выгрузки номенклатуры по списку.'");
+
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
- Возврат ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, ИмяМетода, Организация, МассивКлючей, Состояние);
-
+ Возврат ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения,
+ "Обработки.РаботаСНоменклатурой.ЗаписатьДанныеВРегистрНоменклатураКВыгрузке",
+ Организация,
+ МассивКлючей,
+ Состояние);
+
КонецФункции
-Функция ПроверитьГотовностьНоменклатурнойПозиции(Знач УникальныйИдентификатор, Знач Организация, Знач Номенклатура, Знач Состояние) Экспорт
+Функция ПроверитьГотовностьНоменклатурнойПозиции(Знач УникальныйИдентификатор, Знач Организация, Знач Номенклатура,
+ Знач Состояние) Экспорт
Если ТипЗнч(Номенклатура) = Тип("Массив") Тогда
Если Номенклатура.Количество() = 0 Тогда
@@ -975,11 +1029,15 @@
КонецЕсли;
НаименованиеЗадания = НСтр("ru = 'Работа с номенклатурой. Проверка готовности номенклатурной позиции к выгрузке'");
- ИмяМетода = "РаботаСНоменклатуройСлужебный.ПроверитьГотовностьНоменклатурнойПозиции";
+
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
- Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, ИмяМетода, Организация, Номенклатура, Состояние);
+ Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
+ "РаботаСНоменклатуройСлужебный.ПроверитьГотовностьНоменклатурнойПозиции",
+ Организация,
+ Номенклатура,
+ Состояние);
КонецФункции
@@ -1029,21 +1087,29 @@
#Область Аккредитация
Функция ДанныеДокументаАккредитацииВФоне(Знач УникальныйИдентификатор, Знач Номер, Знач ДатаРегистрации,
- Знач ДатаОкончанияДействия, Знач ВидДокумента) Экспорт
-
- Если РаботаСНоменклатуройСлужебныйКлиентСервер.ЭтоСертификат(ВидДокумента) Тогда
- ИмяМетода = "РаботаСНоменклатурой.ДанныеСертификатаСоответствия";
- ИначеЕсли РаботаСНоменклатуройСлужебныйКлиентСервер.ЭтоДекларация(ВидДокумента) Тогда
- ИмяМетода = "РаботаСНоменклатурой.ДанныеДекларацииСоответствия";
- Иначе
- Возврат Неопределено;
- КонецЕсли;
+ Знач ДатаОкончанияДействия, Знач ВидДокумента) Экспорт
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, ИмяМетода, Номер,
- ДатаРегистрации, ДатаОкончанияДействия, Истина);
+ Если РаботаСНоменклатуройСлужебныйКлиентСервер.ЭтоСертификат(ВидДокумента) Тогда
+ Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
+ "РаботаСНоменклатурой.ДанныеСертификатаСоответствия",
+ Номер,
+ ДатаРегистрации,
+ ДатаОкончанияДействия,
+ Истина);
+
+ ИначеЕсли РаботаСНоменклатуройСлужебныйКлиентСервер.ЭтоДекларация(ВидДокумента) Тогда
+ Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
+ "РаботаСНоменклатурой.ДанныеДекларацииСоответствия",
+ Номер,
+ ДатаРегистрации,
+ ДатаОкончанияДействия,
+ Истина);
+ КонецЕсли;
+
+ Возврат Неопределено;
КонецФункции
@@ -1059,7 +1125,7 @@
// ТоварыКПодписанию - Массив из РегистрСведенийКлючЗаписи.СостоянияВыгрузкиНоменклатуры - выбранные товарные
// позиции к подписанию.
// - Строка - адрес временного хранилища таблицы значений с перечнем товарных позиций к
-// подписанию со следующими обязательными колонками.
+// подписанию со следующими обязательными колонками:
// # Номенклатура - ОпределяемыйТип.НоменклатураРаботаСНоменклатурой - номенклатура.
// # ХарактеристикаНоменклатуры - ОпределяемыйТип.ХарактеристикаРаботаСНоменклатурой - характеристика.
// ИдентификаторЗадания - Неопределено, УникальныйИдентификатор - идентификатор запущенного фонового задания.
@@ -1073,7 +1139,6 @@
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- ИмяМетода = "РаботаСНоменклатурой.ПолучитьТоварыНациональногоКаталогаКПодписанию";
НаименованиеЗадания = НСтр("ru = 'Национальный каталог. Получение карточек товаров для последующего подписания.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
@@ -1084,7 +1149,7 @@
ПараметрыВыполнения.АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
Возврат ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения,
- ИмяМетода,
+ "РаботаСНоменклатурой.ПолучитьТоварыНациональногоКаталогаКПодписанию",
Организация,
ТоварыКПодписанию,
ПараметрыВыполнения.АдресРезультата,
@@ -1121,7 +1186,6 @@
ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
- ИмяМетода = "РаботаСНоменклатурой.ПодписатьТоварыНациональногоКаталога";
НаименованиеЗадания = НСтр("ru = 'Национальный каталог. Подписание карточек товаров Национального каталога.'");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
@@ -1132,7 +1196,7 @@
ПараметрыВыполнения.АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
Возврат ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения,
- ИмяМетода,
+ "РаботаСНоменклатурой.ПодписатьТоварыНациональногоКаталога",
Организация,
ДанныеДляПодписания,
ПараметрыВыполнения.АдресРезультата,
diff --git a/src/CommonModules/РаботаСФайламиБЭД/Ext/Module.bsl b/src/CommonModules/РаботаСФайламиБЭД/Ext/Module.bsl
index e52b1c86b..65f52a8c4 100644
--- a/src/CommonModules/РаботаСФайламиБЭД/Ext/Module.bsl
+++ b/src/CommonModules/РаботаСФайламиБЭД/Ext/Module.bsl
@@ -2149,14 +2149,12 @@
ПотокДанныхФайла = Новый ПотокВПамяти;
ДвоичныеДанныИсходногоФайла.Записать(ПотокДанныхФайла);
- КодДляВыполнения =
- "ПроверяемыйДокумент = Новый ДокументPDF;
- |ПроверяемыйДокумент.Прочитать(ПотокДанныхФайла);
- |ТипФайлаPDF = ПроверяемыйДокумент.ТипФайла;
- |Результат.Результат = ТипФайлаPDF = ТипФайлаДокументаPDF.PDF_A_3;";
Попытка
- Выполнить(КодДляВыполнения); // АПК:487 Исполняемый код безопасен.
+ ПроверяемыйДокумент = Новый ДокументPDF;
+ ПроверяемыйДокумент.Прочитать(ПотокДанныхФайла);
+ ТипФайлаPDF = ПроверяемыйДокумент.ТипФайла;
+ Результат.Результат = ТипФайлаPDF = ТипФайлаДокументаPDF.PDF_A_3;
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
ПодробныйТекстОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
@@ -3197,16 +3195,44 @@
// МассивИмен - Массив Из Строка
Процедура ДополнитьИменамиПоиска(ИмяФайла, МассивИмен)
- ДополнитьИмяРазделителемПути(ИмяФайла, МассивИмен, "/");
- ДополнитьИмяРазделителемПути(ИмяФайла, МассивИмен, "\");
+ ЕстьСлеш = СтрНайти(ИмяФайла, "/") <> 0;
+ ЕстьОбратныйСлеш = СтрНайти(ИмяФайла, "\") <> 0;
+
+ ИмяФайлаИсправленныйЧастично = СтрЗаменить(ИмяФайла, "и" + Символ(774), "й");
+ ИмяФайлаИсправленныйПервыйВариант = СтрЗаменить(ИмяФайлаИсправленныйЧастично, "е" + Символ(776), "е");
+ ИмяФайлаИсправленныйВторойВариант = СтрЗаменить(ИмяФайлаИсправленныйЧастично, "е" + Символ(776), "ё");
+
+ Если ЕстьСлеш Тогда
+ ДополнитьИмяРазделителемПути(ИмяФайла, МассивИмен, "/");
+ КонецЕсли;
+ Если ЕстьОбратныйСлеш Тогда
+ ДополнитьИмяРазделителемПути(ИмяФайла, МассивИмен, "\");
+ КонецЕсли;
+
+ Если ИмяФайла <> ИмяФайлаИсправленныйПервыйВариант Тогда
+
+ МассивИмен.Добавить(ИмяФайлаИсправленныйПервыйВариант);
+ Если ЕстьСлеш Тогда
+ ДополнитьИмяРазделителемПути(ИмяФайлаИсправленныйПервыйВариант, МассивИмен, "/");
+ КонецЕсли;
+ Если ЕстьОбратныйСлеш Тогда
+ ДополнитьИмяРазделителемПути(ИмяФайлаИсправленныйПервыйВариант, МассивИмен, "\");
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Если ИмяФайла <> ИмяФайлаИсправленныйВторойВариант Тогда
+
+ МассивИмен.Добавить(ИмяФайлаИсправленныйВторойВариант);
+ Если ЕстьСлеш Тогда
+ ДополнитьИмяРазделителемПути(ИмяФайлаИсправленныйВторойВариант, МассивИмен, "/");
+ КонецЕсли;
+ Если ЕстьОбратныйСлеш Тогда
+ ДополнитьИмяРазделителемПути(ИмяФайлаИсправленныйВторойВариант, МассивИмен, "\");
+ КонецЕсли;
+
+ КонецЕсли;
- ИмяФайлаИсправленный = СтрЗаменить(ИмяФайла, "и" + Символ(774), "й");
- МассивИмен.Добавить(СтрЗаменить(ИмяФайлаИсправленный, "е" + Символ(776), "е"));
- ДополнитьИмяРазделителемПути(СтрЗаменить(ИмяФайлаИсправленный, "е" + Символ(776), "е"), МассивИмен, "/");
- ДополнитьИмяРазделителемПути(СтрЗаменить(ИмяФайлаИсправленный, "е" + Символ(776), "е"), МассивИмен, "\");
- МассивИмен.Добавить(СтрЗаменить(ИмяФайлаИсправленный, "е" + Символ(776), "ё"));
- ДополнитьИмяРазделителемПути(СтрЗаменить(ИмяФайлаИсправленный, "е" + Символ(776), "ё"), МассивИмен, "/");
- ДополнитьИмяРазделителемПути(СтрЗаменить(ИмяФайлаИсправленный, "е" + Символ(776), "ё"), МассивИмен, "\");
КонецПроцедуры
// Параметры:
@@ -3220,11 +3246,9 @@
ОбратныйСлеш = "/";
КонецЕсли;
- Если СтрНайти(ИмяФайла, Слеш) Тогда
- МассивИмен.Добавить(СтрЗаменить(ИмяФайла, Слеш, ОбратныйСлеш));
- МассивПути = СтрРазделить(ИмяФайла, Слеш);
- МассивИмен.Добавить(МассивПути.Получить(МассивПути.Количество()-1));
- КонецЕсли;
+ МассивИмен.Добавить(СтрЗаменить(ИмяФайла, Слеш, ОбратныйСлеш));
+ МассивПути = СтрРазделить(ИмяФайла, Слеш);
+ МассивИмен.Добавить(МассивПути.Получить(МассивПути.Количество()-1));
КонецПроцедуры
#КонецОбласти
diff --git a/src/CommonModules/РаботаСФайламиБЭДКлиент/Ext/Module.bsl b/src/CommonModules/РаботаСФайламиБЭДКлиент/Ext/Module.bsl
index 4a9848fb3..d01dadf72 100644
--- a/src/CommonModules/РаботаСФайламиБЭДКлиент/Ext/Module.bsl
+++ b/src/CommonModules/РаботаСФайламиБЭДКлиент/Ext/Module.bsl
@@ -1,6 +1,61 @@
#Область СлужебныйПрограммныйИнтерфейс
+#Область ДопустимыеТипыФайлов
+
+// Параметры:
+// ПолноеИмяФайла - Строка
+//
+// Возвращаемое значение:
+// Булево
+//
+Функция ФайлМожноОтправитьПоЭДО(ПолноеИмяФайла) Экспорт
+
+ ОписаниеФайла = Новый Структура("ПолноеИмя", ПолноеИмяФайла);
+ ОписанияФайлов = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОписаниеФайла);
+ РезультатОперации = РаботаСФайламиБЭДКлиентСервер.ИсключитьНедопустимыеФайлы(ОписанияФайлов);
+ ПоказатьПредупреждениеОНедопустимыхФайлах(РезультатОперации);
+ Возврат ЗначениеЗаполнено(ОписанияФайлов);
+
+КонецФункции
+
+// Показывает информацию о недопустимых файлах.
+//
+// Параметры:
+// ДанныеПредупреждения - см. РаботаСФайламиБЭДКлиентСервер.ИсключитьНедопустимыеФайлы
+// БлокироватьИнтерфейс - Булево
+//
+Процедура ПоказатьПредупреждениеОНедопустимыхФайлах(ДанныеПредупреждения, БлокироватьИнтерфейс = Ложь) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(ДанныеПредупреждения) Тогда
+ Возврат;
+ КонецЕсли;
+
+ Оповещение = Неопределено;
+ Кнопки = Новый СписокЗначений();
+ Кнопки.Добавить(КодВозвратаДиалога.ОК, НСтр("ru = 'ОК'"));
+
+ Если ЗначениеЗаполнено(ДанныеПредупреждения.СписокФайлов) Тогда
+
+ ЗаголовокКнопки = СтрШаблон(НСтр("ru = 'Список файлов (%1)'"), ДанныеПредупреждения.СписокФайлов.Количество());
+ Кнопки.Добавить(КодВозвратаДиалога.Да, ЗаголовокКнопки);
+ Оповещение = Новый ОписаниеОповещения("ПоказатьПредупреждениеОНедопустимыхФайлахЗавершение",
+ ЭтотОбъект, Новый Структура("СпискФайлов", ДанныеПредупреждения.СписокФайлов));
+
+ КонецЕсли;
+
+ ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
+ ПараметрыВопроса.Заголовок = ДанныеПредупреждения.ТекстЗаголовка;
+ ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
+ ПараметрыВопроса.Картинка = БиблиотекаКартинок.ДиалогВосклицание;
+ ПараметрыВопроса.БлокироватьВесьИнтерфейс = БлокироватьИнтерфейс;
+ ТекстПредупреждения = СтроковыеФункцииКлиент.ФорматированнаяСтрока(ДанныеПредупреждения.ТекстПредупреждения);
+ СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Оповещение, ТекстПредупреждения, Кнопки, ПараметрыВопроса);
+
+КонецПроцедуры
+
+#КонецОбласти
+
// Устанавливает путь к каталогу временных файлов в операционной системе Windows.
//
// Параметры:
@@ -277,6 +332,32 @@
#Область СлужебныеПроцедурыИФункции
+#Область ДопустимыеТипыФайлов
+
+// Обработчик оповещения о недопустимых файлах.
+//
+// Параметры:
+// Результат - Неопределено,
+// - Структура:
+// * Значение - КодВозвратаДиалога
+// * БольшеНеЗадаватьЭтотВопрос - Булево
+// ДополнительныеПараметры - Структура:
+// * СписокФайлов - Массив из Строка
+//
+Процедура ПоказатьПредупреждениеОНедопустимыхФайлахЗавершение(Результат, ДополнительныеПараметры) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(Результат) ИЛИ Результат.Значение <> КодВозвратаДиалога.Да Тогда
+ Возврат;
+ КонецЕсли;
+
+ Текст = Новый ТекстовыйДокумент();
+ Текст.ДобавитьСтроку(СтрСоединить(ДополнительныеПараметры.СпискФайлов, Символы.ПС));
+ Текст.Показать(НСтр("ru = 'Перечень обнаруженных небезопасных файлов'"));
+
+КонецПроцедуры
+
+#КонецОбласти
+
// Возвращаемое значение:
// Структура:
// * ЕстьОшибки - Булево
diff --git a/src/CommonModules/РаботаСФайламиБЭДКлиентСервер/Ext/Module.bsl b/src/CommonModules/РаботаСФайламиБЭДКлиентСервер/Ext/Module.bsl
index 077a87974..99e292c7f 100644
--- a/src/CommonModules/РаботаСФайламиБЭДКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/РаботаСФайламиБЭДКлиентСервер/Ext/Module.bsl
@@ -1,5 +1,85 @@
#Область СлужебныйПрограммныйИнтерфейс
+#Область ДопустимыеТипыФайлов
+
+// Проверяет помещенные файлы и исключает недопустимые.
+//
+// Параметры:
+// ПомещенныеФайлы - Массив из Структура:
+// * ПолноеИмя - Строка
+//
+// Возвращаемое значение:
+// - Неопределено
+// - Структура:
+// * ТекстПредупреждения - Строка
+// * ТекстЗаголовка - Строка
+// * СписокФайлов - Массив из Строка
+//
+Функция ИсключитьНедопустимыеФайлы(ПомещенныеФайлы) Экспорт
+
+ ПроверяемыеФайлы = Новый Массив(); // Массив из Строка
+ Для Каждого ПомещенныйФайл Из ПомещенныеФайлы Цикл
+ ПроверяемыеФайлы.Добавить(ПомещенныйФайл.ПолноеИмя);
+ КонецЦикла;
+
+ ФайлыНедопустимыхТипов = НайтиФайлыНедопустимыхТипов(ПроверяемыеФайлы);
+ Если НЕ ЗначениеЗаполнено(ФайлыНедопустимыхТипов) Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ КоличествоПомещаемыхФайлов = ПомещенныеФайлы.Количество();
+
+ Для Счетчик = 1 По КоличествоПомещаемыхФайлов Цикл
+
+ Индекс = КоличествоПомещаемыхФайлов - Счетчик;
+ ПомещенныйФайл = ПомещенныеФайлы[Индекс];
+ Если ФайлыНедопустимыхТипов.Найти(ПомещенныйФайл.ПолноеИмя) <> Неопределено Тогда
+ ПомещенныеФайлы.Удалить(Индекс);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Результат = Новый Структура("ТекстПредупреждения, ТекстЗаголовка, СписокФайлов", "", "", Новый Массив());
+ Результат.ТекстЗаголовка = НСтр("ru = 'Обнаружен небезопасный файл'");
+ КоличествоФайлов = ФайлыНедопустимыхТипов.Количество();
+ Если КоличествоФайлов > 1 Тогда
+ Результат.ТекстЗаголовка = СтрШаблон(
+ НСтр("ru = 'Обнаружены небезопасные файлы (%1)'"),
+ Формат(КоличествоФайлов, "ЧГ=;"));
+ КонецЕсли;
+ ТекстПояснения = НСтр("ru = 'Файлы некоторых типов нельзя отправлять по ЭДО.
+ |При необходимости выберите другие файлы и повторите отправку.'");
+ Ссылка = "https://edo.1c.ru/handbook/rabota-s-elektronnymi-dokumentami/kakie-dokumenty-mozhno-zagruzhat/";
+
+ МассивФайлов = Новый Массив();
+ РазмерСпискаНедопустимыхФайловВУведомлении = 5;
+ РазмерСписка = Мин(РазмерСпискаНедопустимыхФайловВУведомлении, КоличествоФайлов);
+ ОстатокСписка = Макс(0, КоличествоФайлов - РазмерСписка);
+
+ Для Индекс = 1 По РазмерСписка Цикл
+ МассивФайлов.Добавить(ФайлыНедопустимыхТипов[Индекс - 1]);
+ КонецЦикла;
+
+ Если ОстатокСписка > 0 Тогда
+ ТекстОстатка = СтрШаблон(НСтр("ru = 'и еще %1'"), ОстатокСписка);
+ МассивФайлов.Добавить(ТекстОстатка);
+ Результат.СписокФайлов = ФайлыНедопустимыхТипов;
+ КонецЕсли;
+
+ СписокФайлов = СтрСоединить(МассивФайлов, Символы.ПС);
+ НадписьСсылки = НСтр("ru = 'Узнать больше про действующие ограничения можно здесь'");
+ ТекстПредупреждения = СтрШаблон("%1
+ |
+ |%2
+ |%4.", СписокФайлов, ТекстПояснения, Ссылка, НадписьСсылки);
+
+ Результат.ТекстПредупреждения = Новый ФорматированнаяСтрока(ТекстПредупреждения);
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
// Возвращает результат операции проверки и корректировки имени файла.
//
// Параметры:
@@ -360,3 +440,60 @@
КонецФункции
#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область ДопустимыеТипыФайлов
+
+// Проверяет недопустимые к отправке файлы по их типам.
+//
+// Параметры:
+// ИменаФайлов - Массив из Строка
+//
+// Возвращаемое значение:
+// Массив из Строка
+//
+Функция НайтиФайлыНедопустимыхТипов(ИменаФайлов)
+
+ Результат = Новый Массив();
+ ДопустимыеТипы = ДопустимыеТипыОтправляемыхФайлов();
+
+ Для Каждого ИмяФайла Из ИменаФайлов Цикл
+ Файл = Новый Файл(ИмяФайла);
+ Если НЕ ЗначениеЗаполнено(Файл.Расширение)
+ ИЛИ НЕ ДопустимыеТипы[НРег(СтрЗаменить(Файл.Расширение, ".", ""))] = Ложь Тогда
+ Результат.Добавить(ИмяФайла);
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Допустимые типы отправляемых файлов.
+//
+// Возвращаемое значение:
+// Соответствие из КлючИЗначение:
+// * Ключ - Строка - Расширение файла
+// * Значение - Булево - Разрешено отправлять только внутри архива
+//
+Функция ДопустимыеТипыОтправляемыхФайлов()
+
+ Результат = Новый Соответствие();
+ РасширенияСтрокой = "
+ |xml,pdf,doc,docx,xls,xlsx,odt,ods,rtf,txt,csv,jpg,jpeg,jfif,tif,
+ |tiff,png,bmp,webp,json,gsfx,bmpn,sig,sgn,p7s,gzip,zip,rar,7z";
+ Разделители = "
+ |,";
+ Расширения = СтрРазделить(РасширенияСтрокой, Разделители, Ложь);
+ Для Каждого Расширение Из Расширения Цикл
+ Результат.Вставить(Расширение, Ложь);
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
diff --git a/src/CommonModules/РаботаСФайламиБЭДСлужебный/Ext/Module.bsl b/src/CommonModules/РаботаСФайламиБЭДСлужебный/Ext/Module.bsl
index 87f42e121..52dbc3d47 100644
--- a/src/CommonModules/РаботаСФайламиБЭДСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/РаботаСФайламиБЭДСлужебный/Ext/Module.bsl
@@ -18,7 +18,7 @@
Возврат Неопределено;
КонецЕсли;
- МассивСтрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивСлов(Путь, ".");
+ МассивСтрок = СтрРазделить(Путь, ".", Ложь);
Если ОбъектXDTO.Свойства().Получить(МассивСтрок[0]) = Неопределено Тогда
Возврат Неопределено
diff --git a/src/CommonModules/РаботаСФормуламиВызовСервера/Ext/Module.bsl b/src/CommonModules/РаботаСФормуламиВызовСервера/Ext/Module.bsl
index 33aa9e6c6..1dab2020b 100644
--- a/src/CommonModules/РаботаСФормуламиВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/РаботаСФормуламиВызовСервера/Ext/Module.bsl
@@ -38,6 +38,7 @@
Процедура ПолучитьТекстРасчета(ТекстРасчета, Операнды, ЗначениеЗамены, ТипыОперандов = Неопределено) Экспорт
ТипыОперандов = ?(ТипыОперандов = Неопределено, Новый Соответствие, ТипыОперандов);
+ ГенераторСлучайныхЧисел = Новый ГенераторСлучайныхЧисел();
Для Каждого Операнд Из Операнды Цикл
@@ -52,8 +53,7 @@
ИначеЕсли ТипОперанда.СодержитТип(Тип("Число")) Тогда
- ГенераторСлучайныхЧисел = Новый ГенераторСлучайныхЧисел();
- ЗначениеДляПодстановки = Формат(ГенераторСлучайныхЧисел.СлучайноеЧисло(1, 1000), "ЧГ=")
+ ЗначениеДляПодстановки = Формат(ГенераторСлучайныхЧисел.СлучайноеЧисло(1, 1000), "ЧГ=");
ИначеЕсли ТипОперанда.СодержитТип(Тип("Булево")) Тогда
diff --git a/src/CommonModules/РасчетСебестоимостиЗаполнениеПартий/Ext/Module.bsl b/src/CommonModules/РасчетСебестоимостиЗаполнениеПартий/Ext/Module.bsl
index cbef43cc7..728aa77ff 100644
--- a/src/CommonModules/РасчетСебестоимостиЗаполнениеПартий/Ext/Module.bsl
+++ b/src/CommonModules/РасчетСебестоимостиЗаполнениеПартий/Ext/Module.bsl
@@ -8892,7 +8892,10 @@
| КОГДА НЕ Реестр.ДатаДокументаИБ ЕСТЬ NULL ТОГДА Реестр.ДатаДокументаИБ
| КОГДА ДанныеРегистра.Организация В (&ОрганизацииСФИФОСкользящая) ТОГДА ДАТАВРЕМЯ(1,1,1)
| ИНАЧЕ &КонецПредыдущегоПериода КОНЕЦ) КАК ПериодПоступления,
- | ДанныеРегистра.ПериодОтклонения КАК ПериодОтклонения,
+ | ВЫБОР
+ | КОГДА ДанныеРегистра.ПериодОтклонения <> ДАТАВРЕМЯ(1,1,1)
+ | ТОГДА ДанныеРегистра.ПериодОтклонения
+ | ИНАЧЕ ДанныеРегистра.Период КОНЕЦ КАК ПериодОтклонения,
| ИсправленныеДокументы.Регистратор,
| ДанныеРегистра.ВидДвижения,
| ДанныеРегистра.АналитикаУчетаНоменклатуры,
@@ -10109,6 +10112,12 @@
ИЛИ Расход.ТипЗаписи = Перечисления.ТипыЗаписейПартий.ВключениеАкцизаВСтоимость Тогда
КоличествоСписания = 1;
РасходБазис = 1;
+ // Если базис расхода больше единицы, значит источник сгруппирован, а приемник - нет.
+ // Например, заявление о ввозе товаров по документу приобретения прошлого периода с несколькими одинаковыми строками.
+ // Если будет > 1, то все стоимостные данные будут кратно увеличиваться при каждом закрытие месяца.
+ Если РасходБазис > 1 Тогда
+ РасходБазис = 1;
+ КонецЕсли;
Иначе
КоличествоСписания = Приход.Количество;
РасходБазис = ?(Расход.Знаменатель = 0, 1, КоличествоСписания / Расход.Знаменатель);
diff --git a/src/CommonModules/РасчетСебестоимостиКорректировкаСтоимости/Ext/Module.bsl b/src/CommonModules/РасчетСебестоимостиКорректировкаСтоимости/Ext/Module.bsl
index ca1e45f8d..0d5d0cfe0 100644
--- a/src/CommonModules/РасчетСебестоимостиКорректировкаСтоимости/Ext/Module.bsl
+++ b/src/CommonModules/РасчетСебестоимостиКорректировкаСтоимости/Ext/Module.bsl
@@ -5338,7 +5338,9 @@
ТекстЗапроса = ТекстЗапроса + "
|ВЫБРАТЬ
| УчетСебестоимости.Период КАК Период,
- | МАКСИМУМ(УчетСебестоимости.ПериодОтклонения) КАК ПериодОтклонения,
+ | МАКСИМУМ(ВЫБОР КОГДА УчетСебестоимости.ПериодОтклонения < &НачалоПериода
+ | ТОГДА УчетСебестоимости.ПериодОтклонения
+ | ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
| ВЫБОР
| КОГДА УчетСебестоимости.СлужебноеВидДвиженияПриход
| ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
@@ -18892,7 +18894,7 @@
РасчетСебестоимостиПрикладныеАлгоритмы.ИзменитьПолеВОписанииПолейЗапроса(ТаблицаОписанияПолей, "ДокументДвижения", "Регистратор");
РасчетСебестоимостиПрикладныеАлгоритмы.ИзменитьПолеВОписанииПолейЗапроса(ТаблицаОписанияПолей, "РежимЗакрытияМесяца", "&РежимЗакрытияМесяца");
- РасчетСебестоимостиПрикладныеАлгоритмы.ИзменитьПолеВОписанииПолейЗапроса(ТаблицаОписанияПолей, "ВременнаяРазница", "ВременнаяРазница + РезервПодОбесценениеРегл");
+ РасчетСебестоимостиПрикладныеАлгоритмы.ИзменитьПолеВОписанииПолейЗапроса(ТаблицаОписанияПолей, "ВременнаяРазница", "ВременнаяРазница");
РасчетСебестоимостиПрикладныеАлгоритмы.ИзменитьПолеВОписанииПолейЗапроса(ТаблицаОписанияПолей, "РезервПодОбесценениеРегл", 0);
РасчетСебестоимостиПрикладныеАлгоритмы.ИзменитьПолеВОписанииПолейЗапроса(ТаблицаОписанияПолей, "РезервПодОбесценениеУпр", 0);
@@ -18962,7 +18964,7 @@
РасчетСебестоимостиПрикладныеАлгоритмы.ИзменитьПолеВОписанииПолейЗапроса(ТаблицаОписанияПолей, "ПостатейныеПеременныеБезНДС", 0);
РасчетСебестоимостиПрикладныеАлгоритмы.ИзменитьПолеВОписанииПолейЗапроса(ТаблицаОписанияПолей, "ПостатейныеПеременныеУпр", 0);
РасчетСебестоимостиПрикладныеАлгоритмы.ИзменитьПолеВОписанииПолейЗапроса(ТаблицаОписанияПолей, "ПостатейныеПеременныеРегл", 0);
- РасчетСебестоимостиПрикладныеАлгоритмы.ИзменитьПолеВОписанииПолейЗапроса(ТаблицаОписанияПолей, "ВременнаяРазница", 0);
+ РасчетСебестоимостиПрикладныеАлгоритмы.ИзменитьПолеВОписанииПолейЗапроса(ТаблицаОписанияПолей, "ВременнаяРазница", "РезервПодОбесценениеРегл");
РасчетСебестоимостиПрикладныеАлгоритмы.ВыполнитьЗапросПоОписаниюПолей(ПараметрыРасчета, ТаблицаОписанияПолей,
ИмяРегистра, "ВТРезультатРаспределенияОкончательная", ИмяВременнойТаблицы);
diff --git a/src/CommonModules/РасчетСебестоимостиНДС/Ext/Module.bsl b/src/CommonModules/РасчетСебестоимостиНДС/Ext/Module.bsl
index 210cc7fb4..4e9c82cd5 100644
--- a/src/CommonModules/РасчетСебестоимостиНДС/Ext/Module.bsl
+++ b/src/CommonModules/РасчетСебестоимостиНДС/Ext/Module.bsl
@@ -6209,6 +6209,7 @@
| И Знаменатели.ВидДеятельностиНДС = ДД.ВидДеятельностиНДС
|ГДЕ
| ДД.Организация В (&ОрганизацииСУчетомПартийНДСВерсии22)
+ | И НЕ ДД.Организация В (&ОрганизацииСреднескользящая)
| И ДД.Активность
| И ДД.Период < &НачалоПериода
| И ДД.ТипЗаписи <> ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.ДопРасходы)
@@ -6244,7 +6245,7 @@
| Т.АналитикаУчетаПартий,
| Т.ДокументПоступления,
|
- | -Т.Количество КАК Количество,
+ | -Т.КоличествоПоДокументу КАК Количество,
| -(ВЫБОР
| КОГДА Т.КоличествоПоДокументу = Т.Количество ИЛИ Т.Количество = 0
| ТОГДА Т.СтоимостьБезНДС
@@ -21690,8 +21691,7 @@
| ЛЕВОЕ СОЕДИНЕНИЕ ВТНастройкиУчетаНДС КАК НастройкиУчетаНДС
| ПО НастройкиУчетаНДС.Организация = ДД.Организация
|ГДЕ
- | ДД.Организация В(&ОрганизацииСУчетомПартийНДСВерсии24)
- | И ДД.Организация В (&ОрганизацииСРаспределениемПартийНДС)
+ | ДД.Организация В (&ОрганизацииСРаспределениемПартийНДС)
| И ДД.ВидДеятельностиНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ОпределяетсяРаспределением)
| И ДД.ТипЗаписи = ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.ДопРасходыСПартией)
// Отбор по КорСтатье, аналогично как в ТекстПоступленияПартийНДСКРаспределениюИзДопРасходовПартийНДС
@@ -26038,6 +26038,7 @@
| Т.ВидДвижения КАК ВидДвижения,
| Т.Регистратор КАК Регистратор,
| Т.Партия КАК Партия,
+ | Т.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| Т.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| Т.РазделУчета КАК РазделУчета,
| Т.ВидЗапасов КАК ВидЗапасов,
@@ -26093,8 +26094,6 @@
СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса);
СхемаЗапроса.ПакетЗапросов[0].ТаблицаДляПомещения = "ВТУчетныеПолитикиОрганизаций";
СхемаЗапроса.ПакетЗапросов[0].Индекс.Добавить("Организация");
- НовыйПакет = СхемаЗапроса.ПакетЗапросов.Добавить(Тип("ЗапросУничтоженияТаблицыСхемыЗапроса"));
- НовыйПакет.ИмяТаблицы = "ВтГоловныеОрганизации";
ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();
МассивЗапросов.Добавить(ТекстЗапроса);
@@ -27341,6 +27340,7 @@
| Т.ВидДвижения,
| Т.Регистратор КАК Регистратор,
| Т.Партия,
+ | Т.АналитикаУчетаПартий,
| Т.АналитикаУчетаНоменклатуры,
| Т.РазделУчета,
| Т.ВидЗапасов,
@@ -27595,6 +27595,7 @@
| Т.ВидДвижения,
| Т.Регистратор КАК Регистратор,
| Т.Партия,
+ | Т.АналитикаУчетаПартий,
| Т.АналитикаУчетаНоменклатуры,
| Т.РазделУчета,
| Т.ВидЗапасов,
@@ -27764,6 +27765,7 @@
| Т.ВидДвижения,
| Т.Регистратор,
| Т.Партия,
+ | Т.АналитикаУчетаПартий,
| Т.АналитикаУчетаНоменклатуры,
| Т.РазделУчета,
| Т.ВидЗапасов,
@@ -27841,6 +27843,7 @@
| Т.ВидДвижения,
| Т.Регистратор,
| Т.Партия,
+ | Т.АналитикаУчетаПартий,
| Т.АналитикаУчетаНоменклатуры,
| Т.РазделУчета,
| Т.ВидЗапасов,
@@ -27937,34 +27940,9 @@
|;
|
|////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ
- | СпрОрганизации.Ссылка КАК ГоловнаяОрганизация,
- | СпрОрганизации.Ссылка КАК Ссылка
- |
- |ПОМЕСТИТЬ ВтГоловныеОрганизации
- |ИЗ
- | Справочник.Организации КАК СпрОрганизации
- |ГДЕ
- | СпрОрганизации.Ссылка В (&МассивОрганизаций)
- |
- |ОБЪЕДИНИТЬ ВСЕ
- |
- |ВЫБРАТЬ РАЗЛИЧНЫЕ
- | СпрОрганизации.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
- | СпрОрганизации.Ссылка КАК Ссылка
- |ИЗ
- | Справочник.Организации КАК СпрОрганизации
- |ГДЕ
- | СпрОрганизации.Ссылка В (&МассивОрганизаций)
- |
- |ИНДЕКСИРОВАТЬ ПО
- | ГоловнаяОрганизация
- |;
- |
- |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| &НачалоПериода КАК НачалоПериода,
- | ЕСТЬNULL(ГоловныеОрганизации.Ссылка, НастройкиУчетаНДС.Организация) КАК Организация,
+ | ЕСТЬNULL(ГоловныеОрганизации.ОбособленноеПодразделение, НастройкиУчетаНДС.Организация) КАК Организация,
| НастройкиУчетаНДС.ВариантУчетаНДСПриИзмененииВидаДеятельности,
| НастройкиУчетаНДС.СписыватьНДСПоРасходамНеПринимаемымВНУ,
| НастройкиУчетаНДС.СтатьяРасходовНеНДС,
@@ -27977,18 +27955,18 @@
|ИЗ
| РегистрСведений.НастройкиУчетаНДС.СрезПоследних(&НачалоПериода, Организация В (
| ВЫБРАТЬ
- | Отбор.ГоловнаяОрганизация
+ | Отбор.Организация
| ИЗ
| ВтГоловныеОрганизации КАК Отбор)
| ) КАК НастройкиУчетаНДС
| ЛЕВОЕ СОЕДИНЕНИЕ ВтГоловныеОрганизации КАК ГоловныеОрганизации
- | ПО ГоловныеОрганизации.ГоловнаяОрганизация = НастройкиУчетаНДС.Организация
+ | ПО ГоловныеОрганизации.Организация = НастройкиУчетаНДС.Организация
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НастройкиУчетаНДС.Период,
- | ЕСТЬNULL(ГоловныеОрганизации.Ссылка, НастройкиУчетаНДС.Организация) КАК Организация,
+ | ЕСТЬNULL(ГоловныеОрганизации.ОбособленноеПодразделение, НастройкиУчетаНДС.Организация) КАК Организация,
| НастройкиУчетаНДС.ВариантУчетаНДСПриИзмененииВидаДеятельности,
| НастройкиУчетаНДС.СписыватьНДСПоРасходамНеПринимаемымВНУ,
| НастройкиУчетаНДС.СтатьяРасходовНеНДС,
@@ -28000,11 +27978,11 @@
|ИЗ
| РегистрСведений.НастройкиУчетаНДС КАК НастройкиУчетаНДС
| ЛЕВОЕ СОЕДИНЕНИЕ ВтГоловныеОрганизации КАК ГоловныеОрганизации
- | ПО ГоловныеОрганизации.ГоловнаяОрганизация = НастройкиУчетаНДС.Организация
+ | ПО ГоловныеОрганизации.Организация = НастройкиУчетаНДС.Организация
|ГДЕ
| НастройкиУчетаНДС.Организация В (
| ВЫБРАТЬ
- | Отбор.ГоловнаяОрганизация
+ | Отбор.Организация
| ИЗ
| ВтГоловныеОрганизации КАК Отбор
| )
@@ -28061,6 +28039,7 @@
| Т.ВидДвижения КАК ВидДвижения,
| Т.Регистратор КАК Регистратор,
| Т.Партия КАК Партия,
+ | Т.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| Т.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| Т.РазделУчета КАК РазделУчета,
| Т.ВидЗапасов КАК ВидЗапасов,
@@ -28339,6 +28318,7 @@
| Т.ВидДвижения,
| Т.Регистратор,
| Т.Партия,
+ | Т.АналитикаУчетаПартий,
| Т.АналитикаУчетаНоменклатуры,
| Т.РазделУчета,
| Т.ВидЗапасов,
diff --git a/src/CommonModules/РасчетСебестоимостиПодготовкаДанных/Ext/Module.bsl b/src/CommonModules/РасчетСебестоимостиПодготовкаДанных/Ext/Module.bsl
index 1b1b5193e..c4573349d 100644
--- a/src/CommonModules/РасчетСебестоимостиПодготовкаДанных/Ext/Module.bsl
+++ b/src/CommonModules/РасчетСебестоимостиПодготовкаДанных/Ext/Module.bsl
@@ -1696,6 +1696,10 @@
| 94
| ИЗ
| РегистрНакопления.ПрочиеРасходы КАК Т
+ |
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсправленныеДокументы КАК ИсправленныеДокументы
+ | ПО ИсправленныеДокументы.Регистратор = Т.Регистратор
+ | И ИсправленныеДокументы.ДатаСторнируемогоДокумента < &НачалоПериода
| ГДЕ
| Т.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Т.Организация В (&МассивОрганизаций)
@@ -1720,6 +1724,10 @@
| 95
| ИЗ
| РегистрНакопления.ПартииПрочихРасходов КАК Т
+ |
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсправленныеДокументы КАК ИсправленныеДокументы
+ | ПО ИсправленныеДокументы.Регистратор = Т.Регистратор
+ | И ИсправленныеДокументы.ДатаСторнируемогоДокумента < &НачалоПериода
| ГДЕ
| Т.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Т.Организация В (&МассивОрганизаций)
@@ -1845,7 +1853,9 @@
| Т.КодОшибки <> 0
|";
- Запрос.Текст = ТекстЗапросаВТДвиженияСебестоимостьТоваров() + ТекстЗапроса;
+ Запрос.Текст = ТекстЗапросаВТДвиженияСебестоимостьТоваров()
+ + РасчетСебестоимостиЗаполнениеПартий.ТекстИсправленныеДокументы()
+ + ОбщегоНазначения.РазделительПакетаЗапросов() + ТекстЗапроса;
#КонецОбласти
diff --git a/src/CommonModules/РасчетСебестоимостиПостатейныеЗатраты/Ext/Module.bsl b/src/CommonModules/РасчетСебестоимостиПостатейныеЗатраты/Ext/Module.bsl
index 0ec118070..e439ec81c 100644
--- a/src/CommonModules/РасчетСебестоимостиПостатейныеЗатраты/Ext/Module.bsl
+++ b/src/CommonModules/РасчетСебестоимостиПостатейныеЗатраты/Ext/Module.bsl
@@ -12037,6 +12037,7 @@
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ТоварыЗаказа
| ПО ТоварыЗаказа.Ссылка = ДД.АналитикаРасходов
+ | И НЕ ТоварыЗаказа.Отменено
|
// Исключаем заказы, которые учтены во временной таблице ВтОтборПродажПоЗаказу.
// Расходы по таким заказам уже распределены.
diff --git a/src/CommonModules/РасчетСебестоимостиПрикладныеАлгоритмы/Ext/Module.bsl b/src/CommonModules/РасчетСебестоимостиПрикладныеАлгоритмы/Ext/Module.bsl
index 4aa111e18..aa589b266 100644
--- a/src/CommonModules/РасчетСебестоимостиПрикладныеАлгоритмы/Ext/Module.bsl
+++ b/src/CommonModules/РасчетСебестоимостиПрикладныеАлгоритмы/Ext/Module.bsl
@@ -541,7 +541,11 @@
ЗапросПериодКорректировки = Новый Запрос;
ЗапросПериодКорректировки.Текст =
"ВЫБРАТЬ
- | ЕСТЬNULL(Т.ИсправляемыйДокумент.Дата, ДАТАВРЕМЯ(1,1,1)) КАК ПериодКорректировки
+ | (ВЫБОР
+ | КОГДА НЕ Т.ИсправляемыйДокумент.Дата ЕСТЬ NULL
+ | И Т.ИсправляемыйДокумент.Дата < &Период
+ | ТОГДА Т.ИсправляемыйДокумент.Дата
+ | ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодКорректировки
|ИЗ
| ИмяДокумента КАК Т
|ГДЕ
@@ -549,6 +553,7 @@
ЗапросПериодКорректировки.Текст = СтрЗаменить(ЗапросПериодКорректировки.Текст, "ИмяДокумента", МетаДокумент.ПолноеИмя());
ЗапросПериодКорректировки.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
+ ЗапросПериодКорректировки.УстановитьПараметр("Период", Период);
Если МетаДокумент.Реквизиты.Найти("ИсправляемыйДокумент") <> Неопределено
И ЗначениеЗаполнено(Запрос.Параметры.Ссылка.ИсправляемыйДокумент) Тогда
diff --git a/src/CommonModules/РасчетСебестоимостиПроведениеДокументов/Ext/Module.bsl b/src/CommonModules/РасчетСебестоимостиПроведениеДокументов/Ext/Module.bsl
index bd80bf74d..561fc443e 100644
--- a/src/CommonModules/РасчетСебестоимостиПроведениеДокументов/Ext/Module.bsl
+++ b/src/CommonModules/РасчетСебестоимостиПроведениеДокументов/Ext/Module.bsl
@@ -1420,6 +1420,7 @@
| ДанныеДокумента.ПериодДокументаИсточника КАК ПериодДокументаИсточника,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -1890,6 +1891,7 @@
| ДанныеДокумента.ПериодДокументаИсточника КАК ПериодДокументаИсточника,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -2247,6 +2249,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -2597,6 +2600,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -2807,6 +2811,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -3040,6 +3045,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -3484,6 +3490,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -3822,6 +3829,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -3955,6 +3963,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -4293,6 +4302,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -4428,6 +4438,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -4718,6 +4729,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -4885,6 +4897,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -5026,6 +5039,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -5385,6 +5399,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
@@ -5558,6 +5573,7 @@
| ДанныеДокумента.Период КАК Период,
| (ВЫБОР
| КОГДА ДанныеДокумента.ЕстьПолеЗапроса_ПериодОтклонения
+ | И ДанныеДокумента.ПериодОтклонения < НАЧАЛОПЕРИОДА(ДанныеДокумента.Период, МЕСЯЦ)
| ТОГДА ДанныеДокумента.ПериодОтклонения
| ИНАЧЕ ДАТАВРЕМЯ(1,1,1) КОНЕЦ) КАК ПериодОтклонения,
|
diff --git a/src/CommonModules/РасчетСтатусовОформленияИСУТ/Ext/Module.bsl b/src/CommonModules/РасчетСтатусовОформленияИСУТ/Ext/Module.bsl
index 065eaef3c..932c02845 100644
--- a/src/CommonModules/РасчетСтатусовОформленияИСУТ/Ext/Module.bsl
+++ b/src/CommonModules/РасчетСтатусовОформленияИСУТ/Ext/Module.bsl
@@ -454,12 +454,7 @@
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ";
- ОтборНоменклатурыДляВыводаИзОборота = "ВЫБОР
- | КОГДА ТаблицаДокумента.Контрагент.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ЮрЛицоНеРезидент)
- | И ТаблицаДокумента.Контрагент.СтранаРегистрации.УчастникЕАЭС
- | ТОГДА РегистрНоменклатура.КлючВидовПродукции.ВидПродукцииГИСМТ В (&ВидыПродукцииОтгрузкаЕАЭС)
- | ИНАЧЕ РегистрНоменклатура.КлючВидовПродукции.ВидПродукцииГИСМТ В (&УчитываемыеВидыПродукцииБезМеха)
- | КОНЕЦ";
+ ОтборНоменклатурыДляВыводаИзОборота = ОтборНоменклатурыНеСырье;
КонецЕсли;
diff --git a/src/CommonModules/РегламентированнаяОтчетностьВызовСервера/Ext/Module.bsl b/src/CommonModules/РегламентированнаяОтчетностьВызовСервера/Ext/Module.bsl
index a30eecfa8..7e50f79ab 100644
--- a/src/CommonModules/РегламентированнаяОтчетностьВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/РегламентированнаяОтчетностьВызовСервера/Ext/Module.bsl
@@ -14,6 +14,9 @@
// ИННЮЛ, КППЮЛ, НаимЮЛПол, КодНО, ФИО, ФИОРук
СведенияОбОрганизации = Новый Структура(СписокПоказателей);
+ Если Не ЗначениеЗаполнено(Организация) Тогда
+ Возврат СведенияОбОрганизации;
+ КонецЕсли;
СтруктураСведений = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Организация, ДатаЗначения);
Если СведенияОбОрганизации.Свойство("ИННЮЛ") Тогда
diff --git a/src/CommonModules/РегламентыЭДО/Ext/Module.bsl b/src/CommonModules/РегламентыЭДО/Ext/Module.bsl
index 57a38e361..1b51b978b 100644
--- a/src/CommonModules/РегламентыЭДО/Ext/Module.bsl
+++ b/src/CommonModules/РегламентыЭДО/Ext/Module.bsl
@@ -552,6 +552,29 @@
#Область Прочее
+// Проверяет статус хранения информации отправителя
+//
+// Параметры:
+// ЭлементыРегламента - ТаблицаЗначений:
+// * ТипЭлементаРегламента - ПеречислениеСсылка.ТипыЭлементовРегламентаЭДО
+// * Состояние - ПеречислениеСсылка.СостоянияСообщенийЭДО
+//
+// Возвращаемое значение:
+// Булево
+//
+Функция ИнформацияОтправителяНаХранении(ЭлементыРегламента) Экспорт
+
+ СтрокаТаблицы = ЭлементыРегламента.Найти(
+ Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя, "ТипЭлементаРегламента");
+
+ Если СтрокаТаблицы <> Неопределено И СтрокаТаблицы.Состояние = Перечисления.СостоянияСообщенийЭДО.Хранение Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ Возврат Ложь;
+
+КонецФункции
+
// Возвращает признак наличия активного аннулирования.
//
// Параметры:
@@ -859,6 +882,63 @@
Возврат Результат;
КонецФункции
+// Возвращает признак однотитульного формализованного документа.
+//
+// Параметры:
+// ПараметрыДокумента - См. РегламентыЭДО.НовыеПараметрыДокументаДляОпределенияСостояния
+// - СтрокаТаблицыЗначений из см. СинхронизацияЭДО.НовыеДанныеОбъектов
+// - ВыборкаИзРезультатаЗапроса
+//
+// Возвращаемое значение:
+// Булево
+//
+Функция ДокументБезОтветногоТитула(ПараметрыДокумента) Экспорт
+
+ Если ПараметрыДокумента.ТипРегламента <> Перечисления.ТипыРегламентовЭДО.Формализованный Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Возврат РегламентыЭДО_Формализованный.ДокументБезОтветногоТитула(ПараметрыДокумента);
+
+КонецФункции
+
+// Возвращает признак того, что входящий электронный документ может потребовать заполнения ответного титула
+//
+// Параметры:
+// СостояниеДокумента - ПеречислениеСсылка.СостоянияДокументовЭДО
+// ТипРегламента - ПеречислениеСсылка.ТипыРегламентовЭДО
+// ТипДокумента - ПеречислениеСсылка.ТипыДокументовЭДО
+//
+// Возвращаемое значение:
+// Булево
+Функция ТребуетсяЗаполненияОтветногоТитула(СостояниеДокумента, ТипРегламента, ТипДокумента) Экспорт
+
+ ТипыДокументовИсключений = Новый Массив(); // массив из ПеречислениеСсылка.ТипыДокументовЭДО
+ ТипыДокументовИсключений.Добавить(Перечисления.ТипыДокументовЭДО.СведенияОРеализацииКомиссионером);
+ ТипыДокументовИсключений.Добавить(Перечисления.ТипыДокументовЭДО.СведенияОЗакупкеКомиссионером);
+ ТипыДокументовИсключений.Добавить(Перечисления.ТипыДокументовЭДО.КорректировкаСведенийОЗакупкеКомиссионером);
+ ТипыДокументовИсключений.Добавить(Перечисления.ТипыДокументовЭДО.КорректировкаСведенийОРеализацииКомиссионером);
+
+ НуженОтветныйТитул = ЕстьИнформацияПолучателя(ТипРегламента)
+ И ТипыДокументовИсключений.Найти(ТипДокумента) = Неопределено;
+
+ ОтветныйТитулЕщеНеСформирован = Не ЭтоСостояниеЗавершенногоЭДО(СостояниеДокумента)
+ И Не СостояниеДокумента = Перечисления.СостоянияДокументовЭДО.ТребуетсяПодготовкаКОтправке
+ И Не СостояниеДокумента = Перечисления.СостоянияДокументовЭДО.ОжидаетсяПодтверждениеОператора
+ И Не СостояниеДокумента = Перечисления.СостоянияДокументовЭДО.ТребуетсяПовторнаяОтправка;
+
+ НастройкаЗапретФормирования = ПолучитьФункциональнуюОпцию("ЗапретитьФормированиеОтветногоТитулаБезДокументовУчета");
+ ТипыДокументовПопадающихПодЗапрет = Новый Массив(); // массив из ПеречислениеСсылка.ТипыДокументовЭДО
+ ТипыДокументовПопадающихПодЗапрет.Добавить(Перечисления.ТипыДокументовЭДО.УПД);
+ ТипыДокументовПопадающихПодЗапрет.Добавить(Перечисления.ТипыДокументовЭДО.УКД);
+
+ ЗапретФормированияВручную = НастройкаЗапретФормирования
+ И Не ТипыДокументовПопадающихПодЗапрет.Найти(ТипДокумента) = Неопределено;
+
+ Возврат НуженОтветныйТитул И ОтветныйТитулЕщеНеСформирован И Не ЗапретФормированияВручную;
+
+КонецФункции
+
#КонецОбласти
#КонецОбласти
@@ -1475,7 +1555,6 @@
Возврат Результат;
КонецФункции
-
#КонецОбласти
#КонецОбласти
diff --git a/src/CommonModules/РегламентыЭДО_АктОРасхождениях/Ext/Module.bsl b/src/CommonModules/РегламентыЭДО_АктОРасхождениях/Ext/Module.bsl
index 743a0c17f..fb20c3d61 100644
--- a/src/CommonModules/РегламентыЭДО_АктОРасхождениях/Ext/Module.bsl
+++ b/src/CommonModules/РегламентыЭДО_АктОРасхождениях/Ext/Module.bsl
@@ -53,7 +53,7 @@
Иначе
ИспользоватьУтверждениеСообщенияФНС = ИспользоватьУтверждениеСообщенияФНС(ПараметрыСообщения,
ИспользоватьУтверждение);
- Состояние = РегламентыЭДО.СостояниеСообщенияФНС(ПараметрыСообщения, ПараметрыДокумента,
+ Состояние = СостояниеСообщенияИнформацияОтправителя(ПараметрыСообщения, ПараметрыДокумента,
ИспользоватьУтверждениеСообщенияФНС);
КонецЕсли;
@@ -461,12 +461,34 @@
Или ЭлементТитула.Состояние = Перечисления.СостоянияСообщенийЭДО.Формирование)
И ТипОсновногоЭлемента = Перечисления.ТипыЭлементовРегламентаЭДО.ДопСведенияПоРезультатамПриемки Тогда
Состояние = Перечисления.СостоянияДокументовЭДО.ТребуетсяПодписание;
+ ИначеЕсли ЭлементТитула.Состояние = Перечисления.СостоянияСообщенийЭДО.ОжидаетсяПодпись Тогда
+ РегламентыЭДО.УстановитьПриоритетноеСостояние(Состояние, Перечисления.СостоянияДокументовЭДО.ОжидаетсяПодтверждение);
+ Возврат Ложь;
Иначе
Возврат Ложь;
КонецЕсли;
Иначе
Если ЭлементТитула.Состояние = Перечисления.СостоянияСообщенийЭДО.Утверждение Тогда
Состояние = Перечисления.СостоянияДокументовЭДО.ТребуетсяУтверждение;
+ ИначеЕсли ПараметрыДокумента.ТребуетсяПодтверждение
+ И ТипОсновногоЭлемента = Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя Тогда
+
+ Если ЭлементТитула.Состояние = Перечисления.СостоянияСообщенийЭДО.Подписание Тогда
+
+ Состояние = Перечисления.СостоянияДокументовЭДО.ТребуетсяПодписание;
+
+ ИначеЕсли ЭлементТитула.Состояние = Перечисления.СостоянияСообщенийЭДО.ПодготовкаКОтправке Тогда
+
+ Состояние = Перечисления.СостоянияДокументовЭДО.ТребуетсяПодготовкаКОтправке;
+
+ ИначеЕсли ЭлементТитула.Состояние = Перечисления.СостоянияСообщенийЭДО.Отправка Тогда
+
+ Состояние = Перечисления.СостоянияДокументовЭДО.ТребуетсяОтправка;
+
+ Иначе
+
+ Возврат Ложь;
+ КонецЕсли;
Иначе
Возврат Ложь;
КонецЕсли;
@@ -603,6 +625,92 @@
#КонецОбласти
+// Параметры:
+// ПараметрыСообщения - См. РегламентыЭДО.НовыеПараметрыСообщенияДляОпределенияСостояния
+// ПараметрыДокумента - См. РегламентыЭДО.НовыеПараметрыДокументаДляОпределенияСостоянияСообщения
+// ИспользоватьУтверждение - Булево
+//
+// Возвращаемое значение:
+// ПеречислениеСсылка.СостоянияСообщенийЭДО
+//
+Функция СостояниеСообщенияИнформацияОтправителя(ПараметрыСообщения, ПараметрыДокумента, ИспользоватьУтверждение) Экспорт
+
+ Состояние = Перечисления.СостоянияСообщенийЭДО.ПустаяСсылка();
+
+ Статус = ПараметрыСообщения.Статус;
+
+ Если Статус = Перечисления.СтатусыСообщенийЭДО.Получен Тогда
+
+ Если ИспользоватьУтверждение Тогда
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Утверждение;
+ ИначеЕсли Не ПараметрыДокумента.ТребуетсяПодтверждение
+ ИЛИ ПараметрыДокумента.ОбменБезПодписи Тогда
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Хранение
+ Иначе
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Подписание;
+ КонецЕсли;
+
+ ИначеЕсли Статус = Перечисления.СтатусыСообщенийЭДО.Утвержден Тогда
+
+ Если Не ПараметрыДокумента.ТребуетсяПодтверждение
+ ИЛИ ПараметрыДокумента.ОбменБезПодписи Тогда
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Хранение;
+ Иначе
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Подписание;
+ КонецЕсли;
+
+ ИначеЕсли Статус = Перечисления.СтатусыСообщенийЭДО.Сформирован Тогда
+
+ Если ПараметрыДокумента.ОбменБезПодписи Тогда
+ Состояние = Перечисления.СостоянияСообщенийЭДО.ПодготовкаКОтправке;
+ Иначе
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Подписание;
+ КонецЕсли;
+
+ ИначеЕсли Статус = Перечисления.СтатусыСообщенийЭДО.ЧастичноПодписан Тогда
+
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Подписание;
+
+ ИначеЕсли Статус = Перечисления.СтатусыСообщенийЭДО.Подписан Тогда
+
+ Если РегламентыЭДО.ЭтоВнутреннийОбмен(ПараметрыДокумента.СпособОбмена) Тогда
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Хранение;
+ Иначе
+ Состояние = Перечисления.СостоянияСообщенийЭДО.ПодготовкаКОтправке;
+ КонецЕсли;
+
+ ИначеЕсли Статус = Перечисления.СтатусыСообщенийЭДО.ПодготовленКОтправке Тогда
+
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Отправка;
+
+ ИначеЕсли Статус = Перечисления.СтатусыСообщенийЭДО.Отправлен Тогда
+
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Хранение;
+
+ Если ПараметрыСообщения.Направление = Перечисления.НаправленияЭДО.Входящий
+ ИЛИ Не ПараметрыДокумента.ТребуетсяПодтверждение
+ ИЛИ ПараметрыДокумента.ОбменБезПодписи Тогда
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Хранение;
+ Иначе
+ Состояние = Перечисления.СостоянияСообщенийЭДО.ОжидаетсяПодпись;
+ КонецЕсли;
+
+ ИначеЕсли Статус = Перечисления.СтатусыСообщенийЭДО.Подтвержден Тогда
+
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Хранение;
+
+ ИначеЕсли Статус = Перечисления.СтатусыСообщенийЭДО.НеСформирован Тогда
+
+ Состояние = Перечисления.СостоянияСообщенийЭДО.Формирование;
+
+ Иначе
+ ВызватьИсключение РегламентыЭДО.ТекстОшибкиНекорректныйСтатусСообщения();
+ КонецЕсли;
+
+ Возврат Состояние;
+
+КонецФункции
+
#Область ДобавитьЭлементыСхемыРегламента
// Добавляет элементы по регламенту отправителя.
diff --git a/src/CommonModules/РегламентыЭДО_Неформализованный/Ext/Module.bsl b/src/CommonModules/РегламентыЭДО_Неформализованный/Ext/Module.bsl
index 89b68b949..ec4c88b16 100644
--- a/src/CommonModules/РегламентыЭДО_Неформализованный/Ext/Module.bsl
+++ b/src/CommonModules/РегламентыЭДО_Неформализованный/Ext/Module.bsl
@@ -599,11 +599,19 @@
//
Функция ЗаполнитьСостояниеПоВходящемуИзвещениюОПолучении(ПараметрыДокумента, СостоянияЭлементовРегламента, Состояние)
+ Если НЕ ПараметрыДокумента.ТребуетсяИзвещение Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Если ПараметрыДокумента.ТребуетсяПодтверждение
+ И РегламентыЭДО.ИнформацияОтправителяНаХранении(СостоянияЭлементовРегламента) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
Результат = Ложь;
ТипыИзвещений = РегламентыЭДО.ТипыЭлементовРегламентаЭДОИзвещенийПервыхТитулов();
- Если ПараметрыДокумента.ТребуетсяИзвещение
- И Не РегламентыЭДО.ОдинИзЭлементовРегламентаВходитВКоллекцию(СостоянияЭлементовРегламента,
+ Если Не РегламентыЭДО.ОдинИзЭлементовРегламентаВходитВКоллекцию(СостоянияЭлементовРегламента,
ТипыИзвещений, Перечисления.НаправленияЭДО.Входящий) Тогда
РегламентыЭДО.УстановитьПриоритетноеСостояние(Состояние, Перечисления.СостоянияДокументовЭДО.ОжидаетсяИзвещениеОПолучении);
diff --git a/src/CommonModules/РегламентыЭДО_УПД/Ext/Module.bsl b/src/CommonModules/РегламентыЭДО_УПД/Ext/Module.bsl
index 769fa322e..02f2c03ee 100644
--- a/src/CommonModules/РегламентыЭДО_УПД/Ext/Module.bsl
+++ b/src/CommonModules/РегламентыЭДО_УПД/Ext/Module.bsl
@@ -898,7 +898,9 @@
Результат = Истина;
ТипыУОУ = РегламентыЭДО.ТипыЭлементовРегламентаЭДОУточнений();
- Если Не РегламентыЭДО.ОдинИзЭлементовРегламентаВходитВКоллекцию(СостоянияЭлементовРегламента, ТипыУОУ) Тогда
+ Если Не РегламентыЭДО.ОдинИзЭлементовРегламентаВходитВКоллекцию(СостоянияЭлементовРегламента, ТипыУОУ)
+ Или РегламентыЭДО.ЕстьЭлементРегламента(СостоянияЭлементовРегламента,
+ Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияПолучателя) Тогда
Результат = Ложь;
@@ -930,8 +932,17 @@
Результат = Ложь;
+ Если НЕ ПараметрыДокумента.ТребуетсяИзвещение Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Если РегламентыЭДО.ЕстьЭлементРегламента(СостоянияЭлементовРегламента,
+ Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияПолучателя) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
ТипИОП = РегламентыЭДО.ТипыЭлементовРегламентаЭДОИзвещенийПервыхТитулов();
- Если ПараметрыДокумента.ТребуетсяИзвещение И Не РегламентыЭДО.ОдинИзЭлементовРегламентаВходитВКоллекцию(
+ Если Не РегламентыЭДО.ОдинИзЭлементовРегламентаВходитВКоллекцию(
СостоянияЭлементовРегламента, ТипИОП, Перечисления.НаправленияЭДО.Входящий) Тогда
РегламентыЭДО.УстановитьПриоритетноеСостояние(Состояние, Перечисления.СостоянияДокументовЭДО.ОжидаетсяИзвещениеОПолучении);
diff --git a/src/CommonModules/РегламентыЭДО_Формализованный/Ext/Module.bsl b/src/CommonModules/РегламентыЭДО_Формализованный/Ext/Module.bsl
index b142b1679..a2c62908d 100644
--- a/src/CommonModules/РегламентыЭДО_Формализованный/Ext/Module.bsl
+++ b/src/CommonModules/РегламентыЭДО_Формализованный/Ext/Module.bsl
@@ -766,7 +766,9 @@
ТипыУОУ = РегламентыЭДО.ТипыЭлементовРегламентаЭДОУточнений();
- Если РегламентыЭДО.ОдинИзЭлементовРегламентаВходитВКоллекцию(СостоянияЭлементовРегламента, ТипыУОУ) Тогда
+ Если РегламентыЭДО.ОдинИзЭлементовРегламентаВходитВКоллекцию(СостоянияЭлементовРегламента, ТипыУОУ)
+ И Не РегламентыЭДО.ЕстьЭлементРегламента(СостоянияЭлементовРегламента,
+ Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияПолучателя) Тогда
Результат = Истина;
diff --git a/src/CommonModules/РегламентыЭДО_ФормализованныйАктСверки/Ext/Module.bsl b/src/CommonModules/РегламентыЭДО_ФормализованныйАктСверки/Ext/Module.bsl
index 71dae6ae6..b8a8d08f2 100644
--- a/src/CommonModules/РегламентыЭДО_ФормализованныйАктСверки/Ext/Module.bsl
+++ b/src/CommonModules/РегламентыЭДО_ФормализованныйАктСверки/Ext/Module.bsl
@@ -713,7 +713,9 @@
ТипыУОУ = РегламентыЭДО.ТипыЭлементовРегламентаЭДОУточнений();
- Если РегламентыЭДО.ОдинИзЭлементовРегламентаВходитВКоллекцию(СостоянияЭлементовРегламента, ТипыУОУ) Тогда
+ Если РегламентыЭДО.ОдинИзЭлементовРегламентаВходитВКоллекцию(СостоянияЭлементовРегламента, ТипыУОУ)
+ И Не РегламентыЭДО.ЕстьЭлементРегламента(СостоянияЭлементовРегламента,
+ Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияПолучателя) Тогда
Результат = Истина;
diff --git a/src/CommonModules/РозничныеПродажи/Ext/Module.bsl b/src/CommonModules/РозничныеПродажи/Ext/Module.bsl
index f22e44a97..b66caabdf 100644
--- a/src/CommonModules/РозничныеПродажи/Ext/Module.bsl
+++ b/src/CommonModules/РозничныеПродажи/Ext/Module.bsl
@@ -4779,6 +4779,9 @@
| ЧекиККМ.Склад КАК Склад,
| ЧекиККМ.Партнер КАК Партнер,
| ЧекККМТовары.Помещение КАК Помещение,
+ // УАС - начало
+ | НЕОПРЕДЕЛЕНО =
+ // УАС - конец
| ЧекККМТовары.Продавец КАК Продавец,
| ЧекиККМ.Валюта КАК Валюта,
| ЧекиККМ.ВидЦены КАК ВидЦены,
@@ -4809,6 +4812,9 @@
| ЧекККМТовары.Склад,
| ЧекККМТовары.Партнер,
| ЧекККМТовары.Помещение,
+ // УАС - начало
+ | НЕОПРЕДЕЛЕНО =
+ // УАС - конец
| ЧекККМТовары.Продавец,
| ЧекККМТовары.Валюта,
| ЧекККМТовары.ВидЦены,
diff --git a/src/CommonModules/СПАРКРиски/Ext/Module.bsl b/src/CommonModules/СПАРКРиски/Ext/Module.bsl
index ee4b044bc..8bee1be22 100644
--- a/src/CommonModules/СПАРКРиски/Ext/Module.bsl
+++ b/src/CommonModules/СПАРКРиски/Ext/Module.bsl
@@ -1398,19 +1398,16 @@
//
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
- Методы.Вставить("ЗаполнениеКонтрагентовНаМониторингеСПАРКРиски", Истина);
Методы.Вставить("ЗаполнитьДанныеИндивидуальныхПредпринимателей");
Методы.Вставить("ЗаполнитьНовыеПоляТиповСобытий");
Методы.Вставить("ЗаполнитьНовыеРесурсыИндексыСПАРКРиски");
Методы.Вставить("НачальноеЗаполнениеДанныхСПАРКРиски");
- Методы.Вставить("ОбновлениеИндексовСПАРКРиски", Истина);
Методы.Вставить("ОбновлениеИнформационнойБазы_АктуализироватьОписаниеТиповСобытий");
Методы.Вставить("ОбновлениеИнформационнойБазы_ОчиститьРезультатыПостановкиНаМониторинг_2_1_9_2");
Методы.Вставить("ОбщиеДанныеНачальноеЗаполнениеДанныхСПАРКРиски");
Методы.Вставить("ОбщиеДанныеПерейтиНаВерсию_2_1_8_15");
Методы.Вставить("ПерейтиНаВерсию_2_1_7_10");
Методы.Вставить("ПерейтиНаВерсию_2_1_7_11");
- Методы.Вставить("ПроверитьГотовностьСправкиСПАРКРиски", Истина);
КонецПроцедуры
diff --git a/src/CommonModules/СПАРКФакторыРиска/Ext/Module.bsl b/src/CommonModules/СПАРКФакторыРиска/Ext/Module.bsl
index 8099b31b9..989050e8e 100644
--- a/src/CommonModules/СПАРКФакторыРиска/Ext/Module.bsl
+++ b/src/CommonModules/СПАРКФакторыРиска/Ext/Module.bsl
@@ -124,7 +124,6 @@
Методы.Вставить("ЗагрузитьФакторыРисков", Истина);
Методы.Вставить("НастройкаОбновленияФакторовРискаСПАРК");
- Методы.Вставить("ОбновлениеФакторовРисковСПАРК", Истина);
КонецПроцедуры
diff --git a/src/CommonModules/СводныеПриложения/Ext/Module.bsl b/src/CommonModules/СводныеПриложения/Ext/Module.bsl
index bb934b736..064fb9670 100644
--- a/src/CommonModules/СводныеПриложения/Ext/Module.bsl
+++ b/src/CommonModules/СводныеПриложения/Ext/Module.bsl
@@ -198,4 +198,12 @@
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗаданиеПланированиеЗагрузки", Истина);
+ Методы.Вставить("ЗаданиеВыгрузка", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/СервисВзаимодействияМПЭПД/Ext/Module.bsl b/src/CommonModules/СервисВзаимодействияМПЭПД/Ext/Module.bsl
index 00cb5d49f..fa6c5c7fb 100644
--- a/src/CommonModules/СервисВзаимодействияМПЭПД/Ext/Module.bsl
+++ b/src/CommonModules/СервисВзаимодействияМПЭПД/Ext/Module.bsl
@@ -596,6 +596,7 @@
СтруктураДанныхСообщения = СтруктураИзJson(СтрокаМассива.ServiceData);
Если СервисВзаимодействияМПЭПДКлиентСервер.ЭтоТипСообщенияОбОтправкеТитулаИзМП(СтруктураДанныхСообщения.Type)
+ Или СервисВзаимодействияМПЭПДКлиентСервер.ЭтоТипСообщенияОПросмотреТитулаВМП(СтруктураДанныхСообщения.Type)
Или СоответствиеТитуловТипамМП.Получить(СтруктураДанныхСообщения.Type) <> Неопределено Тогда
Результат.УведомленияСвязанныеСДокументами.Добавить(ТекущаяЗапись);
ВыполнитьЗапись = Ложь;
@@ -924,7 +925,7 @@
Если ДанныеСобытий.События.Количество() = 0
И ДанныеУведомлений.УведомленияСвязанныеСДокументами.Количество() = 0 Тогда
- Возврат;
+ Продолжить;
КонецЕсли;
МассивСобытийИУведомлений = ДанныеСобытий.События;
@@ -956,8 +957,8 @@
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
- | ЭлектронныйДокументИсходящийЭДО.Ссылка,
- | ЭлектронныйДокументИсходящийЭДО.ИдентификаторДокументооборота
+ | ЭлектронныйДокументИсходящийЭДО.Ссылка КАК Ссылка,
+ | ЭлектронныйДокументИсходящийЭДО.ИдентификаторДокументооборота КАК ИдентификаторДокументооборота
|ИЗ
| Документ.ЭлектронныйДокументИсходящийЭДО КАК ЭлектронныйДокументИсходящийЭДО
|ГДЕ
@@ -969,27 +970,33 @@
|ВЫБРАТЬ
| ВТ_ЭлектронныеДокументы.ИдентификаторДокументооборота КАК ИдентификаторДокументооборота,
| ОбъектыУчетаДокументовЭДО.ОбъектУчета КАК ОбъектУчета,
- | ЭлектроннаяТранспортнаяНакладная.ТитулПереадресовкаИдентификаторФайла,
- | ЭлектроннаяТранспортнаяНакладная.ДопТитулПереадресовкаИдентификаторФайла,
- | ЭлектроннаяТранспортнаяНакладная.ТитулПеревозчикаЗаменыИдентификаторФайла,
- | ЭлектроннаяТранспортнаяНакладная.ДопТитулПеревозчикаЗаменыИдентификаторФайла
+ | ЭлектроннаяТранспортнаяНакладная.ТитулПереадресовкаИдентификаторФайла КАК ТитулПереадресовкаИдентификаторФайла,
+ | ЭлектроннаяТранспортнаяНакладная.ДопТитулПереадресовкаИдентификаторФайла КАК ДопТитулПереадресовкаИдентификаторФайла,
+ | ЭлектроннаяТранспортнаяНакладная.ТитулПеревозчикаЗаменыИдентификаторФайла КАК ТитулПеревозчикаЗаменыИдентификаторФайла,
+ | ЭлектроннаяТранспортнаяНакладная.ДопТитулПеревозчикаЗаменыИдентификаторФайла КАК ДопТитулПеревозчикаЗаменыИдентификаторФайла,
+ | НЕ (РеестрЭПД.Ссылка ЕСТЬ NULL) КАК ДокументЕстьВРеестреЭПД,
+ | РеестрЭПД.ОжидаемПросмотрМП КАК ОжидаемПросмотрМП,
+ | РеестрЭПД.ТекущийШаг КАК ТекущийШаг,
+ | РеестрЭПД.ТекущийШагВыполнен КАК ТекущийШагВыполнен
|ИЗ
| ВТ_ЭлектронныеДокументы КАК ВТ_ЭлектронныеДокументы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОбъектыУчетаДокументовЭДО КАК ОбъектыУчетаДокументовЭДО
| ПО ВТ_ЭлектронныеДокументы.ЭлектронныйДокумент = ОбъектыУчетаДокументовЭДО.ЭлектронныйДокумент
- | И (ОбъектыУчетаДокументовЭДО.Актуальный = ИСТИНА)
+ | И ОбъектыУчетаДокументовЭДО.Актуальный = ИСТИНА
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектроннаяТранспортнаяНакладная КАК ЭлектроннаяТранспортнаяНакладная
| ПО ОбъектыУчетаДокументовЭДО.ОбъектУчета = ЭлектроннаяТранспортнаяНакладная.Ссылка
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РеестрЭПД КАК РеестрЭПД
+ | ПО ОбъектыУчетаДокументовЭДО.ОбъектУчета = РеестрЭПД.Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
- |выбрать
- | ПодключенныеМПЭПД.Идентификатор как ИдентификаторЗаписиМП,
- | ПодключенныеМПЭПД.ИдентификаторМП как ИдентификаторМП,
- | ПодключенныеМПЭПД.Наименование как НаименованиеМП
- |из
- | РегистрСведений.ПодключенныеМПЭПД как ПодключенныеМПЭПД
- |где
+ |ВЫБРАТЬ
+ | ПодключенныеМПЭПД.Идентификатор КАК ИдентификаторЗаписиМП,
+ | ПодключенныеМПЭПД.ИдентификаторМП КАК ИдентификаторМП,
+ | ПодключенныеМПЭПД.Наименование КАК НаименованиеМП
+ |ИЗ
+ | РегистрСведений.ПодключенныеМПЭПД КАК ПодключенныеМПЭПД
+ |ГДЕ
| ПодключенныеМПЭПД.ИдентификаторМП В (&МассивИдентификаторовМП)";
Запрос.УстановитьПараметр("ИдентификаторОрганизации", СтрокаТаблицы.УчетнаяЗаписьЭДО);
@@ -1012,13 +1019,8 @@
// В регистр записываются события, которые необходимо отражать в БД, а так же сообщения (уведомления),
// т.к. здесь обрабатываются только те сообщения, которые связаны с документами, остальное игнорируются.
- Если СтрокаМассива.ВидСообщения <> Перечисления.ТипыВзаимодействияМПЭПД.ПовторнаяРегистрацияМП
- И СтрокаМассива.ВидСообщения <> Перечисления.ТипыВзаимодействияМПЭПД.ИзменениеСведенийМП
- И СтрокаМассива.ВидСообщения <> Перечисления.ТипыВзаимодействияМПЭПД.ОтвязкаВодителя
- И СтрокаМассива.ВидСообщения <> Перечисления.ТипыВзаимодействияМПЭПД.ПривязкаВодителя
- И СтрокаМассива.ВидСообщения <> Перечисления.ТипыВзаимодействияМПЭПД.УдалениеМП
- И СтрокаМассива.ВидСообщения <> Перечисления.ТипыВзаимодействияМПЭПД.Сообщение Тогда
-
+ МассивЗагружаемыхВзаимодействий = СервисВзаимодействияМПЭПДКлиентСервер.МассивЗагружаемыхТиповВзаимодействий();
+ Если МассивЗагружаемыхВзаимодействий.Найти(СтрокаМассива.ВидСообщения) = Неопределено Тогда
Продолжить;
КонецЕсли;
@@ -1035,12 +1037,68 @@
КонецЕсли;
РегистрыСведений.КэшВзаимодействияМПЭПД.РегистрироватьЗапись(СтрокаМассива);
- Если Не ЗначениеЗаполнено(СтрокаМассива.ИдентификаторМП) Или Не ЕстьДокумент Тогда
+ Если Не ЗначениеЗаполнено(СтрокаМассива.ИдентификаторМП)
+ Или Не ЕстьДокумент
+ Или СтрокаМассива.ВидСообщения = Перечисления.ТипыВзаимодействияМПЭПД.ПовторнаяРегистрацияМП
+ Или СтрокаМассива.ВидСообщения = Перечисления.ТипыВзаимодействияМПЭПД.ИзменениеСведенийМП
+ Или Не ВыборкаДокументов.ДокументЕстьВРеестреЭПД Тогда
Продолжить;
КонецЕсли;
+ ЭтоПривязкаДокумента = СервисВзаимодействияМПЭПДКлиентСервер.ЭтоПривязкаДокумента(
+ СтрокаМассива.ВидСообщения);
+ ЭтоСообщение = СервисВзаимодействияМПЭПДКлиентСервер.ЭтоТипВзаимодействияСообщение(
+ СтрокаМассива.ВидСообщения);
+ ВыборкаДанныхМП.Сбросить();
+ СтруктураПоискаМП.ИдентификаторМП = СтрокаМассива.ИдентификаторМП;
+ ЕстьДанныеМП = ВыборкаДанныхМП.НайтиСледующий(СтруктураПоискаМП);
+
+ Если ЭтоСообщение Тогда
+ Если Не ЗначениеЗаполнено(СтрокаМассива.ДанныеСообщения) Тогда
+ Продолжить;
+ КонецЕсли;
+ Тип = Неопределено;
+ Принято = Неопределено;
+ СтруктураДанныхСообщения = СтруктураИзJson(СтрокаМассива.ДанныеСообщения);
+ СтруктураДанныхСообщения.Свойство("Type", Тип);
+ СтруктураДанныхСообщения.Свойство("Принято", Принято);
+
+ ПроверятьТитулыРеестраИСообщенияНаСовпадение = Истина;
+ ЭтоТипСообщенияОбОтправкеТитула =
+ СервисВзаимодействияМПЭПДКлиентСервер.ЭтоТипСообщенияОбОтправкеТитулаИзМП(Тип);
+ Если ЭтоТипСообщенияОбОтправкеТитула Тогда
+ ТипДляОпределенияТитула =
+ СервисВзаимодействияМПЭПДКлиентСервер.ПривестиТипСообщенияКВидуПолученияТитулаБЭД(Тип);
+ ТекущийШагМП = Тип;
+ Иначе
+ Если Тип = Неопределено Тогда
+ ТекущийШагМП = "";
+ Иначе
+ ТекущийШагМП = Тип + ?(Принято = Ложь, "_reject", "");
+ КонецЕсли;
+ ТипДляОпределенияТитула = Тип;
+ КонецЕсли;
+
+ ТитулСобытияУведомления = СоответствиеТитуловТипамМП.Получить(ТипДляОпределенияТитула);
+
+ ОжидаемПросмотрМП = ОжидаетсяПросмотрТитулаВМП(ВыборкаДокументов,
+ СтруктураДанныхСообщения, ВыборкаДокументов);
+ Иначе
+ Если ТипЗнч(ВыборкаДокументов.ОбъектУчета) = Тип("ДокументСсылка.ЭлектроннаяТранспортнаяНакладная") Тогда
+ ТитулСобытияУведомления = Неопределено;
+ ПроверятьТитулыРеестраИСообщенияНаСовпадение = Ложь;
+ Иначе
+ Если СтрокаМассива.ВидСообщения = Перечисления.ТипыВзаимодействияМПЭПД.ПривязкаВодителя
+ Или СтрокаМассива.ВидСообщения = Перечисления.ТипыВзаимодействияМПЭПД.ОтвязкаВодителя Тогда
+ ТитулСобытияУведомления = Перечисления.ТипыЭлементовРегламентаЭДО.ЭПЛ_Титул1;
+ Иначе
+ ТитулСобытияУведомления = Неопределено;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+
НачатьТранзакцию();
-
+
Попытка
Блокировка = Новый БлокировкаДанных;
@@ -1054,97 +1112,67 @@
МенеджерЗаписиРеестраЭПД = РегистрыСведений.РеестрЭПД.СоздатьМенеджерЗаписи();
МенеджерЗаписиРеестраЭПД.Ссылка = ВыборкаДокументов.ОбъектУчета;
МенеджерЗаписиРеестраЭПД.Прочитать();
-
- Если Не МенеджерЗаписиРеестраЭПД.Выбран() Тогда
- ОтменитьТранзакцию();
- Продолжить;
- КонецЕсли;
-
- СтруктураДанныхСообщения = СтруктураИзJson(СтрокаМассива.ДанныеСообщения);
- Тип = Неопределено;
- СтруктураДанныхСообщения.Свойство("Type", Тип);
- Принято = Неопределено;
- СтруктураДанныхСообщения.Свойство("Принято", Принято);
-
+
СоответствиеТитуловИШагов = ОбменСГИСЭПДКлиентСервер.СоответствиеТитуловИШагов(
- ВыборкаДокументов.ОбъектУчета);
+ ВыборкаДокументов.ОбъектУчета);
СоответствиеТитуловИШагов = СервисВзаимодействияМПЭПДКлиентСервер.ПеревернутьСоответствие(
- СоответствиеТитуловИШагов);
+ СоответствиеТитуловИШагов);
ТитулИзРеестра = СоответствиеТитуловИШагов.Получить(МенеджерЗаписиРеестраЭПД.ТекущийШаг);
-
- ЭтоТипСообщенияОбОтправкеТитула = СервисВзаимодействияМПЭПДКлиентСервер.ЭтоТипСообщенияОбОтправкеТитулаИзМП(Тип);
- Если ЭтоТипСообщенияОбОтправкеТитула Тогда
- ТипДляОпределенияТитула = СервисВзаимодействияМПЭПДКлиентСервер.ПривестиТипСообщенияКВидуПолученияТитулаБЭД(Тип);
+
+ Если ПроверятьТитулыРеестраИСообщенияНаСовпадение Тогда
+ ТитулСобытияИРеестраСовпадают = ТитулСобытияУведомления = ТитулИзРеестра;
Иначе
- ТипДляОпределенияТитула = Тип;
+ ТитулСобытияИРеестраСовпадают = Истина;
КонецЕсли;
- ТитулСобытияУведомления = СоответствиеТитуловТипамМП.Получить(ТипДляОпределенияТитула);
-
- ЭтоПривязкаДокумента = СервисВзаимодействияМПЭПДКлиентСервер.ЭтоПривязкаДокумента(
- СтрокаМассива.ВидСообщения);
- ЭтоСообщение = СервисВзаимодействияМПЭПДКлиентСервер.ЭтоТипВзаимодействияСообщение(
- СтрокаМассива.ВидСообщения);
-
- Если ТитулСобытияУведомления <> ТитулИзРеестра И Не ЭтоСообщение Тогда
- ОтменитьТранзакцию();
- Продолжить;
- КонецЕсли;
-
- ВыборкаДанныхМП.Сбросить();
- СтруктураПоискаМП.ИдентификаторМП = СтрокаМассива.ИдентификаторМП;
- ЕстьДанныеМП = ВыборкаДанныхМП.НайтиСледующий(СтруктураПоискаМП);
- Если ЭтоСообщение И ТитулСобытияУведомления <> ТитулИзРеестра Тогда
- Если ЭтоТипСообщенияОбОтправкеТитула Тогда
- МенеджерЗаписиРеестраЭПД.ТекущийШагМП = Тип;
- ИначеЕсли Тип <> Неопределено Тогда
- МенеджерЗаписиРеестраЭПД.ТекущийШагМП = Тип + ?(Принято = Ложь, "_reject", "");
- КонецЕсли;
-
- ИначеЕсли ЭтоСообщение И ЕстьДанныеМП Тогда
- МенеджерЗаписиРеестраЭПД.МобильноеПриложение = ВыборкаДанныхМП.ИдентификаторМП;
- МенеджерЗаписиРеестраЭПД.ИдентификаторЗаписиМП = ВыборкаДанныхМП.ИдентификаторЗаписиМП;
- МенеджерЗаписиРеестраЭПД.НаименованиеМП = ВыборкаДанныхМП.НаименованиеМП;
-
- Если ЭтоТипСообщенияОбОтправкеТитула Тогда
- МенеджерЗаписиРеестраЭПД.ТекущийШагМП = Тип;
- ИначеЕсли Тип <> Неопределено Тогда
- МенеджерЗаписиРеестраЭПД.ТекущийШагМП = Тип + ?(Принято = Ложь, "_reject", "");
- КонецЕсли;
-
+ Если ЭтоСообщение И Не ТитулСобытияИРеестраСовпадают Тогда
+ МенеджерЗаписиРеестраЭПД.ТекущийШагМП = ТекущийШагМП;
Если МенеджерЗаписиРеестраЭПД.ОжидаемПросмотрМП Тогда
- МенеджерЗаписиРеестраЭПД.ОжидаемПросмотрМП = ОжидаемПросмотрМП(МенеджерЗаписиРеестраЭПД,
- СтруктураДанныхСообщения, ВыборкаДокументов);
+ МенеджерЗаписиРеестраЭПД.ОжидаемПросмотрМП = ОжидаемПросмотрМП;
КонецЕсли;
-
- ИначеЕсли ЭтоПривязкаДокумента И ЕстьДанныеМП Тогда
+
+ ИначеЕсли ЭтоСообщение И ЕстьДанныеМП И ТитулСобытияИРеестраСовпадают Тогда
+ МенеджерЗаписиРеестраЭПД.МобильноеПриложение = ВыборкаДанныхМП.ИдентификаторМП;
+ МенеджерЗаписиРеестраЭПД.ИдентификаторЗаписиМП = ВыборкаДанныхМП.ИдентификаторЗаписиМП;
+ МенеджерЗаписиРеестраЭПД.НаименованиеМП = ВыборкаДанныхМП.НаименованиеМП;
+ Если ВыборкаДокументов.ТекущийШагВыполнен Тогда
+ МенеджерЗаписиРеестраЭПД.ТекущийШагМП = "";
+ Иначе
+ МенеджерЗаписиРеестраЭПД.ТекущийШагМП = ТекущийШагМП;
+ КонецЕсли;
+ МенеджерЗаписиРеестраЭПД.ОжидаемПросмотрМП = ОжидаемПросмотрМП;
+
+ ИначеЕсли ЭтоПривязкаДокумента И ЕстьДанныеМП И ТитулСобытияИРеестраСовпадают Тогда
МенеджерЗаписиРеестраЭПД.МобильноеПриложение = ВыборкаДанныхМП.ИдентификаторМП;
МенеджерЗаписиРеестраЭПД.ИдентификаторЗаписиМП = ВыборкаДанныхМП.ИдентификаторЗаписиМП;
МенеджерЗаписиРеестраЭПД.НаименованиеМП = ВыборкаДанныхМП.НаименованиеМП;
- ИначеЕсли СтрокаМассива.ВидСообщения <> Перечисления.ТипыВзаимодействияМПЭПД.ПовторнаяРегистрацияМП
- И СтрокаМассива.ВидСообщения <> Перечисления.ТипыВзаимодействияМПЭПД.ИзменениеСведенийМП Тогда
+ ИначеЕсли ТитулСобытияИРеестраСовпадают Тогда
+ // Событие отвязки или удаления МП.
МенеджерЗаписиРеестраЭПД.МобильноеПриложение = "";
МенеджерЗаписиРеестраЭПД.ИдентификаторЗаписиМП = "";
МенеджерЗаписиРеестраЭПД.НаименованиеМП = "";
МенеджерЗаписиРеестраЭПД.ТекущийШагМП = "";
+ МенеджерЗаписиРеестраЭПД.ОжидаемПросмотрМП = Ложь;
Иначе
ОтменитьТранзакцию();
Продолжить;
КонецЕсли;
-
+
МенеджерЗаписиРеестраЭПД.Записать(Истина);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ИнформацияОбОшибке = ИнформацияОбОшибке();
- РегистрацияВЖурнале(УровеньЖурналаРегистрации.Ошибка, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
+ РегистрацияВЖурнале(УровеньЖурналаРегистрации.Ошибка,
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПопытки;
КонецЦикла; // По событиям и уведомлениям
Если ЗначениеЗаполнено(НоваяТочкаУведомлений) ИЛИ ЗначениеЗаполнено(НоваяТочкаСобытий) Тогда
- ТекущаяЗапись = РегистрыСведений.НастройкиВзаимодействияМПЭПД.ПараметрыЗаписиРегистра(СтрокаТаблицы.УчетнаяЗаписьЭДО);
+ ТекущаяЗапись = РегистрыСведений.НастройкиВзаимодействияМПЭПД.ПараметрыЗаписиРегистра(
+ СтрокаТаблицы.УчетнаяЗаписьЭДО);
Если ЗначениеЗаполнено(НоваяТочкаУведомлений) Тогда
ТекущаяЗапись.ТочкаОпросаУведомлений = НоваяТочкаУведомлений;
КонецЕсли;
@@ -1158,169 +1186,9 @@
КонецПроцедуры
-Процедура ОтправитьСообщениеОПереадресовке(Документ) Экспорт
-
- УстановитьПривилегированныйРежим(Истина);
-
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | ЭлектронныйДокументВходящийЭДО.ИдентификаторОрганизации КАК ИдентификаторОрганизации,
- | ЭлектронныйДокументВходящийЭДО.ИдентификаторДокументооборота КАК ИдентификаторДокументооборота,
- | ВЫРАЗИТЬ(ОбъектыУчетаДокументовЭДО.ОбъектУчета КАК Документ.ЭлектроннаяТранспортнаяНакладная).ТитулГрузоотправителяТранспортнаяНакладнаяНомер КАК Номер,
- | ВЫРАЗИТЬ(ОбъектыУчетаДокументовЭДО.ОбъектУчета КАК Документ.ЭлектроннаяТранспортнаяНакладная).ТитулГрузоотправителяТранспортнаяНакладнаяДата КАК Дата,
- | ВЫРАЗИТЬ(ОбъектыУчетаДокументовЭДО.ОбъектУчета КАК Документ.ЭлектроннаяТранспортнаяНакладная).ТитулПереадресовкаИдентификаторФайла КАК ИдентификаторФайла,
- | ВЫРАЗИТЬ(ОбъектыУчетаДокументовЭДО.ОбъектУчета КАК Документ.ЭлектроннаяТранспортнаяНакладная).ДопТитулПереадресовкаИдентификаторФайла КАК ДопТитулИдентификаторФайла,
- | РеестрЭПД.МобильноеПриложение КАК ИдентификаторМП
- |ИЗ
- | РегистрСведений.ОбъектыУчетаДокументовЭДО КАК ОбъектыУчетаДокументовЭДО
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЭлектронныйДокументВходящийЭДО КАК ЭлектронныйДокументВходящийЭДО
- | ПО ОбъектыУчетаДокументовЭДО.ЭлектронныйДокумент = ЭлектронныйДокументВходящийЭДО.Ссылка
- | И (ОбъектыУчетаДокументовЭДО.ОбъектУчета = &Документ)
- | И (ОбъектыУчетаДокументовЭДО.Актуальный = ИСТИНА)
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиВзаимодействияМПЭПД КАК НастройкиВзаимодействияМПЭПД
- | ПО (ЭлектронныйДокументВходящийЭДО.ИдентификаторОрганизации = НастройкиВзаимодействияМПЭПД.ИдентификаторЭДО)
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РеестрЭПД КАК РеестрЭПД
- | ПО ОбъектыУчетаДокументовЭДО.ОбъектУчета = РеестрЭПД.Ссылка";
- Запрос.УстановитьПараметр("Документ", Документ);
- Выборка = Запрос.Выполнить().Выбрать();
-
- Если Не Выборка.Следующий() Тогда
- Возврат;
- КонецЕсли;
-
- ИдентификаторДокументооборота = Выборка.ИдентификаторДокументооборота;
- ИдентификаторЭДО = Выборка.ИдентификаторОрганизации;
- Номер = Выборка.Номер;
- Дата = Формат(Выборка.Дата, "ДФ=dd.MM.yyyy");
- ИдентификаторМП = Выборка.ИдентификаторМП;
-
- Шаблон = НСтр("ru='Переадресовка сформирована по документу %1 от %2'");
- Содержимое = СтрШаблон(Шаблон, Номер, Дата);
-
- Если ЗначениеЗаполнено(Выборка.ДопТитулИдентификаторФайла) Тогда
- ИдентификаторФайла = Выборка.ДопТитулИдентификаторФайла;
- Иначе
- ИдентификаторФайла = Выборка.ИдентификаторФайла;
- КонецЕсли;
-
- ДанныеСообщения = Новый Структура;
- ДанныеСообщения.Вставить("FileId", ИдентификаторФайла);
- ДанныеСообщения.Вставить("Type", ТипСообщенияДляМППереадресовка());
-
- ДанныеСообщенияJSON = СтруктураВJSON(ДанныеСообщения);
-
- ПараметрыОперации = Новый Структура;
- ПараметрыОперации.Вставить("ИдентификаторДокумента", ИдентификаторДокументооборота);
- ПараметрыОперации.Вставить("Содержимое", Содержимое);
- ПараметрыОперации.Вставить("ДанныеСообщения", ДанныеСообщенияJSON);
- ПараметрыОперации.Вставить("ИдентификаторМП", ИдентификаторМП);
-
- СервисОтправитьУведомления(ИдентификаторЭДО, ПараметрыОперации);
-
- УстановитьПривилегированныйРежим(Ложь);
-
-КонецПроцедуры
-
-Процедура ОтправитьСообщениеОЗаменеТС(Документ) Экспорт
-
- МассивТитулов = Новый Массив;
- МассивТитулов.Добавить(Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул8);
- МассивТитулов.Добавить(Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул8);
-
- УстановитьПривилегированныйРежим(Истина);
-
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | ЗначенияРеквизитовДокументовЭПД.ЗначениеРеквизитаСтрока КАК СодержаниеОперации
- |ИЗ
- | РегистрСведений.ЗначенияРеквизитовДокументовЭПД КАК ЗначенияРеквизитовДокументовЭПД
- |ГДЕ
- | ЗначенияРеквизитовДокументовЭПД.Документ = &Документ
- | И ЗначенияРеквизитовДокументовЭПД.Титул В(&МассивТитулов)
- | И (ЗначенияРеквизитовДокументовЭПД.ИмяРеквизита = ""ТитулПеревозчикаЗаменыСодержаниеОперации""
- | ИЛИ ЗначенияРеквизитовДокументовЭПД.ИмяРеквизита = ""ДопТитулПеревозчикаЗаменыСодержаниеОперации"")
- |
- |УПОРЯДОЧИТЬ ПО
- | ЗначенияРеквизитовДокументовЭПД.НомерВерсии УБЫВ
- |;
- |
- |////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ
- | ЭлектронныйДокументВходящийЭДО.ИдентификаторОрганизации КАК ИдентификаторОрганизации,
- | ЭлектронныйДокументВходящийЭДО.ИдентификаторДокументооборота КАК ИдентификаторДокументооборота,
- | ВЫРАЗИТЬ(ОбъектыУчетаДокументовЭДО.ОбъектУчета КАК Документ.ЭлектроннаяТранспортнаяНакладная).ТитулГрузоотправителяТранспортнаяНакладнаяНомер КАК Номер,
- | ВЫРАЗИТЬ(ОбъектыУчетаДокументовЭДО.ОбъектУчета КАК Документ.ЭлектроннаяТранспортнаяНакладная).ТитулГрузоотправителяТранспортнаяНакладнаяДата КАК Дата,
- | ВЫРАЗИТЬ(ОбъектыУчетаДокументовЭДО.ОбъектУчета КАК Документ.ЭлектроннаяТранспортнаяНакладная).ТитулПеревозчикаЗаменыИдентификаторФайла КАК ИдентификаторФайла,
- | ВЫРАЗИТЬ(ОбъектыУчетаДокументовЭДО.ОбъектУчета КАК Документ.ЭлектроннаяТранспортнаяНакладная).ДопТитулПеревозчикаЗаменыИдентификаторФайла КАК ДопТитулИдентификаторФайла,
- | РеестрЭПД.МобильноеПриложение КАК ИдентификаторМП
- |ИЗ
- | РегистрСведений.ОбъектыУчетаДокументовЭДО КАК ОбъектыУчетаДокументовЭДО
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЭлектронныйДокументВходящийЭДО КАК ЭлектронныйДокументВходящийЭДО
- | ПО ОбъектыУчетаДокументовЭДО.ЭлектронныйДокумент = ЭлектронныйДокументВходящийЭДО.Ссылка
- | И (ОбъектыУчетаДокументовЭДО.ОбъектУчета = &Документ)
- | И (ОбъектыУчетаДокументовЭДО.Актуальный = ИСТИНА)
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиВзаимодействияМПЭПД КАК НастройкиВзаимодействияМПЭПД
- | ПО (ЭлектронныйДокументВходящийЭДО.ИдентификаторОрганизации = НастройкиВзаимодействияМПЭПД.ИдентификаторЭДО)
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РеестрЭПД КАК РеестрЭПД
- | ПО ОбъектыУчетаДокументовЭДО.ОбъектУчета = РеестрЭПД.Ссылка";
- Запрос.УстановитьПараметр("Документ", Документ);
- Запрос.УстановитьПараметр("МассивТитулов", МассивТитулов);
-
- РезультатыЗапросов = Запрос.ВыполнитьПакет();
- Выборка = РезультатыЗапросов[1].Выбрать();
- ВыборкаСодержанияОперации = РезультатыЗапросов[0].Выбрать();
-
- Если Не Выборка.Следующий()
- Или Не ВыборкаСодержанияОперации.Следующий() Тогда
- Возврат;
- КонецЕсли;
-
- // Если в содержании операции есть замена водителя, значит в моб. устройстве документооборот завершается,
- // в этом случае отправлять дополнительное сообщение не нужно
- СодержаниеОперации = ВыборкаСодержанияОперации.СодержаниеОперации;
- Если СтрНайти(СодержаниеОперации, "Замена водителя") <> 0
- Или СтрНайти(СодержаниеОперации, "Замена водителей") <> 0 Тогда
- Возврат;
- КонецЕсли;
-
- ИдентификаторДокументооборота = Выборка.ИдентификаторДокументооборота;
- ИдентификаторЭДО = Выборка.ИдентификаторОрганизации;
- Номер = Выборка.Номер;
- Дата = Формат(Выборка.Дата, "ДФ=dd.MM.yyyy");
- ИдентификаторМП = Выборка.ИдентификаторМП;
-
- Шаблон = НСтр("ru='Замена ТС сформирована по документу %1 от %2'");
- Содержимое = СтрШаблон(Шаблон, Номер, Дата);
-
- Если ЗначениеЗаполнено(Выборка.ДопТитулИдентификаторФайла) Тогда
- ИдентификаторФайла = Выборка.ДопТитулИдентификаторФайла;
- Иначе
- ИдентификаторФайла = Выборка.ИдентификаторФайла;
- КонецЕсли;
-
- ДанныеСообщения = Новый Структура;
- ДанныеСообщения.Вставить("FileId", ИдентификаторФайла);
- ДанныеСообщения.Вставить("Type", ТипСообщенияДляМПЗаменаТС());
-
- ДанныеСообщенияJSON = СтруктураВJSON(ДанныеСообщения);
-
- ПараметрыОперации = Новый Структура;
- ПараметрыОперации.Вставить("ИдентификаторДокумента", ИдентификаторДокументооборота);
- ПараметрыОперации.Вставить("Содержимое", Содержимое);
- ПараметрыОперации.Вставить("ДанныеСообщения", ДанныеСообщенияJSON);
- ПараметрыОперации.Вставить("ИдентификаторМП", ИдентификаторМП);
-
- СервисОтправитьУведомления(ИдентификаторЭДО, ПараметрыОперации);
-
- УстановитьПривилегированныйРежим(Ложь);
-
-КонецПроцедуры
-
Процедура СервисОтправитьНастройкиДополнительныхПолей(МассивНастроек) Экспорт
- МассивМП = СервисВзаимодействияМПЭПДВызовСервера.СписокПодключенныхМП(, , Истина);
+ МассивМП = СервисВзаимодействияМПЭПДВызовСервера.СписокПодключенныхМП();
СоответствиеОтправки = Новый Соответствие;
Для Каждого СтруктураМП Из МассивМП Цикл
@@ -1708,7 +1576,7 @@
#Область ВизуальноеОформлениеМПНаФормахДокументов
-// Добавляет в масси реквизиты МП.
+// Добавляет в массив реквизиты МП.
//
// Параметры:
// МассивРеквизитовДобавления - Массив из РеквизитФормы
@@ -2151,7 +2019,10 @@
Если ЭтоИсходящийКонтейнер Тогда
ПараметрыПриглашения.ИдентификаторОрганизации = РезультатРаспаковки.Карточка.ИдентификаторОтправителя;
ПараметрыПриглашения.ИдентификаторКонтрагента = РезультатРаспаковки.Карточка.ИдентификаторПолучателя;
- ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашенияПоПараметрам(ПараметрыПриглашения);
+ ЗаполнятьПредставлениеКонтрагента = Ложь;
+ ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашенияПоПараметрам(
+ ПараметрыПриглашения,
+ ЗаполнятьПредставлениеКонтрагента);
Контрагент = ДанныеПриглашения.Контрагент;
КонецЕсли;
@@ -2256,12 +2127,245 @@
#Область ДанныеМобильногоПриложения
+// Возвращает признак необходимости добавления данных МП.
+//
+// Параметры:
+// ПервичнаяЗаписьРегистра - Структура, РегистрСведенийМенеджер.РеестрЭПД -
+// ИзмененнаяЗаписьРегистра - Структура, РегистрСведенийМенеджер.РеестрЭПД -
+//
+// Возвращаемое значение:
+// Булево - Признак необходимости добавления данных МП.
+//
+Функция НужноДобавитьДанныеМП(ПервичнаяЗаписьРегистра, ИзмененнаяЗаписьРегистра) Экспорт
+
+ Если ТипЗнч(ИзмененнаяЗаписьРегистра.Ссылка) <> Тип("ДокументСсылка.ЭлектроннаяТранспортнаяНакладная")
+ И ТипЗнч(ИзмененнаяЗаписьРегистра.Ссылка) <> Тип("ДокументСсылка.ЭлектронныйПутевойЛист") Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ ТекущийШагИзменился = ПервичнаяЗаписьРегистра.ТекущийШаг <> ИзмененнаяЗаписьРегистра.ТекущийШаг
+ Или ПервичнаяЗаписьРегистра.ТекущийШагВыполнен <> ИзмененнаяЗаписьРегистра.ТекущийШагВыполнен;
+
+ ШагиТребующиеПросмотрМП = ШагиТребующиеПросмотрМП();
+ ЭтотШагТребуетРасчетаПросмотра =
+ ШагиТребующиеПросмотрМП.Найти(ИзмененнаяЗаписьРегистра.ТекущийШаг) <> Неопределено
+ И ИзмененнаяЗаписьРегистра.ТекущийШагВыполнен;
+
+ НужноДобавитьДанныеМП = ТекущийШагИзменился Или ЭтотШагТребуетРасчетаПросмотра;
+
+ Возврат НужноДобавитьДанныеМП
+
+КонецФункции
+
+// Возвращает данные мобильного приложения для записи в реестр ЭПД.
+//
+// Параметры:
+// КоллекцияЗаписейРегистра - Произвольный - Коллекция с данными регистра и возможностью изменения. См. ОбменСГИСЭПДКлиентСервер.НоваяСтруктураДляРеестраЭПД.
+// ЗаписьИзФормы - Булево - Запись документа из формы означает прочтение сообщения от МП.
+// СоответствиеЭлектронныхДокументов - Неопределено, Соответствие из ДокументСсылка - Соответствие электронных документов и документов учета.
+// Обязательно при записи новых документов, т.к. в этом случае записей в регистре ОбъектыУчетаДокументовЭДО еще нет.
+//
+Процедура ДобавитьДанныеМобильногоПриложенияДляЗаписиВРеестр(КоллекцияЗаписейРегистра, ЗаписьИзФормы,
+ СоответствиеЭлектронныхДокументов = Неопределено) Экспорт
+
+ Если КоллекцияЗаписейРегистра.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ ТаблицаДоступныхВзаимодействий = Новый ТаблицаЗначений;
+ ОписаниеТиповДокумент = Новый ОписаниеТипов("ДокументСсылка.ЭлектроннаяТранспортнаяНакладная, ДокументСсылка.ЭлектронныйПутевойЛист");
+ ОписаниеТиповЭлектронныйДокумент = Новый ОписаниеТипов("ДокументСсылка.ЭлектронныйДокументВходящийЭДО, ДокументСсылка.ЭлектронныйДокументИсходящийЭДО");
+ ТаблицаДоступныхВзаимодействий.Колонки.Добавить("Документ", ОписаниеТиповДокумент);
+ ТаблицаДоступныхВзаимодействий.Колонки.Добавить("ЭлектронныйДокумент", ОписаниеТиповЭлектронныйДокумент);
+ ТаблицаДоступныхВзаимодействий.Колонки.Добавить("ВидВзаимодействия", Новый ОписаниеТипов("ПеречислениеСсылка.ТипыВзаимодействияМПЭПД"));
+
+ ЗапросСОтборомПоЭлектронномуДокументу = СоответствиеЭлектронныхДокументов <> Неопределено;
+ МожноРассчитатьДанныеОПросмотреМП = Ложь;
+ ШагиТребующиеПросмотрМП = ШагиТребующиеПросмотрМП();
+
+ // Подготовка таблицы доступных взаимодействий.
+ Для Каждого ЗаписьРегистра Из КоллекцияЗаписейРегистра Цикл
+ Документ = ЗаписьРегистра.Ссылка;
+ РольУчастника = ЗаписьРегистра.РольУчастника;
+
+ Если Не МожноРассчитатьДанныеОПросмотреМП
+ И ШагиТребующиеПросмотрМП.Найти(ЗаписьРегистра.ТекущийШаг) <> Неопределено
+ И ЗаписьРегистра.ТекущийШагВыполнен Тогда
+ МожноРассчитатьДанныеОПросмотреМП = Истина;
+ КонецЕсли;
+
+ СоответствиеТитуловИШагов = ОбменСГИСЭПДКлиентСервер.СоответствиеТитуловИШагов(Документ);
+ СоответствиеТитуловИШагов = СервисВзаимодействияМПЭПДКлиентСервер.ПеревернутьСоответствие(
+ СоответствиеТитуловИШагов);
+
+ Титул = СоответствиеТитуловИШагов.Получить(ЗаписьРегистра.ТекущийШаг);
+ ИндексРаботыПоТитулу = СервисВзаимодействияМПЭПДКлиентСервер.ИндексРаботыПоТитулу(Титул);
+ ИндексРаботыДоступен = СервисВзаимодействияМПЭПДКлиентСервер.ИндексРаботыДоступенДляРолиУчастника(Документ,
+ РольУчастника, ИндексРаботыПоТитулу);
+
+ Если ТипЗнч(Документ) = Тип("ДокументСсылка.ЭлектроннаяТранспортнаяНакладная") Тогда
+ МассивДоступныхИндексов = СервисВзаимодействияМПЭПДКлиентСервер.МассивДоступныхИндексовРаботПоРолиУчастника(
+ Документ, РольУчастника);
+ ПоТитуламМогутБытьВзаимодействия = ИндексРаботыДоступен
+ Или Титул = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул7
+ Или Титул = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул7
+ Или Титул = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул8
+ Или Титул = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул8;
+ Если МассивДоступныхИндексов.Количество() = 0 Или Не ПоТитуламМогутБытьВзаимодействия Тогда
+ Продолжить;
+ КонецЕсли;
+ Иначе
+ Если Не ИндексРаботыДоступен Тогда
+ Продолжить;
+ КонецЕсли;
+ КонецЕсли;
+
+ МассивДоступныхВидовВзаимодействия =
+ СервисВзаимодействияМПЭПДКлиентСервер.МассивДоступныхВидовВзаимодействияПоТитулу(Титул);
+ Для Каждого ВидВзаимодействия Из МассивДоступныхВидовВзаимодействия Цикл
+ НоваяСтрока = ТаблицаДоступныхВзаимодействий.Добавить();
+ НоваяСтрока.Документ = Документ;
+ НоваяСтрока.ВидВзаимодействия = ВидВзаимодействия;
+ Если ЗапросСОтборомПоЭлектронномуДокументу Тогда
+ НоваяСтрока.ЭлектронныйДокумент = СоответствиеЭлектронныхДокументов[Документ];
+ КонецЕсли;
+ КонецЦикла;
+ КонецЦикла;
+
+ Если ТаблицаДоступныхВзаимодействий.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ // Формирование запроса.
+ Если ЗапросСОтборомПоЭлектронномуДокументу Тогда
+ СтруктураЗапроса = ТекстИИндексЗапросаСообщенийМП_ОтборПоЭлектронномуДокументу();
+ ТекстЗапроса = СтруктураЗапроса.ТекстЗапроса;
+ ИндексВыборкиДокументов = СтруктураЗапроса.ИндексРезультата;
+ Иначе
+ СтруктураЗапроса = ТекстИИндексЗапросаСообщенийМП_ОтборПоОбъектамУчета();
+ ТекстЗапроса = СтруктураЗапроса.ТекстЗапроса;
+ ИндексВыборкиДокументов = СтруктураЗапроса.ИндексРезультата;
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.УстановитьПараметр("ТаблицаДоступныхВзаимодействий", ТаблицаДоступныхВзаимодействий);
+ Запрос.Текст = ТекстЗапроса;
+
+ Если МожноРассчитатьДанныеОПросмотреМП Тогда
+ СтруктураЗапроса = ТекстИИндексЗапросаДанныхОПросмотреМП();
+ РазделительПакетаЗапросов = ОбщегоНазначения.РазделительПакетаЗапросов();
+ Запрос.Текст = Запрос.Текст + РазделительПакетаЗапросов + СтруктураЗапроса.ТекстЗапроса;
+ ИндексДанныхОПросмотреМП = ИндексВыборкиДокументов + СтруктураЗапроса.ИндексРезультата + 1;
+ КонецЕсли;
+
+ // Получение результата запроса.
+ Если МожноРассчитатьДанныеОПросмотреМП Тогда
+ МассивРезультатов = Запрос.ВыполнитьПакет();
+ ВыборкаДокументов = МассивРезультатов[ИндексВыборкиДокументов].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
+ ВыборкаДанныхОПросмотреДокумента = МассивРезультатов[ИндексДанныхОПросмотреМП].Выбрать();
+ Иначе
+ ВыборкаДокументов = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
+ КонецЕсли;
+
+ СтруктураПоискаПоДокументу = Новый Структура;
+ СтруктураПоискаПоДокументу.Вставить("Документ");
+
+ СоответствиеТитуловТипамМП = СервисВзаимодействияМПЭПДКлиентСервер.СоответствиеТитуловТипамМП();
+
+ // Добавление в записи регистра данных МП, доступных для текущего титула (ТаблицаДоступныхВзаимодействий).
+ Для Каждого ЗаписьРегистра Из КоллекцияЗаписейРегистра Цикл
+ ВыборкаДокументов.Сбросить();
+ ТитулЗаписиРегистра = ТитулТекущегоШагаДокумента(ЗаписьРегистра.Ссылка, ЗаписьРегистра.ТекущийШаг);
+
+ МожетБытьДобавленПризнакОжиданияПросмотраМП =
+ МожноРассчитатьДанныеОПросмотреМП
+ И ШагиТребующиеПросмотрМП.Найти(ЗаписьРегистра.ТекущийШаг) <> Неопределено
+ И ЗаписьРегистра.ТекущийШагВыполнен;
+
+ СтруктураПоискаПоДокументу.Документ = Документ;
+ Если Не ВыборкаДокументов.НайтиСледующий(СтруктураПоискаПоДокументу) Тогда
+ // Нет доступных взаимодействий по титулу.
+ УбратьДанныеМПИзЗаписиРегистра(ЗаписьРегистра);
+ Продолжить;
+ КонецЕсли;
+
+ ВыборкаДанныхПоДокументу = ВыборкаДокументов.Выбрать();
+
+ // Добавление документов в КЭШ взаимодействия с МП.
+ Если ЗапросСОтборомПоЭлектронномуДокументу Тогда
+ ПриЗаписиРеестраДобавитьДокументВКэшВзаимодействияМПЭПД(Документ, ВыборкаДанныхПоДокументу);
+ КонецЕсли;
+
+ Пока ВыборкаДанныхПоДокументу.Следующий() Цикл
+ ЭтоСообщение = СервисВзаимодействияМПЭПДКлиентСервер.ЭтоТипВзаимодействияСообщение(
+ ВыборкаДанныхПоДокументу.ВидСообщения);
+ Если Не ЭтоСообщение Тогда
+ Прервать;
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(ВыборкаДанныхПоДокументу.ДанныеСообщения) Тогда
+ СтруктураПризнаков = ТипИПризнакПринятоСообщенияМП(ВыборкаДанныхПоДокументу.ДанныеСообщения);
+ Тип = СтруктураПризнаков.Тип;
+ ТитулПринят = СтруктураПризнаков.Принято;
+ ЭтоТипСообщенияОбОтправкеТитула = СтруктураПризнаков.ЭтоТипСообщенияОбОтправкеТитула;
+
+ ТитулВСообщении = СоответствиеТитуловТипамМП.Получить(Тип);
+ Если ТитулВСообщении = ТитулЗаписиРегистра Тогда
+ Прервать;
+ КонецЕсли;
+ КонецЕсли;
+
+ ЭтоСообщение = Ложь;
+ КонецЦикла;
+
+ ЭтоПривязкаДокумента =
+ СервисВзаимодействияМПЭПДКлиентСервер.ЭтоПривязкаДокумента(ВыборкаДанныхПоДокументу.ВидСообщения);
+
+ Если Не ЭтоПривязкаДокумента И Не ЭтоСообщение Тогда
+ // Обработка отвязки документа от МП.
+ УбратьДанныеМПИзЗаписиРегистра(ЗаписьРегистра, МожетБытьДобавленПризнакОжиданияПросмотраМП);
+
+ ИначеЕсли ЭтоСообщение Тогда
+ // Обработка событий с сообщениями и непосредственно сообщений (уведомлений).
+ ЗаписьРегистра.МобильноеПриложение = ВыборкаДанныхПоДокументу.ИдентификаторМП;
+ ЗаписьРегистра.ИдентификаторЗаписиМП = ВыборкаДанныхПоДокументу.ИдентификаторЗаписиМП;
+ ЗаписьРегистра.НаименованиеМП = ВыборкаДанныхПоДокументу.НаименованиеМП;
+
+ Если ЗаписьРегистра.ТекущийШагВыполнен Тогда
+ ЗаписьРегистра.ТекущийШагМП = "";
+ ИначеЕсли ЭтоТипСообщенияОбОтправкеТитула Тогда
+ ЗаписьРегистра.ТекущийШагМП = Тип;
+ ИначеЕсли Тип <> Неопределено Тогда
+ ЗаписьРегистра.ТекущийШагМП = Тип + ?(ТитулПринят = Ложь, "_reject", "");
+ КонецЕсли;
+
+ Иначе
+ // Обработка взаимодействий без сообщений (например вызываных из БЭД или событий привзяки).
+ ЗаписьРегистра.МобильноеПриложение = ВыборкаДанныхПоДокументу.ИдентификаторМП;
+ ЗаписьРегистра.ИдентификаторЗаписиМП = ВыборкаДанныхПоДокументу.ИдентификаторЗаписиМП;
+ ЗаписьРегистра.НаименованиеМП = ВыборкаДанныхПоДокументу.НаименованиеМП;
+ КонецЕсли;
+
+ Если МожетБытьДобавленПризнакОжиданияПросмотраМП Тогда
+ ПриЗаписиРеестраУстановитьПризнакОжиданияПросмотраМП(ЗаписьРегистра, ВыборкаДанныхПоДокументу,
+ ВыборкаДанныхОПросмотреДокумента, СтруктураПоискаПоДокументу);
+ КонецЕсли;
+
+ // Отметка о том, что данные сообщения МП просмотрены на форме.
+ Если ЗаписьИзФормы Тогда
+ ЗаписьРегистра.ТекущийШагМП = "";
+ КонецЕсли;
+
+ КонецЦикла; // По коллекции записей регистра
+
+КонецПроцедуры
+
// Возвращает список подключенных устройств.
//
// Параметры:
-// Отборы - Неопределено, Структура - Отборы
-// ВключаяНеактивные - Булево - Включая неактивные
-// ВернутьМассив - Булево - Вернуть массив
+// Отборы - Неопределено, Структура - Отборы.
+// ТолькоАктивные - Булево - Возвращаются только активные МП.
+// ВернутьМассив - Булево - Признак возвращения массива, в ином случае вернется таблица.
//
// Возвращаемое значение:
// ТаблицаЗначений - Список подключенных МП:
@@ -2291,7 +2395,7 @@
//@skip-check module-query-syntax
//@skip-check bsl-ql-hub
//@skip-check doc-comment-description-ends-on-dot
-Функция СписокПодключенныхМП(Отборы = Неопределено, ВключаяНеактивные = Ложь) Экспорт
+Функция СписокПодключенныхМП(Отборы = Неопределено, ТолькоАктивные = Ложь) Экспорт
МетаданныеПеречисления = Перечисления.СостояниеМПЭПД.ПустаяСсылка().Метаданные();
ПервоеЗначение = Истина;
@@ -2388,6 +2492,7 @@
| РегистрСведений.ПодключенныеМПЭПД КАК ПодключенныеМПЭПД
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеУчетныеЗаписи КАК ВсеУчетныеЗаписи
| ПО ПодключенныеМПЭПД.ИдентификаторЭДО = ВсеУчетныеЗаписи.ИдентификаторЭДО
+ | И НЕ ПодключенныеМПЭПД.Удален
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИндексыКартинокСостояний КАК ВТ_ИндексыКартинокСостояний
| ПО ПодключенныеМПЭПД.Состояние = ВТ_ИндексыКартинокСостояний.Состояние
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПредставленияРолей КАК ВТ_ПредставленияРолей
@@ -2423,13 +2528,9 @@
КонецЦикла;
КонецЕсли;
- Если Не ВключаяНеактивные Тогда
+ Если ТолькоАктивные Тогда
СписокСостояний = Новый СписокЗначений;
- СписокСостояний.Добавить(Перечисления.СостояниеМПЭПД.Недоступен);
- СписокСостояний.Добавить(Перечисления.СостояниеМПЭПД.ОжидаетсяПодключение);
СписокСостояний.Добавить(Перечисления.СостояниеМПЭПД.Подключен);
- СписокСостояний.Добавить(Перечисления.СостояниеМПЭПД.ПодключениеНеВыполнено);
- СписокСостояний.Добавить(Перечисления.СостояниеМПЭПД.Черновик);
НовыйОтбор = НовыйЗапрос.Отбор.Добавить("Состояние", "П" + Счетчик);
НовыйОтбор.ВидСравнения = ВидСравнения.ВСписке;
НовыйОтбор.Значение = СписокСостояний;
@@ -2480,7 +2581,8 @@
//@skip-check module-query-syntax
//@skip-check bsl-ql-hub
//@skip-check doc-comment-description-ends-on-dot
-Функция СтруктураДанныхМП(ИдентификаторЭДО, Роль, Идентификатор = Неопределено, СтруктураКлючевыхПолей = Неопределено) Экспорт
+Функция СтруктураДанныхМП(ИдентификаторЭДО, Роль, Идентификатор = Неопределено,
+ СтруктураКлючевыхПолей = Неопределено) Экспорт
ПредставленияРолейМП = СервисВзаимодействияМПЭПДКлиентСервер.ПредставленияРолейМП();
МассивЧастейПредставленийРолей = Новый Массив;
@@ -2641,227 +2743,6 @@
КонецПроцедуры
-// Возвращает данные мобильного приложения для записи в реестр ЭПД.
-//
-// Параметры:
-// КоллекцияЗаписейРегистра - Произвольный - Коллекция с данными регистра и возможностью изменения. См. ОбменСГИСЭПДКлиентСервер.НоваяСтруктураДляРеестраЭПД.
-// ЗаписьИзФормы - Булево - Запись документа из формы означает прочтение сообщения от МП.
-//
-Процедура ДобавитьДанныеМобильногоПриложенияДляЗаписиВРеестр(КоллекцияЗаписейРегистра, ЗаписьИзФормы) Экспорт
-
- Если КоллекцияЗаписейРегистра.Количество() = 0 Тогда
- Возврат;
- КонецЕсли;
-
- ТаблицаДоступныхВзаимодействий = Новый ТаблицаЗначений;
- ОписаниеТиповДокумент = Новый ОписаниеТипов("ДокументСсылка.ЭлектроннаяТранспортнаяНакладная, ДокументСсылка.ЭлектронныйПутевойЛист");
- ТаблицаДоступныхВзаимодействий.Колонки.Добавить("Документ", ОписаниеТиповДокумент);
- ТаблицаДоступныхВзаимодействий.Колонки.Добавить("ВидВзаимодействия", Новый ОписаниеТипов("ПеречислениеСсылка.ТипыВзаимодействияМПЭПД"));
-
- НужноРассчитатьДанныеОПросмотреМП = Ложь;
- Для Каждого ЗаписьРегистра Из КоллекцияЗаписейРегистра Цикл
- Документ = ЗаписьРегистра.Ссылка;
- РольУчастника = ЗаписьРегистра.РольУчастника;
-
- // Входящее событие о просмотре титула в МП будет расчитываться только для ЭТрН, для других типов документов будет проигнорировано
- Если Не НужноРассчитатьДанныеОПросмотреМП
- И ТипЗнч(Документ) = Тип("ДокументСсылка.ЭлектроннаяТранспортнаяНакладная") Тогда
- НужноРассчитатьДанныеОПросмотреМП = Истина;
- КонецЕсли;
-
- СоответствиеТитуловИШагов = ОбменСГИСЭПДКлиентСервер.СоответствиеТитуловИШагов(Документ);
- СоответствиеТитуловИШагов = СервисВзаимодействияМПЭПДКлиентСервер.ПеревернутьСоответствие(СоответствиеТитуловИШагов);
-
- Титул = СоответствиеТитуловИШагов.Получить(ЗаписьРегистра.ТекущийШаг);
- ИндексРаботыПоТитулу = СервисВзаимодействияМПЭПДКлиентСервер.ИндексРаботыПоТитулу(Титул);
- ИндексРаботыДоступен = СервисВзаимодействияМПЭПДКлиентСервер.ИндексРаботыДоступенДляРолиУчастника(Документ,
- РольУчастника, ИндексРаботыПоТитулу);
- Если Не ИндексРаботыДоступен Тогда
- Продолжить;
- КонецЕсли;
-
- МассивДоступныхВидовВзаимодействия = СервисВзаимодействияМПЭПДКлиентСервер.МассивДоступныхВидовВзаимодействияПоТитулу(Титул);
- Для Каждого ВидВзаимодействия Из МассивДоступныхВидовВзаимодействия Цикл
- НоваяСтрока = ТаблицаДоступныхВзаимодействий.Добавить();
- НоваяСтрока.Документ = Документ;
- НоваяСтрока.ВидВзаимодействия = ВидВзаимодействия;
- КонецЦикла;
- КонецЦикла;
-
- Если ТаблицаДоступныхВзаимодействий.Количество() = 0 Тогда
- Возврат;
- КонецЕсли;
-
- Запрос = Новый Запрос;
- //@skip-check ql-temp-table-index
- //@skip-check bsl-ql-hub
- Запрос.Текст =
- "ВЫБРАТЬ
- | ТаблицаДоступныхВзаимодействий.Документ КАК Документ,
- | ТаблицаДоступныхВзаимодействий.ВидВзаимодействия КАК ВидВзаимодействия
- |ПОМЕСТИТЬ ВТ_ТаблицаДоступныхВзаимодействий
- |ИЗ
- | &ТаблицаДоступныхВзаимодействий КАК ТаблицаДоступныхВзаимодействий
- |;
- |
- |////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ
- | КэшВзаимодействияМПЭПД.ДокументЭПД КАК Документ,
- | КэшВзаимодействияМПЭПД.ДанныеСообщения КАК ДанныеСообщения,
- | КэшВзаимодействияМПЭПД.ИдентификаторМП КАК ИдентификаторМП,
- | КэшВзаимодействияМПЭПД.ВидСообщения КАК ВидСообщения,
- | ПодключенныеМПЭПД.Идентификатор КАК ИдентификаторЗаписиМП,
- | ПодключенныеМПЭПД.Наименование КАК НаименованиеМП
- |ИЗ
- | ВТ_ТаблицаДоступныхВзаимодействий КАК ВТ_ТаблицаДоступныхВзаимодействий
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КэшВзаимодействияМПЭПД КАК КэшВзаимодействияМПЭПД
- | ПО ВТ_ТаблицаДоступныхВзаимодействий.Документ = КэшВзаимодействияМПЭПД.ДокументЭПД
- | И ВТ_ТаблицаДоступныхВзаимодействий.ВидВзаимодействия = КэшВзаимодействияМПЭПД.ВидСообщения
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПодключенныеМПЭПД КАК ПодключенныеМПЭПД
- | ПО КэшВзаимодействияМПЭПД.ИдентификаторМП = ПодключенныеМПЭПД.ИдентификаторМП
- |
- |УПОРЯДОЧИТЬ ПО
- | Дата УБЫВ
- |ИТОГИ ПО
- | ДокументЭПД";
-
- Если НужноРассчитатьДанныеОПросмотреМП Тогда
- ТекстЗапросаДанныхОпросмотреМП =
- "ВЫБРАТЬ
- | ЭлектроннаяТранспортнаяНакладная.Ссылка КАК Документ,
- | ЭлектроннаяТранспортнаяНакладная.ТитулПереадресовкаИдентификаторФайла КАК ТитулПереадресовкаИдентификаторФайла,
- | ЭлектроннаяТранспортнаяНакладная.ДопТитулПереадресовкаИдентификаторФайла КАК ДопТитулПереадресовкаИдентификаторФайла,
- | ЭлектроннаяТранспортнаяНакладная.ТитулПеревозчикаЗаменыИдентификаторФайла КАК ТитулПеревозчикаЗаменыИдентификаторФайла,
- | ЭлектроннаяТранспортнаяНакладная.ДопТитулПеревозчикаЗаменыИдентификаторФайла КАК ДопТитулПеревозчикаЗаменыИдентификаторФайла
- |ИЗ
- | Документ.ЭлектроннаяТранспортнаяНакладная КАК ЭлектроннаяТранспортнаяНакладная
- |ГДЕ
- | ЭлектроннаяТранспортнаяНакладная.Ссылка В
- | (ВЫБРАТЬ
- | ВТ_ТаблицаДоступныхВзаимодействий.Документ
- | ИЗ
- | ВТ_ТаблицаДоступныхВзаимодействий)";
- РазделительПакетаЗапросов = ОбщегоНазначения.РазделительПакетаЗапросов();
- Запрос.Текст = Запрос.Текст + РазделительПакетаЗапросов + ТекстЗапросаДанныхОпросмотреМП;
- КонецЕсли;
-
- Запрос.УстановитьПараметр("ТаблицаДоступныхВзаимодействий", ТаблицаДоступныхВзаимодействий);
-
- Если НужноРассчитатьДанныеОПросмотреМП Тогда
- МассивРезультатов = Запрос.ВыполнитьПакет();
- ВыборкаДокументов = МассивРезультатов[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
- ВыборкаДанныхОПросмотреДокумента = МассивРезультатов[2].Выбрать();
- Иначе
- ВыборкаДокументов = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
- КонецЕсли;
-
- СтруктураПоискаПоДокументу = Новый Структура;
- СтруктураПоискаПоДокументу.Вставить("Документ");
-
- СоответствиеТитуловТипамМП = СервисВзаимодействияМПЭПДКлиентСервер.СоответствиеТитуловТипамМП();
-
- Для Каждого ЗаписьРегистра Из КоллекцияЗаписейРегистра Цикл
- ВыборкаДокументов.Сбросить();
- Документ = ЗаписьРегистра.Ссылка;
- СоответствиеТитуловИШагов = ОбменСГИСЭПДКлиентСервер.СоответствиеТитуловИШагов(Документ);
- СоответствиеТитуловИШагов = СервисВзаимодействияМПЭПДКлиентСервер.ПеревернутьСоответствие(СоответствиеТитуловИШагов);
- ТитулЗаписиРегистра = СоответствиеТитуловИШагов.Получить(ЗаписьРегистра.ТекущийШаг);
-
- СтруктураПоискаПоДокументу.Документ = Документ;
- Если Не ВыборкаДокументов.НайтиСледующий(СтруктураПоискаПоДокументу) Тогда
- // Нет доступных взаимодействий по титулу.
- ЗаписьРегистра.МобильноеПриложение = "";
- ЗаписьРегистра.ИдентификаторЗаписиМП = "";
- ЗаписьРегистра.НаименованиеМП = "";
- ЗаписьРегистра.ТекущийШагМП = "";
- Продолжить;
- КонецЕсли;
-
- ВыборкаДанныхПоДокументу = ВыборкаДокументов.Выбрать();
- ШагиТребующиеПросмотрМП = ШагиТребующиеПросмотрМП();
-
- Пока ВыборкаДанныхПоДокументу.Следующий() Цикл
- ЭтоСообщение = СервисВзаимодействияМПЭПДКлиентСервер.ЭтоТипВзаимодействияСообщение(ВыборкаДанныхПоДокументу.ВидСообщения);
- Если Не ЭтоСообщение Тогда
- Прервать;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(ВыборкаДанныхПоДокументу.ДанныеСообщения) Тогда
- СтруктураДанныхСообщения = СтруктураИзJson(ВыборкаДанныхПоДокументу.ДанныеСообщения);
- Тип = Неопределено;
- СтруктураДанныхСообщения.Свойство("Type", Тип);
-
- ЭтоТипСообщенияОбОтправкеТитула = СервисВзаимодействияМПЭПДКлиентСервер.ЭтоТипСообщенияОбОтправкеТитулаИзМП(Тип);
- Если ЭтоТипСообщенияОбОтправкеТитула Тогда
- ТипДляОпределенияТитула = СервисВзаимодействияМПЭПДКлиентСервер.ПривестиТипСообщенияКВидуПолученияТитулаБЭД(Тип);
- Иначе
- ТипДляОпределенияТитула = Тип;
- КонецЕсли;
-
- ТитулВСообщении = СоответствиеТитуловТипамМП.Получить(ТипДляОпределенияТитула);
- Если ТитулВСообщении = ТитулЗаписиРегистра Тогда
- Прервать;
- КонецЕсли;
- КонецЕсли;
-
- ЭтоСообщение = Ложь;
- КонецЦикла;
-
- ЭтоПривязкаДокумента = СервисВзаимодействияМПЭПДКлиентСервер.ЭтоПривязкаДокумента(ВыборкаДанныхПоДокументу.ВидСообщения);
-
- Если Не ЭтоПривязкаДокумента И Не ЭтоСообщение Тогда
- // Обработка отвязки документа от МП.
- ЗаписьРегистра.МобильноеПриложение = "";
- ЗаписьРегистра.ИдентификаторЗаписиМП = "";
- ЗаписьРегистра.НаименованиеМП = "";
- ЗаписьРегистра.ТекущийШагМП = "";
- ЗаписьРегистра.ОжидаемПросмотрМП = Ложь;
-
- ИначеЕсли ЭтоСообщение Тогда
- Принято = Неопределено;
- СтруктураДанныхСообщения.Свойство("Принято", Принято);
-
- // Обработка событий с сообщениями и непосредственно сообщений (уведомлений).
- ЗаписьРегистра.МобильноеПриложение = ВыборкаДанныхПоДокументу.ИдентификаторМП;
- ЗаписьРегистра.ИдентификаторЗаписиМП = ВыборкаДанныхПоДокументу.ИдентификаторЗаписиМП;
- ЗаписьРегистра.НаименованиеМП = ВыборкаДанныхПоДокументу.НаименованиеМП;
-
- Если ЗаписьРегистра.ТекущийШагВыполнен Тогда
- ЗаписьРегистра.ТекущийШагМП = "";
- ИначеЕсли ЭтоТипСообщенияОбОтправкеТитула Тогда
- ЗаписьРегистра.ТекущийШагМП = Тип;
- ИначеЕсли Тип <> Неопределено Тогда
- ЗаписьРегистра.ТекущийШагМП = Тип + ?(Принято = Ложь, "_reject", "");
- КонецЕсли;
-
- Если НужноРассчитатьДанныеОПросмотреМП И ЗаписьРегистра.ОжидаемПросмотрМП = Истина Тогда
- ВыборкаДанныхОПросмотреДокумента.Сбросить();
- Если ВыборкаДанныхОПросмотреДокумента.НайтиСледующий(СтруктураПоискаПоДокументу) Тогда
- ЗаписьРегистра.ОжидаемПросмотрМП = ОжидаемПросмотрМП(ЗаписьРегистра, СтруктураДанныхСообщения,
- ВыборкаДанныхОПросмотреДокумента);
- Иначе
- ЗаписьРегистра.ОжидаемПросмотрМП = Ложь;
- КонецЕсли;
- Иначе
- ЗаписьРегистра.ОжидаемПросмотрМП = Ложь;
- КонецЕсли;
-
- Иначе
- // Обработка взаимодействий без сообщений (например вызываных из БЭД или событий привзяки).
- ЗаписьРегистра.МобильноеПриложение = ВыборкаДанныхПоДокументу.ИдентификаторМП;
- ЗаписьРегистра.ИдентификаторЗаписиМП = ВыборкаДанныхПоДокументу.ИдентификаторЗаписиМП;
- ЗаписьРегистра.НаименованиеМП = ВыборкаДанныхПоДокументу.НаименованиеМП;
-
- Если ШагиТребующиеПросмотрМП.Найти(ЗаписьРегистра.ТекущийШаг) <> Неопределено Тогда
- ЗаписьРегистра.ОжидаемПросмотрМП = ЗаписьРегистра.ТекущийШагВыполнен = Истина;
- КонецЕсли;
-
- КонецЕсли;
-
- КонецЦикла; // По коллекции записей регистра
-
-КонецПроцедуры
-
#КонецОбласти
// Ожидает выполнение фоновой функции.
@@ -3407,6 +3288,318 @@
#КонецОбласти
+#Область ДанныеМобильногоПриложения
+
+Функция ТекстИИндексЗапросаСообщенийМП_ОтборПоОбъектамУчета()
+
+ //@skip-check ql-temp-table-index
+ ТекстЗапроса =
+ "ВЫБРАТЬ
+ | ТаблицаДоступныхВзаимодействий.Документ КАК Документ,
+ | ТаблицаДоступныхВзаимодействий.ВидВзаимодействия КАК ВидВзаимодействия
+ |ПОМЕСТИТЬ ВТ_ТаблицаДоступныхВзаимодействий
+ |ИЗ
+ | &ТаблицаДоступныхВзаимодействий КАК ТаблицаДоступныхВзаимодействий
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ВТ_ТаблицаДоступныхВзаимодействий.Документ КАК Документ,
+ | ВТ_ТаблицаДоступныхВзаимодействий.ВидВзаимодействия КАК ВидВзаимодействия,
+ | ОбъектыУчетаДокументовЭДО.ЭлектронныйДокумент КАК ЭлектронныйДокумент
+ |ПОМЕСТИТЬ ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом
+ |ИЗ
+ | ВТ_ТаблицаДоступныхВзаимодействий КАК ВТ_ТаблицаДоступныхВзаимодействий
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОбъектыУчетаДокументовЭДО КАК ОбъектыУчетаДокументовЭДО
+ | ПО ВТ_ТаблицаДоступныхВзаимодействий.Документ = ОбъектыУчетаДокументовЭДО.ОбъектУчета
+ | И (ОбъектыУчетаДокументовЭДО.Актуальный = ИСТИНА)
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом.Документ КАК Документ,
+ | ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом.ВидВзаимодействия КАК ВидВзаимодействия,
+ | ЕСТЬNULL(ЭлектронныйДокументВходящийЭДО.ИдентификаторДокументооборота, ЭлектронныйДокументИсходящийЭДО.ИдентификаторДокументооборота) КАК ИдентификаторДокументооборота
+ |ПОМЕСТИТЬ ВТ_ТаблицаВзаимодействийС_ИД_ДО
+ |ИЗ
+ | ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом КАК ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом
+ | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйДокументВходящийЭДО КАК ЭлектронныйДокументВходящийЭДО
+ | ПО ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом.ЭлектронныйДокумент = ЭлектронныйДокументВходящийЭДО.Ссылка
+ | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйДокументИсходящийЭДО КАК ЭлектронныйДокументИсходящийЭДО
+ | ПО ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом.ЭлектронныйДокумент = ЭлектронныйДокументИсходящийЭДО.Ссылка
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ВТ_ТаблицаВзаимодействийС_ИД_ДО.Документ КАК Документ,
+ | КэшВзаимодействияМПЭПД.Идентификатор КАК Идентификатор,
+ | КэшВзаимодействияМПЭПД.ДокументЭПД КАК ДокументЭПД,
+ | КэшВзаимодействияМПЭПД.ДанныеСообщения КАК ДанныеСообщения,
+ | КэшВзаимодействияМПЭПД.ИдентификаторМП КАК ИдентификаторМП,
+ | КэшВзаимодействияМПЭПД.ВидСообщения КАК ВидСообщения,
+ | ПодключенныеМПЭПД.Идентификатор КАК ИдентификаторЗаписиМП,
+ | ПодключенныеМПЭПД.Наименование КАК НаименованиеМП
+ |ИЗ
+ | ВТ_ТаблицаВзаимодействийС_ИД_ДО КАК ВТ_ТаблицаВзаимодействийС_ИД_ДО
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КэшВзаимодействияМПЭПД КАК КэшВзаимодействияМПЭПД
+ | ПО ВТ_ТаблицаВзаимодействийС_ИД_ДО.ИдентификаторДокументооборота = КэшВзаимодействияМПЭПД.ИдентификаторДокумента
+ | И ВТ_ТаблицаВзаимодействийС_ИД_ДО.ВидВзаимодействия = КэшВзаимодействияМПЭПД.ВидСообщения
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПодключенныеМПЭПД КАК ПодключенныеМПЭПД
+ | ПО (КэшВзаимодействияМПЭПД.ИдентификаторМП = ПодключенныеМПЭПД.ИдентификаторМП)
+ |
+ |УПОРЯДОЧИТЬ ПО
+ | КэшВзаимодействияМПЭПД.Дата УБЫВ
+ |ИТОГИ ПО
+ | Документ";
+ ИндексРезультата = 3;
+
+ Возврат Новый Структура("ТекстЗапроса, ИндексРезультата", ТекстЗапроса, ИндексРезультата);
+
+КонецФункции
+
+Функция ТекстИИндексЗапросаСообщенийМП_ОтборПоЭлектронномуДокументу()
+
+ //@skip-check ql-temp-table-index
+ ТекстЗапроса =
+ "ВЫБРАТЬ
+ | ТаблицаДоступныхВзаимодействий.Документ КАК Документ,
+ | ТаблицаДоступныхВзаимодействий.ВидВзаимодействия КАК ВидВзаимодействия,
+ | ТаблицаДоступныхВзаимодействий.ЭлектронныйДокумент КАК ЭлектронныйДокумент
+ |ПОМЕСТИТЬ ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом
+ |ИЗ
+ | &ТаблицаДоступныхВзаимодействий КАК ТаблицаДоступныхВзаимодействий
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом.Документ КАК Документ,
+ | ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом.ВидВзаимодействия КАК ВидВзаимодействия,
+ | ЕСТЬNULL(ЭлектронныйДокументВходящийЭДО.ИдентификаторДокументооборота, ЭлектронныйДокументИсходящийЭДО.ИдентификаторДокументооборота) КАК ИдентификаторДокументооборота
+ |ПОМЕСТИТЬ ВТ_ТаблицаВзаимодействийС_ИД_ДО
+ |ИЗ
+ | ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом КАК ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом
+ | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйДокументВходящийЭДО КАК ЭлектронныйДокументВходящийЭДО
+ | ПО ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом.ЭлектронныйДокумент = ЭлектронныйДокументВходящийЭДО.Ссылка
+ | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронныйДокументИсходящийЭДО КАК ЭлектронныйДокументИсходящийЭДО
+ | ПО ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом.ЭлектронныйДокумент = ЭлектронныйДокументИсходящийЭДО.Ссылка
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ВТ_ТаблицаВзаимодействийС_ИД_ДО.Документ КАК Документ,
+ | КэшВзаимодействияМПЭПД.Идентификатор КАК Идентификатор,
+ | КэшВзаимодействияМПЭПД.ДокументЭПД КАК ДокументЭПД,
+ | КэшВзаимодействияМПЭПД.ДанныеСообщения КАК ДанныеСообщения,
+ | КэшВзаимодействияМПЭПД.ИдентификаторМП КАК ИдентификаторМП,
+ | КэшВзаимодействияМПЭПД.ВидСообщения КАК ВидСообщения,
+ | ПодключенныеМПЭПД.Идентификатор КАК ИдентификаторЗаписиМП,
+ | ПодключенныеМПЭПД.Наименование КАК НаименованиеМП
+ |ИЗ
+ | ВТ_ТаблицаВзаимодействийС_ИД_ДО КАК ВТ_ТаблицаВзаимодействийС_ИД_ДО
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КэшВзаимодействияМПЭПД КАК КэшВзаимодействияМПЭПД
+ | ПО ВТ_ТаблицаВзаимодействийС_ИД_ДО.ИдентификаторДокументооборота = КэшВзаимодействияМПЭПД.ИдентификаторДокумента
+ | И ВТ_ТаблицаВзаимодействийС_ИД_ДО.ВидВзаимодействия = КэшВзаимодействияМПЭПД.ВидСообщения
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПодключенныеМПЭПД КАК ПодключенныеМПЭПД
+ | ПО (КэшВзаимодействияМПЭПД.ИдентификаторМП = ПодключенныеМПЭПД.ИдентификаторМП)
+ |
+ |УПОРЯДОЧИТЬ ПО
+ | КэшВзаимодействияМПЭПД.Дата УБЫВ
+ |ИТОГИ ПО
+ | Документ";
+ ИндексРезультата = 2;
+
+ Возврат Новый Структура("ТекстЗапроса, ИндексРезультата", ТекстЗапроса, ИндексРезультата);
+
+КонецФункции
+
+Функция ТекстИИндексЗапросаДанныхОПросмотреМП()
+
+ ТекстЗапроса =
+ "ВЫБРАТЬ
+ | ЭлектроннаяТранспортнаяНакладная.Ссылка КАК Документ,
+ | ЭлектроннаяТранспортнаяНакладная.ТитулПереадресовкаИдентификаторФайла КАК ТитулПереадресовкаИдентификаторФайла,
+ | ЭлектроннаяТранспортнаяНакладная.ДопТитулПереадресовкаИдентификаторФайла КАК ДопТитулПереадресовкаИдентификаторФайла,
+ | ЭлектроннаяТранспортнаяНакладная.ТитулПеревозчикаЗаменыИдентификаторФайла КАК ТитулПеревозчикаЗаменыИдентификаторФайла,
+ | ЭлектроннаяТранспортнаяНакладная.ДопТитулПеревозчикаЗаменыИдентификаторФайла КАК ДопТитулПеревозчикаЗаменыИдентификаторФайла
+ |ИЗ
+ | Документ.ЭлектроннаяТранспортнаяНакладная КАК ЭлектроннаяТранспортнаяНакладная
+ |ГДЕ
+ | ЭлектроннаяТранспортнаяНакладная.Ссылка В
+ | (ВЫБРАТЬ
+ | ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом.Документ
+ | ИЗ
+ | ВТ_ТаблицаВзаимодействийСЭлектроннымДокументом)";
+ ИндексРезультата = 0;
+
+ Возврат Новый Структура("ТекстЗапроса, ИндексРезультата", ТекстЗапроса, ИндексРезультата);
+
+КонецФункции
+
+// Возвращает признак ожидание просмотра данных МП.
+//
+// Параметры:
+// ДанныеРеестра - РегистрСведенийЗапись.РеестрЭПД, ВыборкаИзРезультатаЗапроса - Данные с записью регистра, необходимо передать значения
+// ресурсов ТекущийШаг, ОжидаемПросмотрМП.
+// ДанныеСообщения - Структура, Соответствие из Строка - Данные сообщения сервера МП. Неопределено - если сообщения нет.
+// РеквизитыДокумента - ВыборкаИзРезультатаЗапроса - Выборка с реквизитами ТитулПереадресовкаИдентификаторФайла, ДопТитулПереадресовкаИдентификаторФайла
+// ТитулПеревозчикаЗаменыИдентификаторФайла, ДопТитулПеревозчикаЗаменыИдентификаторФайла.
+//
+// Возвращаемое значение:
+// Булево - Признак ожидания просмотра данных МП.
+//
+Функция ОжидаетсяПросмотрТитулаВМП(ДанныеРеестра, ДанныеСообщения, РеквизитыДокумента)
+
+ Если Не ЗначениеЗаполнено(ДанныеСообщения) Или Не ДанныеРеестра.ОжидаемПросмотрМП Тогда
+ Возврат ДанныеРеестра.ОжидаемПросмотрМП;
+ КонецЕсли;
+
+ ТекущийТипСообщения = Неопределено;
+ ДанныеСообщения.Свойство("Type", ТекущийТипСообщения);
+
+ ИмяФайлИзСообщенияМП = Неопределено;
+ ДанныеСообщения.Свойство("fileid", ИмяФайлИзСообщенияМП);
+ Если Не ЗначениеЗаполнено(ИмяФайлИзСообщенияМП) Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ СоответствиеШагов = ОбменСГИСЭПДКлиентСервер.СоответствиеТитуловИШагов();
+ СоответствиеТитулов = ПеревернутьСоответствие(СоответствиеШагов);
+
+ ТекущийШаг = ДанныеРеестра.ТекущийШаг;
+
+ Если СоответствиеТитулов.Получить(ТекущийШаг) = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул7
+ Или СоответствиеТитулов.Получить(ТекущийШаг) = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул7 Тогда
+ РеквизитИмениФайлаТитула = "ТитулПереадресовкаИдентификаторФайла";
+ РеквизитИмениФайлаДопТитула = "ДопТитулПереадресовкаИдентификаторФайла";
+ ОжидаемыйТипСообщения = "readressing_viewed";
+ ИначеЕсли СоответствиеТитулов.Получить(ТекущийШаг) = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул8
+ Или СоответствиеТитулов.Получить(ТекущийШаг) = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул8 Тогда
+ РеквизитИмениФайлаТитула = "ТитулПеревозчикаЗаменыИдентификаторФайла";
+ РеквизитИмениФайлаДопТитула = "ДопТитулПеревозчикаЗаменыИдентификаторФайла";
+ ОжидаемыйТипСообщения = "replacement_viewed";
+ Иначе
+ Возврат Истина;
+ КонецЕсли;
+
+ Если ТекущийТипСообщения = ОжидаемыйТипСообщения Тогда
+ ИмяФайлаТитула = РеквизитыДокумента[РеквизитИмениФайлаТитула];
+ ИмяФайлаДопТитула = РеквизитыДокумента[РеквизитИмениФайлаДопТитула];
+ ТитулПросмотренВМП = ИмяФайлаТитула = ИмяФайлИзСообщенияМП
+ Или ИмяФайлаДопТитула = ИмяФайлИзСообщенияМП;
+ Иначе
+ ТитулПросмотренВМП = Ложь;
+ КонецЕсли;
+
+ Возврат Не ТитулПросмотренВМП;
+
+КонецФункции
+
+// Шаги требующие просмотр МП.
+//
+// Возвращаемое значение:
+// Соответствие Из ПеречислениеСсылка.ТипыЭлементовРегламентаЭДО
+Функция ШагиТребующиеПросмотрМП()
+
+ СоответствиеТитуловИШагов = ОбменСГИСЭПДКлиентСервер.СоответствиеТитуловИШагов();
+
+ Результат = Новый Массив;
+ Результат.Добавить(СоответствиеТитуловИШагов.Получить(Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул7));
+ Результат.Добавить(СоответствиеТитуловИШагов.Получить(Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул7));
+ Результат.Добавить(СоответствиеТитуловИШагов.Получить(Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул8));
+ Результат.Добавить(СоответствиеТитуловИШагов.Получить(Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул8));
+
+ Возврат Результат;
+
+КонецФункции
+
+Процедура ПриЗаписиРеестраУстановитьПризнакОжиданияПросмотраМП(ЗаписьРегистра, ВыборкаДанныхПоДокументу,
+ ВыборкаДанныхОПросмотреДокумента, СтруктураПоискаПоДокументу)
+
+ Если ВыборкаДанныхОПросмотреДокумента.НайтиСледующий(СтруктураПоискаПоДокументу) Тогда
+ ВыборкаДанныхПоДокументу.Сбросить();
+ ЗаписьРегистра.ОжидаемПросмотрМП = Истина;
+ Пока ВыборкаДанныхПоДокументу.Следующий() Цикл
+ ЭтоСообщение = СервисВзаимодействияМПЭПДКлиентСервер.ЭтоТипВзаимодействияСообщение(
+ ВыборкаДанныхПоДокументу.ВидСообщения);
+ Если Не ЭтоСообщение Или Не ЗначениеЗаполнено(ВыборкаДанныхПоДокументу.ДанныеСообщения) Тогда
+ Продолжить;
+ КонецЕсли;
+
+ СтруктураДанныхСообщения = СтруктураИзJson(ВыборкаДанныхПоДокументу.ДанныеСообщения);
+ ОжидаемПросмотрМП = ОжидаетсяПросмотрТитулаВМП(ЗаписьРегистра, СтруктураДанныхСообщения,
+ ВыборкаДанныхОПросмотреДокумента);
+ // Нашли сообщение с данными о просмотре.
+ Если Не ОжидаемПросмотрМП Тогда
+ ЗаписьРегистра.ОжидаемПросмотрМП = Ложь;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ Иначе
+ ЗаписьРегистра.ОжидаемПросмотрМП = Ложь;
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ПриЗаписиРеестраДобавитьДокументВКэшВзаимодействияМПЭПД(Документ, ВыборкаДанныхПоДокументу)
+
+ Пока ВыборкаДанныхПоДокументу.Следующий() Цикл
+ Если ЗначениеЗаполнено(ВыборкаДанныхПоДокументу.ДокументЭПД) Тогда
+ Продолжить;
+ КонецЕсли;
+ МенеджерЗаписи = РегистрыСведений.КэшВзаимодействияМПЭПД.СоздатьМенеджерЗаписи();
+ МенеджерЗаписи.Идентификатор = ВыборкаДанныхПоДокументу.Идентификатор;
+ МенеджерЗаписи.Прочитать();
+ МенеджерЗаписи.ДокументЭПД = Документ;
+ МенеджерЗаписи.Записать(Истина);
+ КонецЦикла;
+ ВыборкаДанныхПоДокументу.Сбросить();
+
+КонецПроцедуры
+
+Процедура УбратьДанныеМПИзЗаписиРегистра(ЗаписьРегистра, ПризнакОжиданияПросмотраМП = Неопределено)
+
+ ЗаписьРегистра.МобильноеПриложение = "";
+ ЗаписьРегистра.ИдентификаторЗаписиМП = "";
+ ЗаписьРегистра.НаименованиеМП = "";
+ ЗаписьРегистра.ТекущийШагМП = "";
+ ЗаписьРегистра.ОжидаемПросмотрМП = Ложь;
+
+ ПризнакОжиданияПросмотраМП = Ложь;
+
+КонецПроцедуры
+
+Функция ТипИПризнакПринятоСообщенияМП(ДанныеСообщения)
+
+ Результат = Новый Структура;
+ Результат.Вставить("Тип");
+ Результат.Вставить("Принято");
+ Результат.Вставить("ЭтоТипСообщенияОбОтправкеТитула", Ложь);
+
+ Если ЗначениеЗаполнено(ДанныеСообщения) Тогда
+ СтруктураДанныхСообщения = СтруктураИзJson(ДанныеСообщения);
+ Тип = Неопределено;
+ СтруктураДанныхСообщения.Свойство("Type", Тип);
+
+ ЭтоТипСообщенияОбОтправкеТитула =
+ СервисВзаимодействияМПЭПДКлиентСервер.ЭтоТипСообщенияОбОтправкеТитулаИзМП(Тип);
+ Если ЭтоТипСообщенияОбОтправкеТитула Тогда
+ Тип = СервисВзаимодействияМПЭПДКлиентСервер.ПривестиТипСообщенияКВидуПолученияТитулаБЭД(Тип);
+ КонецЕсли;
+
+ Принято = Неопределено;
+ СтруктураДанныхСообщения.Свойство("Принято", Принято);
+
+ Результат.Тип = Тип;
+ Результат.Принято = Принято;
+ Результат.ЭтоТипСообщенияОбОтправкеТитула = ЭтоТипСообщенияОбОтправкеТитула;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
// Возвращает текстовое представление работы используемое на сервере МП.
// Работа определяется с учетом титула и документа.
// Пример 1 - медработник проводящий медосмотр перед рейсом.
@@ -3451,92 +3644,6 @@
КонецФункции
-Функция ОжидаемПросмотрМП(ЗаписьРеестра, ДанныеСообщения, РеквизитыДокумента)
-
- Результат = Ложь;
-
- ТекущийТип = Неопределено;
- ДанныеСообщения.Свойство("Type", ТекущийТип);
-
- ФайлТекущегоШагаМП = Неопределено;
- ДанныеСообщения.Свойство("fileid", ФайлТекущегоШагаМП);
- Если Не ЗначениеЗаполнено(ФайлТекущегоШагаМП) Тогда
- Возврат Результат;
- КонецЕсли;
-
- СоответствиеШагов = ОбменСГИСЭПДКлиентСервер.СоответствиеТитуловИШагов();
- СоответствиеТитулов = ПеревернутьСоответствие(СоответствиеШагов);
-
- ТекущийШаг = ЗаписьРеестра.ТекущийШаг;
- ТекущийШагВыполнен = ЗаписьРеестра.ТекущийШагВыполнен;
-
- Если ТекущийШагВыполнен = Истина Тогда
- Если СоответствиеТитулов.Получить(ТекущийШаг) = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул7 Тогда
- РеквизитИмениФайлаТитула = "ТитулПереадресовкаИдентификаторФайла";
- ИмяТипаПросмотрМП = "readressing_viewed";
- ИначеЕсли СоответствиеТитулов.Получить(ТекущийШаг) = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул7 Тогда
- РеквизитИмениФайлаТитула = "ДопТитулПереадресовкаИдентификаторФайла";
- ИмяТипаПросмотрМП = "readressing_viewed";
- ИначеЕсли СоответствиеТитулов.Получить(ТекущийШаг) = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул8 Тогда
- РеквизитИмениФайлаТитула = "ТитулПеревозчикаЗаменыИдентификаторФайла";
- ИмяТипаПросмотрМП = "replacement_viewed";
- ИначеЕсли СоответствиеТитулов.Получить(ТекущийШаг) = Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул8 Тогда
- РеквизитИмениФайлаТитула = "ДопТитулПеревозчикаЗаменыИдентификаторФайла";
- ИмяТипаПросмотрМП = "replacement_viewed";
- Иначе
- Возврат Результат;
- КонецЕсли;
-
- Результат = Истина;
- Если ТекущийТип = ИмяТипаПросмотрМП Тогда
- ИмяФайлаТитула = РеквизитыДокумента[РеквизитИмениФайлаТитула];
- Если ИмяФайлаТитула = ФайлТекущегоШагаМП Тогда
- Результат = Ложь;
- КонецЕсли;
- КонецЕсли;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Шаги требующие просмотр МП.
-//
-// Возвращаемое значение:
-// Соответствие Из ПеречислениеСсылка.ТипыЭлементовРегламентаЭДО
-Функция ШагиТребующиеПросмотрМП()
-
- СоответствиеТитуловИШагов = ОбменСГИСЭПДКлиентСервер.СоответствиеТитуловИШагов();
-
- Результат = Новый Массив;
- Результат.Добавить(СоответствиеТитуловИШагов.Получить(Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул7));
- Результат.Добавить(СоответствиеТитуловИШагов.Получить(Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул7));
- Результат.Добавить(СоответствиеТитуловИШагов.Получить(Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул8));
- Результат.Добавить(СоответствиеТитуловИШагов.Получить(Перечисления.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул8));
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ПараметрыВыполненияОперацииСервиса(ИдентификаторЭДО = "")
-
- Параметры = Новый Структура;
- Параметры.Вставить("АдресРесурса", "");
- Параметры.Вставить("ВерсияИнтерфейса", 1);
- Параметры.Вставить("ПредставлениеОперации", "");
- Параметры.Вставить("Метод", "");
- Параметры.Вставить("Токен", Неопределено);
- Параметры.Вставить("ТокенОбновления", Неопределено);
- Параметры.Вставить("ПараметрыЗапроса", Новый Структура);
- Параметры.Вставить("Заголовки", Новый Соответствие);
- Параметры.Вставить("ТелоЗапроса", Неопределено);
- Параметры.Вставить("Таймаут", 60);
- Параметры.Вставить("ИдентификаторЭДО", ИдентификаторЭДО);
-
- Возврат Параметры;
-
-КонецФункции
-
Функция ЗначениеКонтактнойИнформации(СсылкаВладельца, ВидИнформации)
Результат = "";
@@ -3568,6 +3675,17 @@
КонецФункции
+Функция ТитулТекущегоШагаДокумента(Документ, ТекущийШаг)
+
+ СоответствиеТитуловИШагов = ОбменСГИСЭПДКлиентСервер.СоответствиеТитуловИШагов(Документ);
+ СоответствиеТитуловИШагов = СервисВзаимодействияМПЭПДКлиентСервер.ПеревернутьСоответствие(
+ СоответствиеТитуловИШагов);
+ ТитулЗаписиРегистра = СоответствиеТитуловИШагов.Получить(ТекущийШаг);
+
+ Возврат ТитулЗаписиРегистра;
+
+КонецФункции
+
Функция ОпределитьВидПодписи(ВидПодписи)
Возврат СоответствиеВидаПодписи(ВидПодписи);
@@ -3811,12 +3929,13 @@
ПараметрыОбновления.АдресРесурса = "common/token";
ПараметрыОбновления.Метод = "GET";
ПараметрыОбновления.ПредставлениеОперации = "Обновление токена доступа";
+ ПараметрыОбновления.Токен = ПараметрыОперации.Токен;
HTTPЗапросОбновления = ЗапросКСервису(ПараметрыОбновления);
РезультатЗапроса = ВызватьHTTPМетод(ОписаниеСоединения, HTTPЗапросОбновления, ПараметрыОбновления.Метод, ПараметрыОбновления.ПредставлениеОперации);
Если РезультатЗапроса.Успех и РезультатЗапроса.Ответ.КодСостояния = 200 Тогда
- ДанныеОтвета = СтруктураИзJson(ОтветСервиса.ПолучитьТелоКакСтроку(), Истина);
+ ДанныеОтвета = СтруктураИзJson(РезультатЗапроса.Ответ.ПолучитьТелоКакСтроку(), Истина);
ПараметрыОперации.Токен = СвойствоСтруктуры(ДанныеОтвета, "token");
ПараметрыОперации.ТокенОбновления = СвойствоСтруктуры(ДанныеОтвета, "refresh_token");
ИдентификаторЭДО = СвойствоСтруктуры(ПараметрыОперации, "ИдентификаторЭДО");
@@ -3835,7 +3954,26 @@
КонецПроцедуры
-// Описание
+Функция ПараметрыВыполненияОперацииСервиса(ИдентификаторЭДО = "")
+
+ Параметры = Новый Структура;
+ Параметры.Вставить("АдресРесурса", "");
+ Параметры.Вставить("ВерсияИнтерфейса", 1);
+ Параметры.Вставить("ПредставлениеОперации", "");
+ Параметры.Вставить("Метод", "");
+ Параметры.Вставить("Токен", Неопределено);
+ Параметры.Вставить("ТокенОбновления", Неопределено);
+ Параметры.Вставить("ПараметрыЗапроса", Новый Структура);
+ Параметры.Вставить("Заголовки", Новый Соответствие);
+ Параметры.Вставить("ТелоЗапроса", Неопределено);
+ Параметры.Вставить("Таймаут", 60);
+ Параметры.Вставить("ИдентификаторЭДО", ИдентификаторЭДО);
+
+ Возврат Параметры;
+
+КонецФункции
+
+// Выполнение операции на сервере МП.
//
// Параметры:
// ПараметрыОперации - см. ПараметрыВыполненияОперацииСервиса
@@ -3947,18 +4085,6 @@
КонецФункции
-Функция ТипСообщенияДляМППереадресовка()
-
- Возврат "readressing";
-
-КонецФункции
-
-Функция ТипСообщенияДляМПЗаменаТС()
-
- Возврат "replacement";
-
-КонецФункции
-
Функция ФайлаМожетБытьОтправленСМП(ИдентификаторФайла)
ФайлаМожетБытьОтправленСМП =
diff --git a/src/CommonModules/СервисВзаимодействияМПЭПДВызовСервера/Ext/Module.bsl b/src/CommonModules/СервисВзаимодействияМПЭПДВызовСервера/Ext/Module.bsl
index e65d537d6..220532f26 100644
--- a/src/CommonModules/СервисВзаимодействияМПЭПДВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/СервисВзаимодействияМПЭПДВызовСервера/Ext/Module.bsl
@@ -16,21 +16,9 @@
КонецФункции
-Процедура ОтправитьСообщениеОПереадресовке(Знач Документ) Экспорт
-
- СервисВзаимодействияМПЭПД.ОтправитьСообщениеОПереадресовке(Документ);
-
-КонецПроцедуры
-
-Процедура ОтправитьСообщениеОЗаменеТС(Знач Документ) Экспорт
-
- СервисВзаимодействияМПЭПД.ОтправитьСообщениеОЗаменеТС(Документ);
-
-КонецПроцедуры
-
Процедура СервисОтправитьУведомления(ИдентификаторЭДО, ПараметрыОперации) Экспорт
- СервисОтправитьУведомления(ИдентификаторЭДО, ПараметрыОперации);
+ СервисВзаимодействияМПЭПД.СервисОтправитьУведомления(ИдентификаторЭДО, ПараметрыОперации);
КонецПроцедуры
@@ -83,9 +71,8 @@
// Возвращает список подключенных устройств.
//
// Параметры:
-// Отборы - Неопределено, Структура - Отборы
-// ВключаяНеактивные - Булево - Включая неактивные
-// ВернутьМассив - Булево - Вернуть массив
+// Отборы - Неопределено, Структура - Отборы.
+// ТолькоАктивные - Булево - Возвращаются только активные МП.
//
// Возвращаемое значение:
// ТаблицаЗначений - Список подключенных МП:
@@ -115,9 +102,9 @@
//@skip-check module-query-syntax
//@skip-check bsl-ql-hub
//@skip-check doc-comment-description-ends-on-dot
-Функция СписокПодключенныхМП(Отборы = Неопределено, ВключаяНеактивные = Ложь, ВернутьМассив = Ложь) Экспорт
+Функция СписокПодключенныхМП(Отборы = Неопределено, ТолькоАктивные = Ложь) Экспорт
- Возврат СервисВзаимодействияМПЭПД.СписокПодключенныхМП(Отборы, ВключаяНеактивные);
+ Возврат СервисВзаимодействияМПЭПД.СписокПодключенныхМП(Отборы, ТолькоАктивные);
КонецФункции
@@ -215,4 +202,4 @@
КонецФункции
-#КонецОбласти
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/СервисВзаимодействияМПЭПДКлиентСервер/Ext/Module.bsl b/src/CommonModules/СервисВзаимодействияМПЭПДКлиентСервер/Ext/Module.bsl
index 09c2e4a42..23f75b1e4 100644
--- a/src/CommonModules/СервисВзаимодействияМПЭПДКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/СервисВзаимодействияМПЭПДКлиентСервер/Ext/Module.bsl
@@ -432,6 +432,19 @@
КонецФункции
+// Это тип сообщения о просмотре титула в МП.
+//
+// Параметры:
+// ТипСообщенияМП - Строка - Тип сообщения от МП.
+//
+// Возвращаемое значение:
+// Булево - Признак того, что переданный тип это тип сообщения о просмотре титула в МП.
+Функция ЭтоТипСообщенияОПросмотреТитулаВМП(ТипСообщенияМП) Экспорт
+
+ Возврат НРег(ТипСообщенияМП) = "readressing_viewed" Или НРег(ТипСообщенияМП) = "replacement_viewed";
+
+КонецФункции
+
// Приводит тип сообщения от МП к типу сообщения, по которому можно получить титул.
//
// Параметры:
@@ -1063,6 +1076,25 @@
КонецФункции
+// Возвращает массив типов взаимодействий МПЭПД которые будут загружаться с сервера МП.
+//
+// Возвращаемое значение:
+// Массив из ПеречислениеСсылка.ТипыВзаимодействияМПЭПД - список типов взаимодействий для загрузки
+Функция МассивЗагружаемыхТиповВзаимодействий() Экспорт
+
+ Массив = Новый Массив;
+
+ Массив.Добавить(ПредопределенноеЗначение("Перечисление.ТипыВзаимодействияМПЭПД.ПовторнаяРегистрацияМП"));
+ Массив.Добавить(ПредопределенноеЗначение("Перечисление.ТипыВзаимодействияМПЭПД.ИзменениеСведенийМП"));
+ Массив.Добавить(ПредопределенноеЗначение("Перечисление.ТипыВзаимодействияМПЭПД.ОтвязкаВодителя"));
+ Массив.Добавить(ПредопределенноеЗначение("Перечисление.ТипыВзаимодействияМПЭПД.ПривязкаВодителя"));
+ Массив.Добавить(ПредопределенноеЗначение("Перечисление.ТипыВзаимодействияМПЭПД.УдалениеМП"));
+ Массив.Добавить(ПредопределенноеЗначение("Перечисление.ТипыВзаимодействияМПЭПД.Сообщение"));
+
+ Возврат Массив;
+
+КонецФункции
+
// Возвращает тип привязки/отвязки.
//
// Параметры:
@@ -1238,10 +1270,8 @@
// Число - Индекс работы по титулу
Функция ИндексРаботыПоТитулу(Титул) Экспорт
- Если Титул = ПредопределенноеЗначение("Перечисление.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул2") Тогда
- Возврат ИндексРаботыВодитель();
-
- ИначеЕсли Титул = ПредопределенноеЗначение("Перечисление.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул4")
+ Если Титул = ПредопределенноеЗначение("Перечисление.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул2")
+ Или Титул = ПредопределенноеЗначение("Перечисление.ТипыЭлементовРегламентаЭДО.ЭТрН_Титул4")
Или Титул = ПредопределенноеЗначение("Перечисление.ТипыЭлементовРегламентаЭДО.ЭТрН_ДопТитул4") Тогда
Возврат ИндексРаботыВодитель();
diff --git a/src/CommonModules/СервисДоставки/Ext/Module.bsl b/src/CommonModules/СервисДоставки/Ext/Module.bsl
index b176a624c..a00be736c 100644
--- a/src/CommonModules/СервисДоставки/Ext/Module.bsl
+++ b/src/CommonModules/СервисДоставки/Ext/Module.bsl
@@ -4492,7 +4492,12 @@
| КОГДА НастройкиДоставки.НаименованиеПараметра = ""ГрузВидРасшифровки""
| ТОГДА НастройкиДоставки.Значение
| ИНАЧЕ """"
- | КОНЕЦ КАК СТРОКА(150))) КАК ГрузВидРасшифровки
+ | КОНЕЦ КАК СТРОКА(150))) КАК ГрузВидРасшифровки,
+ | МАКСИМУМ(ВЫРАЗИТЬ(ВЫБОР
+ | КОГДА НастройкиДоставки.НаименованиеПараметра = ""ВыгружатьКодыМаркировки""
+ | ТОГДА НастройкиДоставки.Значение
+ | ИНАЧЕ ЛОЖЬ
+ | КОНЕЦ КАК БУЛЕВО)) КАК ВыгружатьКодыМаркировки
|ПОМЕСТИТЬ ВременнаяТаблица
|ИЗ
| РегистрСведений.НастройкиОбщиеСервисДоставки КАК НастройкиДоставки
@@ -4544,6 +4549,7 @@
| ВременнаяТаблица.ХарактерГрузаСтрокой КАК ХарактерГрузаСтрокой,
| ВременнаяТаблица.ХарактерГрузаИдентификатор КАК ХарактерГрузаИдентификатор,
| ВременнаяТаблица.ГрузВидРасшифровки КАК ГрузВидРасшифровки,
+ | ВременнаяТаблица.ВыгружатьКодыМаркировки КАК ВыгружатьКодыМаркировки,
| ВременнаяТаблицаУслугиДоставки.УслугиДоставки КАК УслугиДоставки
|ИЗ
| ВременнаяТаблица КАК ВременнаяТаблица
@@ -5521,6 +5527,7 @@
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить(СервисДоставкиКлиентСервер.ИмяПроцедурыМенеджерДлительныхОпераций(), Истина);
@@ -5582,6 +5589,21 @@
КонецПроцедуры
+// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод
+Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
+
+ ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
+ ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.СервисДоставки";
+ ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьДлительнуюОперацию";
+ ИсключениеПроверки.ФрагментСодержания =
+ "ОбщегоНазначения.ВыполнитьМетодКонфигурации(""СервисДоставки."" + ИмяМетода, ПараметрыМетодаКонфигурации)";
+
+ Методы = Новый Соответствие;
+ ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы);
+ Настройки.ИсключенияКогдаУказанныйМетодНеВызывается.Вставить("ОбщийМодуль.СервисДоставки", Методы);
+
+КонецПроцедуры
+
#КонецОбласти
#КонецОбласти
@@ -7281,7 +7303,7 @@
Параметры.Вставить("ИдентификаторДокументаОснования", ""); // Строка(36)
Параметры.Вставить("ИдентификаторСтроки", ""); // Строка(36). Уникален в пределах документа-основания заказа на доставку. В его отсутствие уникален в пределах заказа на доставку
Параметры.Вставить("ИдентификаторГрузовогоМеста", 0); // Число(5). номер грузового места
- Параметры.Вставить("КодМаркировки", 0); // Строка(150). код маркировки честного знака
+ Параметры.Вставить("КодМаркировки", ""); // Строка(150). код маркировки честного знака
Параметры.Вставить("ОбъемКоэффициентСм3", ""); // Число(15,3)
Возврат Параметры;
@@ -8539,6 +8561,7 @@
Если ЭтоСДЭК Тогда
ДобавитьЗначение(НоваяПозиция, "priceWithVat", ТекущаяПозиция.Сумма / ТекущаяПозиция.Количество, Истина);
ДобавитьЗначение(НоваяПозиция, "priceVat", ТекущаяПозиция.СуммаНДС / ТекущаяПозиция.Количество, Истина);
+ ДобавитьЗначение(НоваяПозиция, "marking", ТекущаяПозиция.КодМаркировки, Истина);
КонецЕсли;
ДобавитьЗначение(НоваяПозиция, "cost", ТекущаяПозиция.Сумма, Истина);
ДобавитьЗначение(НоваяПозиция, "vatCode", ТекущаяПозиция.СтавкаНДС, Истина, "");
@@ -10613,7 +10636,7 @@
НоваяПозиция.ИдентификаторГрузовогоМеста = ПолучитьЗначение(ТекущаяПозиция, "packageId");
КонецЕсли;
Если ЕстьКодМаркировки Тогда
- НоваяПозиция.КодМаркировки = ПолучитьЗначение(ТекущаяПозиция, "Marking");
+ НоваяПозиция.КодМаркировки = ПолучитьЗначение(ТекущаяПозиция, "marking");
КонецЕсли;
Если ЭтоСДЭК Тогда
diff --git a/src/CommonModules/СервисДоставкиКлиентПереопределяемый/Ext/Module.bsl b/src/CommonModules/СервисДоставкиКлиентПереопределяемый/Ext/Module.bsl
index 6b038d3b9..e11805431 100644
--- a/src/CommonModules/СервисДоставкиКлиентПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/СервисДоставкиКлиентПереопределяемый/Ext/Module.bsl
@@ -193,6 +193,33 @@
#КонецОбласти
+// Возвращает процент НДС по строковому представлению ставки НДС .
+//
+// Параметры:
+// СтавкаНДС - строка - строковое представление ставки НДС
+//
+// Возвращаемое значение:
+// Число - процент ставки НДС
+Функция ЗначениеСтавкиНДС(СтавкаНДС) Экспорт
+
+ Если СтавкаНДС = "10" Или СтавкаНДС = "10/110" Тогда
+ Возврат 10;
+ ИначеЕсли СтавкаНДС = "18" Или СтавкаНДС = "18/118" Тогда
+ Возврат 18;
+ ИначеЕсли СтавкаНДС = "20" Или СтавкаНДС = "20/120" Тогда
+ Возврат 20;
+ ИначеЕсли СтавкаНДС = "22" Или СтавкаНДС = "22/122" Тогда
+ Возврат 22;
+ ИначеЕсли СтавкаНДС = "5" Или СтавкаНДС = "5/105" Тогда
+ Возврат 5;
+ ИначеЕсли СтавкаНДС = "7" Или СтавкаНДС = "7/107" Тогда
+ Возврат 7;
+ Иначе
+ Возврат 0;
+ КонецЕсли;
+
+КонецФункции
+
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
diff --git a/src/CommonModules/СервисДоставкиПереопределяемый/Ext/Module.bsl b/src/CommonModules/СервисДоставкиПереопределяемый/Ext/Module.bsl
index 0ee25de16..c8d8204b5 100644
--- a/src/CommonModules/СервисДоставкиПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/СервисДоставкиПереопределяемый/Ext/Module.bsl
@@ -284,6 +284,12 @@
ВыборкаПоПозиции = РезультатПоТоварнымПозициям.Выбрать();
+ Если ДанныеПоУмолчанию.ВыгружатьКодыМаркировки Тогда
+ ВыборкаКодовМаркировки = Результаты[9].Выбрать();
+ ИспользованныеКодыМаркировки = Новый Соответствие;
+ СтруктураПоиска = Новый Структура("Номенклатура");
+ КонецЕсли;
+
Пока ВыборкаПоПозиции.Следующий() Цикл
НоваяСтрокаПозиции = Параметры.Товары.Добавить();
@@ -309,6 +315,30 @@
КонецЕсли;
+ Если ДанныеПоУмолчанию.ВыгружатьКодыМаркировки Тогда
+
+ Если ИспользованныеКодыМаркировки.Получить(ВыборкаПоПозиции.Номенклатура) = Неопределено Тогда
+ ИспользованныеКодыМаркировки.Вставить(ВыборкаПоПозиции.Номенклатура, Новый Массив);
+ КонецЕсли;
+
+ ИспользованныеКодыМаркировкиНоменклатуры = ИспользованныеКодыМаркировки.Получить(ВыборкаПоПозиции.Номенклатура);
+ СтруктураПоиска.Номенклатура = ВыборкаПоПозиции.Номенклатура;
+
+ Пока ВыборкаКодовМаркировки.НайтиСледующий(СтруктураПоиска) Цикл
+
+ ЗначениеШтрихкода = ВыборкаКодовМаркировки.ЗначениеШтрихкода;
+ Если ИспользованныеКодыМаркировкиНоменклатуры.Найти(ЗначениеШтрихкода) = Неопределено Тогда
+ НоваяСтрокаПозиции.КодМаркировки = ЗначениеШтрихкода;
+ ИспользованныеКодыМаркировкиНоменклатуры.Добавить(ЗначениеШтрихкода);
+ Прервать;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ ВыборкаКодовМаркировки.Сбросить();
+
+ КонецЕсли;
+
КонецЦикла;
КонецЕсли;
@@ -4182,7 +4212,7 @@
Функция ТекстЗапросаВыборкаИзДанныхОснованийПоТоварам()
Возврат
"ВЫБРАТЬ
- |ТаблицаТовары.Ссылка КАК ДокументОснование,
+ | ТаблицаТовары.Ссылка КАК ДокументОснование,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Упаковка КАК Упаковка,
@@ -4205,7 +4235,7 @@
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
- | Товары.ДокументОснование КАК ДокументОснование,
+ | Товары.ДокументОснование КАК ДокументОснование,
| Товары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| Товары.Номенклатура КАК Номенклатура,
| Товары.СтавкаНДС КАК СтавкаНДС,
@@ -4347,7 +4377,20 @@
| Товары.ДокументОснование,
| СправочникВидыНоменклатуры.Ссылка,
| СправочникВидыНоменклатуры.Наименование,
- | Товары.СтавкаНДС";
+ | Товары.СтавкаНДС
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | РеализацияТоваровУслугШтрихкодыУпаковок.Ссылка КАК Ссылка,
+ | РеализацияТоваровУслугШтрихкодыУпаковок.ШтрихкодУпаковки КАК ШтрихкодУпаковки,
+ | РеализацияТоваровУслугШтрихкодыУпаковок.ШтрихкодУпаковки.ЗначениеШтрихкода КАК ЗначениеШтрихкода,
+ | РеализацияТоваровУслугШтрихкодыУпаковок.ШтрихкодУпаковки.Номенклатура КАК Номенклатура
+ |ИЗ
+ | ДанныеОснований КАК ДанныеОснований
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.ШтрихкодыУпаковок КАК РеализацияТоваровУслугШтрихкодыУпаковок
+ | ПО ДанныеОснований.ДокументОснование = РеализацияТоваровУслугШтрихкодыУпаковок.Ссылка";
+
КонецФункции
#КонецОбласти
diff --git a/src/CommonModules/СервисКриптографииСлужебный/Ext/Module.bsl b/src/CommonModules/СервисКриптографииСлужебный/Ext/Module.bsl
index 39a988d6c..b65fe2002 100644
--- a/src/CommonModules/СервисКриптографииСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/СервисКриптографииСлужебный/Ext/Module.bsl
@@ -244,14 +244,7 @@
КонецФункции
-// Выполнить в фоне
-//
-// Параметры:
-// ИмяПроцедуры - Строка
-// ПараметрыПроцедуры - Массив Из Произвольный
-//
-// Возвращаемое значение: см. ДлительныеОперации.ВыполнитьВФоне
-Функция ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры) Экспорт
+Функция ПараметрыВыполненияВФоне(ПараметрыПроцедуры) Экспорт
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Вызов API сервиса криптографии'");
@@ -262,7 +255,7 @@
ПараметрыВыполнения.ДополнительныйРезультат = Истина;
КонецЕсли;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ПараметрыВыполнения;
КонецФункции
@@ -776,4 +769,25 @@
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПолучитьВременныйПароль", Истина);
+ Методы.Вставить("ПолучитьСеансовыйКлюч", Истина);
+ Методы.Вставить("ПолучитьНастройкиПолученияВременныхПаролей", Истина);
+ Методы.Вставить("ПроверитьСертификатСПараметрами", Истина);
+ Методы.Вставить("ПроверитьСертификат", Истина);
+ Методы.Вставить("ПроверитьПодпись", Истина);
+ Методы.Вставить("Подписать", Истина);
+ Методы.Вставить("РасшифроватьБлок", Истина);
+ Методы.Вставить("Расшифровать", Истина);
+ Методы.Вставить("ЗашифроватьБлок", Истина);
+ Методы.Вставить("Зашифровать", Истина);
+ Методы.Вставить("ХешированиеДанных", Истина);
+ Методы.Вставить("ПолучитьСвойстваКриптосообщения", Истина);
+ Методы.Вставить("ПолучитьСертификатыИзПодписи", Истина);
+ Методы.Вставить("ПолучитьСвойстваСертификата", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/СервисКриптографииСлужебныйВызовСервера/Ext/Module.bsl b/src/CommonModules/СервисКриптографииСлужебныйВызовСервера/Ext/Module.bsl
index cec702db4..6da08f68a 100644
--- a/src/CommonModules/СервисКриптографииСлужебныйВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/СервисКриптографииСлужебныйВызовСервера/Ext/Module.bsl
@@ -37,8 +37,10 @@
КонецЦикла;
КонецЕсли;
ПараметрыПроцедуры.Вставить("АдресаФайловРезультата", АдресаФайловРезультата);
+
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.Зашифровать", ПараметрыПроцедуры);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.Зашифровать", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -60,8 +62,10 @@
Если ПараметрыПроцедуры.ВернутьРезультатКакАдресВоВременномХранилище Тогда
ПараметрыПроцедуры.Вставить("АдресФайлаРезультата", ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор));
КонецЕсли;
+
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.ЗашифроватьБлок", ПараметрыПроцедуры);
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.ЗашифроватьБлок", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -92,7 +96,9 @@
АдресаФайловРезультата.Добавить(ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор));
ПараметрыПроцедуры.Вставить("АдресаФайловРезультата", АдресаФайловРезультата);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.Расшифровать", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.Расшифровать", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -121,7 +127,9 @@
АдресФайлаРезультата = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
ПараметрыПроцедуры.Вставить("АдресФайлаРезультата", АдресФайлаРезультата);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.РасшифроватьБлок", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.РасшифроватьБлок", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -156,7 +164,9 @@
КонецЕсли;
ПараметрыПроцедуры.Вставить("АдресаФайловРезультата", АдресаФайловРезультата);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.Подписать", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.Подписать", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -169,7 +179,9 @@
ПараметрыПроцедуры.Вставить("ТипПодписи", ТипПодписи);
ПараметрыПроцедуры.Вставить("ПараметрыПодписания", ПараметрыПодписания);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.ПроверитьПодпись", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.ПроверитьПодпись", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -179,7 +191,9 @@
ПараметрыПроцедуры = Новый Структура;
ПараметрыПроцедуры.Вставить("Сертификат", СервисКриптографииСлужебный.ИзвлечьДвоичныеДанныеПриНеобходимости(Сертификат));
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.ПроверитьСертификат", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.ПроверитьСертификат", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -190,7 +204,9 @@
ПараметрыПроцедуры.Вставить("Сертификат", СервисКриптографииСлужебный.ИзвлечьДвоичныеДанныеПриНеобходимости(Сертификат));
ПараметрыПроцедуры.Вставить("ПараметрыПроверки", ПараметрыПроверки);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.ПроверитьСертификатСПараметрами", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.ПроверитьСертификатСПараметрами", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -200,7 +216,9 @@
ПараметрыПроцедуры = Новый Структура;
ПараметрыПроцедуры.Вставить("Сертификат", СервисКриптографииСлужебный.ИзвлечьДвоичныеДанныеПриНеобходимости(Сертификат));
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.ПолучитьСвойстваСертификата", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.ПолучитьСвойстваСертификата", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -225,7 +243,9 @@
ПараметрыПроцедуры.Вставить("Подпись", СервисКриптографииСлужебный.ИзвлечьДвоичныеДанныеПриНеобходимости(Подпись));
ПараметрыПроцедуры.Вставить("ВернутьРезультатКакАдресВоВременномХранилище", СервисКриптографииСлужебный.ВернутьРезультатКакАдресВоВременномХранилище(Подпись));
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.ПолучитьСертификатыИзПодписи", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.ПолучитьСертификатыИзПодписи", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -236,7 +256,9 @@
ПараметрыПроцедуры.Вставить("Криптосообщение", СервисКриптографииСлужебный.ИзвлечьДвоичныеДанныеПриНеобходимости(Криптосообщение));
ПараметрыПроцедуры.Вставить("ТолькоКлючевыеСвойства", ТолькоКлючевыеСвойства);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.ПолучитьСвойстваКриптосообщения", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.ПолучитьСвойстваКриптосообщения", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
@@ -253,7 +275,9 @@
ПараметрыПроцедуры.Вставить("АлгоритмХеширования", АлгоритмХеширования);
ПараметрыПроцедуры.Вставить("ПараметрыХеширования", ПараметрыХеширования);
- Возврат СервисКриптографииСлужебный.ВыполнитьВФоне("СервисКриптографииСлужебный.ХешированиеДанных", ПараметрыПроцедуры);
+ ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("СервисКриптографииСлужебный.ХешированиеДанных", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
diff --git a/src/CommonModules/СервисМобильнойПодписиСлужебный/Ext/Module.bsl b/src/CommonModules/СервисМобильнойПодписиСлужебный/Ext/Module.bsl
index 21d61b4d8..c4c231efd 100644
--- a/src/CommonModules/СервисМобильнойПодписиСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/СервисМобильнойПодписиСлужебный/Ext/Module.bsl
@@ -2457,7 +2457,7 @@
Статус = Неопределено;
- ЗаголовокОшибки = НСтр("ru='Не удалось получить информацию о подписании документов в 1С: Мобильная подпись'");
+ ЗаголовокОшибки = НСтр("ru='Не удалось получить информацию о подписании документов в Госключе'");
Если Не ЗначениеЗаполнено(ТокенДоступа) Тогда
РезультатАвторизации = АвторизоватьсяВГосключе(Настройка, ЗаголовокОшибки);
diff --git a/src/CommonModules/СервисНастроекЭДО/Ext/Module.bsl b/src/CommonModules/СервисНастроекЭДО/Ext/Module.bsl
index ead672f20..46da369d4 100644
--- a/src/CommonModules/СервисНастроекЭДО/Ext/Module.bsl
+++ b/src/CommonModules/СервисНастроекЭДО/Ext/Module.bsl
@@ -1987,7 +1987,7 @@
#Область Версия_1_9_1
Обработчик = Обработчики.Добавить();
- Обработчик.Версия = "1.9.16.36";
+ Обработчик.Версия = "1.9.16.54";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
Обработчик.Процедура = "РегистрыСведений.ОператорыЭДО.ОбработатьДанныеДляПереходаНаНовуюВерсию";
@@ -2015,7 +2015,7 @@
Обработчик.Комментарий = НСтр("ru = '1С:Обмен с контрагентами: обновление операторов ЭДО (начальное заполнение).'");
Обработчик = Обработчики.Добавить();
- Обработчик.Версия = "1.9.16.36";
+ Обработчик.Версия = "1.9.16.54";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
Обработчик.Процедура = "РегистрыСведений.СовместимостьОператоровЭДО.ОбработатьДанныеДляПереходаНаНовуюВерсию";
@@ -3025,6 +3025,8 @@
// ** ПриРегистрацииПредставителяТребуетсяМЧД - Строка
// ** ПоддерживаемыеПриРегистрацииПредставителяТипыМЧД - Строка
// ** НеподдерживаемыеФорматы - Строка
+// ** ВерсияПоддерживаемогоРегистрационногоПакета - Строка
+// ** ПоддерживаетсяОбменБезПриглашений - Булево
//
Функция ОбработкаРезультатаКаталогОператоров(ПолученныеДанные, КонтекстДиагностики = Неопределено) Экспорт
@@ -3071,7 +3073,8 @@
НоваяСтрока.МаксимальноеКоличествоЭДВПакете = ОператорЭДО.maximumQuantityDocumentsInPacket;
НоваяСтрока.МаксимальныйРазмерПакетаЭД = ОператорЭДО.maximumPacketSize;
НоваяСтрока.КодОшибкиНедействительныхСертификатов = ОператорЭДО.inactiveCertificatesErrorCode;
-
+ НоваяСтрока.ВерсияПоддерживаемогоРегистрационногоПакета = ОператорЭДО.regPackageVersion;
+ НоваяСтрока.ПоддерживаетсяОбменБезПриглашений = ОператорЭДО.isNoInvitationsEnabled;
КонецЦикла;
ДатаПоследнегоИзменения = ДатаИзJsonСПроверкой(ПолученныеДанные.lastChangeDate, ФорматДатыJSON.ISO);
@@ -3409,4 +3412,11 @@
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОтправитьДанныеАбонентаВСервисНастроек", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/СервисНастроекЭДОВызовСервера/Ext/Module.bsl b/src/CommonModules/СервисНастроекЭДОВызовСервера/Ext/Module.bsl
index 2eef6a712..a055df79c 100644
--- a/src/CommonModules/СервисНастроекЭДОВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/СервисНастроекЭДОВызовСервера/Ext/Module.bsl
@@ -12,14 +12,13 @@
//
Функция НачатьОтправкуДанныхАбонентаВСервисНастроек(ИдентификаторУчетнойЗаписи, ИдентификаторФормы = Неопределено) Экспорт
- ИмяФункции = "СервисНастроекЭДО.ОтправитьДанныеАбонентаВСервисНастроек";
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(ИдентификаторФормы);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Отправка данных абонента в сервис настроек 1С-ЭДО'");
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
- Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, ИмяФункции, ИдентификаторУчетнойЗаписи);
+ Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
+ "СервисНастроекЭДО.ОтправитьДанныеАбонентаВСервисНастроек", ИдентификаторУчетнойЗаписи);
КонецФункции
diff --git a/src/CommonModules/СервисЭДО/Ext/Module.bsl b/src/CommonModules/СервисЭДО/Ext/Module.bsl
index 280dedfd3..de02473b8 100644
--- a/src/CommonModules/СервисЭДО/Ext/Module.bsl
+++ b/src/CommonModules/СервисЭДО/Ext/Module.bsl
@@ -148,8 +148,10 @@
// Если возникла ошибка по причине истечения времени действия маркера или его некорректности,
// то пробуем получить новый маркер и повторить попытку получения ЭД.
- УдалитьМаркерИзБезопасногоХранилища(КлючСинхронизации.ИдентификаторУчетнойЗаписи,
- КлючСинхронизации.ВыбранныйСертификат);
+ Если КлючСинхронизации <> Неопределено Тогда
+ УдалитьМаркерИзБезопасногоХранилища(КлючСинхронизации.ИдентификаторУчетнойЗаписи,
+ КлючСинхронизации.ВыбранныйСертификат);
+ КонецЕсли;
ОбщегоНазначенияБЭД.ЗаписатьВЖурналРегистрации(ОшибкаОператора.Текст,
ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().ОбменСКонтрагентами,
@@ -212,7 +214,7 @@
Если КэшированиеМаркераПоддерживается Тогда
МаркерИзБезопасногоХранилища = ЗашифрованныйМаркерИзБезопасногоХранилища(
- КлючСинхронизации.ИдентификаторУчетнойЗаписи, СертификатДляПолученияМаркера);
+ КлючСинхронизации.ИдентификаторУчетнойЗаписи, СертификатДляПолученияМаркера, Истина);
КонецЕсли;
Если МаркерИзБезопасногоХранилища <> Неопределено Тогда
@@ -270,13 +272,20 @@
ДатаОкончанияДействияМаркера = Результат.Ответ.Заголовки["Expires"];
Если КэшированиеМаркераПоддерживается И ДатаОкончанияДействияМаркера <> Неопределено Тогда
- КлючСинхронизации.ДатаОкончанияДействияМаркера =
+ ДатаОкончанияДействияМаркера =
ДатаОкончанияДействияМаркераПослеСверкиСТекущимВременемНаСервере1С(ДатаОкончанияДействияМаркера);
КонецЕсли;
+ Если ДатаОкончанияДействияМаркера = Неопределено Тогда
+ УдалосьОпределитьДатуОкончанияДействияМаркера = Ложь;
+ Иначе
+ УдалосьОпределитьДатуОкончанияДействияМаркера = Истина;
+ КлючСинхронизации.ДатаОкончанияДействияМаркера = ДатаОкончанияДействияМаркера;
+ КонецЕсли;
+
Маркер = Результат.Ответ.ПолучитьТелоКакДвоичныеДанные();
- Если КэшированиеМаркераПоддерживается Тогда
+ Если КэшированиеМаркераПоддерживается И УдалосьОпределитьДатуОкончанияДействияМаркера Тогда
ДанныеМаркера = НовыеДанныеЗашифрованногоМаркера();
ДанныеМаркера.ЗашифрованныйМаркер = Маркер;
ДанныеМаркера.ДатаОкончанияДействияМаркера = КлючСинхронизации.ДатаОкончанияДействияМаркера;
@@ -999,6 +1008,11 @@
КонецЕсли;
+ Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСГИСЭПД") Тогда
+ МодульОбменСГИСЭПД = ОбщегоНазначения.ОбщийМодуль("ОбменСГИСЭПД");
+ МодульОбменСГИСЭПД.ПриОпределенииПриоритетаРаспаковкиКонтейнера(КодТранзакции, ТипДокументаСтрокой, Приоритет);
+ КонецЕсли;
+
Возврат Приоритет;
КонецФункции
@@ -1291,6 +1305,19 @@
КонецФункции
+// Определяет, является ли код ошибки кодом ошибки удаленного из БД Хаба маркера.
+//
+// Параметры:
+// КодОшибки - Число
+//
+// Возвращаемое значение:
+// Булево
+Функция ЭтоКодОшибкиМаркераУдаленногоИзХаба(КодОшибки) Экспорт
+
+ Возврат КодОшибки = 1102;
+
+КонецФункции
+
#КонецОбласти
#Область Прочее
@@ -1386,6 +1413,42 @@
КонецФункции
+// Параметры:
+// КлючСинхронизации - См. СинхронизацияЭДОКлиентСервер.НовыйКлючСинхронизации
+// ДвоичныеДанныеСертификата - ДвоичныеДанные
+Процедура ПеревестиУчетнуюЗаписьИзТакскомВХаб(КлючСинхронизации, ДвоичныеДанныеСертификата) Экспорт
+
+ ИдентификаторУчетнойЗаписи = КлючСинхронизации.ИдентификаторУчетнойЗаписи;
+
+ КонтекстДиагностики = ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики();
+
+ ПараметрыВыполненияОперации = НовыеПараметрыВыполненияОперацииСервиса(КлючСинхронизации);
+ ПараметрыВыполненияОперации.СпособОбмена = Перечисления.СпособыОбменаЭД.ЧерезСервис1СЭДО;
+ ПараметрыВыполненияОперации.ПредставлениеОперации = НСтр("ru = 'Аутентификация в сервисе 1С-ЭДО'");
+ ПараметрыВыполненияОперации.АдресРесурса = "CertificateLogin";
+ ПараметрыВыполненияОперации.ТребуетсяМаркер = Ложь;
+ ПараметрыВыполненияОперации.Метод = ИнтернетСоединениеБЭД.HTTPМетоды().POST;
+ ДобавитьПараметрЗапроса(ПараметрыВыполненияОперации, "edxClientId", ИдентификаторУчетнойЗаписи);
+ ДобавитьПараметрЗапроса(ПараметрыВыполненияОперации, "Gateway", ОповещенияОСобытияхЭДО.АдресДляУведомленийЭДО(Перечисления.СпособыОбменаЭД.ЧерезСервис1СЭДО));
+ ДобавитьПараметрЗапроса(ПараметрыВыполненияОперации, "users1c", "true");
+
+ ДобавитьВЗаголовкиЗапросаВерсиюБЭД(ПараметрыВыполненияОперации.Заголовки, Перечисления.СпособыОбменаЭД.ЧерезСервис1СЭДО);
+
+ ПараметрыВыполненияОперации.ТелоЗапроса = ДвоичныеДанныеСертификата;
+ ПараметрыВыполненияОперации.Таймаут = 20;
+
+ Результат = ВыполнитьОперацию(ПараметрыВыполненияОперации, КонтекстДиагностики);
+
+ КодОшибкиОтсутствияСертификатаВХабе = 3103;
+ Если Результат.Успех Или Результат.ОшибкаОператора.Код = КодОшибкиОтсутствияСертификатаВХабе Тогда
+ УчетныеЗаписиЭДО.ИзменитьСпособОбменаУчетнойЗаписиПереводимойИзТакском(ИдентификаторУчетнойЗаписи);
+ Иначе
+ УчетныеЗаписиЭДО.ДобавитьОшибкуПереводаИзТакскомВХаб(ИдентификаторУчетнойЗаписи, Результат.ОшибкаОператора);
+ КонецЕсли;
+ СинхронизацияЭДОКлиентСервер.СброситьТекущуюУчетнуюЗапись(КонтекстДиагностики);
+
+КонецПроцедуры
+
#КонецОбласти
#Область Токены
@@ -1579,7 +1642,8 @@
Возврат ЭтоКодОшибкиПовторнойОтправки(ОшибкаОператора.Код)
Или ЭтоКодОшибкиПросроченногоМаркера(ОшибкаОператора.Код)
- Или ЭтоКодОшибкиНевалидногоМаркера(ОшибкаОператора.Код);
+ Или ЭтоКодОшибкиНевалидногоМаркера(ОшибкаОператора.Код)
+ Или ЭтоКодОшибкиМаркераУдаленногоИзХаба(ОшибкаОператора.Код);
КонецФункции
@@ -1593,7 +1657,8 @@
Функция ТребуетсяПовторныйЗапросМаркера(ОшибкаОператора)
Возврат ЭтоКодОшибкиПросроченногоМаркера(ОшибкаОператора.Код)
- Или ЭтоКодОшибкиНевалидногоМаркера(ОшибкаОператора.Код);
+ Или ЭтоКодОшибкиНевалидногоМаркера(ОшибкаОператора.Код)
+ Или ЭтоКодОшибкиМаркераУдаленногоИзХаба(ОшибкаОператора.Код);
КонецФункции
@@ -2321,7 +2386,7 @@
ДобавитьТокенВПараметрыОперации(ПараметрыВыполненияОперации, КлючСинхронизации);
- Результат = ВыполнитьОперацию(ПараметрыВыполненияОперации, КонтекстДиагностики);
+ Результат = ВыполнитьОперацию(ПараметрыВыполненияОперации, КонтекстДиагностики, КлючСинхронизации);
ТребуетсяОбновлениеСтатусов = Ложь;
Успех = Результат.Успех;
@@ -3900,7 +3965,7 @@
ДанныеМаркера = ЗашифрованныйМаркерИзБезопасногоХранилища(КлючСинхронизации.ИдентификаторУчетнойЗаписи,
КлючСинхронизации.ВыбранныйСертификат);
Если ДанныеМаркера = Неопределено Тогда
- Возврат Истина;
+ Возврат Ложь;
КонецЕсли;
ДатаОкончанияДействияМаркера = ДанныеМаркера.ДатаОкончанияДействияМаркера;
@@ -3918,11 +3983,13 @@
// Параметры:
// ИдентификаторУчетнойЗаписи - Строка
// Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
+// АктуализироватьМаркеры - Булево - если Истина - проверяет срок действия маркеров в безопасном хранилище,
+// удаляет просроченные.
//
// Возвращаемое значение:
// - Неопределено
// - См. НовыеДанныеЗашифрованногоМаркера
-Функция ЗашифрованныйМаркерИзБезопасногоХранилища(ИдентификаторУчетнойЗаписи, Сертификат)
+Функция ЗашифрованныйМаркерИзБезопасногоХранилища(ИдентификаторУчетнойЗаписи, Сертификат, АктуализироватьМаркеры = Ложь)
УстановитьПривилегированныйРежим(Истина);
ДанныеМаркеровПоСертификатам = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(
@@ -3931,9 +3998,11 @@
Если ДанныеМаркеровПоСертификатам = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
-
- АктуализироватьЗашифрованныеМаркерыВБезопасномХранилищеПоСрокуДействия(ИдентификаторУчетнойЗаписи,
- ДанныеМаркеровПоСертификатам);
+
+ Если АктуализироватьМаркеры Тогда
+ АктуализироватьЗашифрованныеМаркерыВБезопасномХранилищеПоСрокуДействия(ИдентификаторУчетнойЗаписи,
+ ДанныеМаркеровПоСертификатам);
+ КонецЕсли;
Возврат ДанныеМаркеровПоСертификатам.Получить(Сертификат);
@@ -3955,10 +4024,6 @@
СертификатМаркера = ДанныеМаркераПоСертификату.Ключ;
ДанныеМаркера = ДанныеМаркераПоСертификату.Значение;
- Если ДанныеМаркера.ДатаОкончанияДействияМаркера = Неопределено Тогда
- Продолжить; // при авторизации не удалось гарантированно установить срок действия маркера
- КонецЕсли;
-
Если Не ЗначениеЗаполнено(ДанныеМаркера.ДатаОкончанияДействияМаркера)
Или ДанныеМаркера.ДатаОкончанияДействияМаркера <= ТекущаяУниверсальнаяДата Тогда
ЕстьПросроченныеМаркеры = Истина;
@@ -4025,13 +4090,12 @@
// Возвращаемое значение:
// Структура:
// * ЗашифрованныйМаркер - Неопределено,ДвоичныеДанные
-// * ДатаОкончанияДействияМаркера - Неопределено - дату окончания действия маркера не удалось определить.
-// - Дата
+// * ДатаОкончанияДействияМаркера - Дата
Функция НовыеДанныеЗашифрованногоМаркера()
Результат = Новый Структура;
Результат.Вставить("ЗашифрованныйМаркер", Неопределено);
- Результат.Вставить("ДатаОкончанияДействияМаркера", Неопределено);
+ Результат.Вставить("ДатаОкончанияДействияМаркера", Дата(1, 1, 1));
Возврат Результат;
КонецФункции
@@ -4076,5 +4140,16 @@
#КонецОбласти // Маркеры
-#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОбновитьПараметрыУведомлений", Истина);
+ Методы.Вставить("ОтправитьРегистрационныйПакет1СЭДО", Истина);
+ Методы.Вставить("ПолучитьПараметрыУведомлений", Истина);
+ Методы.Вставить("ОтправитьРегистрационныйПакет1СЭДО", Истина);
+ Методы.Вставить("ОбновитьПараметрыУведомлений", Истина);
+ Методы.Вставить("ПолучитьСостояниеРегистрацииВСервисе1СЭДО", Истина);
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/СервисЭДОВызовСервера/Ext/Module.bsl b/src/CommonModules/СервисЭДОВызовСервера/Ext/Module.bsl
index 436baa9b8..cbb7777fb 100644
--- a/src/CommonModules/СервисЭДОВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/СервисЭДОВызовСервера/Ext/Module.bsl
@@ -22,15 +22,13 @@
ИнтеграцияБСПБЭДВызовСервера.ОтменитьВыполнениеЗадания(ДанныеПакета.ИдентификаторЗадания);
КонецЕсли;
- ИмяФункции = "СервисЭДО.ОтправитьРегистрационныйПакет1СЭДО";
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(Новый УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Отправка данных учетной записи в сервис 1С:ЭДО'");
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
- Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, ИмяФункции, ДанныеПакета, КонтекстДиагностики,
- Неопределено);
+ Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
+ "СервисЭДО.ОтправитьРегистрационныйПакет1СЭДО", ДанныеПакета, КонтекстДиагностики, Неопределено);
КонецФункции
@@ -82,14 +80,12 @@
Функция НачатьПолучениеПараметровУведомлений(КлючСинхронизации,
ИдентификаторФормы = Неопределено) Экспорт
- ИмяФункции = "СервисЭДО.ПолучитьПараметрыУведомлений";
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(ИдентификаторФормы);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Получение настроек уведомлений в сервисе 1С-ЭДО'");
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
- Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, ИмяФункции,
+ Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "СервисЭДО.ПолучитьПараметрыУведомлений",
КлючСинхронизации);
КонецФункции
@@ -106,15 +102,13 @@
Функция НачатьОбновлениеПараметровУведомлений(Знач ПараметрыУведомлений, КлючСинхронизации,
ИдентификаторФормы = Неопределено) Экспорт
- ИмяПроцедуры = "СервисЭДО.ОбновитьПараметрыУведомлений";
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(ИдентификаторФормы);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление настроек уведомлений в сервисе 1С-ЭДО'");
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
- Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, ИмяПроцедуры, ПараметрыУведомлений,
- КлючСинхронизации);
+ Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "СервисЭДО.ОбновитьПараметрыУведомлений",
+ ПараметрыУведомлений, КлючСинхронизации);
КонецФункции
diff --git a/src/CommonModules/СинхронизацияЭДО/Ext/Module.bsl b/src/CommonModules/СинхронизацияЭДО/Ext/Module.bsl
index 4ce070efe..24edef92d 100644
--- a/src/CommonModules/СинхронизацияЭДО/Ext/Module.bsl
+++ b/src/CommonModules/СинхронизацияЭДО/Ext/Module.bsl
@@ -20,6 +20,23 @@
#КонецОбласти
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОбновитьКешиОператоровЭДОИФорматов", Истина);
+ Методы.Вставить("ОбновитьПоддерживаемыеФорматыАбонентовИзСервисаНастроек", Истина);
+ Методы.Вставить("ПолучитьПриглашения", Истина);
+ Методы.Вставить("СинхронизироватьКлассификаторПолномочий_МЧД003", Истина);
+ Методы.Вставить("СинхронизироватьКлассификаторПолномочийФНС_МЧД002", Истина);
+ Методы.Вставить("СинхронизироватьКлассификаторыОграниченийМЧД", Истина);
+ Методы.Вставить("СинхронизироватьСопоставленияКлассификатораОграниченийСОбъектамиБЭД", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#КонецОбласти
@@ -78,12 +95,23 @@
ТранспортныеКонтейнеры = Новый Массив;
+ СписокУчетныхЗаписейПереведенныхИзТакском = УчетныеЗаписиЭДО.СписокУчетныхЗаписейПереведенныхИзТакском();
+ ПараметрыПереводаИзТакском = ПараметрыПереводаИзТакском();
+ ОбрабатыватьТолькоОбъектыAPIТакском = ТипЗнч(ДополнительныеПараметры) = Тип("Структура")
+ И ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры.ПараметрыВыполнения, "ВыполнитьТолькоПоТакском", Ложь);
+
Запросы = Новый Массив;
Запросы.Добавить(ЗапросОбъектов);
Отбор = ТранспортныеКонтейнерыЭДО.НовыйОтборКонтейнеровОбъектов();
Отбор.Объект = "ВЫБРАТЬ Ссылка ИЗ ОбъектыДляОтправки";
+ Если ОбрабатыватьТолькоОбъектыAPIТакском Тогда
+ Отбор.СпособОбмена = "&СпособыОбмена";
+ КонецЕсли;
+
+ СпособОбменаЧерезОператораЭДОТакском = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском;
+
ЗапросКонтейнеровОбъектов = ТранспортныеКонтейнерыЭДО.ЗапросКонтейнеровОбъектовДляОтправки(Отбор,
"КонтейнерыОбъектов");
Запросы.Добавить(ЗапросКонтейнеровОбъектов);
@@ -93,7 +121,9 @@
| КонтейнерыОбъектов.Объект КАК Объект,
| КонтейнерыОбъектов.ТранспортныйКонтейнер КАК ТранспортныйКонтейнер,
| КонтейнерыОбъектов.Отправитель КАК Отправитель,
- | КонтейнерыОбъектов.СпособОбмена КАК СпособОбмена
+ | КонтейнерыОбъектов.СпособОбмена КАК СпособОбмена,
+ | КонтейнерыОбъектов.Объект.ТипЭлементаРегламента КАК ТипЭлементаРегламента,
+ | КонтейнерыОбъектов.Объект.ЭлектронныйДокумент КАК ЭлектронныйДокумент
|ИЗ
| КонтейнерыОбъектов КАК КонтейнерыОбъектов
|ИТОГИ
@@ -102,6 +132,10 @@
ИтоговыйЗапрос = ОбщегоНазначенияБЭД.СоединитьЗапросы(Запрос, Запросы);
+ Если ОбрабатыватьТолькоОбъектыAPIТакском Тогда
+ ИтоговыйЗапрос.УстановитьПараметр("СпособыОбмена", СпособОбменаЧерезОператораЭДОТакском);
+ ПараметрыПереводаИзТакском.СпособОбменаДляПодмены = СпособОбменаЧерезОператораЭДОТакском;
+ КонецЕсли;
РезультатЗапроса = ИтоговыйЗапрос.Выполнить();
ИдентификаторыОтправителей = Новый Массив;
@@ -116,24 +150,47 @@
ОписаниеКонтейнера.Вставить("ОтправляемыеОбъекты", Новый Массив);
ВыборкаДетальныеЗаписи = ВыборкаТранспортныйКонтейнер.Выбрать();
-
+
+ ЭтоКонтейнерУчетнойЗаписиПереведеннойИзТакском = Ложь;
+
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ИдентификаторыОтправителей.Найти(ВыборкаДетальныеЗаписи.Отправитель) = Неопределено Тогда
ИдентификаторыОтправителей.Добавить(ВыборкаДетальныеЗаписи.Отправитель);
КонецЕсли;
ОписаниеКонтейнера.Отправитель = ВыборкаДетальныеЗаписи.Отправитель;
ОписаниеКонтейнера.СпособОбмена = ВыборкаДетальныеЗаписи.СпособОбмена;
+
+ ЭтоКонтейнерУчетнойЗаписиПереведеннойИзТакском = Не ОбрабатыватьТолькоОбъектыAPIТакском
+ И ВыборкаДетальныеЗаписи.СпособОбмена = СпособОбменаЧерезОператораЭДОТакском
+ И СписокУчетныхЗаписейПереведенныхИзТакском.Найти(ВыборкаДетальныеЗаписи.Отправитель) <> Неопределено;
+
+ Если ЭтоКонтейнерУчетнойЗаписиПереведеннойИзТакском
+ И ВыборкаДетальныеЗаписи.ТипЭлементаРегламента = Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя
+ И Не ЭлектронныеДокументыЭДО.ЭтоВходящийЭДО(ВыборкаДетальныеЗаписи.ЭлектронныйДокумент) Тогда
+
+ Если УстановитьСпособОбменаЧерезХаб(ВыборкаДетальныеЗаписи.ЭлектронныйДокумент,
+ ВыборкаДетальныеЗаписи.ТранспортныйКонтейнер) Тогда
+ ОписаниеКонтейнера.СпособОбмена = Перечисления.СпособыОбменаЭД.ЧерезСервис1СЭДО;
+ КонецЕсли;
+ КонецЕсли;
+
ОписаниеКонтейнера.ОтправляемыеОбъекты.Добавить(ВыборкаДетальныеЗаписи.Объект);
+
КонецЦикла;
+
+ Если ЭтоКонтейнерУчетнойЗаписиПереведеннойИзТакском Тогда
+ Продолжить;
+ КонецЕсли;
+
ТранспортныеКонтейнеры.Добавить(ОписаниеКонтейнера);
КонецЦикла;
Если ЗначениеЗаполнено(РасшифрованныеМаркеры) Тогда
ДанныеДляСинхронизации = СинхронизацияЭДОСлужебный.ДанныеДляСинхронизацииИзРасшифрованныхМаркеров(
- РасшифрованныеМаркеры, КонтекстДиагностики);
+ РасшифрованныеМаркеры, КонтекстДиагностики, ОбрабатыватьТолькоОбъектыAPIТакском);
Иначе
ДанныеДляСинхронизации = СинхронизацияЭДОСлужебный.ДанныеДляСинхронизации(ОтпечаткиСертификатов,
- КонтекстДиагностики, ИдентификаторыОтправителей, ВыбранныеСертификаты);
+ КонтекстДиагностики, ИдентификаторыОтправителей, ВыбранныеСертификаты, ПараметрыПереводаИзТакском);
КонецЕсли;
КонтекстОтправки = СинхронизацияЭДОСлужебный.НовыйКонтекстОтправки();
@@ -175,6 +232,7 @@
// * СопроводительнаяЗаписка - Строка
// * ОписаниеДокумента - см. НовоеОписаниеДокумента
// * ИдентификаторПакета - Строка
+// * ЗакрытыйПакет - Булево
// * ИдентификаторДокументооборота - Строка
// * ИдентификаторСообщения - Строка
// * ИдентификаторКонтейнера - Строка
@@ -238,6 +296,7 @@
ДанныеОбъектов.Колонки.Добавить("СопроводительнаяЗаписка");
ДанныеОбъектов.Колонки.Добавить("ОписаниеДокумента");
ДанныеОбъектов.Колонки.Добавить("ИдентификаторПакета");// InternalDocumentGroupId
+ ДанныеОбъектов.Колонки.Добавить("ЗакрытыйПакет", Новый ОписаниеТипов("Булево"));
ДанныеОбъектов.Колонки.Добавить("ИдентификаторДокументооборота",
Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(150)));// DocflowId
ДанныеОбъектов.Колонки.Добавить("ИдентификаторСообщения", Новый ОписаниеТипов("Строка",,,
@@ -467,7 +526,10 @@
ПараметрыПриглашения = Новый Структура;
ПараметрыПриглашения.Вставить("ИдентификаторОрганизации", ИдентификаторОрганизации);
ПараметрыПриглашения.Вставить("ИдентификаторКонтрагента", ИдентификаторКонтрагента);
- ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашенияПоПараметрам(ПараметрыПриглашения);
+ ЗаполнятьПредставлениеКонтрагента = Ложь;
+ ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашенияПоПараметрам(
+ ПараметрыПриглашения,
+ ЗаполнятьПредставлениеКонтрагента);
Если ДанныеПриглашения <> Неопределено
И ДанныеПриглашения.Статус = Перечисления.СтатусыПриглашений.Принято Тогда
Результат = Истина;
@@ -1006,12 +1068,14 @@
// УчетныеЗаписи - Массив из Строка - идентификаторы учетных записей, по которым требуется получить данные
// для синхронизации, если массив пустой - данные будут получены без отбора по учетным записям.
// ВыбранныеСертификаты - Массив из СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
+// ПараметрыПереводаИзТакском - Неопределено
+// - см. СинхронизацияЭДО.ПараметрыПереводаИзТакском
//
// Возвращаемое значение:
// См. СинхронизацияЭДОСлужебный.ДанныеДляСинхронизации
//
-Функция ДанныеДляСинхронизации(ОтпечаткиСертификатов, КонтекстДиагностики, УчетныеЗаписи = Неопределено, ВыбранныеСертификаты = Неопределено) Экспорт
- Возврат СинхронизацияЭДОСлужебный.ДанныеДляСинхронизации(ОтпечаткиСертификатов, КонтекстДиагностики, УчетныеЗаписи, ВыбранныеСертификаты);
+Функция ДанныеДляСинхронизации(ОтпечаткиСертификатов, КонтекстДиагностики, УчетныеЗаписи = Неопределено, ВыбранныеСертификаты = Неопределено, ПараметрыПереводаИзТакском = Неопределено) Экспорт
+ Возврат СинхронизацияЭДОСлужебный.ДанныеДляСинхронизации(ОтпечаткиСертификатов, КонтекстДиагностики, УчетныеЗаписи, ВыбранныеСертификаты, ПараметрыПереводаИзТакском);
КонецФункции
// Параметры:
@@ -1389,6 +1453,18 @@
КонецФункции
+// Возвращаемое значение:
+// Структура - Описание:
+// * СпособОбменаДляПодмены - ПеречислениеСсылка.СпособыОбменаЭД - в случае указания, способ обмена,
+// в ключах синхронизации будет подменен на указанное значение.
+Функция ПараметрыПереводаИзТакском() Экспорт
+
+ Результат = Новый Структура;
+ Результат.Вставить("СпособОбменаДляПодмены", Перечисления.СпособыОбменаЭД.ПустаяСсылка());
+ Возврат Результат;
+
+КонецФункции
+
// Возвращает картинку для статуса подключения абонента электронного документооборота.
//
// Параметры:
@@ -1782,6 +1858,43 @@
КонецФункции
+// Параметры:
+// ИдентификаторыЭДО - Массив из Строка
+//
+// Возвращаемое значение:
+// Соответствие из КлючИЗначение:
+// * Ключ - Строка - идентификатор учетной записи
+// * Значение - см. НовоеОписаниеДатЗапросовДанныхУОператораЭлектронногоДокументооборота
+Функция ДатыПолученияУчетныхЗаписейПереведенныхИзТакскомВХаб(ИдентификаторыЭДО) Экспорт
+ Результат = Новый Соответствие;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | УчетныеЗаписиПереведенныеИзТакском.ИдентификаторЭДО,
+ | УчетныеЗаписиПереведенныеИзТакском.ДатаПолучения,
+ | УчетныеЗаписиПереведенныеИзТакском.ДатаПолученияЭПД,
+ | УчетныеЗаписиПереведенныеИзТакском.ПроверочнаяДатаПолучения
+ |ИЗ
+ | РегистрСведений.УчетныеЗаписиПереведенныеИзТакскомЭДО КАК УчетныеЗаписиПереведенныеИзТакском
+ |ГДЕ
+ | УчетныеЗаписиПереведенныеИзТакском.ИдентификаторЭДО В (&ИдентификаторыЭДО)";
+ Запрос.УстановитьПараметр("ИдентификаторыЭДО", ИдентификаторыЭДО);
+
+ РезультатЗапроса = Запрос.Выполнить();
+
+ Выборка = РезультатЗапроса.Выбрать();
+ Пока Выборка.Следующий() Цикл
+ Даты = НовоеОписаниеДатЗапросовДанныхУОператораЭлектронногоДокументооборота();
+ ЗаполнитьЗначенияСвойств(Даты, Выборка);
+
+ Результат.Вставить(Выборка.ИдентификаторЭДО, Даты);
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти
#Область Приглашения
@@ -3079,7 +3192,7 @@
ОписаниеРешения = СтрШаблон(НСтр("ru = 'Авторизоваться по сертификату и повторить операцию.'"), "Авторизоваться");
ВидОшибки.ОписаниеРешения = ОписаниеРешения;
ВидОшибки.ОбработчикиНажатия.Вставить("Авторизоваться",
- "СервисЭДОКлиент.ОбработатьОшибкуНекорректныйТокенДоступаКСервисуЭДО");
+ "СинхронизацияЭДОСлужебныйКлиент.ОбработатьОшибкуНекорректныйТокенДоступаКСервисуЭДО");
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ИдентификаторУчетнойЗаписи", ИдентификаторУчетнойЗаписи);
@@ -3409,4 +3522,43 @@
КонецФункции
+// Параметры:
+// ЭлектронныйДокумент - ДокументСсылка.ЭлектронныйДокументИсходящийЭДО
+// ТранспортныйКонтейнер - ДокументСсылка.ТранспортныйКонтейнерЭДО
+//
+// Возвращаемое значение:
+// Булево - Способ обмена успешно установлен
+Функция УстановитьСпособОбменаЧерезХаб(ЭлектронныйДокумент, ТранспортныйКонтейнер)
+ СпособОбменаУстановлен = Истина;
+ НачатьТранзакцию();
+ Попытка
+ Если ЗначениеЗаполнено(ЭлектронныйДокумент) Тогда
+ ЭлектронныеДокументыЭДО.ЗаблокироватьДокументДляИзменения(ЭлектронныйДокумент, Ложь);
+ ЭлектронныйДокументОбъект = ЭлектронныйДокумент.ПолучитьОбъект();
+ ЭлектронныйДокументОбъект.СпособОбмена = Перечисления.СпособыОбменаЭД.ЧерезСервис1СЭДО;
+ ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ЭлектронныйДокументОбъект);
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(ТранспортныйКонтейнер) Тогда
+ ТранспортныеКонтейнерыЭДО.ЗаблокироватьКонтейнер(ТранспортныйКонтейнер);
+ ТранспортныйКонтейнерОбъект = ТранспортныйКонтейнер.ПолучитьОбъект();
+ ТранспортныйКонтейнерОбъект.СпособОбменаЭД = Перечисления.СпособыОбменаЭД.ЧерезСервис1СЭДО;
+ ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ТранспортныйКонтейнерОбъект);
+ КонецЕсли;
+
+ ЗафиксироватьТранзакцию();
+ Исключение
+ ОтменитьТранзакцию();
+
+ ЗаписьЖурналаРегистрации(НСтр("ru = 'Изменение способа обмена в документе и транспортном контейнере'",
+ ОбщегоНазначения.КодОсновногоЯзыка()),
+ УровеньЖурналаРегистрации.Ошибка,,,
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
+
+ СпособОбменаУстановлен = Ложь;
+ КонецПопытки;
+
+ Возврат СпособОбменаУстановлен;
+КонецФункции
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/СинхронизацияЭДОСлужебный/Ext/Module.bsl b/src/CommonModules/СинхронизацияЭДОСлужебный/Ext/Module.bsl
index a0469fe4b..4988a610b 100644
--- a/src/CommonModules/СинхронизацияЭДОСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/СинхронизацияЭДОСлужебный/Ext/Module.bsl
@@ -174,6 +174,8 @@
// УчетныеЗаписи - Массив из Строка - идентификаторы учетных записей, по которым требуется получить данные
// для синхронизации, если массив пустой - данные будут получены без отбора по учетным записям.
// ВыбранныеСертификаты - Массив из СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
+// ПараметрыПереводаИзТакском - Неопределено
+// - см. СинхронизацияЭДО.ПараметрыПереводаИзТакском
//
// Возвращаемое значение:
// Структура:
@@ -187,7 +189,7 @@
// * УчетныеЗаписиБезДоступныхСертификатов - см. УчетныеЗаписиЭДО.УчетныеЗаписиБезДоступныхСертификатов
//
Функция ДанныеДляСинхронизации(Знач ОтпечаткиСертификатов, КонтекстДиагностики, Знач УчетныеЗаписи = Неопределено,
- Знач ВыбранныеСертификаты = Неопределено) Экспорт
+ Знач ВыбранныеСертификаты = Неопределено, ПараметрыПереводаИзТакском = Неопределено) Экспорт
Если ВыбранныеСертификаты = Неопределено Тогда
ВыбранныеСертификаты = Новый Массив;
@@ -329,6 +331,15 @@
ТекущийИдентификаторОрганизации = Выборка.ИдентификаторОрганизации;
КлючСинхронизации = СинхронизацияЭДОКлиентСервер.НовыйКлючСинхронизации();
КлючСинхронизации.СпособОбмена = Выборка.СпособОбменаЭД;
+
+ Если ЗначениеЗаполнено(ПараметрыПереводаИзТакском) Тогда
+ СпособОбменаДляПодмены = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыПереводаИзТакском,
+ "СпособОбменаДляПодмены", Перечисления.СпособыОбменаЭД.ПустаяСсылка());
+ Если ЗначениеЗаполнено(СпособОбменаДляПодмены) Тогда
+ КлючСинхронизации.СпособОбмена = СпособОбменаДляПодмены;
+ КонецЕсли;
+ КонецЕсли;
+
КлючСинхронизации.ИдентификаторУчетнойЗаписи = ТекущийИдентификаторОрганизации;
МассивСертификатов = Новый Массив;
КлючСинхронизацииПолучен = Ложь;
@@ -387,6 +398,15 @@
КонецЦикла;
+ СпособОбменаДляПодмены = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыПереводаИзТакском,
+ "СпособОбменаДляПодмены",
+ Перечисления.СпособыОбменаЭД.ПустаяСсылка());
+ Если ЗначениеЗаполнено(СпособОбменаДляПодмены) Тогда
+ Для Каждого КлючЗначение Из КлючиСинхронизации Цикл
+ КлючЗначение.Значение.СпособОбмена = СпособОбменаДляПодмены;
+ КонецЦикла;
+ КонецЕсли;
+
Для Каждого КлючСинхронизации Из КлючиСинхронизации Цикл
Если ЗначениеЗаполнено(КлючСинхронизации.Значение.ВыбранныйСертификат) Тогда
Продолжить;
@@ -457,10 +477,11 @@
// Параметры:
// РасшифрованныеМаркеры - см. КриптографияБЭДКлиентСервер.НовыйНаборРасшифрованныхДанных
// КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
+// ОбрабатыватьТолькоОбъектыAPIТакском - Булево
//
// Возвращаемое значение:
// См. СинхронизацияЭДОКлиентСервер.НовыеКлючиСинхронизации
-Функция ДанныеДляСинхронизацииИзРасшифрованныхМаркеров(РасшифрованныеМаркеры, КонтекстДиагностики) Экспорт
+Функция ДанныеДляСинхронизацииИзРасшифрованныхМаркеров(РасшифрованныеМаркеры, КонтекстДиагностики, ОбрабатыватьТолькоОбъектыAPIТакском = Ложь) Экспорт
ДанныеДляСинхронизации = НовыеДанныеДляСинхронизации();
@@ -500,12 +521,17 @@
ДанныеСертификатов.Вставить(Сертификат, ДанныеСертификата);
КлючСинхронизации = СинхронизацияЭДОКлиентСервер.НовыйКлючСинхронизации();
- КлючСинхронизации.ИдентификаторУчетнойЗаписи = ИдентификаторЭДО;
- КлючСинхронизации.СпособОбмена = СпособыОбменаУчетныхЗаписей[ИдентификаторЭДО];
+ КлючСинхронизации.ИдентификаторУчетнойЗаписи = ИдентификаторЭДО;
КлючСинхронизации.ВыбранныйСертификат = Сертификат;
КлючСинхронизации.МаркерРасшифрованный = РасшифрованныеДанные.Данные;
КлючСинхронизации.Сертификаты.Добавить(ДанныеСертификата);
+ Если ОбрабатыватьТолькоОбъектыAPIТакском Тогда
+ КлючСинхронизации.СпособОбмена = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском;
+ Иначе
+ КлючСинхронизации.СпособОбмена = СпособыОбменаУчетныхЗаписей[ИдентификаторЭДО];
+ КонецЕсли;
+
КлючиСинхронизации.Вставить(ИдентификаторЭДО, КлючСинхронизации);
КонецЦикла;
@@ -1597,6 +1623,8 @@
ДатыПолучения = СинхронизацияЭДО.ДатыЗапросаДанныхОператораЭДО(ИдентификаторыУчетныхЗаписей,
СинхронизацияЭДО.ТипДанныхЗапросаОператораЭДОДокументы());
+ СкорректироватьДатыПолученияУчетныхЗаписейПереведенныхИзТакскомВХаб(ДатыПолучения, КлючиСинхронизации);
+
Для Каждого КлючИЗначение Из КлючиСинхронизации Цикл
КлючСинхронизации = КлючИЗначение.Значение;
ИдентификаторОрганизации = КлючСинхронизации.ИдентификаторУчетнойЗаписи;
@@ -1647,7 +1675,7 @@
Если УспешноеПолучениеТранспортныхКонтейнеров И ПараметрыПолучения.СдвигатьДату
И ЗначениеЗаполнено(ДатаПоследнегоЗапроса) И ВсеОписанияДокументов.Количество() > 0 Тогда
ДатаПолученияЭД = ДатаПоследнегоЗапроса;
- СинхронизацияЭДО.ИзменитьСостояниеОбмена(ИдентификаторОрганизации, "ДатаПолученияДокументов",
+ ИзменитьСостояниеОбмена(КлючСинхронизации, "ДатаПолученияДокументов",
ДатаПолученияЭД);
КонецЕсли;
@@ -1768,6 +1796,69 @@
КонецФункции
+// Параметры:
+// КлючСинхронизации - см. СинхронизацияЭДОКлиентСервер.НовыйКлючСинхронизации
+// Свойство - Строка
+// Значение - Число
+Процедура ИзменитьСостояниеОбмена(КлючСинхронизации, Свойство, Значение)
+ ИдентификаторУчетнойЗаписи = КлючСинхронизации.ИдентификаторУчетнойЗаписи;
+ Если КлючСинхронизации.СпособОбмена = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском
+ И УчетныеЗаписиЭДО.УчетнаяЗаписьПереведенаИзТакском(ИдентификаторУчетнойЗаписи) Тогда
+
+ Набор = РегистрыСведений.УчетныеЗаписиПереведенныеИзТакскомЭДО.СоздатьНаборЗаписей();
+ Набор.Отбор.ИдентификаторЭДО.Установить(ИдентификаторУчетнойЗаписи);
+ Набор.Прочитать();
+
+ СтрокаНабора = Набор[0];
+
+ Если Свойство = "ДатаПолученияДокументов" Тогда
+ СтрокаНабора.ДатаПолучения = Значение;
+ ИначеЕсли Свойство = "ДатаПолученияЭПД" Тогда
+ СтрокаНабора.ДатаПолученияЭПД = Значение;
+ ИначеЕсли Свойство = "ПроверочнаяДатаПолученияДокументов" Тогда
+ СтрокаНабора.ПроверочнаяДатаПолучения = Значение;
+ КонецЕсли;
+
+ Набор.Записать();
+
+ Иначе
+ СинхронизацияЭДО.ИзменитьСостояниеОбмена(ИдентификаторУчетнойЗаписи, Свойство, Значение);
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Параметры:
+// ДатыПолучения - см. СинхронизацияЭДО.ДатыЗапросаДанныхОператораЭДО
+// КлючиСинхронизации - см. СинхронизацияЭДОКлиентСервер.НовыеКлючиСинхронизации
+Процедура СкорректироватьДатыПолученияУчетныхЗаписейПереведенныхИзТакскомВХаб(ДатыПолучения, КлючиСинхронизации)
+
+ СписокУчетныхЗаписейПереведенныхИзТакском = УчетныеЗаписиЭДО.СписокУчетныхЗаписейПереведенныхИзТакском();
+ Если Не ЗначениеЗаполнено(СписокУчетныхЗаписейПереведенныхИзТакском) Тогда
+ Возврат;
+ КонецЕсли;
+
+ ИдентификаторыУчетныхЗаписей = СинхронизацияЭДО.УчетныеЗаписиКлючейСинхронизации(КлючиСинхронизации);
+
+ ИдентификаторыПереведенныхВТакскомУЗ = ОбщегоНазначенияБЭДКлиентСервер.ПересечениеМассивов(ИдентификаторыУчетныхЗаписей,
+ СписокУчетныхЗаписейПереведенныхИзТакском);
+
+ СписокИдентификаторовКЗапросуДатПолучения = Новый Массив;
+ Для Каждого КлючСинхронизации Из КлючиСинхронизации Цикл
+ ИдентификаторЭДО = КлючСинхронизации.Ключ;
+ СвойстваКлюча = КлючСинхронизации.Значение;
+ Если СвойстваКлюча.СпособОбмена = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском
+ И ИдентификаторыПереведенныхВТакскомУЗ.Найти(ИдентификаторЭДО) <> Неопределено Тогда
+
+ СписокИдентификаторовКЗапросуДатПолучения.Добавить(ИдентификаторЭДО);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ ДатыПолученияПереведенныхУЗ = СинхронизацияЭДО.ДатыПолученияУчетныхЗаписейПереведенныхИзТакскомВХаб(СписокИдентификаторовКЗапросуДатПолучения);
+ ОбщегоНазначенияКлиентСервер.ДополнитьСоответствие(ДатыПолучения, ДатыПолученияПереведенныхУЗ, Истина);
+
+КонецПроцедуры
+
Функция ЗагрузкаДокументаВозможна(ДокументДляЗагрузки, ИдентификаторОрганизации, КонтекстДиагностики)
ЗагрузкаВозможна = Истина;
@@ -1836,20 +1927,27 @@
КонецФункции
+// Параметры:
+// КлючСинхронизации - см. СинхронизацияЭДОКлиентСервер.НовыйКлючСинхронизации
+// КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
+// ДатаПолученияЭДИзНастройки - Число
+// ДатаУспешногоПолученияЭД - Число
+// ПроверочнаяДатаПолученияЭДИзНастройки - Число
+// НезагруженныеИдентификаторы - Массив из Строка
Процедура ПроверитьНеполученныеДокументы(КлючСинхронизации, КонтекстДиагностики,
ДатаПолученияЭДИзНастройки, ДатаУспешногоПолученияЭД, ПроверочнаяДатаПолученияЭДИзНастройки, НезагруженныеИдентификаторы)
ИдентификаторОрганизации = КлючСинхронизации.ИдентификаторУчетнойЗаписи;
Если Не ЗначениеЗаполнено(ДатаПолученияЭДИзНастройки) И ЗначениеЗаполнено(ДатаУспешногоПолученияЭД) Тогда
Если ПроверочнаяДатаПолученияЭДИзНастройки <> ДатаУспешногоПолученияЭД Тогда
- СинхронизацияЭДО.ИзменитьСостояниеОбмена(ИдентификаторОрганизации, "ПроверочнаяДатаПолученияДокументов", ДатаУспешногоПолученияЭД);
+ ИзменитьСостояниеОбмена(КлючСинхронизации, "ПроверочнаяДатаПолученияДокументов", ДатаУспешногоПолученияЭД);
КонецЕсли;
Возврат;
КонецЕсли;
Если ДатаПолученияЭДИзНастройки = ПроверочнаяДатаПолученияЭДИзНастройки И ЗначениеЗаполнено(ДатаУспешногоПолученияЭД) Тогда
Если ПроверочнаяДатаПолученияЭДИзНастройки <> ДатаУспешногоПолученияЭД Тогда
- СинхронизацияЭДО.ИзменитьСостояниеОбмена(ИдентификаторОрганизации, "ПроверочнаяДатаПолученияДокументов", ДатаУспешногоПолученияЭД);
+ ИзменитьСостояниеОбмена(КлючСинхронизации, "ПроверочнаяДатаПолученияДокументов", ДатаУспешногоПолученияЭД);
КонецЕсли;
Возврат;
КонецЕсли;
@@ -1877,7 +1975,7 @@
Если ЕстьДокументы Тогда
ОбработатьОшибкуНеполученныхДокументов(ИдентификаторОрганизации, ДатаУспешногоПолученияЭД, ПроверочнаяДатаПолученияЭД, КонтекстДиагностики);
ИначеЕсли ПроверочнаяДатаПолученияЭДИзНастройки <> ДатаУспешногоПолученияЭД Тогда
- СинхронизацияЭДО.ИзменитьСостояниеОбмена(ИдентификаторОрганизации, "ПроверочнаяДатаПолученияДокументов", ДатаУспешногоПолученияЭД);
+ ИзменитьСостояниеОбмена(КлючСинхронизации, "ПроверочнаяДатаПолученияДокументов", ДатаУспешногоПолученияЭД);
КонецЕсли;
КонецПроцедуры
@@ -1998,6 +2096,7 @@
Функция ОтправитьТранспортныеКонтейнеры(ТранспортныеКонтейнеры, КлючиСинхронизации, КонтекстДиагностики,
РезультатыОтправкиПолучения = Неопределено, ДополнительныеПараметры = Неопределено)
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ОтправитьТранспортныеКонтейнеры");
ЕстьЭлектронноеАктированиеЕИС = Ложь;
МодульЭлектронноеАктированиеЕИС = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует(
@@ -2123,7 +2222,8 @@
КонтейнерОтправлен, ТекстСообщения);
КонецЦикла;
КонецЦикла;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ОтправитьТранспортныеКонтейнеры", ОписаниеЗамера,
+ ТранспортныеКонтейнеры.Количество());
Возврат Результат;
КонецФункции
@@ -2412,7 +2512,10 @@
ШаблонСообщения = НСтр("ru = 'Закончено регламентное задание.
|Отправлено транспортных контейнеров: %1.'");
-
+
+ КлючЗамера = "ОтправитьЭлектронныеДокументыПоРасписанию";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
+
Попытка
КонтекстДиагностики = ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики();
ВидОперации = НСтр("ru = 'Выполнение регламентного задания по отправке электронных документов'");
@@ -2445,6 +2548,21 @@
Результат = ОтправитьКонтейнеры(ДанныеДляСинхронизации.КлючиСинхронизации, ОтпечаткиСертификатов,
КонтекстДиагностики);
+
+ СписокУчетныхЗаписейПереводимыхИзТакском = УчетныеЗаписиЭДО.СписокУчетныхЗаписейПереведенныхИзТакском();
+ Если ЗначениеЗаполнено(СписокУчетныхЗаписейПереводимыхИзТакском)
+ И Не УчетныеЗаписиЭДО.НаступилаДатаОтключенияAPIТакском() Тогда
+
+ ДанныеДляСинхронизации = ДанныеДляСинхронизации(ОтпечаткиСертификатов,
+ КонтекстДиагностики,
+ СписокУчетныхЗаписейПереводимыхИзТакском,
+ СертификатыПоОтпечаткам(ОтпечаткиСертификатов));
+
+ ПодготовитьКонтейнеры(ДанныеДляСинхронизации.КлючиСинхронизации, КонтекстДиагностики);
+ РезультатОтправкиТакском = ОтправитьКонтейнеры(ДанныеДляСинхронизации.КлючиСинхронизации, ОтпечаткиСертификатов,
+ КонтекстДиагностики, Истина);
+ Результат.КоличествоОтправленных = Результат.КоличествоОтправленных + РезультатОтправкиТакском.КоличествоОтправленных;
+ КонецЕсли;
ТекстСообщения = СтрШаблон(ШаблонСообщения, Результат.КоличествоОтправленных);
@@ -2467,7 +2585,7 @@
ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().ОбменСКонтрагентами);
ДиагностикаЭДО.ОбработатьОшибки(КонтекстДиагностики);
КонецПопытки;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера,ОписаниеЗамера, Результат.КоличествоОтправленных);
КонецПроцедуры
Процедура ПолучитьНовыеЭлектронныеДокументыПоРасписанию() Экспорт
@@ -2492,6 +2610,9 @@
ШаблонСообщения = НСтр("ru = 'Закончено регламентное задание.
|Получено транспортных контейнеров: %1. Распаковано: %2.'");
+ КлючЗамера = "ПолучитьНовыеЭлектронныеДокументыПоРасписанию";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
+
Попытка
КонтекстДиагностики = ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики();
ВидОперации = НСтр("ru = 'Выполнение регламентного задания по получению электронных документов'");
@@ -2520,6 +2641,8 @@
ДанныеДляСинхронизации = ДанныеДляСинхронизации(ОтпечаткиСертификатов, КонтекстДиагностики,,
СертификатыПоОтпечаткам(ОтпечаткиСертификатов));
+ УчетныеЗаписиЭДО.ПеревестиУчетныеЗаписиТакскомВХаб(ДанныеДляСинхронизации.КлючиСинхронизации);
+
ПриглашенияЭДО.ПолучитьПриглашения(ДанныеДляСинхронизации.КлючиСинхронизации, КонтекстДиагностики, Ложь);
Результат = ПолучитьКонтейнеры(ДанныеДляСинхронизации.КлючиСинхронизации, ОтпечаткиСертификатов,
@@ -2560,6 +2683,57 @@
Загружено = 0;
КонецЕсли;
+ СписокУчетныхЗаписейПереводимыхИзТакском = УчетныеЗаписиЭДО.СписокУчетныхЗаписейПереведенныхИзТакском();
+ Если ЗначениеЗаполнено(СписокУчетныхЗаписейПереводимыхИзТакском)
+ И Не УчетныеЗаписиЭДО.НаступилаДатаОтключенияAPIТакском() Тогда
+
+ ПараметрыПереводаИзТакском = СинхронизацияЭДО.ПараметрыПереводаИзТакском();
+ ПараметрыПереводаИзТакском.СпособОбменаДляПодмены = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском;
+
+ ДанныеДляСинхронизации = ДанныеДляСинхронизации(ОтпечаткиСертификатов,
+ КонтекстДиагностики,
+ СписокУчетныхЗаписейПереводимыхИзТакском,
+ СертификатыПоОтпечаткам(ОтпечаткиСертификатов),
+ ПараметрыПереводаИзТакском);
+
+ РезультатЗагрузкиПоТакском = ПолучитьКонтейнеры(ДанныеДляСинхронизации.КлючиСинхронизации, ОтпечаткиСертификатов,
+ КонтекстДиагностики);
+
+ РезультатЗагрузкиОбработки = ЭлектронныеДокументыЭДО.ЗагрузитьОбработатьДанныеОбъектовКонтейнеров(
+ РезультатЗагрузкиПоТакском.ДанныеКонтейнеров, КонтекстДиагностики, ОтпечаткиСертификатов);
+
+ Если ЗначениеЗаполнено(РезультатЗагрузкиОбработки.ДокументыДляОбработкиИзвещений) Тогда
+
+ ПараметрыВыполнения = ЭлектронныеДокументыЭДОКлиентСервер.НовыеПараметрыВыполненияДействийПоЭДО();
+ ПараметрыВыполнения.ВыполнитьТолькоПоТакском = Истина;
+ ПараметрыВыполнения.ОбъектыДействий.ЭлектронныеДокументы = ОбщегоНазначения.ВыгрузитьКолонку(
+ РезультатЗагрузкиОбработки.ДокументыДляОбработкиИзвещений, "Ключ");
+ ПараметрыВыполнения.ОбработатьТолькоИзвещения = Истина;
+
+ ПараметрыВыполнения.ОтпечаткиСертификатов = ОтпечаткиСертификатов;
+ ПараметрыВыполнения.РасшифрованныеМаркеры = СинхронизацияЭДО.РасшифрованныеМаркерыИзКлючейСинхронизации(
+ ДанныеДляСинхронизации.КлючиСинхронизации);
+
+ ЭлектронныеДокументыЭДОКлиентСервер.ДобавитьДействие(ПараметрыВыполнения.НаборДействий,
+ Перечисления.ДействияПоЭДО.Подписать);
+ ЭлектронныеДокументыЭДОКлиентСервер.ДобавитьДействие(ПараметрыВыполнения.НаборДействий,
+ Перечисления.ДействияПоЭДО.ПодготовитьКОтправке);
+ ЭлектронныеДокументыЭДОКлиентСервер.ДобавитьДействие(ПараметрыВыполнения.НаборДействий,
+ Перечисления.ДействияПоЭДО.Отправить);
+
+ ЭлектронныеДокументыЭДОСлужебный.ВыполнитьДействияЭДО(ПараметрыВыполнения);
+ КонецЕсли;
+
+ ЗагруженоПоТакском = РезультатЗагрузкиОбработки.ИтогДействийПоЭДО.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.Загрузить];
+
+ Если ЗагруженоПоТакском = Неопределено Тогда
+ ЗагруженоПоТакском = 0;
+ КонецЕсли;
+
+ Загружено = Загружено + ЗагруженоПоТакском;
+ Результат.ПолученоКонтейнеров = Результат.ПолученоКонтейнеров + РезультатЗагрузкиПоТакском.ПолученоКонтейнеров;
+ КонецЕсли;
+
ТекстСообщения = СтрШаблон(ШаблонСообщения, Результат.ПолученоКонтейнеров, Загружено);
ОбщегоНазначенияБЭД.ЗаписатьВЖурналРегистрации(ТекстСообщения,
@@ -2581,7 +2755,7 @@
ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().ОбменСКонтрагентами);
ДиагностикаЭДО.ОбработатьОшибки(КонтекстДиагностики);
КонецПопытки;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера, Загружено);
КонецПроцедуры
#КонецОбласти
@@ -3067,14 +3241,32 @@
КонецПроцедуры
+// Параметры:
+// КлючиСинхронизации - См. СинхронизацияЭДОКлиентСервер.НовыеКлючиСинхронизации
+// ОтпечаткиСертификатов - См. КриптографияБЭДКлиентСервер.НовыеРезультатыПолученияОтпечатков
+// КонтекстДиагностики - См. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
+// РезультатыОтправкиПолучения - Неопределено, См. СинхронизацияЭДО.ОтправитьОбъекты
+// ВыполнитьТолькоПоТакском - Булево
+//
+// Возвращаемое значение:
+// Структура - Отправить контейнеры:
+// * РезультатОтправки - Неопределено,
+// - См. СинхронизацияЭДО.ОтправитьОбъекты
+// * КоличествоОтправленных - Число
Функция ОтправитьКонтейнеры(КлючиСинхронизации, ОтпечаткиСертификатов, КонтекстДиагностики,
- РезультатыОтправкиПолучения = Неопределено)
+ РезультатыОтправкиПолучения = Неопределено, ВыполнитьТолькоПоТакском = Ложь)
КоличествоОтправленных = 0;
УчетныеЗаписи = СинхронизацияЭДО.УчетныеЗаписиКлючейСинхронизации(КлючиСинхронизации);
ДополнитьУчетнымиЗаписямиПрямогоОбмена(УчетныеЗаписи);
- РезультатОтправки = ЭлектронныеДокументыЭДО.ОтправитьВсеДокументы(УчетныеЗаписи, ОтпечаткиСертификатов,
+
+ ПараметрыДействийПоЭДО = ИнтерфейсДокументовЭДОКлиентСервер.НовыеПараметрыВыполненияДействийПоЭДО();
+ ПараметрыДействийПоЭДО.ОбъектыДействий.ИдентификаторыОрганизаций = УчетныеЗаписи;
+ ПараметрыДействийПоЭДО.ОтпечаткиСертификатов = ОтпечаткиСертификатов;
+ ПараметрыДействийПоЭДО.ВыполнитьТолькоПоТакском = ВыполнитьТолькоПоТакском;
+
+ РезультатОтправки = ЭлектронныеДокументыЭДО.ОтправитьВсеДокументы(УчетныеЗаписи, ПараметрыДействийПоЭДО,
КонтекстДиагностики);
Если РезультатОтправки <> Неопределено Тогда
@@ -3115,6 +3307,8 @@
Функция ПолучитьКонтейнеры(КлючиСинхронизации, ОтпечаткиСертификатов, КонтекстДиагностики,
РезультатыОтправкиПолучения = Неопределено, ПовторноеПолучение = Ложь) Экспорт
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ПолучениеИРаспаковкаТранспортныхКонтейнеров");
+
ПроверитьАктуальностьОшибокПередачи(КлючиСинхронизации, КонтекстДиагностики);
РезультатПолучения = ПолучитьНовыеЭлектронныеДокументы(КлючиСинхронизации, КонтекстДиагностики,
@@ -3122,6 +3316,7 @@
ПолученоКонтейнеров = РезультатПолучения.Контейнеры.Количество();
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ПолучениеТранспортныхКонтейнеров", ОписаниеЗамера, ПолученоКонтейнеров);
Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ЭлектронноеАктированиеЕИС") Тогда
МодульПодсистемы = ОбщегоНазначения.ОбщийМодуль("ЭлектронноеАктированиеЕИСПолучениеВходящих");
МодульПодсистемы.ДополнитьДаннымиПакетовЕИС(РезультатПолучения.Контейнеры, КлючиСинхронизации, КонтекстДиагностики, Истина);
@@ -3143,7 +3338,8 @@
Результат.Вставить("РезультатПолучения", РезультатПолучения);
Результат.Вставить("ПолученоКонтейнеров", ПолученоКонтейнеров);
Результат.Вставить("ДанныеКонтейнеров", ДанныеКонтейнеров);
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПолучениеИРаспаковкаТранспортныхКонтейнеров", ОписаниеЗамера,
+ ПолученоКонтейнеров);
Возврат Результат;
КонецФункции
@@ -3859,4 +4055,14 @@
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОтправитьЭлектронныеДокументыПоРасписанию", Истина);
+ Методы.Вставить("ПараметрыСинхронизации", Истина);
+ Методы.Вставить("ПолучитьНовыеЭлектронныеДокументыПоРасписанию", Истина);
+ Методы.Вставить("СформироватьИОтправитьТранспортныеКонтейнеры", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/СистемаБыстрыхПлатежей/Ext/Module.bsl b/src/CommonModules/СистемаБыстрыхПлатежей/Ext/Module.bsl
index 30d678016..a729d2bba 100644
--- a/src/CommonModules/СистемаБыстрыхПлатежей/Ext/Module.bsl
+++ b/src/CommonModules/СистемаБыстрыхПлатежей/Ext/Module.bsl
@@ -194,70 +194,6 @@
#КонецОбласти
-#Область ДополнительныеОперации
-
-// Формирование изображения идентификатора оплаты (QR-кода).
-//
-// Параметры:
-// ФункциональнаяСсылка - Строка - идентификатор оплаты;
-// Размер - Число - размер QR-кода в пикселях;
-// ТипПечати - Число - вариант печати QR-кода. В зависимости от выбранного варианта
-// печати подбирается картина с логотипом Системы быстрых платежей. Возможные варианты:
-// 0 - печать на цветном принтере;
-// 1 - монохромная печать;
-// 2 - черно-белая печать;
-// 3 - без логотипа.
-//
-// Возвращаемое значение:
-// ДвоичныеДанные - данные изображения QR-кода.
-//
-Функция ИзображениеQRКодаСБП(ФункциональнаяСсылка, Размер, ТипПечати = 0) Экспорт
-
- // Проверка входных параметров
- ИмяФункции = "СистемаБыстрыхПлатежей.ИзображениеQRКодаСБП";
- ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
- ИмяФункции,
- "ФункциональнаяСсылка",
- ФункциональнаяСсылка,
- Тип("Строка"));
- ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
- ИмяФункции,
- "Размер",
- Размер,
- Тип("Число"));
-
- Логотип = Неопределено;
- Если ТипПечати = 0 Тогда
- Логотип = БиблиотекаКартинок.ЛоготипСБПЦветной;
- ИначеЕсли ТипПечати = 1 Тогда
- Логотип = БиблиотекаКартинок.ЛоготипСБПМонохромный;
- ИначеЕсли ТипПечати = 2 Тогда
- Логотип = БиблиотекаКартинок.ЛоготипСБПЧерный;
- КонецЕсли;
-
- ПараметрыГенерации = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
- ПараметрыГенерации.Ширина = Размер;
- ПараметрыГенерации.Высота = Размер;
- ПараметрыГенерации.ТипКода = 16;
- ПараметрыГенерации.Штрихкод = ФункциональнаяСсылка;
- ПараметрыГенерации.УровеньКоррекцииQR = 3;
-
- ПараметрыГенерации.ЛоготипКартинка = ?(Логотип = Неопределено,
- "",
- Base64Строка(Логотип.ПолучитьДвоичныеДанные()));
- ПараметрыГенерации.ЛоготипРазмерПроцентОтШК = ?(Логотип = Неопределено,
- 0,
- 33);
-
- Результат = ГенерацияШтрихкода.ИзображениеШтрихкода(
- ПараметрыГенерации);
-
- Возврат Результат.ДвоичныеДанные;
-
-КонецФункции
-
-#КонецОбласти
-
#Область СохранениеНастроек
// Возвращает список участников СБП.
@@ -721,6 +657,32 @@
КонецФункции
+// Устарела. Следует использовать НастройкиПлатежныхСистем.ИзображениеQRКода.
+// Формирование изображения идентификатора оплаты (QR-кода).
+//
+// Параметры:
+// ФункциональнаяСсылка - Строка - идентификатор оплаты;
+// Размер - Число - размер QR-кода в пикселях;
+// ТипПечати - Число - вариант печати QR-кода. В зависимости от выбранного варианта
+// печати подбирается картина с логотипом Системы быстрых платежей. Возможные варианты:
+// 0 - печать на цветном принтере;
+// 1 - монохромная печать;
+// 2 - черно-белая печать;
+// 3 - без логотипа.
+//
+// Возвращаемое значение:
+// ДвоичныеДанные - данные изображения QR-кода.
+//
+Функция ИзображениеQRКодаСБП(ФункциональнаяСсылка, Размер, ТипПечати = 0) Экспорт
+
+ Возврат НастройкиПлатежныхСистем.ИзображениеQRКода(
+ ФункциональнаяСсылка,
+ Размер,
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП(),
+ ТипПечати);
+
+КонецФункции
+
#КонецОбласти
#КонецОбласти
diff --git a/src/CommonModules/СистемаБыстрыхПлатежейСлужебный/Ext/Module.bsl b/src/CommonModules/СистемаБыстрыхПлатежейСлужебный/Ext/Module.bsl
index 4b1cdca14..354e2d6a6 100644
--- a/src/CommonModules/СистемаБыстрыхПлатежейСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/СистемаБыстрыхПлатежейСлужебный/Ext/Module.bsl
@@ -168,7 +168,6 @@
Методы.Вставить("ОбновитьДанныеАутентификации");
Методы.Вставить("ОбновитьНастройкиПодключения");
Методы.Вставить("ОбновитьНастройкиУчастниковСБП");
- Методы.Вставить("ОбновлениеНастроекУчастниковСБП", Истина);
Методы.Вставить("ОбработатьНастройкиПлатежныхСистем");
Методы.Вставить("ПолучитьУчастниковСБПВФоне", Истина);
Методы.Вставить("ПроверитьПараметрыПодключенияВФоне", Истина);
@@ -2869,7 +2868,7 @@
Запись.КоличествоПопыток = Запись.КоличествоПопыток + 1;
МаксимальноеКоличествоПопыток = НастройкиПлатежныхСистемСлужебный.МаксимальноеКоличествоПопытокЗапросаСтатуса(
- "СБП",
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП(),
ЗначениеЗаполнено(Запись.ПериодИспользования));
Если Запись.КоличествоПопыток > МаксимальноеКоличествоПопыток Тогда
Запись.ОтложенноеПолучениеСтатуса = Ложь;
@@ -7780,9 +7779,10 @@
Если Сообщение.ЗначенияРеквизитов["ПредставлениеСсылкиСБПQRКод"] <> Неопределено Тогда
- Результат = СистемаБыстрыхПлатежей.ИзображениеQRКодаСБП(
+ Результат = НастройкиПлатежныхСистем.ИзображениеQRКода(
ПлатежнаяСсылка,
200,
+ НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП(),
0);
Base64 = Base64Строка(Результат);
diff --git a/src/CommonModules/СистемаБыстрыхПлатежейСобытия/Ext/Module.bsl b/src/CommonModules/СистемаБыстрыхПлатежейСобытия/Ext/Module.bsl
index 27aae34b0..864dabcb5 100644
--- a/src/CommonModules/СистемаБыстрыхПлатежейСобытия/Ext/Module.bsl
+++ b/src/CommonModules/СистемаБыстрыхПлатежейСобытия/Ext/Module.bsl
@@ -94,13 +94,22 @@
ВсеКоманды,
ДоступныеКоманды) Экспорт
- Если КешПараметров.ДоступностьНастроек.Получить(НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП()) Тогда
+ ИмяПодсистемы = НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП();
+
+ Если КешПараметров.ДоступностьНастроек.Получить(ИмяПодсистемы) Тогда
ДоступныеКоманды.Добавить("ОткрытьШаблоныНазначения");
КонецЕсли;
- Если КешПараметров.ВидимостьКассовыхСсылок Тогда
+ Если КешПараметров.ДоступностьКассовыхСсылок.Получить(ИмяПодсистемы) Тогда
ДоступныеКоманды.Добавить("ОткрытьКассовыеСсылки");
КонецЕсли;
+ Для Каждого КлючЗначение Из ВсеКоманды Цикл
+ Если СтрЗаканчиваетсяНа(КлючЗначение.Ключ, "_НаклейкаСБПДверь")
+ Или СтрЗаканчиваетсяНа(КлючЗначение.Ключ, "_НаклейкаСБПКасса") Тогда
+ ДоступныеКоманды.Добавить(КлючЗначение.Значение);
+ КонецЕсли;
+ КонецЦикла;
+
КонецПроцедуры
// Определяет видимость подсистемы в общем списке настроек подключения к платежным системам, доступность изменения
@@ -1055,7 +1064,7 @@
// Шаблоны электронной почты
КлючНастроек = "ШаблоныСообщенийЭлектроннойПочты";
- Настройки = ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить(
+ Настройки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
"ФормаПодготовкиПлатежнойСсылкиСБП",
КлючНастроек);
@@ -1079,7 +1088,7 @@
ПредставлениеОснования,
ШаблонСообщенияЭлектроннаяПочта);
- ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить(
+ ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(
"ФормаПодготовкиПлатежнойСсылкиСБП",
КлючНастроек,
ШаблоныПоУмолчанию);
@@ -1087,7 +1096,7 @@
// Шаблоны SMS сообщений
КлючНастроек = "ШаблоныСообщенийSMS";
- Настройки = ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить(
+ Настройки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
"ФормаПодготовкиПлатежнойСсылкиСБП",
КлючНастроек);
@@ -1111,7 +1120,7 @@
ПредставлениеОснования,
ШаблонСообщенияТелефон);
- ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить(
+ ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(
"ФормаПодготовкиПлатежнойСсылкиСБП",
КлючНастроек,
ШаблоныПоУмолчанию);
diff --git a/src/CommonModules/СобытияФормКлиентЛокализация/Ext/Module.bsl b/src/CommonModules/СобытияФормКлиентЛокализация/Ext/Module.bsl
index 961e5b237..d23cf1238 100644
--- a/src/CommonModules/СобытияФормКлиентЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/СобытияФормКлиентЛокализация/Ext/Module.bsl
@@ -168,6 +168,8 @@
РедактированиеРеквизитовРазрешено = Истина;
+ ЭтоФормаНабораУпаковок = Форма.ИмяФормы = "Справочник.НаборыУпаковок.Форма.ФормаЭлемента";
+
Если Элемент.Имя = "ИспользованиеУпаковокИндивидуальныйНабор"
Или Элемент.Имя = "ИспользованиеУпаковокОбщийНабор"
Или Элемент.Имя = "ИспользоватьУпаковки" Тогда
@@ -176,9 +178,9 @@
Если Элемент.Имя = "ПотребительскаяУпаковкаИС"
Или Элемент.Имя = "УпаковкаЧастичногоВыбытияИС"
- Или Элемент.Имя = "ИспользуетсяЧастичноеВыбытиеИС" Тогда
- ТребуетсяСерверныйВызов = (Форма.ИмяФормы = "Справочник.НаборыУпаковок.Форма.ФормаЭлемента");
- ИнтеграцияИСУТКлиентСервер.НастройкаЭлементовВидаУпаковки(Форма, РедактированиеРеквизитовРазрешено, ТребуетсяСерверныйВызов);
+ Или Элемент.Имя = "ИспользуетсяЧастичноеВыбытиеИС"
+ Или Элемент.Имя = "ЕдиницаИзмерения" И ЭтоФормаНабораУпаковок Тогда
+ ИнтеграцияИСУТКлиентСервер.НастройкаЭлементовВидаУпаковки(Форма, РедактированиеРеквизитовРазрешено, ЭтоФормаНабораУпаковок);
КонецЕсли;
Если Элемент.Имя = "ИспользоватьУпаковки" Тогда
diff --git a/src/CommonModules/СозданиеНаОснованииЛокализация/Ext/Module.bsl b/src/CommonModules/СозданиеНаОснованииЛокализация/Ext/Module.bsl
index 46784f57c..ab9513933 100644
--- a/src/CommonModules/СозданиеНаОснованииЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/СозданиеНаОснованииЛокализация/Ext/Module.bsl
@@ -19,6 +19,7 @@
Объекты.Добавить(Метаданные.Документы.УведомлениеОЗачисленииВалюты);
Объекты.Добавить(Метаданные.Документы.ВводОстатковТМЦВЭксплуатации);
Объекты.Добавить(Метаданные.Документы.ВводОстатковНДСПредъявленного);
+ Объекты.Добавить(Метаданные.Документы.ДокументОПредстоящейПоставке);
// ЭлектронноеВзаимодействие.ИнтеграцияСЯндексКассой
Объекты.Добавить(Метаданные.Документы.ОперацияПоЯндексКассе);
diff --git a/src/CommonModules/СозданиеНаОснованииПереопределяемый/Ext/Module.bsl b/src/CommonModules/СозданиеНаОснованииПереопределяемый/Ext/Module.bsl
index b0f48c1da..f1fb449e8 100644
--- a/src/CommonModules/СозданиеНаОснованииПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/СозданиеНаОснованииПереопределяемый/Ext/Module.bsl
@@ -356,6 +356,7 @@
Справочники.Претензии.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
КонецЕсли;
Если Объект = Метаданные.Документы.ЭлектронноеПисьмоВходящее Тогда
+ Справочники.СделкиСКлиентами.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Справочники.Претензии.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
КонецЕсли;
Если Объект = Метаданные.Документы.ЗапланированноеВзаимодействие Тогда
diff --git a/src/CommonModules/СопоставлениеНоменклатурыКонтрагентов/Ext/Module.bsl b/src/CommonModules/СопоставлениеНоменклатурыКонтрагентов/Ext/Module.bsl
index ff18c4ee6..4d7371c37 100644
--- a/src/CommonModules/СопоставлениеНоменклатурыКонтрагентов/Ext/Module.bsl
+++ b/src/CommonModules/СопоставлениеНоменклатурыКонтрагентов/Ext/Module.bsl
@@ -153,21 +153,7 @@
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
- КраткоеПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
- ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- Если ПустаяСтрока(ТекстОшибкиПользователю) Тогда
- ТекстОшибкиПользователю = СтрШаблон(НСтр("ru = '%1 по причине:
- |%2'", ОбщегоНазначения.КодОсновногоЯзыка()),
- ТекстСообщенияОшибки,
- КраткоеПредставлениеОшибки);
- КонецЕсли;
-
- ПараметрыЗаписи = ОбщегоНазначенияБЭД.НовыеПараметрыЗаписиВЖурналРегистрации();
- ПараметрыЗаписи.Данные = ОбъектНоменклатураКонтрагента;
- ОбщегоНазначенияБЭД.ЗаписатьВЖурналРегистрации(ТекстОшибки,
- ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().СопоставлениеНоменклатурыКонтрагентов,, ПараметрыЗаписи);
-
- Отказ = Истина;
+ ВызватьИсключение;
КонецПопытки;
@@ -1290,7 +1276,7 @@
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| НоменклатураКонтрагентовБЭД.ВладелецНоменклатуры КАК Владелец,
| НоменклатураКонтрагентовБЭД.Идентификатор КАК Идентификатор,
- | НоменклатураКонтрагентовБЭД.Наименование КАК Наименование,
+ | НоменклатураКонтрагентовБЭД.НаименованиеНоменклатуры КАК Наименование,
| НоменклатураКонтрагентовБЭД.НаименованиеХарактеристики КАК НаименованиеХарактеристики,
| ВЫБОР
| КОГДА НоменклатураКонтрагентовБЭД.НаименованиеУпаковки <> """"
@@ -1448,7 +1434,7 @@
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| НоменклатураКонтрагентовБЭД.ВладелецНоменклатуры КАК Владелец,
| НоменклатураКонтрагентовБЭД.Идентификатор КАК Идентификатор,
- | НоменклатураКонтрагентовБЭД.Наименование КАК Наименование,
+ | НоменклатураКонтрагентовБЭД.НаименованиеНоменклатуры КАК Наименование,
| НоменклатураКонтрагентовБЭД.НаименованиеХарактеристики КАК НаименованиеХарактеристики,
| НоменклатураКонтрагентовБЭД.НаименованиеБазовойЕдиницыИзмерения КАК ЕдиницаИзмерения,
| НоменклатураКонтрагентовБЭД.КодОКЕИБазовойЕдиницыИзмерения КАК ЕдиницаИзмеренияКод,
@@ -2344,7 +2330,7 @@
Возврат "ВЫБРАТЬ
| Сопоставление.ВладелецНоменклатуры КАК Владелец,
| Сопоставление.Идентификатор КАК Идентификатор,
- | Сопоставление.Наименование КАК Наименование,
+ | Сопоставление.НаименованиеНоменклатуры КАК Наименование,
| Сопоставление.НаименованиеХарактеристики КАК НаименованиеХарактеристики,
| Сопоставление.НаименованиеБазовойЕдиницыИзмерения КАК ЕдиницаИзмерения,
| Сопоставление.КодОКЕИБазовойЕдиницыИзмерения КАК ЕдиницаИзмеренияКод,
@@ -2459,7 +2445,8 @@
КонецЕсли;
Для Каждого Элемент Из ДанныеДокумента Цикл
- Если ЗначениеЗаполнено(Элемент.Значение) Тогда // перезаполнение только для непустых значений
+ Если ЗначениеЗаполнено(Элемент.Значение) // перезаполнение только для непустых значений
+ И ДанныеБазы[Элемент.Ключ] <> Элемент.Значение Тогда
ДанныеБазы[Элемент.Ключ] = Элемент.Значение;
ЕстьИзменения = Истина;
КонецЕсли;
diff --git a/src/CommonModules/СопоставлениеНоменклатурыКонтрагентовСлужебный/Ext/Module.bsl b/src/CommonModules/СопоставлениеНоменклатурыКонтрагентовСлужебный/Ext/Module.bsl
index 04d3c8054..6e9e21a0a 100644
--- a/src/CommonModules/СопоставлениеНоменклатурыКонтрагентовСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/СопоставлениеНоменклатурыКонтрагентовСлужебный/Ext/Module.bsl
@@ -706,6 +706,7 @@
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ОбновитьСловарьИСтатистикуПоИзменениям", Истина);
+ Методы.Вставить("ПерезаполнениеСловаряСопоставленияНоменклатуры", Истина);
КонецПроцедуры
@@ -1172,6 +1173,8 @@
ТипКолонки = ТипЧисло15;
ИначеЕсли Элемент.Ключ = "ИсторияИдентификаторов" Тогда
ТипКолонки = Новый ОписаниеТипов("Массив");
+ ИначеЕсли ТипЗнч(Элемент.Значение) = Тип("Булево") Тогда
+ ТипКолонки = Новый ОписаниеТипов("Булево");
КонецЕсли;
Таблица.Колонки.Добавить(ИмяКолонки, ТипКолонки);
diff --git a/src/CommonModules/СопоставлениеНоменклатурыКонтрагентовСлужебныйВызовСервера/Ext/Module.bsl b/src/CommonModules/СопоставлениеНоменклатурыКонтрагентовСлужебныйВызовСервера/Ext/Module.bsl
index 76bd5b3f0..e3fed4cf2 100644
--- a/src/CommonModules/СопоставлениеНоменклатурыКонтрагентовСлужебныйВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/СопоставлениеНоменклатурыКонтрагентовСлужебныйВызовСервера/Ext/Module.bsl
@@ -6,6 +6,21 @@
#Область СлужебныйПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("НайтиВариантыСопоставленияНоменклатуры", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
+
// Возвращает список актуальной номенклатуры контрагента с учетом фильтра по владельцу, номенклатуре, характеристике, упаковке.
//
// Параметры:
@@ -114,14 +129,13 @@
НаименованиеЗадания = НСтр("ru = 'Сопоставление номенклатуры контрагентов.
|Перезаполнение словаря сопоставления номенклатуры.'");
- ИмяМетода = "СопоставлениеНоменклатурыКонтрагентовСлужебный.ПерезаполнениеСловаряСопоставленияНоменклатуры";
-
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, ИмяМетода);
+ Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
+ "СопоставлениеНоменклатурыКонтрагентовСлужебный.ПерезаполнениеСловаряСопоставленияНоменклатуры");
КонецФункции
diff --git a/src/CommonModules/СписаниеБезналичныхДенежныхСредствЛокализация/Ext/Module.bsl b/src/CommonModules/СписаниеБезналичныхДенежныхСредствЛокализация/Ext/Module.bsl
index 21e5f73c2..c37f21d5e 100644
--- a/src/CommonModules/СписаниеБезналичныхДенежныхСредствЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/СписаниеБезналичныхДенежныхСредствЛокализация/Ext/Module.bsl
@@ -218,6 +218,10 @@
ДанныеЗаполнения,
ДанныеЗаполнения);
+
+ ИначеЕсли ТипОснования = Тип("ДокументСсылка.ДокументОПредстоящейПоставке") Тогда
+
+ ЗаполнитьПоДОПП(Объект, ДанныеЗаполнения, ДанныеЗаполнения);
ИначеЕсли ТипОснования = Тип("ДокументСсылка.ЗаявлениеОВвозеТоваров") Тогда
@@ -1768,6 +1772,23 @@
#КонецОбласти
+#Область Прочее
+
+// Дополнить виды налогов
+//
+// Параметры:
+// ВидыНалогов - СписокЗначений из СправочникСсылка.ВидыНалоговВзносов.
+Процедура ДополнитьВидыНалогов(ВидыНалогов) Экспорт
+
+ //++ Локализация
+ ВидыНалогов.Добавить(Справочники.ВидыНалоговВзносов.ЕдиныйНалоговыйПлатеж);
+ ВидыНалогов.Добавить(Справочники.ВидыНалоговВзносов.ОбеспечительныйПлатежСПОТ);
+ //-- Локализация
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -1824,8 +1845,6 @@
КонецФункции
-
-
//-- Локализация
Функция ТекстЗапросаТаблицаДвиженияПоПрочимАктивамПассивам() Экспорт
@@ -2040,6 +2059,48 @@
КонецПроцедуры
+Процедура ЗаполнитьПоДОПП(Объект, Знач ДокументОснование, ДанныеЗаполнения)
+
+ Запрос = Новый Запрос("
+ |ВЫБРАТЬ
+ | ДанныеДокумента.Организация КАК Организация,
+ | &ТекущаяДата КАК ЖелательнаяДатаПлатежа,
+ | ДанныеДокумента.СуммаОбеспечительногоПлатежа КАК СуммаОП,
+ | &Ссылка КАК ДокументОснование,
+ | ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПеречислениеВБюджет) КАК ХозяйственнаяОперация
+ |ИЗ
+ | Документ.ДокументОПредстоящейПоставке КАК ДанныеДокумента
+ |ГДЕ
+ | ДанныеДокумента.Ссылка = &Ссылка
+ |");
+ Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
+ Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
+
+ РезультатЗапроса = Запрос.Выполнить();
+
+ ДанныеЗаполнения = Новый Структура;
+ Для Каждого Колонка Из РезультатЗапроса.Колонки Цикл
+ ДанныеЗаполнения.Вставить(Колонка.Имя);
+ КонецЦикла;
+
+ Выборка = РезультатЗапроса.Выбрать();
+
+ Пока Выборка.Следующий() Цикл
+
+ ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Выборка.Организация);
+ ЗаполнитьЗначенияСвойств(ДанныеЗаполнения, Выборка);
+
+ НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
+ НоваяСтрока.ВалютаВзаиморасчетов = ВалютаРегламентированногоУчета;
+ НоваяСтрока.Сумма = Выборка.СуммаОП;
+ НоваяСтрока.СуммаВзаиморасчетов = Выборка.СуммаОП;
+ КонецЦикла;
+
+ Объект.СуммаДокумента = Объект.РасшифровкаПлатежа.Итог("Сумма");
+ Объект.Валюта = ВалютаРегламентированногоУчета;
+
+КонецПроцедуры
+
Процедура ЗаполнитьПоОперацииПоЯндексКассе(Объект, Знач ДокументОснование, ДанныеЗаполнения)
// Заполним данные шапки документа.
diff --git a/src/CommonModules/СтандартныеПодсистемыСервер/Ext/Module.bsl b/src/CommonModules/СтандартныеПодсистемыСервер/Ext/Module.bsl
index 4d0e42fdd..47cd455ab 100644
--- a/src/CommonModules/СтандартныеПодсистемыСервер/Ext/Module.bsl
+++ b/src/CommonModules/СтандартныеПодсистемыСервер/Ext/Module.bsl
@@ -2496,6 +2496,7 @@
Типы.Добавить(Метаданные.РегистрыСведений.ИдентификаторыОбъектовВерсийРасширений);
Типы.Добавить(Метаданные.РегистрыСведений.ПараметрыРаботыВерсийРасширений);
Типы.Добавить(Метаданные.РегистрыСведений.УдалитьБезопасноеХранилищеДанныхОбластейДанных);
+ Типы.Добавить(Метаданные.РегистрыСведений.ДлительныеОперации);
КонецПроцедуры
diff --git a/src/CommonModules/СхемаКонфигурации/Ext/Module.bsl b/src/CommonModules/СхемаКонфигурации/Ext/Module.bsl
index d816099b1..0e6ce29c5 100644
--- a/src/CommonModules/СхемаКонфигурации/Ext/Module.bsl
+++ b/src/CommonModules/СхемаКонфигурации/Ext/Module.bsl
@@ -113,4 +113,11 @@
АдресСхемы);
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПоместитьВоВременноеХранилищеДвоичныеДанныеСхемы", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/Тарификация/Ext/Module.bsl b/src/CommonModules/Тарификация/Ext/Module.bsl
index d70b1d38d..e75a92743 100644
--- a/src/CommonModules/Тарификация/Ext/Module.bsl
+++ b/src/CommonModules/Тарификация/Ext/Module.bsl
@@ -282,4 +282,12 @@
Процедура ОбработкаПолученияФормы(Источник, ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Экспорт
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗапроситьЛицензииУникальныхУслуг_РегламентноеЗадание", Истина);
+ Методы.Вставить("ЗарегистрироватьТарифицируемыеУслуги_РегламентноеЗадание", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/ТехнологияСервиса/Ext/Module.bsl b/src/CommonModules/ТехнологияСервиса/Ext/Module.bsl
index 88252ca52..5fa26d96f 100644
--- a/src/CommonModules/ТехнологияСервиса/Ext/Module.bsl
+++ b/src/CommonModules/ТехнологияСервиса/Ext/Module.bsl
@@ -7,7 +7,7 @@
//
Функция ВерсияБиблиотеки() Экспорт
- Возврат "2.0.15.30";
+ Возврат "2.0.15.33";
КонецФункции
@@ -222,7 +222,8 @@
ДатаНачала = ТекущаяДатаСеанса();
- ЗаданиеОбновления = ВыполнитьЗаданиеСРасширениями("ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазы", ПараметрыЗаданияОбновления);
+ ЗаданиеОбновления = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
+ "ОбновлениеИнформационнойБазыБТС.ВыполнитьОбновлениеИнформационнойБазы", ПараметрыЗаданияОбновления);
ЗаданиеОбновления = ЗаданиеОбновления.ОжидатьЗавершенияВыполнения();
УстановитьМонопольныйРежим(Ложь);
@@ -250,24 +251,6 @@
КонецФункции
-// Выполнить задание с расширениями
-//
-// Параметры:
-// ИмяЗадания - Строка
-// Параметры - Массив из Произвольный
-// Ключ - Неопределено - Ключ
-// Наименование - Строка
-//
-// Возвращаемое значение:
-// ФоновоеЗадание
-Функция ВыполнитьЗаданиеСРасширениями(ИмяЗадания, Параметры, Ключ = Неопределено, Наименование = Неопределено) Экспорт
-
- //@skip-warning МетодУстарел - особенность реализации.
- Возврат РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
- ИмяЗадания, Параметры, Ключ, Наименование);
-
-КонецФункции
-
// Подробный текст ошибки.
//
// Параметры:
diff --git a/src/CommonModules/ТорговыеПредложения/Ext/Module.bsl b/src/CommonModules/ТорговыеПредложения/Ext/Module.bsl
index 0022cf74a..73efba448 100644
--- a/src/CommonModules/ТорговыеПредложения/Ext/Module.bsl
+++ b/src/CommonModules/ТорговыеПредложения/Ext/Module.bsl
@@ -482,6 +482,11 @@
КонецПроцедуры
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+ Методы.Вставить("ОбновитьПодсказкиТорговыеПредложенияОбработчикЗадания", Истина);
+КонецПроцедуры
+
#КонецОбласти
// См. БизнесСеть.ОрганизацияПодключена
diff --git a/src/CommonModules/ТорговыеПредложенияВызовСервера/Ext/Module.bsl b/src/CommonModules/ТорговыеПредложенияВызовСервера/Ext/Module.bsl
index 7604fd5ae..59591d73d 100644
--- a/src/CommonModules/ТорговыеПредложенияВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/ТорговыеПредложенияВызовСервера/Ext/Module.bsl
@@ -111,14 +111,16 @@
Функция ОбновитьСтатистикуСинхронизацииВФоне(Знач УникальныйИдентификатор, Знач ПараметрыПроцедуры) Экспорт
НаименованиеЗадания = НСтр("ru = 'Торговые предложения. Обновление статистики синхронизации.'");
- ИмяПроцедуры = "ТорговыеПредложенияСлужебный.ОбновитьСтатистикуСинхронизации";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ТорговыеПредложенияСлужебный.ОбновитьСтатистикуСинхронизации",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
diff --git a/src/CommonModules/ТорговыеПредложенияСлужебный/Ext/Module.bsl b/src/CommonModules/ТорговыеПредложенияСлужебный/Ext/Module.bsl
index 1170cfdd7..c360fe589 100644
--- a/src/CommonModules/ТорговыеПредложенияСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ТорговыеПредложенияСлужебный/Ext/Module.bsl
@@ -851,6 +851,32 @@
// Конец ЭлектронноеВзаимодействие.БизнесСеть
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+ Методы.Вставить("СинхронизацияТорговыхПредложенийОбработчикЗадания", Истина);
+ Методы.Вставить("СинхронизацияТорговыхПредложений", Истина);
+ Методы.Вставить("ПодсказкиПоКонтексту", Истина);
+ Методы.Вставить("ОбновитьСтатистикуСинхронизации", Истина);
+ Методы.Вставить("СоздатьПрочитатьКорзинуСохранитьРезультат", Истина);
+ Методы.Вставить("СоздатьЗаказПеречитатьКорзинуСохранитьРезультат", Истина);
+ Методы.Вставить("ВыполнитьДействиеСТоваромКорзиныСохранитьРезультат", Истина);
+ Методы.Вставить("СоздатьКорзинуДобавитьТовар", Истина);
+ Методы.Вставить("УдалитьКорзинуСохранитьРезультат", Истина);
+ Методы.Вставить("ДеактивироватьРекомендациюСохранитьРезультат", Истина);
+ Методы.Вставить("ОтразитьОткликНаРекомендациюСохранитьРезультат", Истина);
+ Методы.Вставить("ПолучитьКатегорииТорговыхПредложенийСохранитьРезультат", Истина);
+ Методы.Вставить("ПолучитьХарактеристикиКатегории", Истина);
+ Методы.Вставить("ПроверитьЗаписиТорговыеПредложенияТорговойПлощадки", Истина);
+ Методы.Вставить("ПолучитьВнешниеПрайсЛисты", Истина);
+ Методы.Вставить("ДанныеТорговогоПредложенияДляВыводаВКарточку", Истина);
+ Методы.Вставить("СформироватьПредставлениеТорговогоПредложения", Истина);
+ Методы.Вставить("ПоместитьСкачанноеИзображениеПоАдресуХранилища", Истина);
+ Методы.Вставить("ПоискТорговыхПредложенийПоОтборуВФоне", Истина);
+ Методы.Вставить("ПоискТорговыхПредложенийПоСпискуВФоне", Истина);
+ Методы.Вставить("ОбновитьТорговыеПредложенияТорговойПлощадки", Истина);
+ Методы.Вставить("ПроверитьИзменениеПрайсЛистовВФоне", Истина);
+КонецПроцедуры
+
#КонецОбласти
#КонецОбласти
@@ -864,13 +890,15 @@
Функция СоздатьПрочитатьКорзинуВФоне(ПараметрыМетода, УникальныйИдентификатор) Экспорт
НаименованиеЗадания = НСтр("ru = 'Торговые предложения. Чтение корзины.'");
- ИмяПроцедуры = "ТорговыеПредложенияСлужебный.СоздатьПрочитатьКорзинуСохранитьРезультат";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыМетода, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ТорговыеПредложенияСлужебный.СоздатьПрочитатьКорзинуСохранитьРезультат",
+ ПараметрыМетода,
+ ПараметрыВыполнения);
КонецФункции
@@ -1169,13 +1197,15 @@
Функция СоздатьЗаказПеречитатьКорзинуВФоне(ПараметрыСозданияЗаказа, УникальныйИдентификатор) Экспорт
НаименованиеЗадания = НСтр("ru = 'Торговые предложения. Отправка заказа поставщику.'");
- ИмяПроцедуры = "ТорговыеПредложенияСлужебный.СоздатьЗаказПеречитатьКорзинуСохранитьРезультат";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыСозданияЗаказа, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ТорговыеПредложенияСлужебный.СоздатьЗаказПеречитатьКорзинуСохранитьРезультат",
+ ПараметрыСозданияЗаказа,
+ ПараметрыВыполнения);
КонецФункции
@@ -1692,13 +1722,15 @@
Функция ВыполнитьДействиеСТоваромКорзиныВФоне(ПараметрыМетода, УникальныйИдентификатор) Экспорт
НаименованиеЗадания = НСтр("ru = 'Торговые предложения. Добавление товара в корзину.'");
- ИмяПроцедуры = "ТорговыеПредложенияСлужебный.ВыполнитьДействиеСТоваромКорзиныСохранитьРезультат";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыМетода, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ТорговыеПредложенияСлужебный.ВыполнитьДействиеСТоваромКорзиныСохранитьРезультат",
+ ПараметрыМетода,
+ ПараметрыВыполнения);
КонецФункции
@@ -1767,7 +1799,6 @@
Функция СоздатьКорзинуДобавитьТоварВФоне(Организация, ДанныеПредложений, УникальныйИдентификатор) Экспорт
НаименованиеЗадания = НСтр("ru = 'Торговые предложения. Создание корзины и добавление товаров в корзину.'");
- ИмяПроцедуры = "ТорговыеПредложенияСлужебный.СоздатьКорзинуДобавитьТовар";
ПараметрыПроцедуры = Новый Структура;
ПараметрыПроцедуры.Вставить("ДанныеПредложений", ДанныеПредложений);
@@ -1777,7 +1808,10 @@
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ТорговыеПредложенияСлужебный.СоздатьКорзинуДобавитьТовар",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
@@ -1925,13 +1959,15 @@
Функция УдалитьКорзинуВФоне(ПараметрыМетода, УникальныйИдентификатор) Экспорт
НаименованиеЗадания = НСтр("ru = 'Торговые предложения. Удаление корзины.'");
- ИмяПроцедуры = "ТорговыеПредложенияСлужебный.УдалитьКорзинуСохранитьРезультат";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыМетода, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ТорговыеПредложенияСлужебный.УдалитьКорзинуСохранитьРезультат",
+ ПараметрыМетода,
+ ПараметрыВыполнения);
КонецФункции
@@ -2080,7 +2116,6 @@
Функция ДеактивироватьРекомендациюАсинхронно(Организация, УникальныйИдентификатор, АдресРесурса) Экспорт
НаименованиеЗадания = НСтр("ru = 'Торговые предложения. Отмена демонстрации подсказки.'");
- ИмяПроцедуры = "ТорговыеПредложенияСлужебный.ДеактивироватьРекомендациюСохранитьРезультат";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
@@ -2091,7 +2126,10 @@
ПараметрыПроцедуры.Вставить("Организация", Организация);
ПараметрыПроцедуры.Вставить("АдресРесурса", АдресРесурса);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ТорговыеПредложенияСлужебный.ДеактивироватьРекомендациюСохранитьРезультат",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
@@ -2201,7 +2239,6 @@
Функция ОтразитьОткликНаРекомендациюАсинхронно(Организация, УникальныйИдентификатор, АдресРесурса) Экспорт
НаименованиеЗадания = НСтр("ru = 'Торговые предложения. Отработка рекомендации.'");
- ИмяПроцедуры = "ТорговыеПредложенияСлужебный.ОтразитьОткликНаРекомендациюСохранитьРезультат";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
@@ -2212,7 +2249,10 @@
ПараметрыПроцедуры.Вставить("Организация", Организация);
ПараметрыПроцедуры.Вставить("АдресРесурса", АдресРесурса);
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ТорговыеПредложенияСлужебный.ОтразитьОткликНаРекомендациюСохранитьРезультат",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
@@ -4010,13 +4050,15 @@
ПараметрыПроцедуры = Новый Структура;
НаименованиеЗадания = НСтр("ru = 'Торговые предложения. Получение категорий торговых предложений.'");
- ИмяПроцедуры = "ТорговыеПредложенияСлужебный.ПолучитьКатегорииТорговыхПредложенийСохранитьРезультат";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ТорговыеПредложенияСлужебный.ПолучитьКатегорииТорговыхПредложенийСохранитьРезультат",
+ ПараметрыПроцедуры,
+ ПараметрыВыполнения);
КонецФункции
@@ -4174,7 +4216,7 @@
// ИдентификаторЗадания - Строка - идентификатор задания.
//
// Возвращаемое значение:
-// Структура - см. ДлительныеОперации.ВыполнитьВФоне
+// см. ДлительныеОперации.ВыполнитьВФоне
//
Функция ПолучитьХарактеристикиКатегорииВФоне(
ПараметрыЗапроса, УникальныйИдентификатор, ИдентификаторЗадания) Экспорт
@@ -4183,13 +4225,15 @@
ИдентификаторЗадания = "";
НаименованиеЗадания = НСтр("ru = 'Торговые предложения. Получение характеристик категории торговых предложений.'");
- ИмяПроцедуры = "ТорговыеПредложенияСлужебный.ПолучитьХарактеристикиКатегории";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыЗапроса, ПараметрыВыполнения);
+ Возврат ДлительныеОперации.ВыполнитьВФоне(
+ "ТорговыеПредложенияСлужебный.ПолучитьХарактеристикиКатегории",
+ ПараметрыЗапроса,
+ ПараметрыВыполнения);
КонецФункции
@@ -10658,7 +10702,6 @@
КонецЕсли;
НаименованиеЗадания = НСтр("ru = 'Проверка заполнения данных торговых предложений в 1С:Бизнес-сеть'");
- ИмяПроцедуры = "ТорговыеПредложенияСлужебный.ПроверитьЗаписиТорговыеПредложенияТорговойПлощадки";
Если ОбщегоНазначения.РазделениеВключено() Тогда
КлючЗадания = СтрШаблон("ПроверитьЗаписиТорговыеПредложенияТорговойПлощадки%1",
@@ -10672,7 +10715,10 @@
ПараметрыВыполнения.КлючФоновогоЗадания = КлючЗадания;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
- ДлительнаяОперация = ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, ИмяПроцедуры, Отбор);
+ ДлительнаяОперация = ДлительныеОперации.ВыполнитьПроцедуру(
+ ПараметрыВыполнения,
+ "ТорговыеПредложенияСлужебный.ПроверитьЗаписиТорговыеПредложенияТорговойПлощадки",
+ Отбор);
КонецПроцедуры
diff --git a/src/CommonModules/ТрансграничныйЭДО/Ext/Module.bsl b/src/CommonModules/ТрансграничныйЭДО/Ext/Module.bsl
index 14e58b92c..45af1224e 100644
--- a/src/CommonModules/ТрансграничныйЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ТрансграничныйЭДО/Ext/Module.bsl
@@ -299,8 +299,10 @@
ПараметрыДобавленияФайла.РасширениеБезТочки = СтрЗаменить(Файл.Расширение, ".", "");
Адрес = ПоместитьВоВременноеХранилище(КвитанцияДТС.ДвоичныеДанные);
Ссылка = Справочники.КвитанцииДТСПрисоединенныеФайлы.ПолучитьСсылку();
+ КлючЗамера = "РаботаСФайлами.ДобавитьФайлЭДО";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
Запись.ФайлКвитанцииДТС = РаботаСФайлами.ДобавитьФайл(ПараметрыДобавленияФайла, Адрес, , , Ссылка);
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
КонецЕсли;
ЗаполнитьЗначенияСвойств(Запись, СвойстваПодписиТЭДО,
@@ -335,6 +337,110 @@
#КонецОбласти
+#Область ВыгрузкаДляФНС
+
+// Дополнить выгрузку для ФНС.
+//
+// Параметры:
+// ДанныеДокумента - см. ИнтеграцияБРОЭДО.НовыеДанныеДокументаДляВыгрузки
+// ОписьВыгрузки - см. ИнтеграцияБРОЭДО.НоваяОписьВыгрузкиДокументыPDF
+// АдресКаталога - Строка
+// ЭлементОписи - СтрокаТаблицыЗначений: см. ИнтеграцияБРОЭДО.НоваяОписьВыгрузкиДокументыPDF
+//
+Процедура ДополнитьВыгрузкуДляФНС(ДанныеДокумента, ОписьВыгрузки, АдресКаталога, ЭлементОписи) Экспорт
+
+ Если НЕ ЭтоИностранныйОператор(ДанныеДокумента.ИдентификаторКонтрагента) Тогда
+ Возврат;
+ КонецЕсли;
+
+ ЭлектронныеДокументы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ДанныеДокумента.ЭлектронныйДокумент);
+ ПараметрыСоставаПечати = ИнтерфейсДокументовЭДО.ПараметрыСоставаПечатиЭлектронныхДокументов();
+
+ ПараметрыВизуализации = ИнтерфейсДокументовЭДО.НовыеПараметрыВизуализацииДокумента();
+ ПараметрыВизуализации.ВыводитьБанковскиеРеквизиты = Ложь;
+ ПараметрыВизуализации.ВыводитьДопДанные = Ложь;
+ ПараметрыВизуализации.ВыводитьКопияВерна = Ложь;
+ ПараметрыВизуализации.Формат = ДанныеДокумента.ФорматОсновногоТитула;
+
+ ПечатныеФормы = ИнтерфейсДокументовЭДО.СформироватьПечатныеФормыЭлектронныхДокументов(
+ ЭлектронныеДокументы, ПараметрыСоставаПечати, ПараметрыВизуализации);
+
+ Если ЗначениеЗаполнено(ПечатныеФормы) Тогда
+
+ Файл = Новый Файл(ЭлементОписи.ИмяФайлаДанных);
+ ПолноеИмяФайла = СтрШаблон("%1%2.pdf", АдресКаталога, Файл.ИмяБезРасширения);
+ ПечатныеФормы[0].ТабличныйДокумент.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.PDF);
+ УдалитьФайлы(АдресКаталога + ЭлементОписи.ИмяФайлаДанных);
+ ЭлементОписи.ИмяФайлаДанных = ПолноеИмяФайла;
+ УдалитьФайлы(АдресКаталога + ЭлементОписи.ИмяФайлаПодписи);
+ ЭлементОписи.ИмяФайлаПодписи = "";
+
+ КонецЕсли;
+
+ ТипыЭлементовРегламента = Новый Массив(); // Массив из ПеречислениеСсылка.ТипыЭлементовРегламентаЭДО
+ ТипыЭлементовРегламента.Добавить(Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя);
+ ТипыЭлементовРегламента.Добавить(Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияПолучателя);
+ МассивЭД = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ДанныеДокумента.ЭлектронныйДокумент);
+ Файлы = ЭлектронныеДокументыЭДО.ПрисоединенныеФайлыЭлектронныхДокументов(МассивЭД);
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ РАЗЛИЧНЫЕ
+ | Подписи.ФайлКвитанцииДТС КАК ФайлКвитанцииДТС
+ |ИЗ
+ | РегистрСведений.ЭлектронныеПодписиТЭДО КАК Подписи
+ |ГДЕ
+ | Подписи.ПодписанныйОбъект В (&ПрисоединенныеФайлы)
+ | И Подписи.ПодписанныйОбъект.ВладелецФайла.ТипЭлементаРегламента В (&ТипыЭлементовРегламента)";
+
+ Запрос.УстановитьПараметр("ПрисоединенныеФайлы", Файлы.ВыгрузитьКолонку("ПрисоединенныйФайл"));
+ Запрос.УстановитьПараметр("ТипыЭлементовРегламента", ТипыЭлементовРегламента);
+ Таблица = Запрос.Выполнить().Выгрузить();
+ ПрисоединенныеФайлы = Таблица.ВыгрузитьКолонку("ФайлКвитанцииДТС");
+ ДвоичныеДанныеФайлов = РаботаСФайлами.ДвоичныеДанныеФайлов(ПрисоединенныеФайлы);
+
+ Для Каждого ПрисоединенныйФайл Из ПрисоединенныеФайлы Цикл
+
+ Если НЕ ЗначениеЗаполнено(ПрисоединенныйФайл) Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ДвоичныеДанныеКвитанции = ДвоичныеДанныеФайлов[ПрисоединенныйФайл]; // ДвоичныеДанные
+ ДанныеКвитанции = ДанныеКвитанцииДТС(ДвоичныеДанныеКвитанции);
+ Если НЕ ЗначениеЗаполнено(ДанныеКвитанции.Представление) Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ОписаниеКвитанции = ОписьВыгрузки.Добавить();
+
+ Представление = ДанныеКвитанции.Представление; // см. РаботаСФайламиБЭД.НовоеОписаниеФайла
+ ОписаниеКвитанции.ИмяФайлаДанных = Представление.ИмяФайла;
+ ОписаниеКвитанции.РазмерФайлаДанных = Представление.ДвоичныеДанные.Размер();
+ Представление.ДвоичныеДанные.Записать(АдресКаталога + ОписаниеКвитанции.ИмяФайлаДанных);
+
+ Подпись = ДанныеКвитанции.Подпись; // см. РаботаСФайламиБЭД.НовоеОписаниеФайла
+ ОписаниеКвитанции.ИмяФайлаПодписи = Подпись.ИмяФайла;
+ Подпись.ДвоичныеДанные.Записать(АдресКаталога + ОписаниеКвитанции.ИмяФайлаПодписи);
+
+ ЗаполнитьЗначенияСвойств(ОписаниеКвитанции, ЭлементОписи,
+ "ТипДокументаЭДО, ЭлектронныйДокумент, ДатаДокумента, НомерДокумента");
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+// см. ЭлектронныеДокументыЭДО.ТипыДокументовЭДОВыгрузкиДляФНС
+Функция ТипыДокументовЭДОВыгрузкиДляФНС() Экспорт
+
+ Результат = Новый Массив(); // см. ЭлектронныеДокументыЭДО.ТипыДокументовЭДОВыгрузкиДляФНС
+ СтандартныеТипыДокументов = СтандартныеТипыДокументов();
+ Результат.Добавить(СтандартныеТипыДокументов.ТоварнаяНакладнаяРБ);
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
#Область Прочее
// При определении использования универсальных сообщений.
@@ -423,6 +529,30 @@
КонецПроцедуры
+// Проверяет иностранного оператора
+//
+// Параметры:
+// ИдентификаторУчастника - Строка
+//
+// Возвращаемое значение:
+// Булево -
+//
+Функция ЭтоИностранныйОператор(ИдентификаторУчастника) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(ИдентификаторУчастника) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Для Каждого Обработчик Из Обработчики() Цикл
+ Если Обработчик.ЭтоОператорТЭДО(ИдентификаторУчастника) Тогда
+ Возврат Истина;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Ложь;
+
+КонецФункции
+
// Формирует краткое наименование типа документа.
//
// Параметры:
@@ -828,34 +958,6 @@
КонецФункции
-// Проверяет иностранного оператора
-//
-// Параметры:
-// Идентификатор - Строка
-//
-// Возвращаемое значение:
-// Булево -
-//
-Функция ЭтоИностранныйОператор(Идентификатор) Экспорт
-
- Если НЕ ЗначениеЗаполнено(Идентификатор) Тогда
- Возврат Ложь;
- КонецЕсли;
-
- Для Каждого Обработчик Из Обработчики() Цикл
-
- Для Каждого Оператор Из Обработчик.Операторы() Цикл
- Если СтрНачинаетсяС(ВРег(Идентификатор), Оператор.Префикс) Тогда
- Возврат Истина;
- КонецЕсли;
- КонецЦикла;
-
- КонецЦикла;
-
- Возврат Ложь;
-
-КонецФункции
-
// Ищет GLN контрагента
//
// Параметры:
@@ -1638,6 +1740,7 @@
КонецЕсли;
Возврат ЭтоИностранныйФайл(КодФормата);
+
КонецФункции
// Проверяет иностранный файл сообщения
@@ -1705,6 +1808,62 @@
#Область Подписи
+// Возвращает данные квитанции ДТС.
+//
+// Параметры:
+// ДвоичныеДанные - ДвоичныеДанные
+// ИмяФайлаБезРасширения - Строка
+//
+// Возвращаемое значение:
+// Структура:
+// * Представление - см. РаботаСФайламиБЭД.НовоеОписаниеФайла, Неопределено -
+// * Подпись - см. РаботаСФайламиБЭД.НовоеОписаниеФайла, Неопределено -
+//
+Функция ДанныеКвитанцииДТС(ДвоичныеДанные, Знач ИмяФайлаБезРасширения = "")
+
+ Результат = Новый Структура();
+ Результат.Вставить("Представление", Неопределено);
+ Результат.Вставить("Подпись", Неопределено);
+
+ Если НЕ ЗначениеЗаполнено(ДвоичныеДанные) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Квитанция = ПрочитатьКвитанциюДТС(ДвоичныеДанные);
+
+ Если НЕ ЗначениеЗаполнено(Квитанция) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ ПредставлениеСтрокой = Квитанция["printForm"]; // Строка
+ Если НЕ ЗначениеЗаполнено(ПредставлениеСтрокой) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Если НЕ ЗначениеЗаполнено(ИмяФайлаБезРасширения) Тогда
+ ИмяФайлаБезРасширения = РаботаСФайламиБЭД.НовыйUUID();
+ КонецЕсли;
+
+ Представление = РаботаСФайламиБЭД.НовоеОписаниеФайла();
+ Представление.ДвоичныеДанные = Base64Значение(ПредставлениеСтрокой);
+ Представление.ИмяФайла = СтрШаблон("%1.pdf", ИмяФайлаБезРасширения);
+
+ ПодписьСтрокой = Квитанция["printFormSignature"]; // Строка
+ Если НЕ ЗначениеЗаполнено(ПодписьСтрокой) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Подпись = РаботаСФайламиБЭД.НовоеОписаниеФайла();
+ Подпись.ДвоичныеДанные = Base64Значение(ПодписьСтрокой);
+ Подпись.ИмяФайла = СтрШаблон("%1.sig", ИмяФайлаБезРасширения);
+
+ Результат.Представление = Представление;
+ Результат.Подпись = Подпись;
+
+ Возврат Результат;
+
+КонецФункции
+
Функция ТекстОшибкиОтсутствияПроверкиДТС()
Возврат НСтр("ru = 'Отсутствует проверка ДТС'");
КонецФункции
diff --git a/src/CommonModules/ТранспортныеКонтейнерыЭДО/Ext/Module.bsl b/src/CommonModules/ТранспортныеКонтейнерыЭДО/Ext/Module.bsl
index 54d44b172..6bbfa6e16 100644
--- a/src/CommonModules/ТранспортныеКонтейнерыЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ТранспортныеКонтейнерыЭДО/Ext/Module.bsl
@@ -20,6 +20,17 @@
#КонецОбласти
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("РаспаковатьКонтейнеры", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#КонецОбласти
@@ -634,6 +645,12 @@
КонецПроцедуры
+// Параметры:
+// Отбор - См. НовыйОтборКонтейнеровОбъектов
+// ИмяВременнойТаблицы - Строка
+//
+// Возвращаемое значение:
+// Структура - См. ОбщегоНазначенияБЭД.НовоеОписаниеЗапроса
Функция ЗапросКонтейнеровОбъектовДляОтправки(Отбор, ИмяВременнойТаблицы) Экспорт
Если Отбор = Неопределено Тогда
@@ -658,6 +675,10 @@
ПоляУсловия.Добавить(СтрШаблон("Объект В(%1)", Отбор.Объект));
КонецЕсли;
+ Если Отбор.СпособОбмена <> "" Тогда
+ ПоляУсловия.Добавить(СтрШаблон("ТранспортныйКонтейнер.СпособОбменаЭД В(%1)", Отбор.СпособОбмена));
+ КонецЕсли;
+
ТекстЗапроса = ОбщегоНазначенияБЭД.ТекстЗапросаИзШаблона(ТекстЗапроса, ИмяВременнойТаблицы, "", ПоляУсловия);
ОписаниеЗапроса = ОбщегоНазначенияБЭД.НовоеОписаниеЗапроса();
@@ -667,10 +688,15 @@
КонецФункции
+// Возвращаемое значение:
+// Структура - Новый отбор контейнеров объектов:
+// * Объект - Строка
+// * СпособОбмена - Строка
Функция НовыйОтборКонтейнеровОбъектов() Экспорт
Отбор = Новый Структура;
Отбор.Вставить("Объект", "");
+ Отбор.Вставить("СпособОбмена", "");
Возврат Отбор;
@@ -972,12 +998,16 @@
// Параметры:
// Контейнер - ДокументСсылка.ТранспортныйКонтейнерЭДО
-Процедура ЗаблокироватьКонтейнер(Контейнер) Экспорт
+// ВнешнийУИД - Строка
+// - Неопределено
+Процедура ЗаблокироватьКонтейнер(Контейнер, Знач ВнешнийУИД = Неопределено) Экспорт
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Документ.ТранспортныйКонтейнерЭДО");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Контейнер);
- ВнешнийУИД = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Контейнер, "ВнешнийУИД");
+ Если ВнешнийУИД = Неопределено Тогда
+ ВнешнийУИД = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Контейнер, "ВнешнийУИД");
+ КонецЕсли;
ЭлементБлокировки.УстановитьЗначение("ВнешнийУИД", ВнешнийУИД);
Блокировка.Заблокировать();
@@ -1030,7 +1060,10 @@
ПараметрыФайла.Вставить("РасширениеБезТочки", Расширение);
ПараметрыФайла.Вставить("ВремяИзмененияУниверсальное");
+ КлючЗамера = "РаботаСФайлами.ДобавитьФайлЭДО";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, АдресВХранилище);
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
КонецПроцедуры
@@ -1039,10 +1072,14 @@
// Параметры:
// ПараметрыКонтейнера - см. ПараметрыКонтейнера
// ТранспортныйКонтейнер - ДокументСсылка.ТранспортныйКонтейнерЭДО - контейнер для заполнения
+// ЗначениеРеквизитаВнешнийУИД - Строка
+// - Неопределено
+// ТранспортныйКонтейнерЗаписан - Булево - Возвращаемый параметр, Истина в случае если была запись.
//
// Возвращаемое значение:
// ДокументСсылка.ТранспортныйКонтейнерЭДО - сформированный контейнер
-Функция ЗаполнитьТранспортныйКонтейнер(ПараметрыКонтейнера, Знач ТранспортныйКонтейнер = Неопределено) Экспорт
+Функция ЗаполнитьТранспортныйКонтейнер(ПараметрыКонтейнера, Знач ТранспортныйКонтейнер = Неопределено,
+ ЗначениеРеквизитаВнешнийУИД = Неопределено, ТранспортныйКонтейнерЗаписан = Ложь) Экспорт
УстановитьПривилегированныйРежим(Истина);
НачатьТранзакцию();
@@ -1059,7 +1096,7 @@
Возврат СуществующийТранспортныйКонтейнер;
КонецЕсли;
Иначе
- ЗаблокироватьКонтейнер(ТранспортныйКонтейнер);
+ ЗаблокироватьКонтейнер(ТранспортныйКонтейнер, ЗначениеРеквизитаВнешнийУИД);
ТранспортныйКонтейнерОбъект = ТранспортныйКонтейнер.ПолучитьОбъект();
КонецЕсли;
@@ -1104,6 +1141,7 @@
Если Записывать Тогда
ТранспортныйКонтейнерОбъект.Записать();
+ ТранспортныйКонтейнерЗаписан = Истина;
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
@@ -1180,8 +1218,9 @@
КлючПриглашения.ИдентификаторОрганизации = ДанныеОбъекта.ИдентификаторПолучателя;
Приглашение = ПриглашенияЭДО.КлючЗаписиПриглашения(КлючПриглашения);
-
- ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашения(КлючПриглашения);
+
+ ЗаполнятьПредставлениеКонтрагента = Ложь;
+ ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашения(КлючПриглашения, ЗаполнятьПредставлениеКонтрагента);
Если ДанныеПриглашения = Неопределено Тогда
СтатусПриглашения = Неопределено;
Иначе
@@ -1568,7 +1607,9 @@
// ДвоичныеДанные - ДвоичныеДанные
// РезультатРаспаковки - см. РаспаковатьФайлКонтейнера
// КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
-Процедура ЗаполнитьПараметрыКонтейнера(ПараметрыКонтейнера, ДвоичныеДанные, РезультатРаспаковки, КонтекстДиагностики)
+// КэшЦиклов - Соответствие из КлючИЗначение, Неопределено - Возвращаемый параметр, кэширует значение между циклами.
+Процедура ЗаполнитьПараметрыКонтейнера(ПараметрыКонтейнера, ДвоичныеДанные, РезультатРаспаковки, КонтекстДиагностики,
+ КэшЦиклов = Неопределено)
Если РезультатРаспаковки = Неопределено Тогда
РезультатРаспаковки = РаспаковатьФайлКонтейнера(ДвоичныеДанные, КонтекстДиагностики);
@@ -1585,9 +1626,16 @@
Если Не ЗначениеЗаполнено(ПараметрыКонтейнера.Получатель) Тогда
ПараметрыКонтейнера.Получатель = Карточка.ИдентификаторПолучателя;
КонецЕсли;
- УстановитьПривилегированныйРежим(Истина);
- СоздаватьКонтрагентовАвтоматическиБЭД = НастройкиЭДО.СоздаватьКонтрагентовАвтоматически();
- УстановитьПривилегированныйРежим(Ложь);
+ Если КэшЦиклов <> Неопределено И КэшЦиклов["СоздаватьКонтрагентовАвтоматически"] <> Неопределено Тогда
+ СоздаватьКонтрагентовАвтоматическиБЭД = КэшЦиклов["СоздаватьКонтрагентовАвтоматически"];
+ Иначе
+ УстановитьПривилегированныйРежим(Истина);
+ СоздаватьКонтрагентовАвтоматическиБЭД = НастройкиЭДО.СоздаватьКонтрагентовАвтоматически();
+ УстановитьПривилегированныйРежим(Ложь);
+ Если КэшЦиклов <> Неопределено Тогда
+ КэшЦиклов["СоздаватьКонтрагентовАвтоматически"] = СоздаватьКонтрагентовАвтоматическиБЭД;
+ КонецЕсли;
+ КонецЕсли;
ЗаполнитьКонтрагентаПриРаспаковкеКонтейнера(
ПараметрыКонтейнера, РезультатРаспаковки, СоздаватьКонтрагентовАвтоматическиБЭД);
@@ -1598,7 +1646,7 @@
Карточка.КППОрганизацииУточненный, Карточка.Дата);
КонецЕсли;
Если Не ЗначениеЗаполнено(Организация) Тогда
- ДанныеУчетнойЗаписи = УчетныеЗаписиЭДО.ДанныеУчетнойЗаписи(ПараметрыКонтейнера.Получатель);
+ ДанныеУчетнойЗаписи = УчетныеЗаписиЭДО.ДанныеУчетнойЗаписи(ПараметрыКонтейнера.Получатель, КэшЦиклов);
Если ЗначениеЗаполнено(ДанныеУчетнойЗаписи) Тогда
Организация = ДанныеУчетнойЗаписи.Организация;
КонецЕсли;
@@ -2691,21 +2739,26 @@
МассивПрисоединенныхФайлов.Добавить(ПрисоединенныйФайлКонтейнера.Значение[0]);
КонецЦикла;
ДвоичныеДанныеФайлов = РаботаСФайлами.ДвоичныеДанныеФайлов(МассивПрисоединенныхФайлов);
+ ТипыДокументовТранспортнойИнформации = ТранспортныеКонтейнерыЭДОСлужебный.ТипыДокументовТранспортнойИнформации();
КоличествоКонтейнеровВПакетахВсего = Новый Соответствие;
КоличествоКонтейнеровВПакетахКРаспаковке = Новый Соответствие;
СтрокиСОшибкамиПередачи = Новый Массив;
ПрисутствуютКонтейнерыСервиса1СЭДО = Ложь;
СтатусКонтейнераНеизвестный = Перечисления.СтатусыТранспортныхСообщенийБЭД.Неизвестный;
+ КэшЦиклов = Новый Соответствие;
Для каждого ТранспортныйКонтейнер Из ТранспортныеКонтейнеры Цикл
- ЗаполнитьКоличествоКонтейнеровВПакете(ТранспортныйКонтейнер, КоличествоКонтейнеровВПакетахВсего);
Попытка
ЗначенияРеквизитовКонтейнера = ЗначенияРеквизитовКонтейнеров[ТранспортныйКонтейнер];
ЗначенияРеквизитовКонтейнера.Вставить("СпособОбмена", ЗначенияРеквизитовКонтейнера.СпособОбменаЭД);
+ ЗаполнитьКоличествоКонтейнеровВПакете(
+ ЗначенияРеквизитовКонтейнера.ИдентификаторПакета,
+ КоличествоКонтейнеровВПакетахВсего);
+
ПрисоединенныеФайлыКонтейнера = ПрисоединенныеФайлыКонтейнеров[ТранспортныйКонтейнер];
Если ПрисоединенныеФайлыКонтейнера = Неопределено Или ПрисоединенныеФайлыКонтейнера.Количество() = 0 Тогда
ИзменитьСтатусКонтейнера(ТранспортныйКонтейнер, СтатусКонтейнераНеизвестный, КонтекстДиагностики);
@@ -2761,7 +2814,7 @@
ЗначенияРеквизитовКонтейнера.Получатель,
ЗначенияРеквизитовКонтейнера.ВидСервисаЭДО);
ЗаполнитьПараметрыКонтейнера(ПараметрыКонтейнера, ДвоичныеДанныеФайла, РезультатРаспаковкиКонтейнера,
- КонтекстДиагностики);
+ КонтекстДиагностики, КэшЦиклов);
Если КонтрагентПриглашенияОбменаНеЗаполнен(
ТранспортныйКонтейнер, ПараметрыКонтейнера, КонтекстДиагностики) Тогда
@@ -2769,9 +2822,16 @@
Продолжить;
КонецЕсли;
- ЗаполнитьТранспортныйКонтейнер(ПараметрыКонтейнера, ТранспортныйКонтейнер);
- ЗначенияРеквизитовКонтейнера = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ТранспортныйКонтейнер,
- РеквизитыКонтейнеров);
+ ТранспортныйКонтейнерЗаписан = Ложь;
+ ЗаполнитьТранспортныйКонтейнер(
+ ПараметрыКонтейнера,
+ ТранспортныйКонтейнер,
+ ЗначенияРеквизитовКонтейнера.ВнешнийУИД,
+ ТранспортныйКонтейнерЗаписан);
+ Если ТранспортныйКонтейнерЗаписан Тогда
+ ЗначенияРеквизитовКонтейнера = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ТранспортныйКонтейнер,
+ РеквизитыКонтейнеров);
+ КонецЕсли;
КонецЕсли;
@@ -2817,7 +2877,11 @@
ДанныеОбъекта.ТипРегламента = ТранспортныеКонтейнерыЭДОСлужебный.ТипРегламентаИзСтроки(
Документ.КодРегламента, ДанныеВходящегоОбъекта.ТипДокумента);
ПараметрыДокумента = ТранспортныеКонтейнерыЭДОСлужебный.ПараметрыДокумента(
- ДанныеВходящегоОбъекта.ТипДокумента, ДанныеОбъекта.ТипРегламента, Документ.КодТранзакции);
+ ДанныеВходящегоОбъекта.ТипДокумента,
+ ДанныеОбъекта.ТипРегламента,
+ Документ.КодТранзакции,
+ Ложь,
+ ТипыДокументовТранспортнойИнформации);
Если ОбщегоНазначения.ПодсистемаСуществует(
"ЭлектронноеВзаимодействие.ЭлектронноеАктированиеЕИС") Тогда
Если ЗначенияРеквизитовКонтейнера.СпособОбменаЭД = Перечисления.СпособыОбменаЭД.ЧерезСерверЕИС Тогда
@@ -2890,7 +2954,9 @@
КонецЕсли;
КонецЕсли;
- ЗаполнитьКоличествоКонтейнеровВПакете(ТранспортныйКонтейнер, КоличествоКонтейнеровВПакетахКРаспаковке);
+ ЗаполнитьКоличествоКонтейнеровВПакете(
+ ЗначенияРеквизитовКонтейнера.ИдентификаторПакета,
+ КоличествоКонтейнеровВПакетахКРаспаковке);
Исключение
ТекстСообщения = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
ТекстОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
@@ -3400,7 +3466,10 @@
Если Не ПустаяСтрока(Карточка.ИдентификаторОтправителя) Тогда
- ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашенияПоПараметрам(ПараметрыПриглашения);
+ ЗаполнятьПредставлениеКонтрагента = Ложь;
+ ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашенияПоПараметрам(
+ ПараметрыПриглашения,
+ ЗаполнятьПредставлениеКонтрагента);
КонецЕсли;
@@ -3452,7 +3521,8 @@
КлючПриглашения.Ключ = ПриглашенияЭДО.КлючПриглашенияПоНатуральнымКлючам(КлючПриглашенияНаИдентификатор);
КлючПриглашения.ИдентификаторОрганизации = ИдентификаторОрганизации;
- ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашения(КлючПриглашения);
+ ЗаполнятьПредставлениеКонтрагента = Ложь;
+ ДанныеПриглашения = ПриглашенияЭДО.ДанныеПриглашения(КлючПриглашения, ЗаполнятьПредставлениеКонтрагента);
Если ДанныеПриглашения = Неопределено Тогда
Возврат Ложь;
@@ -3507,14 +3577,13 @@
КонецФункции
// Параметры:
-// ТранспортныйКонтейнер - ДокументСсылка.ТранспортныйКонтейнерЭДО
+// ИдентификаторПакета - Строка
// КоличествоКонтейнеровВПакетах - Соответствие Из КлючИЗначение:
// * Ключ - Строка - Идентификатор пакета
// * Значение - Число - Количество контейнеров в пакете
//
-Процедура ЗаполнитьКоличествоКонтейнеровВПакете(ТранспортныйКонтейнер, КоличествоКонтейнеровВПакетах)
+Процедура ЗаполнитьКоличествоКонтейнеровВПакете(ИдентификаторПакета, КоличествоКонтейнеровВПакетах)
- ИдентификаторПакета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТранспортныйКонтейнер, "ИдентификаторПакета");
Если ЗначениеЗаполнено(ИдентификаторПакета) Тогда
КоличествоКонтейнеровВПакете = КоличествоКонтейнеровВПакетах[ИдентификаторПакета];
Если КоличествоКонтейнеровВПакете = Неопределено Тогда
diff --git a/src/CommonModules/ТранспортныеКонтейнерыЭДОСлужебный/Ext/Module.bsl b/src/CommonModules/ТранспортныеКонтейнерыЭДОСлужебный/Ext/Module.bsl
index 42c301018..fe41fd3f7 100644
--- a/src/CommonModules/ТранспортныеКонтейнерыЭДОСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ТранспортныеКонтейнерыЭДОСлужебный/Ext/Module.bsl
@@ -40,7 +40,10 @@
ПараметрыФайла.Вставить("РасширениеБезТочки", Расширение);
ПараметрыФайла.Вставить("ВремяИзмененияУниверсальное");
+ КлючЗамера = "РаботаСФайлами.ДобавитьФайлЭДО";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, АдресВоВременномХранилище);
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
@@ -682,6 +685,12 @@
НоваяСтрока.Значение = "warrant.xml";
КонецЕсли;
+ Если ОписаниеОбъекта.ЗакрытыйПакет Тогда
+ НоваяСтрока = ДополнительныеДанные.Добавить();
+ НоваяСтрока.Имя = "ClosedMessage";
+ НоваяСтрока.Значение = "true";
+ КонецЕсли;
+
Если РегламентыЭДО.ЭтоУниверсальноеСообщение(ОписаниеОбъекта.ТипЭлементаРегламента) Тогда
СвойстваУниверсальногоСообщенияЭДО = Документы.СообщениеЭДО.СвойстваУниверсальногоСообщенияЭДО(ОписаниеОбъекта.Объект);
Если ЗначениеЗаполнено(СвойстваУниверсальногоСообщенияЭДО) Тогда
@@ -829,6 +838,7 @@
НоваяСтрока.Имя = "TracingRequired";
НоваяСтрока.Значение = "True";
КонецЕсли;
+
КонецЕсли;
Если СинхронизацияЭДО.ЭтоПрямойОбмен(ОписаниеОбъекта.СпособОбмена) Тогда
@@ -1123,13 +1133,15 @@
// ДляДополнительныхДанных - Булево - состав типов был расширен, для обратной совместимости требуется передавать
// только старые типы (после расширения состава типов они передаются в новом реквизите
// карточки, а старые в дополнительных данных).
+// ТипыДокументовТранспортнойИнформации - см. ТипыДокументовТранспортнойИнформации
//
// Возвращаемое значение:
// Неопределено, Структура:
// * ТипДокумента - ПеречислениеСсылка.ТипыДокументовЭДО
// - ПеречислениеСсылка.ТипыПроизвольныхДокументовЭДО
// * ТипЭлементаРегламента - ПеречислениеСсылка.ТипыЭлементовРегламентаЭДО.
-Функция ПараметрыДокумента(ТипДокументаСтрокой, ТипРегламента, КодТранзакции, ДляДополнительныхДанных = Ложь) Экспорт
+Функция ПараметрыДокумента(ТипДокументаСтрокой, ТипРегламента, КодТранзакции, ДляДополнительныхДанных = Ложь,
+ ТипыДокументовТранспортнойИнформации = Неопределено) Экспорт
Параметры = Новый Структура;
Параметры.Вставить("ТипДокумента", Перечисления.ТипыДокументовЭДО.ПустаяСсылка());
@@ -1158,7 +1170,11 @@
КонецЕсли;
КонецЕсли;
- Таблица = ТипыДокументовТранспортнойИнформации();
+ Если ТипыДокументовТранспортнойИнформации <> Неопределено Тогда
+ Таблица = ТипыДокументовТранспортнойИнформации;
+ Иначе
+ Таблица = ТипыДокументовТранспортнойИнформации();
+ КонецЕсли;
Отбор = Новый Структура;
Отбор.Вставить("ТипДокументаДляДополнительныхДанныхСтрокой", ТипДокументаСтрокой);
@@ -2332,7 +2348,20 @@
КонецФункции
-Функция ТипыДокументовТранспортнойИнформации()
+
+// Формирует таблицу типов документов транспортной информации.
+//
+// Возвращаемое значение:
+// ТаблицаЗначений:
+// * ТипДокументаСтрокой - Строка
+// * ТипДокумента - ПеречислениеСсылка.ТипыДокументовЭДО
+// * ТипЭлементаРегламента - ПеречислениеСсылка.ТипыЭлементовРегламентаЭДО
+// * ТипРегламента - ПеречислениеСсылка.ТипыРегламентовЭДО
+// * ТипДокументаДляДополнительныхДанныхСтрокой - Строка
+// * ЭтоОтветнаяПодпись - Булево
+// - Неопределено
+//
+Функция ТипыДокументовТранспортнойИнформации() Экспорт
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("ТипДокументаСтрокой");
@@ -2394,6 +2423,7 @@
Если КонтекстДиагностики = Неопределено Тогда
КонтекстДиагностики = ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики();
КонецЕсли;
+ ИмяФайла = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ИмяФайла).Имя;
ПолныйПуть = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(АдресКаталога, ИмяФайла);
Попытка
ДвоичныеДанные.Записать(ПолныйПуть);
@@ -2406,4 +2436,12 @@
КонецПопытки;
КонецПроцедуры
-#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ОтменитьРаспаковкуКонтейнеров", Истина);
+ Методы.Вставить("ПометитьНаУдалениеТранспортныеКонтейнерыПоРасписанию", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/УАС_Защищенный/Ext/Module.bin b/src/CommonModules/УАС_Защищенный/Ext/Module.bin
index a46dc9fbe..2512b41ba 100644
Binary files a/src/CommonModules/УАС_Защищенный/Ext/Module.bin and b/src/CommonModules/УАС_Защищенный/Ext/Module.bin differ
diff --git a/src/CommonModules/УАС_Клиент/Ext/Module.bsl b/src/CommonModules/УАС_Клиент/Ext/Module.bsl
index c06033aff..a1a96d62e 100644
--- a/src/CommonModules/УАС_Клиент/Ext/Module.bsl
+++ b/src/CommonModules/УАС_Клиент/Ext/Module.bsl
@@ -145,7 +145,9 @@
ИначеЕсли Команда.Имя="УАС_ЗаполнитьЦеныЗначением" Тогда
ЗаполнитьЦеныЗначением(Форма);
ИначеЕсли Команда.Имя = "УАС_ЗаполнитьНазначенияВыбраннымЗначением" Тогда
- ЗаполнитьНазначенияВыбраннымЗначением(Форма);
+ ЗаполнитьНазначенияВыбраннымЗначением(Форма);
+ ИначеЕсли Команда.Имя = "УАС_ПроверитьПоступившиеТовары" Тогда
+ ОткрытьФормуПроверкиПоступившихТоваров(Форма, ДополнительныеПараметры);
КонецЕсли;
УАС_МДЛПКлиент.ВыполнитьПереопределяемуюКоманду(Форма, Команда, ДополнительныеПараметры);
@@ -1897,3 +1899,94 @@
#КонецОбласти
#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область ПроверкаПоступившихТоваров
+
+Процедура ОткрытьФормуПроверкиПоступившихТоваров(Форма, ДополнительныеПараметры = Неопределено)
+
+ ТребуетсяВопрос = Ложь;
+ Объект = Форма.Объект;
+ ДействиеПослеЗаписи = Новый ОписаниеОповещения("ОткрытьФормуПроверкиПоступившихТоваровПослеЗаписи", ЭтотОбъект, Форма);
+
+ Если Объект.Ссылка.Пустая() Тогда
+ ТребуетсяВопрос = Истина;
+ ТекстВопроса = НСтр("ru = 'Проверка поступивших товаров возможна только в записанном документе. Записать?'");
+ ИначеЕсли Форма.Модифицированность Тогда
+ ТребуетсяВопрос = Истина;
+ ПровестиЗаписать = ?(Объект.Проведен, НСтр("ru = 'Провести'"), НСтр("ru = 'Записать'"));
+ ТекстВопроса = СтрШаблон(НСтр("ru = 'Документ был изменен. %1?'"), ПровестиЗаписать);
+ КонецЕсли;
+
+ Если ТребуетсяВопрос Тогда
+
+ ПараметрыВопроса = Новый Структура();
+ ПараметрыВопроса.Вставить("Форма", Форма);
+ ПараметрыВопроса.Вставить("ДействиеПослеЗаписи", ДействиеПослеЗаписи);
+
+ ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьФормуПроверкиПоступившихТоваровПриОтветеНаВопрос",
+ ЭтотОбъект, ПараметрыВопроса);
+
+ ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
+
+ Иначе
+
+ ВыполнитьОбработкуОповещения(ДействиеПослеЗаписи);
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ОткрытьФормуПроверкиПоступившихТоваровПриОтветеНаВопрос(РезультатВопроса, ДополнительныеПараметры) Экспорт
+
+ Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
+ Возврат;
+ КонецЕсли;
+
+ Форма = ДополнительныеПараметры.Форма;
+ ДействиеПослеЗаписи = ДополнительныеПараметры.ДействиеПослеЗаписи;
+
+ ЗаписатьДокументПоддерживающийПроверкуПоступившихТоваров(Форма);
+ ВыполнитьОбработкуОповещения(ДействиеПослеЗаписи);
+
+КонецПроцедуры
+
+Процедура ОткрытьФормуПроверкиПоступившихТоваровПослеЗаписи(Результат, Форма) Экспорт
+
+ ПараметрыФормы = УАС_Сервер.ПараметрыПроверкиПоступившихТоваров(
+ Форма.Объект, Форма.ПараметрыУказанияСерий, Форма.УникальныйИдентификатор, Форма.ИмяФормы);
+
+ ОписаниеОповещения = Новый ОписаниеОповещения("ПроверкаПоступившихТоваровЗавершение", ЭтотОбъект, Форма);
+
+ ОткрытьФорму("Обработка.УАС_ПроверкаПоступившихТоваров.Форма.ПроверкаПоступившихТоваров", ПараметрыФормы,
+ ЭтотОбъект,,,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
+
+КонецПроцедуры
+
+Процедура ПроверкаПоступившихТоваровЗавершение(Результат, Форма) Экспорт
+
+ Если Результат = Истина Тогда
+ Форма.УАС_ВыполненаПроверкаПоступившихТоваров = Истина;
+ Форма.Модифицированность = Ложь;
+ Форма.Элементы.УАС_ТоварыКоличествоПринято.Видимость = Истина;
+ Оповестить("Запись_НомераУпаковок",, Форма);
+ КонецЕсли;
+
+ Форма.Прочитать();
+
+КонецПроцедуры
+
+Процедура ЗаписатьДокументПоддерживающийПроверкуПоступившихТоваров(Форма)
+
+ Если Форма.Объект.Проведен Тогда
+ ОбщегоНазначенияУТКлиент.Провести(Форма);
+ Иначе
+ ОбщегоНазначенияУТКлиент.Записать(Форма);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/УАС_МДЛП/Ext/Module.bsl b/src/CommonModules/УАС_МДЛП/Ext/Module.bsl
index 369d99a09..05ac3a996 100644
--- a/src/CommonModules/УАС_МДЛП/Ext/Module.bsl
+++ b/src/CommonModules/УАС_МДЛП/Ext/Module.bsl
@@ -351,71 +351,60 @@
Если ТипЗнч(Параметры.НомераУпаковок) = Тип("Структура") Тогда
ЗаполнитьСсылкиШтрихкодовУпаковокТаблицы(
- Объект[Параметры.Товары.ИмяТЧ], Параметры.Товары, Объект[Параметры.НомераУпаковок.ИмяТЧ], Параметры.НомераУпаковок);
+ Объект[Параметры.НомераУпаковок.ИмяТЧ], Параметры.НомераУпаковок, Объект[Параметры.Товары.ИмяТЧ], Параметры.Товары);
КонецЕсли;
Если ТипЗнч(Параметры.ТранспортныеУпаковки) = Тип("Структура") Тогда
- ЗаполнитьСсылкиШтрихкодовУпаковокТаблицы(
- Объект[Параметры.Товары.ИмяТЧ], Параметры.Товары, Объект[Параметры.ТранспортныеУпаковки.ИмяТЧ], Параметры.ТранспортныеУпаковки);
+ ЗаполнитьСсылкиШтрихкодовУпаковокТаблицы(Объект[Параметры.ТранспортныеУпаковки.ИмяТЧ], Параметры.ТранспортныеУпаковки);
КонецЕсли;
КонецПроцедуры
-Функция СоздатьШтрихКодУпаковки(ТаблицаТовары, ПарметрыТаблицыТоваров, СтрокаТаблицыУпаковок)
-
- УстановитьПривилегированныйРежим(Истина);
-
- ПараметрыОтбора = Новый Структура(ПарметрыТаблицыТоваров.ИдентификаторСтроки, СтрокаТаблицыУпаковок.ИдентификаторСтроки);
- СтрокиТаблицыТоваров = ТаблицаТовары.НайтиСтроки(ПараметрыОтбора);
-
- Если СтрокиТаблицыТоваров.Количество() = 0 Тогда // такого быть не может, но на всякий случай добавим проверку
- Возврат Справочники.ШтрихкодыУпаковокТоваров.ПустаяСсылка();
- КонецЕсли;
-
- СтрокаТаблицыТовары = СтрокиТаблицыТоваров[0];
-
- ДанныеЗаполнения = Справочники.ШтрихкодыУпаковокТоваров.СтруктураСозданияШтрихкодаУпаковки();
- ДанныеЗаполнения.Вставить("УАС_КлючУпаковки", СтрокаТаблицыУпаковок.КлючУпаковки);
- ДанныеЗаполнения.ВидПродукции = УАС_МДЛПКлиентСервер.ВидПродукцииМДЛП();
- ДанныеЗаполнения.ТипУпаковки = Перечисления.ТипыУпаковок.МаркированныйТовар;
- ДанныеЗаполнения.ТипШтрихкода = Перечисления.ТипыШтрихкодов.GS1_DataMatrix;
- ДанныеЗаполнения.Штрихкод = СтрокаТаблицыУпаковок.НомерУпаковки;
- ДанныеЗаполнения.Номенклатура = СтрокаТаблицыТовары.Номенклатура;
- ДанныеЗаполнения.Характеристика = СтрокаТаблицыТовары.Характеристика;
- ДанныеЗаполнения.Упаковка = СтрокаТаблицыТовары.Упаковка;
- ДанныеЗаполнения.Серия = СтрокаТаблицыТовары.Серия;
- ДанныеЗаполнения.Количество = 1;
- ДанныеЗаполнения.КоличествоПотребительскихУпаковок = 1;
-
- ШтрихкодУпаковки = Справочники.ШтрихкодыУпаковокТоваров.СоздатьШтрихкодУпаковки(ДанныеЗаполнения);
-
- Возврат ШтрихкодУпаковки;
-
-КонецФункции
+Процедура ЗаполнитьСсылкиШтрихкодовУпаковокТаблицы(ТаблицаУпаковки, ПараметрыТаблицыУпаковок, ТаблицаТовары = Неопределено, ПараметрыТаблицыТоваров = Неопределено)
-Процедура ЗаполнитьСсылкиШтрихкодовУпаковокТаблицы(ТаблицаТовары, ПарметрыТаблицыТоваров, ТаблицаУпаковки, ПарметрыТаблицыУпаковок)
-
- Если ПарметрыТаблицыУпаковок.ШтрихкодУпаковки = Неопределено Тогда
+ Если ТаблицаУпаковки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
- ИмяШтрихкодУпаковки = ПарметрыТаблицыУпаковок.ШтрихкодУпаковки;
- ИмяНомерУпаковки = ПарметрыТаблицыУпаковок.НомерУпаковки;
+ Если ПараметрыТаблицыУпаковок.ШтрихкодУпаковки = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ИмяШтрихкодУпаковки = ПараметрыТаблицыУпаковок.ШтрихкодУпаковки;
+ ИмяНомерУпаковки = ПараметрыТаблицыУпаковок.НомерУпаковки;
+ ИмяИдентификаторСтроки = ПараметрыТаблицыУпаковок.ИдентификаторСтроки;
+
+ Если ИмяИдентификаторСтроки <> Неопределено Тогда
+ ИменаКолонокДляВыгрузки = СтрШаблон("НомерСтроки, %1, %2, %3", ИмяШтрихкодУпаковки, ИмяНомерУпаковки, ИмяИдентификаторСтроки);
+ Иначе
+ ИменаКолонокДляВыгрузки = СтрШаблон("НомерСтроки, %1, %2", ИмяШтрихкодУпаковки, ИмяНомерУпаковки);
+ КонецЕсли;
+
+ ПараметрыОтбора = Новый Структура(ИмяШтрихкодУпаковки, Справочники.ШтрихкодыУпаковокТоваров.ПустаяСсылка());
+ ТаблицаЗаполнения = ТаблицаУпаковки.Выгрузить(ПараметрыОтбора, ИменаКолонокДляВыгрузки);
- ПараметрыОтбора = Новый Структура(ИмяШтрихкодУпаковки,Справочники.ШтрихкодыУпаковокТоваров.ПустаяСсылка());
- ТаблицаЗаполнения = ТаблицаУпаковки.Выгрузить(
- ПараметрыОтбора, ИмяШтрихкодУпаковки+ ",ИдентификаторСтроки, НомерСтроки," + ИмяНомерУпаковки);
ТаблицаЗаполнения.Колонки.Добавить("КлючУпаковки", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(100))); //строка 100
Если ТаблицаЗаполнения.Колонки.Найти("НомерУпаковки") = Неопределено Тогда
ТаблицаЗаполнения.Колонки.Добавить("НомерУпаковки", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(27))); // строка 27
КонецЕсли;
+
+ Если ТаблицаЗаполнения.Колонки.Найти("ИдентификаторСтроки") = Неопределено Тогда
+ ТаблицаЗаполнения.Колонки.Добавить("ИдентификаторСтроки", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(36)));
+ КонецЕсли;
Для Каждого СтрокаШтрихкода Из ТаблицаЗаполнения Цикл
+
Если Не ЗначениеЗаполнено(СтрокаШтрихкода.НомерУпаковки) Тогда
СтрокаШтрихкода.НомерУпаковки = СтрокаШтрихкода[ИмяНомерУпаковки];
КонецЕсли;
+
+ Если ИмяИдентификаторСтроки <> Неопределено И Не ЗначениеЗаполнено(СтрокаШтрихкода.ИдентификаторСтроки) Тогда
+ СтрокаШтрихкода.ИдентификаторСтроки = СтрокаШтрихкода[ИмяИдентификаторСтроки];
+ КонецЕсли;
+
СтрокаШтрихкода.КлючУпаковки = ИнтеграцияМДЛПКлиентСервер.ПолучитьКлючУпаковки(СтрокаШтрихкода.НомерУпаковки);
+
КонецЦикла;
Запрос = Новый Запрос;
@@ -428,6 +417,10 @@
|ПОМЕСТИТЬ втУпаковки
|ИЗ
| &Упаковки КАК Т
+ |
+ |ИНДЕКСИРОВАТЬ ПО
+ | НомерУпаковки,
+ | КлючУпаковки
|;
|
|////////////////////////////////////////////////////////////////////////////////
@@ -455,12 +448,12 @@
Для Каждого СтрокаШтрихкода Из ШтрихКоды Цикл
- СтрокаТаблицыУпаковок = ТаблицаУпаковки[СтрокаШтрихкода.НомерСтроки-1];
+ СтрокаТаблицыУпаковок = ТаблицаУпаковки[СтрокаШтрихкода.НомерСтроки - 1];
Если ЗначениеЗаполнено(СтрокаШтрихкода.ШтрихкодУпаковки) Тогда
ШтрихкодУпаковки = СтрокаШтрихкода.ШтрихкодУпаковки;
Иначе
- ШтрихкодУпаковки = СоздатьШтрихКодУпаковки(ТаблицаТовары, ПарметрыТаблицыТоваров, СтрокаШтрихкода);
+ ШтрихкодУпаковки = СоздатьШтрихКодУпаковки(СтрокаШтрихкода, ТаблицаТовары, ПараметрыТаблицыТоваров);
КонецЕсли;
СтрокаТаблицыУпаковок[ИмяШтрихкодУпаковки] = ШтрихкодУпаковки;
@@ -469,6 +462,77 @@
КонецПроцедуры
+Функция СоздатьШтрихКодУпаковки(СтрокаТаблицыУпаковок, ТаблицаТовары, ПараметрыТаблицыТоваров)
+
+ УстановитьПривилегированныйРежим(Истина);
+
+ Если ТаблицаТовары = Неопределено Тогда
+ ШтрихкодУпаковки = СоздатьШтрихКодТранспортнойУпаковки(СтрокаТаблицыУпаковок);
+ Иначе
+ ШтрихкодУпаковки = СоздатьШтрихКодПотребительскойУпаковки(СтрокаТаблицыУпаковок, ТаблицаТовары, ПараметрыТаблицыТоваров);
+ КонецЕсли;
+
+ Возврат ШтрихкодУпаковки;
+
+КонецФункции
+
+Функция СоздатьШтрихКодТранспортнойУпаковки(СтрокаТаблицыУпаковок)
+
+ ШтрихкодУпаковки = Справочники.ШтрихкодыУпаковокТоваров.СоздатьЭлемент();
+ ШтрихкодУпаковки.Заполнить(Неопределено);
+ ШтрихкодУпаковки.ЗначениеШтрихкода = СтрокаТаблицыУпаковок.НомерУпаковки;
+ ШтрихкодУпаковки.УАС_КлючУпаковки = СтрокаТаблицыУпаковок.КлючУпаковки;
+ ШтрихкодУпаковки.ДатаУпаковки = ТекущаяДатаСеанса();
+ ШтрихкодУпаковки.Записать();
+
+ Возврат ШтрихкодУпаковки.Ссылка;
+
+КонецФункции
+
+Функция СоздатьШтрихКодПотребительскойУпаковки(СтрокаТаблицыУпаковок, ТаблицаТовары, ПараметрыТаблицыТоваров)
+
+ КэшСтатусовУказанияСерий = Неопределено;
+ ПараметрыСоздания = Справочники.ШтрихкодыУпаковокТоваров.ДополнительныеПараметрыСозданияШтрихкодовУпаковок();
+
+ ПараметрыОтбора = Новый Структура(ПараметрыТаблицыТоваров.ИдентификаторСтроки, СтрокаТаблицыУпаковок.ИдентификаторСтроки);
+ СтрокиТаблицыТоваров = ТаблицаТовары.НайтиСтроки(ПараметрыОтбора);
+
+ ДанныеЗаполнения = Справочники.ШтрихкодыУпаковокТоваров.СтруктураСозданияШтрихкодаУпаковки();
+ ДанныеЗаполнения.Вставить("УАС_КлючУпаковки", СтрокаТаблицыУпаковок.КлючУпаковки);
+ ДанныеЗаполнения.Штрихкод = СтрокаТаблицыУпаковок.НомерУпаковки;
+ ДанныеЗаполнения.ВидПродукции = УАС_МДЛПКлиентСервер.ВидПродукцииМДЛП();
+
+ Если СтрокиТаблицыТоваров.Количество() > 0 Тогда
+
+ СтрокаТаблицыТовары = СтрокиТаблицыТоваров[0];
+
+ ДанныеЗаполнения.ТипУпаковки = Перечисления.ТипыУпаковок.МаркированныйТовар;
+ ДанныеЗаполнения.ТипШтрихкода = Перечисления.ТипыШтрихкодов.GS1_DataMatrix;
+ ДанныеЗаполнения.Номенклатура = СтрокаТаблицыТовары.Номенклатура;
+ ДанныеЗаполнения.Характеристика = СтрокаТаблицыТовары.Характеристика;
+ ДанныеЗаполнения.Упаковка = СтрокаТаблицыТовары.Упаковка;
+ ДанныеЗаполнения.Серия = СтрокаТаблицыТовары.Серия;
+ ДанныеЗаполнения.Количество = 1;
+ ДанныеЗаполнения.КоличествоПотребительскихУпаковок = 1;
+
+ Если УАС_Общий.ЕстьСвойство(СтрокаТаблицыТовары, "СтатусУказанияСерий") Тогда
+ КэшСтатусовУказанияСерий = Новый Соответствие;
+ КэшСтатусовУказанияСерий.Вставить(СтрокаТаблицыТовары.Номенклатура, СтрокаТаблицыТовары.СтатусУказанияСерий);
+ КонецЕсли;
+
+ КонецЕсли;
+
+ ПараметрыЗаписи = Новый Структура;
+ ПараметрыЗаписи.Вставить("УАС_НеРегистрироватьИзмененияОКСиРМК", Истина);
+ ПараметрыЗаписи.Вставить("ВидПродукции", КлючВидаПродукцииМДЛП());
+
+ ШтрихкодУпаковки = Справочники.ШтрихкодыУпаковокТоваров.СоздатьШтрихкодУпаковки(
+ ДанныеЗаполнения,, ПараметрыЗаписи, КэшСтатусовУказанияСерий, ПараметрыСоздания);
+
+ Возврат ШтрихкодУпаковки;
+
+КонецФункции
+
#КонецОбласти
#Область ВЗН
@@ -580,12 +644,11 @@
Функция ТекстНоменклатураПринадлежитСпискуВЗН()
Возврат
"ВЫБРАТЬ
- | УАС_РеглСпискиНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура
+ | Т.Номенклатура КАК Номенклатура
|ИЗ
- | РегистрСведений.УАС_РеглСпискиНоменклатуры.СрезПоследних(&Дата, ) КАК УАС_РеглСпискиНоменклатурыСрезПоследних
+ | РегистрСведений.УАС_РеглСпискиНоменклатуры.СрезПоследних(&Дата, Номенклатура В (&Номенклатура)) КАК Т
|ГДЕ
- | УАС_РеглСпискиНоменклатурыСрезПоследних.Номенклатура В(&Номенклатура)
- | И УАС_РеглСпискиНоменклатурыСрезПоследних.ВЗН";
+ | Т.ВЗН";
КонецФункции
#КонецОбласти
@@ -2065,8 +2128,8 @@
Если л_ДеленыйТовар Тогда
л_РезультатРаспределения.Вставить("ЕмкостьПотребительскойУпаковки", Формат(л_Знаменатель, "ЧН=0; ЧГ="));
л_РезультатРаспределения.Вставить("ЧастичноеВыбытиеКоличество", Формат(л_Числитель, "ЧН=0; ЧГ="));
- л_НовСтрокаПозицииЧека.ДробноеКоличество.Числитель = Формат(л_Числитель,"ЧН=0; ЧГ=");
- л_НовСтрокаПозицииЧека.ДробноеКоличество.Знаменатель = Формат(л_Знаменатель,"ЧН=0; ЧГ=");
+ л_НовСтрокаПозицииЧека.ДробноеКоличество.Числитель = л_Числитель;
+ л_НовСтрокаПозицииЧека.ДробноеКоличество.Знаменатель = л_Знаменатель;
КонецЕсли;
л_РезультатРаспределения.Вставить("ВидОперацииИСМП",ПредопределенноеЗначение("Перечисление.ВидыОперацийИСМП.ВыводИзОборотаРозничнаяПродажа"));
л_НовСтрокаПозицииЧека.РезультатРаспределенияВрем = л_РезультатРаспределения;
@@ -2462,18 +2525,17 @@
НастройкиЛМ = Ложь;
ДанныеКлючаСессии = Ложь;
- НастройкиЛокальногоМодуляИСМП = Ложь;
- КоличествоДнейВыгрузкиКарточек = 90;
+ ДанныеПроверки = Новый ТаблицаЗначений;
Если МетаданныеИсточника = Метаданные.РегистрыСведений.НастройкиПодключенияЛокальныхМодулейМДЛП Тогда
НастройкиЛМ = Истина;
- НастройкиЛокальногоМодуляИСМП = Истина;
Организация = ПолучитьОрганизациюДляЛокальногоМодуляИСПМ(Источник);
Если Не ЗначениеЗаполнено(Организация) Тогда
Возврат;
КонецЕсли;
НаборЗаписей = РегистрыСведений.НастройкиПодключенияЛокальныхМодулейИСМП.СоздатьНаборЗаписей();
+ ДанныеПроверки = ИнициализироватьТаблицуДанныхДляПроверки(НаборЗаписей);
ИначеЕсли МетаданныеИсточника = Метаданные.РегистрыСведений.НастройкиПодключенияЛокальныхМодулейИСМП Тогда
@@ -2483,6 +2545,7 @@
Возврат;
КонецЕсли;
НаборЗаписей = РегистрыСведений.НастройкиПодключенияЛокальныхМодулейМДЛП.СоздатьНаборЗаписей();
+ ДанныеПроверки = ИнициализироватьТаблицуДанныхДляПроверки(НаборЗаписей);
ИначеЕсли МетаданныеИсточника = Метаданные.РегистрыСведений.ДанныеКлючаСессииИСМП Тогда
@@ -2531,9 +2594,9 @@
Если НастройкиЛМ Тогда
Запись.Организация = Организация;
- Если НастройкиЛокальногоМодуляИСМП И Не ЗначениеЗаполнено(Запись.КоличествоДнейВыгрузкиКарточек) Тогда
- Запись.КоличествоДнейВыгрузкиКарточек = КоличествоДнейВыгрузкиКарточек;
- КонецЕсли;
+ Запись.ФорматОбмена = ПолучитьФорматОбменаДляЛокальногоМодуля(Запись.ФорматОбмена, ЗаписьИсточника.ФорматОбмена);
+ СтрокаПроверки = ДанныеПроверки.Добавить();
+ ЗаполнитьЗначенияСвойств(СтрокаПроверки, Запись);
ИначеЕсли ДанныеКлючаСессии Тогда
Запись[ИмяЗаписиПриемника] = ЗаписьИсточника[ИмяЗаписиИсточника];
КонецЕсли;
@@ -2541,10 +2604,93 @@
КонецЦикла;
НаборЗаписей.ДополнительныеСвойства.Вставить("Обработан");
- НаборЗаписей.Записать();
+ Если ПроверитьДублиЛокальныхМодулейПоОрганизациям(ДанныеПроверки, НаборЗаписей) Тогда
+ НаборЗаписей.Записать();
+ КонецЕсли;
КонецПроцедуры
+Функция ПолучитьФорматОбменаДляЛокальногоМодуля(Приемник, Источник)
+
+ Результат = Приемник;
+
+ Если Не ЗначениеЗаполнено(Источник) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ ИмяИсточника = Общегоназначения.ИмяЗначенияПеречисления(Источник);
+ МетаданныеПриемника = Приемник.Метаданные();
+
+ Если МетаданныеПриемника.ЗначенияПеречисления.Найти(ИмяИсточника) <> Неопределено Тогда
+ Результат = Перечисления[МетаданныеПриемника.Имя][ИмяИсточника];
+ КонецЕсли;;
+
+ Возврат Результат;
+
+КонецФункции
+
+Функция ИнициализироватьТаблицуДанныхДляПроверки(НаборЗаписей)
+
+ ТаблицаДанных = Новый ТаблицаЗначений();
+
+ Если НаборЗаписей.Метаданные() = Метаданные.РегистрыСведений.НастройкиПодключенияЛокальныхМодулейМДЛП Тогда
+ ТаблицаДанных.Колонки.Добавить("Организация", Новый ОписаниеТипов("СправочникСсылка.ОрганизацииМДЛП"));
+ ТаблицаДанных.Колонки.Добавить("РабочееМесто", Новый ОписаниеТипов("СправочникСсылка.РабочиеМеста"));
+ Иначе
+ ТаблицаДанных.Колонки.Добавить("Организация", Метаданные.ОпределяемыеТипы.Организация.Тип);
+ ТаблицаДанных.Колонки.Добавить("РабочееМесто", Метаданные.ОпределяемыеТипы.РабочиеМестаИС.Тип);
+ КонецЕсли;
+
+ ТаблицаДанных.Колонки.Добавить("АдресПодключенияЛМ", ОбщегоНазначения.ОписаниеТипаСтрока(1000));
+ ТаблицаДанных.Колонки.Добавить("ОбменНаСервере", Новый ОписаниеТипов("Булево"));
+ ТаблицаДанных.Колонки.Добавить("Приоритет", ОбщегоНазначения.ОписаниеТипаЧисло(3, 0, ДопустимыйЗнак.Неотрицательный));
+
+ Возврат ТаблицаДанных;
+
+КонецФункции
+
+Функция ПроверитьДублиЛокальныхМодулейПоОрганизациям(ДанныеДляПроверки, НаборЗаписей)
+
+ Если ДанныеДляПроверки.Количество() = 0 Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ТаблицаПроверки.Организация КАК Организация,
+ | ТаблицаПроверки.РабочееМесто КАК РабочееМесто,
+ | ТаблицаПроверки.АдресПодключенияЛМ КАК АдресПодключенияЛМ,
+ | ТаблицаПроверки.ОбменНаСервере КАК ОбменНаСервере,
+ | ТаблицаПроверки.Приоритет КАК Приоритет
+ |ПОМЕСТИТЬ ВТ_ТаблицаПроверки
+ |ИЗ
+ | &ТаблицаПроверки КАК ТаблицаПроверки
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ВТ_ТаблицаПроверки.Организация КАК Организация,
+ | ВТ_ТаблицаПроверки.РабочееМесто КАК РабочееМесто,
+ | ВТ_ТаблицаПроверки.АдресПодключенияЛМ КАК АдресПодключенияЛМ,
+ | ВТ_ТаблицаПроверки.ОбменНаСервере КАК ОбменНаСервере,
+ | Т.Организация КАК ОрганизацияНастроенногоПодключения
+ |ИЗ
+ | #ИмяРегистра КАК Т
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ТаблицаПроверки КАК ВТ_ТаблицаПроверки
+ | ПО Т.РабочееМесто = ВТ_ТаблицаПроверки.РабочееМесто
+ | И ((ВЫРАЗИТЬ(Т.АдресПодключенияЛМ КАК СТРОКА(1000))) = ВТ_ТаблицаПроверки.АдресПодключенияЛМ)
+ | И Т.ОбменНаСервере = ВТ_ТаблицаПроверки.ОбменНаСервере";
+
+ Запрос.Текст = СтрЗаменить(Запрос.Текст, "#ИмяРегистра", НаборЗаписей.Метаданные().ПолноеИмя());
+
+ Запрос.УстановитьПараметр("ТаблицаПроверки", ДанныеДляПроверки);
+ РезультатЗапроса = Запрос.Выполнить();
+
+ Возврат РезультатЗапроса.Пустой();
+
+КонецФункции
+
Функция ПолучитьОрганизациюДляЛокальногоМодуляИСПМ(Источник)
Организация = Справочники.Организации.ПустаяСсылка();
@@ -5438,6 +5584,11 @@
// п_ТекущийОбъект - Объект - Текущий объект.
//
Процедура МДЛП_ПриЧтенииНаСервере(п_Форма, п_ТекущийОбъект) Экспорт
+
+ Если ИнтеграцияИСУТКлиентСервер.ЭтоДокументПоНаименованию(п_Форма, "ЗаказКлиента") Тогда
+ СобытияФормИС.ПриЧтенииНаСервере(п_Форма, п_ТекущийОбъект);
+ КонецЕсли;
+
Если ЭтоФормаДокументаМДЛП(п_Форма) Тогда
Документ_ИнициализироватьФорму(п_Форма);
ИначеЕсли ЭтоФормаУведомленияМДЛП(п_Форма) Тогда
@@ -5961,6 +6112,9 @@
л_Метаданные = п_ДокументОснование.Метаданные();
л_КоллекцияРеквизитов = ?(ЗначениеЗаполнено(п_ИмяТЧ),л_Метаданные.ТабличныеЧасти[п_ИмяТЧ].Реквизиты,л_Метаданные.Реквизиты);
л_ПарыРеквизитов = УАС_Партии.ОпределитьРеквизитыНоменклатураСерия(л_КоллекцияРеквизитов);
+ Если л_ПарыРеквизитов.Количество()=0 Тогда
+ Возврат Ложь;
+ КонецЕсли;
л_Запрос = Новый Запрос;
л_Запрос.УстановитьПараметр("Ссылка",п_ДокументОснование);
@@ -6784,7 +6938,7 @@
Функция ИспользуетсяТестоваяСистемаМДЛП() Экспорт
АдресСервисаМДЛП = МДЛП_ПолучитьАдресСервисаМДЛП();
- Возврат АдресСервисаМДЛП = "api.sb.mdlp.crpt.ru";
+ Возврат АдресСервисаМДЛП = "api.sb.mdlp.crpt.ru" Или АдресСервисаМДЛП = "api.stage.mdlp.crpt.ru";
КонецФункции
@@ -7421,6 +7575,18 @@
л_Кнопка.Вид = ВидКнопкиФормы.Гиперссылка;
КонецЕсли;
ДобавитьКнопкиИнформацииОбУпаковках(п_Форма);
+
+ ЭлементИдентификаторОрганизации = п_Форма.Элементы.Найти("ИдентификаторОрганизации");
+ ЭлементМестоДеятельности = п_Форма.Элементы.Найти("МестоДеятельности");
+
+ Если ЭлементИдентификаторОрганизации <> Неопределено
+ И ЭлементМестоДеятельности <> Неопределено
+ И Не ЗначениеЗаполнено(ЭлементМестоДеятельности.ПолучитьДействие("ПриИзменении")) Тогда
+
+ ЭлементМестоДеятельности.УстановитьДействие("ПриИзменении", "УАС_ДинамическоеПолеПриИзменении");
+
+ КонецЕсли;
+
КонецПроцедуры
// Функция - УстановитьПараметрыВыбораНоменклатуры
@@ -7870,6 +8036,9 @@
КонецЕсли;
Для каждого ЭлементМДЛП Из Форма.УАС_МДЛП.Элементы Цикл
+
+ ВидимостьНоменклатуры = ЭлементФормыВидимый(Форма.Элементы[ЭлементМДЛП.Префикс + "Номенклатура" + ЭлементМДЛП.Суффикс]);
+ Форма.Элементы[ЭлементМДЛП.Имя].Видимость = Форма.УАС_МДЛП.ПодсистемаИспользуется И ВидимостьНоменклатуры;
Если УАС_Общий.ЗначениеСвойства(ЭлементМДЛП, "ИмяРеквизита") = "УАС_НомераУпаковок" + ЭлементМДЛП.Суффикс Тогда
@@ -9141,7 +9310,7 @@
Запрос.Текст =
"ВЫБРАТЬ
| ОписаниеНоменклатурыИС.Номенклатура КАК Номенклатура,
- | ОписаниеНоменклатурыИС.КлючВидовПродукции.ВидПродукцииМДЛП <> ЗНАЧЕНИЕ(Справочник.ВидыПродукцииИС.ПустаяСсылка) КАК МаркируемаяПродукция
+ | ЕСТЬNULL(ОписаниеНоменклатурыИС.КлючВидовПродукции.ВидПродукцииМДЛП, ЗНАЧЕНИЕ(Справочник.ВидыПродукцииИС.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Справочник.ВидыПродукцииИС.ПустаяСсылка) КАК МаркируемаяПродукция
|ИЗ
| РегистрСведений.ОписаниеНоменклатурыИС КАК ОписаниеНоменклатурыИС
|ГДЕ
@@ -9431,7 +9600,7 @@
Элемент = СтруктураЭлементаКонструктораЛекарственныеПрепараты();
Элемент.ЭлементКонструктора = "ДатыНачалаРозничныхПродаж"; // Уведомительный режим
- Элемент.Комментарий = "Дата = ОбщегоНазначенияИСМПКлиентСервер.ДатаНачалаРозничныхПродаж(ВидПродукции);";
+ Элемент.Комментарий = "Дата = КонструкторИСМПОбщегоНазначенияКлиентСервер.ДатаНачалаРозничныхПродаж(ВидПродукции);";
Элемент.ТипЗначения = "Дата";
Элемент.Значение = "2021-01-01T00:00:00";
МассивЭлементовКонструктора.Добавить(Элемент);
diff --git a/src/CommonModules/УАС_МДЛПКлиент/Ext/Module.bsl b/src/CommonModules/УАС_МДЛПКлиент/Ext/Module.bsl
index 7b27ad084..5f8917870 100644
--- a/src/CommonModules/УАС_МДЛПКлиент/Ext/Module.bsl
+++ b/src/CommonModules/УАС_МДЛПКлиент/Ext/Module.bsl
@@ -825,6 +825,16 @@
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(л_ТексСтрока,л_Действия,Неопределено);
КонецЕсли;
КонецЕсли;
+
+ Если УАС_Общий.ЗначениеСвойства(п_Элемент, "Имя", "") = "МестоДеятельности"
+ И ТипЗнч(л_Форма) = Тип("ФормаКлиентскогоПриложения")
+ И УАС_Общий.ЕстьСвойство(л_Форма, "Объект.ИдентификаторОрганизации") Тогда
+
+ л_Форма.Объект.ИдентификаторОрганизации = ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(
+ л_Форма.Объект.МестоДеятельности, "Идентификатор");
+
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
diff --git a/src/CommonModules/УАС_ОбновлениеИнформационнойБазы/Ext/Module.bsl b/src/CommonModules/УАС_ОбновлениеИнформационнойБазы/Ext/Module.bsl
index 252c410e6..2377aa6ba 100644
--- a/src/CommonModules/УАС_ОбновлениеИнформационнойБазы/Ext/Module.bsl
+++ b/src/CommonModules/УАС_ОбновлениеИнформационнойБазы/Ext/Module.bsl
@@ -63,7 +63,8 @@
ДобавитьОбработчикОбновления(Обработчики,"11.5.25.82"); // Обновление наименований ключей регламентных заданий
ДобавитьОбработчикОбновления(Обработчики,"11.5.25.100"); // Пересчет статусов оформления уведомлений ИСМП
ДобавитьОбработчикОбновления(Обработчики,"11.5.27.47"); // Удаление не используемых записей РС Параметры учета
-
+ ОбновлениеАктуальныхЦенНоменклатуры(Обработчики); // 11.5.27.70
+
КонецПроцедуры
// Вызывается перед процедурами-обработчиками обновления данных ИБ.
@@ -944,6 +945,16 @@
КонецПроцедуры
+Процедура ОбновлениеАктуальныхЦенНоменклатуры(Обработчики) Экспорт
+
+ Если ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25() Тогда
+ РегистрыСведений.УАС_АктуальныеЦеныНоменклатуры25.ПриДобавленииОбработчиковОбновления(Обработчики);
+ Иначе
+ РегистрыСведений.УАС_АктуальныеЦеныНоменклатуры.ПриДобавленииОбработчиковОбновления(Обработчики);
+ КонецЕсли;
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыиФункции
diff --git a/src/CommonModules/УАС_Общий/Ext/Module.bsl b/src/CommonModules/УАС_Общий/Ext/Module.bsl
index 02d40460c..ceb29a353 100644
--- a/src/CommonModules/УАС_Общий/Ext/Module.bsl
+++ b/src/CommonModules/УАС_Общий/Ext/Module.bsl
@@ -1478,14 +1478,20 @@
// Позволяет определить, есть ли среди реквизитов шапки документа реквизит с переданным именем.
//
// Параметры:
-// ИмяРеквизита - Строка - Имя реквизита.
-// МетаданныеДокумента - Документ - Объект описания метаданных документа, среди реквизитов
-// которого производится поиск.
+// ИмяРеквизита - Строка - Имя реквизита.
+// Объект - ОбъектМетаданных, Ссылка, Объект - Объект описания метаданных документа,
+// среди реквизитов которого производится поиск.
+// ИскатьВСтандартныхРекизитах - Булево - признак поиска среди стандартных реквизитов.
//
// Возвращаемое значение:
// Булево - признак наличия реквизита. Истина - нашли реквизит с таким именем, Ложь - не нашли.
//
-Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента, ИскатьВСтандартныхРекизитах = Ложь) Экспорт
+Функция ЕстьРеквизитДокумента(ИмяРеквизита, Объект, ИскатьВСтандартныхРекизитах = Ложь) Экспорт
+ Если ТипЗнч(Объект)=Тип("ОбъектМетаданных") Тогда
+ МетаданныеДокумента = Объект;
+ Иначе
+ МетаданныеДокумента = Объект.Метаданные();
+ КонецЕсли;
НайденВСтандартныхРекизитах = Ложь;
@@ -1510,14 +1516,19 @@
// Позволяет определить, есть ли табличная часть документа с переданным именем.
//
// Параметры:
-// ИмяТабЧасти - Строка - Имя табличной части.
-// МетаданныеДокумента - Документ - Объект описания метаданных документа, среди табличных частей
-// которого производится поиск.
+// ИмяТабЧасти - Строка - Имя табличной части.
+// Объект - ОбъектМетаданных, Ссылка, Объект - Объект описания метаданных документа,
+// среди табличных частей которого производится поиск.
//
// Возвращаемое значение:
// Булево - признак наличия табличной части. Истина - нашли табличную часть с таким именем, Ложь - не нашли.
//
-Функция ЕстьТабЧастьДокумента(ИмяТабЧасти, МетаданныеДокумента) Экспорт
+Функция ЕстьТабЧастьДокумента(ИмяТабЧасти, Объект) Экспорт
+ Если ТипЗнч(Объект)=Тип("ОбъектМетаданных") Тогда
+ МетаданныеДокумента = Объект;
+ Иначе
+ МетаданныеДокумента = Объект.Метаданные();
+ КонецЕсли;
Если МетаданныеДокумента.ТабличныеЧасти.Найти(ИмяТабЧасти) = Неопределено Тогда
Возврат Ложь;
Иначе
@@ -1529,15 +1540,20 @@
// Позволяет определить, есть ли реквизит табличной части документа с переданным именем.
//
// Параметры:
-// ИмяРеквизита - Строка - Имя реквизита.
-// МетаданныеДокумента - Документ - Объект описания метаданных документа, среди реквизитов табличных частей
-// которого производится поиск.
-// ИмяТабЧасти - Строка - Имя табличной части.
+// ИмяРеквизита - Строка - Имя реквизита.
+// Объект - ОбъектМетаданных, Ссылка, Объект - Объект описания метаданных документа,
+// среди реквизитов табличных частей которого производится поиск.
+// ИмяТабЧасти - Строка - Имя табличной части.
//
// Возвращаемое значение:
// Булево - признак наличия реквизита табличной части. Истина - нашли реквизит с таким именем, Ложь - не нашли.
//
-Функция ЕстьРеквизитТабЧастиДокумента(ИмяРеквизита, МетаданныеДокумента, ИмяТабЧасти) Экспорт
+Функция ЕстьРеквизитТабЧастиДокумента(ИмяРеквизита, Объект, ИмяТабЧасти) Экспорт
+ Если ТипЗнч(Объект)=Тип("ОбъектМетаданных") Тогда
+ МетаданныеДокумента = Объект;
+ Иначе
+ МетаданныеДокумента = Объект.Метаданные();
+ КонецЕсли;
ТабЧасть = МетаданныеДокумента.ТабличныеЧасти.Найти(ИмяТабЧасти);
Если ТабЧасть = Неопределено Тогда // Нет такой таб. части в документе
Возврат Ложь;
diff --git a/src/CommonModules/УАС_Партии/Ext/Module.bsl b/src/CommonModules/УАС_Партии/Ext/Module.bsl
index 0959e8017..7ba1975c1 100644
--- a/src/CommonModules/УАС_Партии/Ext/Module.bsl
+++ b/src/CommonModules/УАС_Партии/Ext/Module.bsl
@@ -2185,7 +2185,7 @@
Возврат Истина;
КонецФункции
-// Функция - Активные серии при записи регистров
+// Процедура - Активные серии при записи регистров
// Возникает при записи регистров.
//
// Параметры:
@@ -2196,32 +2196,65 @@
// Возвращаемое значение:
// Булево - признак обновления активных серий.
//
-Функция АктивныеСерии_ПриЗаписиРегистров(Источник, Отказ, Замещение) Экспорт
+Процедура АктивныеСерии_ПриЗаписиРегистров(Источник, Отказ, Замещение) Экспорт
Если Отказ Или ТипЗнч(Источник) <> Тип("РегистрНакопленияНаборЗаписей.ДвиженияСерийТоваров") Тогда
- Возврат Ложь;
+ Возврат;
КонецЕсли;
+
Если Не (ПолучитьФункциональнуюОпцию("УАС_ИспользоватьИнтеграциюОКСиРМК")
Или ПолучитьФункциональнуюОпцию("УАС_ИспользоватьИнтеграциюWMS"))
Или Не ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатуры") Тогда
- Возврат Ложь;
+ Возврат;
КонецЕсли;
- Если УАС_Общий.ЗначениеСвойства(Источник.ДополнительныеСвойства,"УАС_НеРегистрироватьАктивныеСерии")=Истина Тогда
- Возврат Ложь;
- КонецЕсли;
- л_МенеджерВТ = Источник.ДополнительныеСвойства.УАС_МенеджерВТ;
- л_Запрос = УАС_Сервер.ЗапросЗаписейНабора(Источник,л_МенеджерВТ);
- л_ТаблицаРасхождений = УАС_Сервер.ТекстЗапросаРасхождений("ДвиженияСерийТоваров_ПередЗаписью",л_Запрос.Текст,,Источник.Метаданные());
- л_Запрос.Текст =
- "ВЫБРАТЬ РАЗЛИЧНЫЕ Т.Серия ИЗ ("+л_ТаблицаРасхождений+") КАК Т
- |;
- |УНИЧТОЖИТЬ ДвиженияСерийТоваров_ПередЗаписью";
-
- л_Серии = л_Запрос.ВыполнитьПакет()[0].Выгрузить().ВыгрузитьКолонку("Серия");
-
- Возврат РегистрыСведений.УАС_АктивныеСерииНоменклатуры.ОбновитьАктивныеСерии(л_Серии);
-КонецФункции
+ Если УАС_Общий.ЗначениеСвойства(Источник.ДополнительныеСвойства,"УАС_НеРегистрироватьАктивныеСерии")=Истина Тогда
+ Возврат;
+ КонецЕсли;
+
+ МенеджерВТ = Источник.ДополнительныеСвойства.УАС_МенеджерВТ;
+ Запрос = УАС_Сервер.ЗапросЗаписейНабора(Источник, МенеджерВТ);
+ ТаблицаРасхождений = УАС_Сервер.ТекстЗапросаРасхождений("ДвиженияСерийТоваров_ПередЗаписью", Запрос.Текст,, Источник.Метаданные());
+
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | &ДатаАктуальности КАК ДатаАктуальности,
+ | Т.Номенклатура КАК Номенклатура,
+ | Т.Характеристика КАК Характеристика,
+ | Т.Серия КАК Серия
+ |ПОМЕСТИТЬ ВтОбрабатываемыеСерии
+ |ИЗ (" + ТаблицаРасхождений + ") КАК Т
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УАС_АктивныеСерииНоменклатуры КАК АктивныеСерии
+ | ПО Т.Серия = АктивныеСерии.Серия
+ |ГДЕ
+ | АктивныеСерии.Серия ЕСТЬ NULL
+ |;
+ |
+ |УНИЧТОЖИТЬ ДвиженияСерийТоваров_ПередЗаписью;
+ |
+ |ВЫБРАТЬ РАЗЛИЧНЫЕ
+ | Т.Серия КАК Серия
+ |ИЗ
+ | ВтОбрабатываемыеСерии КАК Т";
+
+ Запрос.УстановитьПараметр("ДатаАктуальности", КонецДня(ТекущаяДатаСеанса()));
+ ТаблицаСерий = Запрос.Выполнить().Выгрузить();
+
+ Если ТаблицаСерий.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ НаборЗаписей = РегистрыСведений.УАС_АктивныеСерииНоменклатуры.СоздатьНаборЗаписей();
+ НаборЗаписей.Загрузить(ТаблицаСерий);
+ НаборЗаписей.Записать(РежимЗамещения.Слияние);
+
+ Если ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25() Тогда
+ РегистрыСведений.УАС_АктуальныеЦеныНоменклатуры25.ОбновитьЦены(Запрос.МенеджерВременныхТаблиц, "ВтОбрабатываемыеСерии");
+ Иначе
+ РегистрыСведений.УАС_АктуальныеЦеныНоменклатуры.ОбновитьЦены(Запрос.МенеджерВременныхТаблиц, "ВТОбрабатываемыеСерии");
+ КонецЕсли;
+
+КонецПроцедуры
// Функция - Проверить использование характеристик и получить владельца для выбора
// Проверяет использование характеристик и получает владельца.
@@ -3731,7 +3764,7 @@
// ГАС - начало
л_ТекстЗапроса = УАС_Строки.СтрНайтиИВставить(л_ТекстЗапроса,
"ЦеныНоменклатурыПоставщиковСредМинМакс.Номенклатура КАК Номенклатура,",
- л_Префикс+"ЦеныНоменклатурыПоставщиковСредМинМакс.УАС_Серия КАК УАС_Серия,"+л_Суффикс,,Истина);
+ л_Префикс + "ЕСТЬNULL(ЦеныНоменклатурыПоставщиковСредМинМакс.УАС_Серия, ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)) КАК УАС_Серия," + л_Суффикс,, Истина);
// ГАС - конец
ИначеЕсли п_ИмяСКД=л_Макеты.СебестоимостьИПроцентОтПрибылиИнтеркампаниПредопределенный.Имя
diff --git a/src/CommonModules/УАС_РМК/Ext/Module.bsl b/src/CommonModules/УАС_РМК/Ext/Module.bsl
index 71079c4b9..8f65c2755 100644
--- a/src/CommonModules/УАС_РМК/Ext/Module.bsl
+++ b/src/CommonModules/УАС_РМК/Ext/Module.bsl
@@ -13943,14 +13943,24 @@
Данные.ВидПродукции);
Если ВидыПродукцииИС.Количество()> 0 Тогда
- ВидПродукцииИС = УАС_Строки.СвойствоЗначенияПеречисления(ВидыПродукцииИС[0]);
+
+ ВидПродукцииИС = ВидыПродукцииИС[0];
+
+ Если ВидПродукцииИС = Перечисления.ВидыПродукцииИС.ПустаяСсылка() Тогда
+ ВидПродукцииИССтрокой = "";
+ ИначеЕсли ВидПродукцииИС = Перечисления.ВидыПродукцииИС.УАС_МДЛП Тогда
+ ВидПродукцииИССтрокой = "МДЛП";
+ Иначе
+ ВидПродукцииИССтрокой = УАС_Строки.СвойствоЗначенияПеречисления(ВидПродукцииИС);
+ КонецЕсли;
+
Иначе
Продолжить;
КонецЕсли;
НоваяСтрока = НастройкиУчетаМаркируемойПродукции.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Данные);
- НоваяСтрока.ВидПродукции = ВидПродукцииИС;
+ НоваяСтрока.ВидПродукции = ВидПродукцииИССтрокой;
НоваяСтрока.ВестиУчетПродукции = Истина;
НоваяСтрока.ДатаОбязательнойМаркировки = Данные.ДатаРозницаУведомительныйРежим;
НоваяСтрока.ДатаОбязательногоВключенияРазрешительногоРежима = Данные.ДатаРозницаРазрешительныйРежим;
diff --git a/src/CommonModules/УАС_РегламентныеЗадания/Ext/Module.bsl b/src/CommonModules/УАС_РегламентныеЗадания/Ext/Module.bsl
index b189dcbdf..6eaee2bec 100644
--- a/src/CommonModules/УАС_РегламентныеЗадания/Ext/Module.bsl
+++ b/src/CommonModules/УАС_РегламентныеЗадания/Ext/Module.bsl
@@ -1521,9 +1521,12 @@
// Процедура - Обновление активных серий номенклатуры
//
Процедура ОбновлениеАктивныхСерийНоменклатуры() Экспорт
+
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.УАС_ОбновлениеАктивныхСерийНоменклатуры);
УстановитьПривилегированныйРежим(Истина);
+
РегистрыСведений.УАС_АктивныеСерииНоменклатуры.ОбновитьАктивныеСерии();
+
КонецПроцедуры
// Процедура - Обновление актуальных цен номенклатуры
diff --git a/src/CommonModules/УАС_СЛК/Ext/Module.bin b/src/CommonModules/УАС_СЛК/Ext/Module.bin
index 3411606dd..9a5ebaa06 100644
Binary files a/src/CommonModules/УАС_СЛК/Ext/Module.bin and b/src/CommonModules/УАС_СЛК/Ext/Module.bin differ
diff --git a/src/CommonModules/УАС_Сервер/Ext/Module.bsl b/src/CommonModules/УАС_Сервер/Ext/Module.bsl
index 3a48a2b8f..8243ff2b8 100644
--- a/src/CommonModules/УАС_Сервер/Ext/Module.bsl
+++ b/src/CommonModules/УАС_Сервер/Ext/Module.bsl
@@ -7290,4 +7290,111 @@
#КонецОбласти
+#Область ПроверкаПоступившихТоваров
+
+// Возвращает параметры для проверки поступивших товаров с указанием серий.
+//
+// Параметры:
+// Объект - ДанныеФормыСтруктура - проверяемый документ
+// ПараметрыУказанияСерий - Структура - параметры для указания серий
+// УникальныйИдентификатор - УникальныйИдентификатор - идентификатор временного хранилища
+// ИмяФормы - Строка - имя формы
+//
+// Возвращаемое значение:
+// Структура:
+// * Склад - СправочникСсылка.Склады - склад документа
+// * СкладОтправитель - СправочникСсылка.Склады - склад документа
+// * СкладПолучатель - СправочникСсылка.Склады - склад документа
+// * Контрагент - СправочникСсылка.Контрагенты - контрагент документа
+// * ИмяФормыВладельца - Строка - имя формы, открывшей проверку
+// * Ссылка - ДокументСсылка - ссылка на проверяемый документ
+// * ПараметрыУказанияСерий - Структура - параметры для указания серий
+// * АдресПроверяемыхДанных - Строка - адрес временного хранилища с данными документа
+// * Организация - СправочникСсылка.Организации - организация документа
+//
+Функция ПараметрыПроверкиПоступившихТоваров(Знач Объект, ПараметрыУказанияСерий, УникальныйИдентификатор, ИмяФормы) Экспорт
+
+ МетаданныеДокумента = Объект.Ссылка.Метаданные();
+
+ ТаблицаТоваров = Объект.Товары.Выгрузить();
+ АдресПроверяемыхДанных = ПоместитьВоВременноеХранилище(ТаблицаТоваров, УникальныйИдентификатор);
+
+ ПараметрыОткрытия = Новый Структура;
+
+ Если ЗначениеЗаполнено(ПараметрыУказанияСерий.ИмяПоляСклад) Тогда
+ ПараметрыОткрытия.Вставить("Склад", Объект[ПараметрыУказанияСерий.ИмяПоляСклад]);
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(ПараметрыУказанияСерий.ИмяПоляСкладОтправитель) Тогда
+ ПараметрыОткрытия.Вставить("СкладОтправитель", Объект[ПараметрыУказанияСерий.ИмяПоляСкладОтправитель]);
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(ПараметрыУказанияСерий.ИмяПоляСкладПолучатель) Тогда
+ ПараметрыОткрытия.Вставить("СкладПолучатель", Объект[ПараметрыУказанияСерий.ИмяПоляСкладПолучатель]);
+ КонецЕсли;
+
+ Если УАС_Общий.ЕстьРеквизитДокумента("Контрагент", МетаданныеДокумента) Тогда
+ ПараметрыОткрытия.Вставить("Контрагент", Объект.Контрагент);
+ КонецЕсли;
+
+ ПараметрыОткрытия.Вставить("ИмяФормыВладельца", ИмяФормы);
+ ПараметрыОткрытия.Вставить("Ссылка", Объект.Ссылка);
+ ПараметрыОткрытия.Вставить("ПараметрыУказанияСерий", ПараметрыУказанияСерий);
+ ПараметрыОткрытия.Вставить("АдресПроверяемыхДанных", АдресПроверяемыхДанных);
+ ПараметрыОткрытия.Вставить("Организация", Объект.Организация);
+
+ Возврат ПараметрыОткрытия;
+
+КонецФункции
+
+// Заполняет реквизит "УАС_ИдентификаторСтроки" в табличных частях документа значениями уникальных идентификаторов.
+//
+// Параметры:
+// Документ - ДокументОбъект - Записываемый новый документ с идентификатором
+// ИменаТЧ - Строка - Имена ТЧ, в которых нужно заполнить идентификаторы, разделенные запятыми
+// НайтиТЧПоМетаданным - Булево - Необходимость поиска состава обрабатываемых ТЧ по метаданным,
+// если их список не передан в параметре ИменаТЧ
+//
+Процедура ЗаполнитьОтраслевыеИдентификаторыДокумента(Документ, ИменаТЧ = "", НайтиТЧПоМетаданным = Ложь) Экспорт
+
+ МетаданныеДокумента = Документ.Метаданные();
+ ИмяОтраслевогоРеквизита = "УАС_ИдентификаторСтроки";
+
+ // Пока только документ "Приемка товаров на хранение"
+ Если МетаданныеДокумента.Имя <> Метаданные.Документы.ПриемкаТоваровНаХранение.Имя Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если НЕ ПустаяСтрока(ИменаТЧ) Тогда
+ МассивТЧ = СтрРазделить(ИменаТЧ, ",", Ложь);
+ ИначеЕсли НайтиТЧПоМетаданным Тогда
+ МассивТЧ = Новый Массив();
+ Для Каждого МетаданныеТЧ Из МетаданныеДокумента.ТабличныеЧасти Цикл
+ Если МетаданныеТЧ.Реквизиты.Найти(ИмяОтраслевогоРеквизита) <> Неопределено Тогда
+ МассивТЧ.Добавить(МетаданныеТЧ.Имя);
+ КонецЕсли;
+ КонецЦикла;
+ Иначе
+ МассивТЧ = Новый Массив();
+ КонецЕсли;
+
+ Уникальность = Новый Соответствие;
+
+ Для Каждого ИмяТЧ Из МассивТЧ Цикл
+
+ ТабличнаяЧасть = Документ[ИмяТЧ];
+
+ Для Каждого СтрокаТаблицы Из ТабличнаяЧасть Цикл
+ Если Не ЗначениеЗаполнено(СтрокаТаблицы[ИмяОтраслевогоРеквизита])
+ Или Уникальность[СтрокаТаблицы[ИмяОтраслевогоРеквизита]] <> Неопределено Тогда
+ СтрокаТаблицы[ИмяОтраслевогоРеквизита] = Строка(Новый УникальныйИдентификатор);
+ КонецЕсли;
+ Уникальность.Вставить(СтрокаТаблицы[ИмяОтраслевогоРеквизита], СтрокаТаблицы[ИмяОтраслевогоРеквизита]);
+ КонецЦикла;
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
diff --git a/src/CommonModules/УАС_События/Ext/Module.bsl b/src/CommonModules/УАС_События/Ext/Module.bsl
index a3138bc20..62451cead 100644
--- a/src/CommonModules/УАС_События/Ext/Module.bsl
+++ b/src/CommonModules/УАС_События/Ext/Module.bsl
@@ -29,9 +29,6 @@
Если Форма.ИмяФормы="Справочник.Номенклатура.Форма.ФормаЭлемента"
Тогда
ИнициализацияФормЭлементаНоменклатуры(Форма);
- ИначеЕсли Форма.ИмяФормы="Документ.ЧекККМ.Форма.ФормаДокументаРМК"
- Тогда
- ИнициализацияФормДокументов(Форма,ДобавляемыеЭлементы);
ИначеЕсли Форма.ИмяФормы="Справочник.Номенклатура.Форма.ФормаСписка"
Или Форма.ИмяФормы="Справочник.Номенклатура.Форма.ФормаВыбора"
Или Форма.ИмяФормы="Обработка.ПодборТоваровВДокументЗакупки.Форма.Форма"
@@ -1103,6 +1100,14 @@
"Годен до", Ложь );
л_ДобавляемыеРеквизиты.Добавить(л_Реквизит);
КонецЦикла;
+
+ Если Не УАС_Общий.ЕстьСвойство(Форма, "УАС_ВыполненаПроверкаПоступившихТоваров")
+ И ФормаПоддерживаетПроверкуПоступившихТоваров(Форма) Тогда
+ л_ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(
+ "УАС_ВыполненаПроверкаПоступившихТоваров",
+ Новый ОписаниеТипов("Булево")));
+ КонецЕсли;
+
Если л_ДобавляемыеРеквизиты.Количество()>0 Тогда
Форма.ИзменитьРеквизиты(л_ДобавляемыеРеквизиты);
КонецЕсли;
@@ -1570,43 +1575,6 @@
л_Кнопка = УАС_Сервер.ДобавитьКнопкуФормы(Форма,л_Команда.Имя,л_Команда.Имя,л_Родитель,,,,,);
КонецЕсли;
- // Добавляем команды копирования таблиц.
- //Для каждого л_Элемент Из Форма.Элементы Цикл
- // Если ТипЗнч(л_Элемент)=Тип("ТаблицаФормы")
- // И л_Элемент.ПоложениеКоманднойПанели<>ПоложениеКоманднойПанелиЭлементаФормы.Нет Тогда
- // л_Данные = Вычислить("Форма."+л_Элемент.ПутьКДанным);
- // Если ТипЗнч(л_Данные)=Тип("ДанныеФормыКоллекция")
- // Или ТипЗнч(л_Данные)=Тип("ТаблицаЗначений") Тогда
- // л_Родитель = УАС_Общий.НайтиПодчиненныйЭлемент(л_Элемент.КоманднаяПанель,"Заполнить","Заголовок",Тип("ГруппаФормы"),Истина);
- // л_ОтображениеКнопок = ОтображениеКнопки.КартинкаИТекст;
- // Если л_Родитель=Неопределено Тогда
- // л_ОтображениеКнопок = ОтображениеКнопки.Картинка;
- // л_Родитель = л_Элемент.КоманднаяПанель;
- // КонецЕсли;
- // л_Родитель = ?(л_Родитель=Неопределено,л_Элемент.КоманднаяПанель,л_Родитель);
- // л_ИмяКоманды = "УАС_СкопироватьТаблицу_____"+л_Элемент.Имя+"_____"+СтрЗаменить(л_Элемент.ПутьКДанным,".","___");
- // л_Команда = Форма.Команды.Добавить(л_ИмяКоманды);
- // л_Команда.Действие = "УАС_ДинамическаяКоманда";
- // л_Команда.Заголовок = "Скопировать таблицу";
- // л_Команда.Подсказка = "Скопировать данные таблицы в буфер обмена";
- // л_Команда.Картинка = БиблиотекаКартинок.УАС_Копировать;
- // л_Команда.ИзменяетСохраняемыеДанные = Ложь;
- // л_Команда.Отображение = л_ОтображениеКнопок;
- // л_Команда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.C,Ложь,Истина,Истина);
- // л_Кнопка = УАС_Сервер.ДобавитьКнопкуФормы(Форма,л_Команда.Имя,л_Команда.Имя,л_Родитель,,,,,);
- // л_ИмяКоманды = "УАС_ВставитьТаблицу_____"+л_Элемент.Имя+"_____"+СтрЗаменить(л_Элемент.ПутьКДанным,".","___");
- // л_Команда = Форма.Команды.Добавить(л_ИмяКоманды);
- // л_Команда.Действие = "УАС_ДинамическаяКоманда";
- // л_Команда.Заголовок = "Вставить таблицу";
- // л_Команда.Подсказка = "Вставить данные таблицы из буфера обмена";
- // л_Команда.Картинка = БиблиотекаКартинок.УАС_Вставить;
- // л_Команда.ИзменяетСохраняемыеДанные = Истина;
- // л_Команда.Отображение = л_ОтображениеКнопок;
- // л_Команда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.V,Ложь,Истина,Истина);
- // л_Кнопка = УАС_Сервер.ДобавитьКнопкуФормы(Форма,л_Команда.Имя,л_Команда.Имя,л_Родитель,,,,,);
- // КонецЕсли;
- // КонецЕсли;
- //КонецЦикла;
Если Форма.ИмяФормы="Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента" Тогда
л_Группа = УАС_Сервер.ДобавитьГруппуФормы(Форма,"УАС_ГруппаЛПУВрач",Форма.Элементы.ГруппаДополнительно,ГруппировкаПодчиненныхЭлементовФормы.Горизонтальная,"ЛПУ, врач",Ложь);
л_Группа.Отображение = ОтображениеОбычнойГруппы.Нет;
@@ -1625,8 +1593,35 @@
Форма.Элементы.Переместить(л_Группа,л_Группа.Родитель,Форма.Элементы.ТоварыПартнер);
КонецЕсли;
+ Если ФормаПоддерживаетПроверкуПоступившихТоваров(Форма) Тогда
+
+ НоваяКоманда = Форма.Команды.Добавить("УАС_ПроверитьПоступившиеТовары");
+ НоваяКоманда.Действие = "Подключаемый_ВыполнитьПереопределяемуюКоманду";
+ НоваяКоманда.Заголовок = "Проверить поступившие товары";
+ НоваяКоманда.Подсказка = "Открыть форму проверки и подбора поступивших товаров.";
+ НоваяКоманда.Картинка = БиблиотекаКартинок.УАС_ПроверкаПоступившегоТовара;
+ НоваяКоманда.ИзменяетСохраняемыеДанные = Ложь;
+ НоваяКоманда.Отображение = ОтображениеКнопки.КартинкаИТекст;
+
+ // Временно отключаем видимость
+ КнопкаФормы = УАС_Сервер.ДобавитьКнопкуФормы(Форма, НоваяКоманда.Имя,, Форма.Элементы.Товары.КоманднаяПанель);
+ КнопкаФормы.Видимость = Ложь;
+
+ ПозицияВставки = НайтиСледующийЭлементФормы(Форма, "ТоварыКоличествоУпаковок");
+
+ НовыйЭлемент = Форма.Элементы.Вставить(
+ "УАС_ТоварыКоличествоПринято", Тип("ПолеФормы"), Форма.Элементы.Товары, ПозицияВставки);
+ НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
+ НовыйЭлемент.ПутьКДанным = "Объект.Товары.УАС_КоличествоПринято";
+ НовыйЭлемент.Видимость = Ложь;
+
+ УАС_Формы.УстановитьУсловноеОформлениеКоличествоПодобрано(Форма);
+
+ КонецЕсли;
+
ЗаполнитьЗначенияДинамическихПолей(Форма);
УАС_Формы.ИнициализироватьУсловноеОформлениеФормы(Форма);
+
КонецПроцедуры
// Процедура - Заполнить значения динамических полей
@@ -2495,7 +2490,7 @@
л_ВсеМетаданные = Метаданные.Справочники;
УстановитьПривилегированныйРежим(Истина);
Если л_Метаданные=л_ВсеМетаданные.СерииНоменклатуры Тогда
- РегистрыСведений.УАС_АктивныеСерииНоменклатуры.УдалитьАктивнуюСерию(Источник.Ссылка);
+ РегистрыСведений.УАС_АктивныеСерииНоменклатуры.УдалитьАктивныеСерии(Источник.Ссылка);
КонецЕсли;
ПланыОбмена.УАС_РМК.СправочникиПередУдалением(Источник, Отказ);
КонецПроцедуры
@@ -6218,6 +6213,7 @@
УАС_МДЛП.Документы_ПередЗаписью(Источник,Отказ,РежимЗаписи,РежимПроведения);
ПланыОбмена.УАС_Маркетплейсы.ДокументыПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения);
+ УАС_Сервер.ЗаполнитьОтраслевыеИдентификаторыДокумента(Источник,, Истина);
КонецПроцедуры
@@ -9454,3 +9450,52 @@
#КонецОбласти
#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область ПроверкаПоступившихТоваров
+
+Функция ФормаПоддерживаетПроверкуПоступившихТоваров(Форма)
+
+ Ссылка = УАС_Общий.ЗначениеСвойства(Форма, "Объект.Ссылка", "");
+ Возврат Метаданные.ОпределяемыеТипы.УАС_ДокументыПроверкиИПодбораУпаковок.Тип.СодержитТип(ТипЗнч(Ссылка));
+
+КонецФункции
+
+Функция НайтиСледующийЭлементФормы(Форма, ИмяЭлемента)
+
+ ИскомыйЭлемент = Форма.Элементы.Найти(ИмяЭлемента);
+
+ Если ИскомыйЭлемент = Неопределено Тогда
+ Возврат "";
+ КонецЕсли;
+
+ Родитель = ИскомыйЭлемент.Родитель;
+
+ Если ТипЗнч(Родитель) = Тип("ГруппаФормы") Или ТипЗнч(Родитель) = Тип("ТаблицаФормы") Тогда
+ КоллекцияОбхода = Родитель.ПодчиненныеЭлементы;
+ Иначе
+ КоллекцияОбхода = Форма.Элементы;
+ КонецЕсли;
+
+ Найден = Ложь;
+
+ Для Каждого ЭлементОбхода Из КоллекцияОбхода Цикл
+
+ Если Найден Тогда
+ Возврат ЭлементОбхода;
+ КонецЕсли;
+
+ Если ЭлементОбхода.Имя = ИмяЭлемента Тогда
+ Найден = Истина;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат "";
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/УАС_Формы/Ext/Module.bsl b/src/CommonModules/УАС_Формы/Ext/Module.bsl
index 84c9478c2..1778729b5 100644
--- a/src/CommonModules/УАС_Формы/Ext/Module.bsl
+++ b/src/CommonModules/УАС_Формы/Ext/Module.bsl
@@ -517,17 +517,17 @@
// Булево - признак инициализации оформления формы.
//
Функция ИнициализироватьУсловноеОформлениеФормы(п_Форма) Экспорт
+
Если Не УАС_Общий.ЕстьСвойство(п_Форма,"УАС_УсловноеОформление") Тогда
Возврат Ложь;
КонецЕсли;
+
л_Источник = п_Форма["УАС_УсловноеОформление"].Настройки.УсловноеОформление;
л_Приемник = п_Форма.УсловноеОформление;
- //Для каждого л_Элемент Из Форма["УАС_УсловноеОформление"].Настройки.УсловноеОформление.Элементы Цикл
- // л_Идентификатор = Форма.УсловноеОформление.ПолучитьИдентификаторПоОбъекту(л_Элемент);
- // л_ЭлементОформления = Форма.УсловноеОформление.ПолучитьОбъектПоИдентификатору(л_Идентификатор);
- //КонецЦикла;
КомпоновкаДанныхКлиентСервер.СкопироватьЭлементы(л_Приемник,л_Источник,Ложь);
+
Возврат Истина;
+
КонецФункции
#КонецОбласти
@@ -3171,10 +3171,10 @@
|// Символ необходим для динамической замены текста запроса, находящегося выше %1");
// ПрайсЛист
п_ТекстЗапроса = СтрЗаменить(п_ТекстЗапроса,
- "ВЫБРАТЬ РАЗРЕШЕННЫЕ
+ "ВЫБРАТЬ
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК УАС_СерияОстатков",
"// УАС ПодменаОстатковНачало
- |ВЫБРАТЬ РАЗРЕШЕННЫЕ
+ |ВЫБРАТЬ
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК УАС_СерияОстатков");
п_ТекстЗапроса = СтрЗаменить(п_ТекстЗапроса,
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
@@ -3221,3 +3221,51 @@
#КонецОбласти
#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область ПроверкаПоступившихТоваров
+
+Процедура УстановитьУсловноеОформлениеКоличествоПодобрано(Форма) Экспорт
+
+ Если Не УАС_Общий.ЕстьСвойство(Форма, "УАС_УсловноеОформление") Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если Не УАС_Общий.ЕстьСвойство(Форма, "УАС_ВыполненаПроверкаПоступившихТоваров") Тогда
+ Возврат;
+ КонецЕсли;
+
+ Форма.УАС_ВыполненаПроверкаПоступившихТоваров = Форма.Объект.Товары.Итог("УАС_КоличествоПринято") > 0;
+ Форма.Элементы.УАС_ТоварыКоличествоПринято.Видимость = Форма.УАС_ВыполненаПроверкаПоступившихТоваров;
+
+ ЭлементУсловногоОформления = Форма["УАС_УсловноеОформление"].Настройки.УсловноеОформление.Элементы.Добавить();
+
+ ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
+ ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Форма.Элементы.ТоварыКоличествоУпаковок.Имя);
+
+ ГруппаОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
+ ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
+
+ ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
+ ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УАС_ВыполненаПроверкаПоступившихТоваров");
+ ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
+ ЭлементОтбора.ПравоеЗначение = Истина;
+
+ ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
+ ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
+ ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
+ ЭлементОтбора.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Товар;
+
+ ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
+ ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.УАС_КоличествоПринято");
+ ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
+ ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковок");
+
+ ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/УдаленноеАдминистрированиеБТССлужебный/Ext/Module.bsl b/src/CommonModules/УдаленноеАдминистрированиеБТССлужебный/Ext/Module.bsl
index 84324ff62..6add1d0eb 100644
--- a/src/CommonModules/УдаленноеАдминистрированиеБТССлужебный/Ext/Module.bsl
+++ b/src/CommonModules/УдаленноеАдминистрированиеБТССлужебный/Ext/Module.bsl
@@ -362,4 +362,11 @@
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗавершитьСеансыОбластиДанных", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/УправлениеДоступомЛокализация/Ext/Module.bsl b/src/CommonModules/УправлениеДоступомЛокализация/Ext/Module.bsl
index 7ef92b313..a60722aa1 100644
--- a/src/CommonModules/УправлениеДоступомЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/УправлениеДоступомЛокализация/Ext/Module.bsl
@@ -833,6 +833,10 @@
|Документ.ВозвратИзРегистра2ЕГАИС.Изменение.Организации
|Документ.ВыводИзОборотаИСМП.Чтение.Организации
|Документ.ВыводИзОборотаИСМП.Изменение.Организации
+ |Документ.ДокументОПредстоящейПоставке.Чтение.ГруппыПартнеров
+ |Документ.ДокументОПредстоящейПоставке.Чтение.Организации
+ |Документ.ДокументОПредстоящейПоставке.Изменение.ГруппыПартнеров
+ |Документ.ДокументОПредстоящейПоставке.Изменение.Организации
|Документ.ЗаказНаЭмиссиюКодовМаркировкиСУЗ.Чтение.Организации
|Документ.ЗаказНаЭмиссиюКодовМаркировкиСУЗ.Изменение.Организации
|Документ.ЗаписьКнигиПокупок.Чтение.Организации
@@ -1052,6 +1056,8 @@
|РегистрСведений.ДанныеОснованийСчетовФактур.Чтение.Организации
|РегистрСведений.ДетализацияСебестоимостиТоваров.Чтение.Организации
|РегистрСведений.ДетализацияСебестоимостиТоваровПостатейныеЗатратыНЗП.Чтение.Организации
+ |РегистрСведений.ДокументыОПредстоящейПоставке.Чтение.Организации
+ |РегистрСведений.ДокументыОПредстоящейПоставке.Изменение.Организации
|РегистрСведений.ДополнительныеСведенияПоТоварамЗаказовТорговыхПлощадок.Чтение.Организации
|РегистрСведений.ДополнительныеСведенияПоТоварамЗаказовТорговыхПлощадок.Изменение.Организации
|РегистрСведений.ЖурналДействийПоЭДО.Чтение.Организации
@@ -1338,6 +1344,7 @@
Списки.Вставить(Метаданные.Документы.ФормированиеПартийЗЕРНО, Истина);
Списки.Вставить(Метаданные.Документы.ФормированиеПартийИзДругихПартийЗЕРНО, Истина);
Списки.Вставить(Метаданные.Документы.ФормированиеПартийПриПроизводствеЗЕРНО, Истина);
+ Списки.Вставить(Метаданные.Документы.ДокументОПредстоящейПоставке, Истина);
Списки.Вставить(Метаданные.ЖурналыДокументов.РегламентныеДокументы, Истина);
Списки.Вставить(Метаданные.РегистрыНакопления.ДетализацияПартийТоваровДляНДСиУСН, Истина);
@@ -1378,6 +1385,7 @@
Списки.Вставить(Метаданные.РегистрыСведений.ДополнительныеСведенияПоТоварамЗаказовТорговыхПлощадок, Истина);
Списки.Вставить(Метаданные.РегистрыСведений.ЗаказыТорговыхПлощадок, Истина);
Списки.Вставить(Метаданные.РегистрыСведений.ОчередьСообщенийЗЕРНО, Истина);
+ Списки.Вставить(Метаданные.РегистрыСведений.ДокументыОПредстоящейПоставке, Истина);
Списки.Вставить(Метаданные.Справочники.Патенты, Истина);
Списки.Вставить(Метаданные.Справочники.ПатентыПрисоединенныеФайлы, Истина);
@@ -1533,7 +1541,8 @@
ОписаниеПрофиля.Роли.Добавить("ЧтениеВводаОстатков");
ОписаниеПрофиля.Роли.Добавить("ЧтениеВводаОстатковНДСПредъявленного");
ОписаниеПрофиля.Роли.Добавить("ЧтениеВводаОстатковТМЦВЭксплуатации");
-
+ ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеДанныхОПоставкахВРазрезеДОПП");
+
ОписаниеПрофиля.Роли.Добавить("ЧтениеДанныхДокументовЭлектронногоАктированияЕИС");
ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеГосударственныхКонтрактов");
@@ -1661,7 +1670,8 @@
// Регистры сведений, добавление.
ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеПримененияЕНВД");
-
+ ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеДанныхОПоставкахВРазрезеДОПП");
+
// Дополнительные права.
ОписаниеПрофиля.Роли.Добавить("ВыполнениеОбменаДокументамиБизнесСеть");
ОписаниеПрофиля.Роли.Добавить("ВыполнениеОбменаОбменСБанками");
diff --git a/src/CommonModules/УправлениеПечатьюЛокализация/Ext/Module.bsl b/src/CommonModules/УправлениеПечатьюЛокализация/Ext/Module.bsl
index 8e6d9a3d0..f8b7bf40c 100644
--- a/src/CommonModules/УправлениеПечатьюЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/УправлениеПечатьюЛокализация/Ext/Module.bsl
@@ -14,6 +14,7 @@
СписокОбъектов.Добавить(Документы.ЛистКассовойКниги);
СписокОбъектов.Добавить(Документы.СправкаОПодтверждающихДокументах);
СписокОбъектов.Добавить(Документы.ТранспортнаяНакладная);
+ СписокОбъектов.Добавить(Документы.ДокументОПредстоящейПоставке);
СписокОбъектов.Добавить(Справочники.Патенты);
diff --git a/src/CommonModules/УправлениеСвойствамиУТ/Ext/Module.bsl b/src/CommonModules/УправлениеСвойствамиУТ/Ext/Module.bsl
index 2b8eac259..3021b061e 100644
--- a/src/CommonModules/УправлениеСвойствамиУТ/Ext/Module.bsl
+++ b/src/CommonModules/УправлениеСвойствамиУТ/Ext/Module.bsl
@@ -2111,6 +2111,11 @@
Наименование = "ru = 'Подтверждения ставки НДС 0%'"; // @НСтр
ДобавитьЭлементНабораСвойств(Элементы, "75066758-e8a1-4ec0-b3af-bf1e21ec7f24",
"Документ_ПодтверждениеНулевойСтавкиНДС", Наименование, КодыЯзыков);
+
+ Наименование = "ru = 'Документ о предстоящей поставке (ДОПП)'"; // @НСтр
+ ДобавитьЭлементНабораСвойств(Элементы, "9c539d3a-9b24-4bb5-81b6-29b2d3d7e79c",
+ "Документ_ДокументОПредстоящейПоставке", Наименование, КодыЯзыков);
+
//-- Локализация
diff --git a/src/CommonModules/УчетНДСЛокализация/Ext/Module.bsl b/src/CommonModules/УчетНДСЛокализация/Ext/Module.bsl
index a476ab333..a638536f3 100644
--- a/src/CommonModules/УчетНДСЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/УчетНДСЛокализация/Ext/Module.bsl
@@ -7271,6 +7271,7 @@
Объекты.Добавить(Метаданные.Документы.СчетФактураПолученныйНалоговыйАгент);
Объекты.Добавить(Метаданные.Документы.ИнойДокументПодтвержденияНДС);
Объекты.Добавить(Метаданные.Документы.СводнаяСправкаНДС);
+ Объекты.Добавить(Метаданные.Документы.ДокументОПредстоящейПоставке);
Объекты.Добавить(Метаданные.Обработки.ЖурналДокументовНДС);
//-- Локализация
@@ -7591,6 +7592,18 @@
Строка.ПолноеИмяДокумента = "Документ.СчетФактураПолученныйНалоговыйАгент";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы закупки товаров с обратным обложением НДС (счета-фактуры)'");
+ // ДокументОПредстоящейПоставке
+
+ СтрокаДокументОПредстоящейПоставке = ХозяйственныеОперацииИДокументы.Добавить();
+ Строка = СтрокаДокументОПредстоящейПоставке;
+ Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС;
+ Строка.ДобавитьКнопкуСоздать = Истина;
+ Строка.ТипДокумента = Тип("ДокументСсылка.ДокументОПредстоящейПоставке");
+ Строка.ПолноеИмяДокумента = "Документ.ДокументОПредстоящейПоставке";
+ Строка.ИспользуютсяСтатусы = Ложь;
+ Строка.КлючНазначенияИспользования = "ДокументОПредстоящейПоставке";
+ Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документ о предстоящей поставке (ДОПП)'");
+
//-- Локализация
КонецПроцедуры
@@ -8043,6 +8056,84 @@
Представление = "";
//++ Локализация
+ Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
+ Возврат Представление;
+ КонецЕсли;
+
+ ЕстьПравоЧтенияДОПП = ПравоДоступа("Чтение", Метаданные.Документы.ДокументОПредстоящейПоставке);
+
+ Если Не ЕстьПравоЧтенияДОПП Тогда
+ Возврат Представление;
+ КонецЕсли;
+
+ ДанныеДОПП = Документы.ДокументОПредстоящейПоставке.НайтиДОПППоОснованию(Объект.Ссылка);
+
+ МассивДОПП = ДанныеДОПП.МассивДОПП;
+ НавигационнаяСсылкаДОПП = "";
+ ЕстьПравоДобавленияДОПП = ПравоДоступа("ИнтерактивноеДобавление", Метаданные.Документы.ДокументОПредстоящейПоставке);
+
+ ФормироватьСсылку = Истина;
+ Если МассивДОПП.Количество() = 0 Тогда
+
+ Если ЕстьПравоДобавленияДОПП Тогда
+ ТекстРаспоряжения = НСтр("ru = 'Создать документ о предстоящей поставке'");
+ НавигационнаяСсылкаДОПП = "СоздатьДОПП";
+ Иначе
+ ТекстРаспоряжения = НСтр("ru = 'Нет документов о предстоящей поставке'");
+ КонецЕсли;
+
+ ИначеЕсли МассивДОПП.Количество() > 0 Тогда
+
+ Если МассивДОПП.Количество() = 1 Тогда
+
+ ФормироватьСсылку = Ложь;
+ ЦветТекста = ЦветаСтиля.ГиперссылкаЦвет;
+ ТекстыДокументыНаОсновании = Новый Массив;
+
+ Если ЕстьПравоДобавленияДОПП И ДанныеДОПП.СуммаВсего < СуммаПоДокументу Тогда
+ ТекстРаспоряжения = НСтр("ru = 'Создать документ о предстоящей поставке'");
+ НавигационнаяСсылкаДОПП = "СоздатьДОПП";
+ ТекстДокументыНаОсновании = Новый ФорматированнаяСтрока(ТекстРаспоряжения, , ЦветТекста, , НавигационнаяСсылкаДОПП);
+ ТекстыДокументыНаОсновании.Добавить(ТекстДокументыНаОсновании);
+ Отступ = Новый ФорматированнаяСтрока(" ");
+ ТекстыДокументыНаОсновании.Добавить(Отступ);
+ КонецЕсли;
+
+ ТекстДОПП = СтрШаблон(НСтр("ru = 'от %1'"),Формат(МассивДОПП[0].Дата, "ДЛФ=D"));
+ Если ЗначениеЗаполнено(ЗначениеЗаполнено(МассивДОПП[0].НомерДОПП)) Тогда
+ ТекстДОПП = СтрШаблон(НСтр("ru = ' № %1 '"), МассивДОПП[0].НомерДОПП) + ТекстДОПП;
+ КонецЕсли;
+
+ ТекстРаспоряжения = НСтр("ru = 'Документ о предстоящей поставке'")
+ + ТекстДОПП;
+
+ Если ЕстьПравоЧтенияДОПП Тогда
+ НавигационнаяСсылкаДОПП = "ОткрытьДОПП";
+ КонецЕсли;
+
+ ТекстДокументыНаОсновании = Новый ФорматированнаяСтрока(ТекстРаспоряжения, , ЦветТекста, , НавигационнаяСсылкаДОПП);
+ ТекстыДокументыНаОсновании.Добавить(ТекстДокументыНаОсновании);
+
+ Представление = Новый ФорматированнаяСтрока(ТекстыДокументыНаОсновании);
+
+ Иначе
+ ТекстРаспоряжения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Документы о предстоящей поставке (%1)'"),
+ Строка(МассивДОПП.Количество()));
+ НавигационнаяСсылкаДОПП = "ОткрытьСписокДОПП";
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Если ФормироватьСсылку Тогда
+ Если ЗначениеЗаполнено(НавигационнаяСсылкаДОПП) Тогда
+ ЦветТекста = ЦветаСтиля.ГиперссылкаЦвет;
+ Иначе
+ ЦветТекста = Неопределено;
+ КонецЕсли;
+
+ Представление = Новый ФорматированнаяСтрока(ТекстРаспоряжения, , ЦветТекста, , НавигационнаяСсылкаДОПП);
+ КонецЕсли;
//-- Локализация
diff --git a/src/CommonModules/УчетНДСОтчетыПереопределяемый/Ext/Module.bsl b/src/CommonModules/УчетНДСОтчетыПереопределяемый/Ext/Module.bsl
index a064f8817..c8d14f601 100644
--- a/src/CommonModules/УчетНДСОтчетыПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/УчетНДСОтчетыПереопределяемый/Ext/Module.bsl
@@ -1,6 +1,30 @@
#Область ПрограммныйИнтерфейс
+#Область ОтражениеДОППВДекларацииПоКосвеннымНалогам
+
+// КБК НДС при ввозе товаров.
+//
+// Возвращаемое значение:
+// Строка - КБК НДС при ввозе товаров
+Функция КБКНДСПриВвозеТоваров() Экспорт
+
+ Возврат "18210401000011000110";
+
+КонецФункции
+
+// Нулевой КБК при ввозе товаров.
+//
+// Возвращаемое значение:
+// Строка - Нулевой КБК при ввозе товаров
+Функция НулевойКБКПриВвозеТоваров() Экспорт
+
+ Возврат "00000000000000000000";
+
+КонецФункции
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
diff --git a/src/CommonModules/УчетНДСРФ/Ext/Module.bsl b/src/CommonModules/УчетНДСРФ/Ext/Module.bsl
index fd090369c..60cfff18c 100644
--- a/src/CommonModules/УчетНДСРФ/Ext/Module.bsl
+++ b/src/CommonModules/УчетНДСРФ/Ext/Module.bsl
@@ -418,6 +418,7 @@
КонецПроцедуры
+
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
@@ -4058,7 +4059,7 @@
| Партии.Период КАК Период,
| Партии.Регистратор КАК Регистратор,
| Партии.Организация КАК Организация,
- | Партии.АналитикаУчетаПартий.Контрагент КАК Контрагент,
+ | Партии.АналитикаУчетаДокументаПоступления.Контрагент КАК Контрагент,
| Партии.ДокументПоступления КАК СчетФактура,
| ЕСТЬNULL(ДанныеПервичныхДокументов.ДатаРегистратора, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаПоступления,
| ВЫБОР
@@ -4081,7 +4082,7 @@
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ТаможенныйСоюз)
| ИНАЧЕ Партии.ВидЦенности
| КОНЕЦ КАК ВидЦенности,
- | Партии.АналитикаУчетаПартий.СтавкаНДС КАК СтавкаНДС,
+ | Партии.АналитикаУчетаДокументаПоступления.СтавкаНДС КАК СтавкаНДС,
| ВЫБОР
| КОГДА Партии.НалогообложениеПартии = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
@@ -4153,6 +4154,8 @@
| Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| Партии.Сторно КАК Сторно,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
+ | Партии.Партия КАК Партия,
|
| ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(Партии.ДокументПоступления) В
| (ТИП(Документ.ЗаявлениеОВвозеТоваров),
@@ -4175,7 +4178,9 @@
| Партии.НДСРегл,
| 0 КАК НДСУпр,
| Партии.ДокументПоступления,
- | Партии.АналитикаУчетаПартий,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаДокументаПоступления,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета ТОГДА
| ЕСТЬNULL(Партии.ВидЗапасов.ГруппаФинансовогоУчета.ВидЦенностиНДС, ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары))
@@ -4243,7 +4248,9 @@
| Партии.НДСРегл КАК НДСРегл,
| 0 КАК НДСУпр,
| Партии.ДокументПоступления КАК ДокументПоступления,
- | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаДокументаПоступления,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
| ВЫБОР КОГДА Партии.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
@@ -4320,7 +4327,9 @@
| Партии.НДСРегл КАК НДСРегл,
| 0 КАК НДСУпр,
| Партии.ДокументПоступленияРасходов КАК ДокументПоступления,
- | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаДокументаПоступления,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
| ВЫБОР
| КОГДА НЕ СтатьиРасходов.Ссылка ЕСТЬ NULL
| ТОГДА СтатьиРасходов.ВидЦенностиНДС
@@ -4401,7 +4410,9 @@
| Партии.НДСРегл КАК НДСРегл,
| Партии.НДСУпр КАК НДСУпр,
| Партии.ДокументПоступленияРасходов КАК ДокументПоступления,
- | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаДокументаПоступления,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
| ВЫБОР
| КОГДА Партии.АналитикаУчетаПартий.ВидЦенности <> ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка)
| ТОГДА Партии.АналитикаУчетаПартий.ВидЦенности // Версия ПартионногоУчета 2.2
@@ -4460,6 +4471,7 @@
| И Партии.НалогообложениеНДС <> ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
// Для исключения движений свертки развернутого сальдо
| И НЕ (Партии.Регистратор ССЫЛКА Документ.РасчетСебестоимостиТоваров
+ | И Партии.ДокументПоступленияРасходов = НЕОПРЕДЕЛЕНО
| И Партии.ТипЗаписи = ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.Расчетное))
| И НЕ Партии.Сторно
|
@@ -4474,6 +4486,8 @@
| 0 КАК НДСУпр,
| Партии.ДокументПоступления,
| Партии.АналитикаУчетаПартий,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
| ВЫБОР КОГДА Партии.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
@@ -4531,6 +4545,8 @@
| 0 КАК НДСУпр,
| Партии.ДокументПоступления,
| Партии.АналитикаУчетаПартий,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
| ВЫБОР КОГДА Партии.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
@@ -4593,6 +4609,8 @@
| ИНАЧЕ Партии.ДокументПоступления
| КОНЕЦ КАК ДокументПоступления,
| Партии.АналитикаУчетаПартий,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
| ЕСТЬNULL(Партии.АналитикаУчетаПартий.ВидЦенности, ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары)) КАК ВидЦенности,
| ВЫБОР КОГДА Партии.Регистратор ССЫЛКА Документ.РаспределениеПрочихЗатрат
| ТОГДА Партии.КорВидДеятельностиНДС
@@ -4669,6 +4687,8 @@
| Партии.НДСУпр КАК НДСУпр,
| Партии.ДокументПоступления,
| Партии.АналитикаУчетаДокументаПоступления,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
| ЕСТЬNULL(Партии.АналитикаУчетаДокументаПоступления.ВидЦенности, ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары)) КАК ВидЦенности,
| ВЫБОР КОГДА Партии.Регистратор ССЫЛКА Документ.РаспределениеПрочихЗатрат
| ТОГДА Партии.КорВидДеятельностиНДС
@@ -4732,6 +4752,8 @@
| Партии.НДСУпр КАК НДСУпр,
| Партии.ДокументПоступления,
| Партии.АналитикаУчетаДокументаПоступления,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
| ЕСТЬNULL(Партии.АналитикаУчетаДокументаПоступления.ВидЦенности, ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары)) КАК ВидЦенности,
| Партии.ВидДеятельностиНДС КАК НалогообложениеПартии,
| Партии.КорВидДеятельностиНДС КАК НалогообложениеНДС,
@@ -4785,6 +4807,8 @@
| Партии.НДСУпр КАК НДСУпр,
| Партии.ДокументПоступления,
| Партии.АналитикаУчетаПартийДокументаПоступления,
+ | Партии.Партия КАК Партия,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ЕСТЬNULL(Партии.АналитикаУчетаПартийДокументаПоступления.ВидЦенности, ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары)) КАК ВидЦенности,
| Партии.ВидДеятельностиНДС КАК НалогообложениеПартии,
| Партии.КорВидДеятельностиНДС КАК НалогообложениеНДС,
@@ -4839,6 +4863,8 @@
| Партии.НДСУпр КАК НДСУпр,
| Партии.ДокументПоступления,
| Партии.АналитикаУчетаПартийДокументаПоступления,
+ | Партии.Партия КАК Партия,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ЕСТЬNULL(Партии.АналитикаУчетаПартийДокументаПоступления.ВидЦенности, ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары)) КАК ВидЦенности,
| Партии.ВидДеятельностиНДС КАК НалогообложениеПартии,
| Партии.КорВидДеятельностиНДС КАК НалогообложениеНДС,
@@ -4958,6 +4984,8 @@
| Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| Партии.Сторно КАК Сторно,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
| Партии.СтоимостьРегл КАК СуммаБезНДС,
| Партии.НДСРегл КАК НДС,
| Партии.НДСУпр КАК НДСУпр
@@ -5010,6 +5038,8 @@
| Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| Партии.Сторно КАК Сторно,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
+ | Партии.Партия КАК Партия,
| СУММА(Партии.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(Партии.НДС) КАК НДС,
| СУММА(Партии.НДСУпр) КАК НДСУпр
@@ -5037,6 +5067,8 @@
| Партии.ДокументРеализации,
| Партии.ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации,
+ | Партии.АналитикаУчетаПартий,
+ | Партии.Партия,
| Партии.Сторно
|
|ИНДЕКСИРОВАТЬ ПО
@@ -5063,6 +5095,7 @@
КонецПроцедуры
+
// См. УчетНДСУПСлужебный.ПолучитьСчетаФактурыДокументы
Процедура ПолучитьСчетаФактурыДокументы(ПараметрыРасчета) Экспорт
@@ -6279,6 +6312,8 @@
| """" КАК ИдентификаторСтроки,
| ИСТИНА КАК РегламентнаяОперация,
| ЛОЖЬ КАК Сторно,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | НЕОПРЕДЕЛЕНО КАК АналитикаУчетаПартий,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВосстановлениеНДС) КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ НДСПредъявленныйВосстановлениеПодВидДеятельности
|ИЗ
@@ -7267,7 +7302,6 @@
КонецПроцедуры
-
// Записывает вручную отредактированный набор записей Журнала счетов-фактур или возвращает дефолтные движения документа.
// Устанавливает признак редактирования журнала в документе.
//
diff --git a/src/CommonModules/УчетНДСРФВызовСервера/Ext/Module.bsl b/src/CommonModules/УчетНДСРФВызовСервера/Ext/Module.bsl
index 0dd0eacb9..e4a9ad1c0 100644
--- a/src/CommonModules/УчетНДСРФВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/УчетНДСРФВызовСервера/Ext/Module.bsl
@@ -101,6 +101,24 @@
КонецФункции
+// Ищет первый ДОПП, который привязан к передаваемому документу
+//
+// Параметры:
+// Ссылка - ДокументССылка
+//
+// Возвращаемое значение:
+// Неопределено, Произвольный - Получить ДОПП по основанию
+Функция ПолучитьДОПППоОснованию(Ссылка) Экспорт
+
+ МассивДОПП = Документы.ДокументОПредстоящейПоставке.НайтиДОПППоОснованию(Ссылка).МассивДОПП;
+ Если МассивДОПП.Количество()>0 Тогда
+ Возврат МассивДОПП[0];
+ Иначе
+ Возврат Неопределено;
+ КонецЕсли;
+
+КонецФункции
+
#КонецОбласти
diff --git a/src/CommonModules/УчетНДСРФКлиент/Ext/Module.bsl b/src/CommonModules/УчетНДСРФКлиент/Ext/Module.bsl
index 5ac5a3adf..7d1562a45 100644
--- a/src/CommonModules/УчетНДСРФКлиент/Ext/Module.bsl
+++ b/src/CommonModules/УчетНДСРФКлиент/Ext/Module.bsl
@@ -503,6 +503,39 @@
//
Процедура ОбработкаНавигационнойСсылкиДОПП(Форма, Параметры, НавигационнаяСсылка, СтандартнаяОбработка) Экспорт
+ ПараметрыФормы = Новый Структура;
+ ПараметрыФормы.Вставить("Организация", Параметры.Организация);
+ ПараметрыФормы.Вставить("Основание", Параметры.Основание);
+
+ Если НавигационнаяСсылка = "ОткрытьСписокДОПП" Тогда
+
+ ИмяФормыУведомлений = "Документ.ДокументОПредстоящейПоставке.Форма.ФормаСписка";
+ СтандартнаяОбработка = Ложь;
+ СтруктураОтбора = Новый Структура;
+ СтруктураОтбора.Вставить("ДокументОснование", Параметры.Основание);
+ ПараметрыФормы.Вставить("Отбор", СтруктураОтбора);
+
+ ОткрытьФорму(
+ ИмяФормыУведомлений,
+ ПараметрыФормы,
+ Форма,
+ ,,,,
+ РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
+
+ ИначеЕсли НавигационнаяСсылка = "ОткрытьДОПП" Тогда
+
+ Ключ = УчетНДСРФВызовСервера.ПолучитьДОПППоОснованию(Параметры.Основание);
+ Если ЗначениеЗаполнено(Ключ) Тогда
+ ПараметрыФормы = Новый Структура;
+ ПараметрыФормы.Вставить("Ключ", Ключ.Ссылка);
+ ОткрытьФорму("Документ.ДокументОПредстоящейПоставке.Форма.ФормаДокументаДОПП", ПараметрыФормы, Форма);
+ КонецЕсли;
+
+ ИначеЕсли НавигационнаяСсылка = "СоздатьДОПП" Тогда
+
+ ОткрытьФорму("Документ.ДокументОПредстоящейПоставке.Форма.ФормаДокументаДОПП", ПараметрыФормы, Форма);
+
+ КонецЕсли;
КонецПроцедуры
diff --git a/src/CommonModules/УчетНДСУП/Ext/Module.bsl b/src/CommonModules/УчетНДСУП/Ext/Module.bsl
index 9541a87f1..ba2ef7707 100644
--- a/src/CommonModules/УчетНДСУП/Ext/Module.bsl
+++ b/src/CommonModules/УчетНДСУП/Ext/Module.bsl
@@ -2249,25 +2249,31 @@
Если ЗначениеЗаполнено(ПараметрыЗаполнения.Договор) Тогда
Запрос = Новый Запрос;
- Запрос.Текст =
+ ТекстЗапроса =
"ВЫБРАТЬ
| ДоговорыКонтрагентов.НалогообложениеНДС КАК НалогообложениеНДС
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Ссылка = &Договор
- | И НЕ ДоговорыКонтрагентов.НалогообложениеНДСОпределяетсяВДокументе
- |
- |ОБЪЕДИНИТЬ ВСЕ
- |
- |ВЫБРАТЬ
- | ДоговорыМеждуОрганизациями.НалогообложениеНДС КАК НалогообложениеНДС
- |ИЗ
- | Справочник.ДоговорыМеждуОрганизациями КАК ДоговорыМеждуОрганизациями
- |ГДЕ
- | ДоговорыМеждуОрганизациями.Ссылка = &Договор
- | И НЕ ДоговорыМеждуОрганизациями.НалогообложениеНДСОпределяетсяВДокументе
- |";
+ | И НЕ ДоговорыКонтрагентов.НалогообложениеНДСОпределяетсяВДокументе";
+
+ ТипДоговора = ТипЗнч(ПараметрыЗаполнения.Договор);
+ Если ТипДоговора = Тип("СправочникСсылка.ДоговорыМеждуОрганизациями") Тогда
+
+ ТекстЗапроса =
+ "ВЫБРАТЬ
+ | ДоговорыМеждуОрганизациями.НалогообложениеНДС КАК НалогообложениеНДС
+ |ИЗ
+ | Справочник.ДоговорыМеждуОрганизациями КАК ДоговорыМеждуОрганизациями
+ |ГДЕ
+ | ДоговорыМеждуОрганизациями.Ссылка = &Договор
+ | И НЕ ДоговорыМеждуОрганизациями.НалогообложениеНДСОпределяетсяВДокументе";
+
+
+ КонецЕсли;
+
+ Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("Договор", ПараметрыЗаполнения.Договор);
УстановитьПривилегированныйРежим(Истина);
diff --git a/src/CommonModules/УчетНДСУПСлужебный/Ext/Module.bsl b/src/CommonModules/УчетНДСУПСлужебный/Ext/Module.bsl
index 6b964dcd4..216eedc73 100644
--- a/src/CommonModules/УчетНДСУПСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/УчетНДСУПСлужебный/Ext/Module.bsl
@@ -988,7 +988,7 @@
//
Функция ОперацияНаходитсяВРасширенномПериоде(Организация, ДатаОперации, ДатаРегистрации = '00010101') Экспорт
- ЭтоРасширенныйПериод = Истина;
+ ЭтоРасширенныйПериод = Ложь;
//++ Локализация
@@ -1748,6 +1748,8 @@
| Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| Партии.Сторно КАК Сторно,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(Партии.ДокументПоступленияРасходов) = ТИП(Документ.ТаможеннаяДекларацияИмпорт)
| ТОГДА 0
@@ -1795,6 +1797,8 @@
| Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| Партии.Сторно КАК Сторно,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаПартий.ПустаяСсылка) КАК АналитикаУчетаПартий,
| Партии.СтоимостьРегл КАК СуммаБезНДС,
| Партии.НДСРегл КАК НДС,
| Партии.НДСУпр КАК НДСУпр
@@ -1837,6 +1841,8 @@
| Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| Партии.Сторно КАК Сторно,
+ | Партии.Партия КАК Партия,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| СУММА(Партии.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(Партии.НДС) КАК НДС,
| СУММА(Партии.НДСУпр) КАК НДСУпр
@@ -1867,6 +1873,8 @@
| Партии.ДокументРеализации,
| Партии.ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации,
+ | Партии.Партия,
+ | Партии.АналитикаУчетаПартий,
| Партии.Сторно
|
|ИНДЕКСИРОВАТЬ ПО
@@ -1878,8 +1886,8 @@
|УНИЧТОЖИТЬ ПартииПредварительная
|";
- Запрос.УстановитьПараметр("НачалоПериода", ПараметрыРасчета.НачалоПериода);
- Запрос.УстановитьПараметр("КонецПериода", ПараметрыРасчета.КонецПериода);
+ Запрос.УстановитьПараметр("НачалоПериода", ПараметрыРасчета.НачалоПериода);
+ Запрос.УстановитьПараметр("КонецПериода", ПараметрыРасчета.КонецПериода);
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Выполнить();
@@ -2634,6 +2642,8 @@
| ИНАЧЕ НДСПредъявленный.АналитикаРасходов
| КОНЕЦ КАК АналитикаРасходов,
| НДСПредъявленный.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
+ | НДСПредъявленный.Партия КАК Партия,
+ | НДСПредъявленный.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| НДСПредъявленный.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи
|ПОМЕСТИТЬ НДСПредъявленныйСторно
|ИЗ
@@ -2805,6 +2815,8 @@
| ИсправлениеРаспределениеНДС.Дата
| КОНЕЦ КАК ДатаИсправленияРаспределенияНДС,
| ДД.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
+ | ДД.Партия КАК Партия,
+ | ДД.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ДД.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ НДСПредъявленныйИзменениеВидаДеятельности
|ИЗ (
@@ -2850,6 +2862,8 @@
| ИСТИНА КАК РегламентнаяОперация,
| Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
+ | Партии.Партия КАК Партия,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| Партии.Сторно КАК Сторно
| ИЗ
| Партии КАК Партии
@@ -2931,6 +2945,8 @@
| ИСТИНА КАК РегламентнаяОперация,
| Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
+ | Партии.Партия КАК Партия,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| Партии.Сторно КАК Сторно
| ИЗ
| Партии КАК Партии
@@ -2993,8 +3009,10 @@
| СписанияНДСНаРасходы.АналитикаРасходов КАК АналитикаРасходов,
| """",
| ИСТИНА,
- | Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
+ | Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеНДСПоПриобретеннымЦенностям) КАК НастройкаХозяйственнойОперации,
+ | Партии.Партия КАК Партия,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| Партии.Сторно
| ИЗ
| Партии КАК Партии
@@ -3044,6 +3062,8 @@
| ИСТИНА,
| Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеНДСПоПриобретеннымЦенностям) КАК НастройкаХозяйственнойОперации,
+ | Партии.Партия КАК Партия,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| Партии.Сторно
| ИЗ
| Партии КАК Партии
@@ -3092,6 +3112,8 @@
| ИСТИНА,
| Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеНДСПоПриобретеннымЦенностям) КАК НастройкаХозяйственнойОперации,
+ | Партии.Партия КАК Партия,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| Партии.Сторно
| ИЗ
| Партии КАК Партии
@@ -3149,7 +3171,7 @@
| Партии.Контрагент КАК Поставщик,
| Партии.ВидЦенности КАК ВидЦенности,
| Партии.СтавкаНДС КАК СтавкаНДС,
- | Партии.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
+ | Партии.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ЕСТЬNULL(ИсправительныеCФ.ИсправленныйСчетФактура, НЕОПРЕДЕЛЕНО) КАК ИсправленныйСчетФактура,
| НЕОПРЕДЕЛЕНО КАК РеализацияЭкспорт,
| Партии.НаправлениеДеятельности КАК НаправлениеДеятельности,
@@ -3166,6 +3188,8 @@
| ИСТИНА КАК РегламентнаяОперация,
| Партии.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
+ | Партии.Партия КАК Партия,
+ | Партии.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| Партии.Сторно КАК Сторно
|ПОМЕСТИТЬ НДСПредъявленныйИзменениеНаправленияДеятельности_Предварительная
|ИЗ
@@ -3221,6 +3245,8 @@
| ИСТИНА,
| Партии.ИдентификаторФинЗаписи,
| Партии.НастройкаХозяйственнойОперации,
+ | Партии.Партия,
+ | Партии.АналитикаУчетаПартий,
| Партии.Сторно
|ИЗ
| Партии КАК Партии
@@ -3348,6 +3374,8 @@
| ДД.РегламентнаяОперация КАК РегламентнаяОперация,
| ДД.Сторно КАК Сторно,
| ДД.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
+ | ДД.Партия КАК Партия,
+ | ДД.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ДД.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ НДСПредъявленныйИзменениеНаправленияДеятельности
|ИЗ
@@ -3406,6 +3434,8 @@
| НДСПредъявленный.СтатьяРасходов КАК СтатьяРасходов,
| НДСПредъявленный.АналитикаРасходов КАК АналитикаРасходов,
| НДСПредъявленный.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
+ | НДСПредъявленный.Партия КАК Партия,
+ | НДСПредъявленный.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| НДСПредъявленный.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ НДСПредъявленныйИсправленныеСчетаФактуры
|ИЗ
@@ -3447,6 +3477,8 @@
| НДСПредъявленный.СтатьяРасходов,
| НДСПредъявленный.АналитикаРасходов,
| НДСПредъявленный.ИдентификаторФинЗаписи,
+ | НДСПредъявленный.Партия КАК Партия,
+ | НДСПредъявленный.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| НДСПредъявленный.НастройкаХозяйственнойОперации
|ИЗ
| ИсправленныеСчетаФактуры КАК ИсправленныеСчетаФактуры
@@ -3503,6 +3535,8 @@
| НДСПредъявленный.СтатьяРасходов КАК СтатьяРасходов,
| НДСПредъявленный.АналитикаРасходов КАК АналитикаРасходов,
| НДСПредъявленный.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
+ | НДСПредъявленный.Партия КАК Партия,
+ | НДСПредъявленный.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| НДСПредъявленный.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ НДСПредъявленныйПоИСФ
|ИЗ
@@ -3530,6 +3564,8 @@
| НДСПредъявленный.СтатьяРасходов,
| НДСПредъявленный.АналитикаРасходов,
| НДСПредъявленный.ИдентификаторФинЗаписи,
+ | НДСПредъявленный.Партия КАК Партия,
+ | НДСПредъявленный.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| НДСПредъявленный.НастройкаХозяйственнойОперации
| ИЗ
| НДСПредъявленныйИсправленныеСчетаФактуры КАК НДСПредъявленный
@@ -3560,6 +3596,8 @@
| НДСПредъявленный.СтатьяРасходов,
| НДСПредъявленный.АналитикаРасходов,
| НДСПредъявленный.ИдентификаторФинЗаписи,
+ | НДСПредъявленный.Партия КАК Партия,
+ | НДСПредъявленный.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| НДСПредъявленный.НастройкаХозяйственнойОперации
| ИЗ
| НДСПредъявленныйИсправленныеСчетаФактуры КАК НДСПредъявленный
@@ -3598,6 +3636,8 @@
| НДСПредъявленный.СтатьяРасходов,
| НДСПредъявленный.АналитикаРасходов,
| НДСПредъявленный.ИдентификаторФинЗаписи,
+ | НДСПредъявленный.Партия,
+ | НДСПредъявленный.АналитикаУчетаПартий,
| НДСПредъявленный.НастройкаХозяйственнойОперации
|
|ИМЕЮЩИЕ
@@ -3658,6 +3698,8 @@
| """" КАК ИдентификаторСтроки,
| ИСТИНА КАК РегламентнаяОперация,
| ЛОЖЬ КАК Сторно,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | НЕОПРЕДЕЛЕНО КАК АналитикаУчетаПартий,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПустаяСсылка) КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ НДСПредъявленныйВосстановлениеПодВидДеятельности
|ГДЕ
@@ -4339,6 +4381,8 @@
| ТаблицаНДСПредъявленныйПринятиеКВычету.ПовторныйВычет КАК ПовторныйВычет,
| ТаблицаНДСПредъявленныйПринятиеКВычету.КодОперации КАК КодОперации,
| ЛОЖЬ КАК Сторно,
+ | ТаблицаНДСПредъявленныйПринятиеКВычету.Партия КАК Партия,
+ | ТаблицаНДСПредъявленныйПринятиеКВычету.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПринятиеНДСкВычету) КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ НДСПредъявленныйПринятиеКВычету
|ИЗ
@@ -4391,6 +4435,8 @@
| """" КАК ИдентификаторСтроки,
| ИСТИНА КАК РегламентнаяОперация,
| ЛОЖЬ КАК Сторно,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | НЕОПРЕДЕЛЕНО КАК АналитикаУчетаПартий,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВосстановлениеНДС) КАК НастройкаХозяйственнойОперации
|
|ПОМЕСТИТЬ НДСПредъявленныйВосстановлениеПоКСФ
@@ -4560,6 +4606,8 @@
| ИСТИНА КАК РегламентнаяОперация,
| ЛОЖЬ КАК ПовторныйВычет,
| ЛОЖЬ КАК Сторно,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | НЕОПРЕДЕЛЕНО КАК АналитикаУчетаПартий,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеНДСПоПриобретеннымЦенностям) КАК
| НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ НДСПредъявленныйПогрешностиОкругления
@@ -4604,6 +4652,8 @@
| ИСТИНА КАК РегламентнаяОперация,
| ЛОЖЬ КАК ПовторныйВычет,
| ЛОЖЬ КАК Сторно,
+ | НЕОПРЕДЕЛЕНО КАК Партия,
+ | НЕОПРЕДЕЛЕНО КАК АналитикаУчетаПартий,
| НЕОПРЕДЕЛЕНО КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ НДСПредъявленныйПогрешностиОкругления
|ГДЕ
@@ -4680,6 +4730,8 @@
| НДСПредъявленный.РегламентнаяОперация КАК РегламентнаяОперация,
| НДСПредъявленный.Сторно КАК Сторно,
| НДСПредъявленный.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
+ | НДСПредъявленный.Партия КАК Партия,
+ | НДСПредъявленный.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| НДСПредъявленный.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ НДСПредъявленныйСохранение
|ИЗ
@@ -4803,6 +4855,8 @@
| НДСПредъявленный.РегламентнаяОперация КАК РегламентнаяОперация,
| НДСПредъявленный.Сторно КАК Сторно,
| НДСПредъявленный.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
+ | НДСПредъявленный.Партия КАК Партия,
+ | НДСПредъявленный.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| НДСПредъявленный.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ИЗ
| &НДСПредъявленный КАК НДСПредъявленный";
diff --git a/src/CommonModules/УчетПодакцизныхТоваров/Ext/Module.bsl b/src/CommonModules/УчетПодакцизныхТоваров/Ext/Module.bsl
index 98658a88f..fc91e1f63 100644
--- a/src/CommonModules/УчетПодакцизныхТоваров/Ext/Module.bsl
+++ b/src/CommonModules/УчетПодакцизныхТоваров/Ext/Module.bsl
@@ -418,6 +418,84 @@
КонецПроцедуры
+// Добавляет запрос в пакет запросов для получения реквизитов расчета акциза при пакетной обработке строк табличной части.
+//
+// Параметры:
+// СтруктураДействий - см. ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ.СтруктураДействий
+// ОписаниеЗапроса - см. ПакетнаяОбработкаТабличнойЧастиСервер.ОписаниеЗапроса
+// КэшированныеЗначения - см. ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения
+//
+Процедура ДополнитьТекстЗапросаРеквизитыРасчетаАкциза(
+ СтруктураДействий, ОписаниеЗапроса, КэшированныеЗначения) Экспорт
+
+ Перем СтруктураПараметровДействия;
+
+ Если ПакетнаяОбработкаТабличнойЧастиСервер.ТребуетсяВыполнитьДействие(
+ "ЗаполнитьРеквизитыРасчетаАкциза",
+ СтруктураДействий,
+ КэшированныеЗначения,
+ СтруктураПараметровДействия) Тогда
+
+ // Получим параметры расчета суммы Акциза
+ ТекстЗапроса =
+ УчетПодакцизныхТоваров.ТекстЗапросаДанныеПодакцизныхТоваров(Истина, "ВтИсточникДанных");
+ Если ОписаниеЗапроса.ТекстыЗапросов.НайтиПоЗначению(ТекстЗапроса) = Неопределено Тогда
+ МассивТекстовЗапроса = СтрРазделить(ТекстЗапроса, ";");
+ Счетчик = 1;
+ Если МассивТекстовЗапроса.Количество() > 0 Тогда
+ Для Каждого Текст Из МассивТекстовЗапроса Цикл
+ ПозицияИз = СтрНайти(Текст, "ИЗ", НаправлениеПоиска.СНачала);
+ ПозицияПоместить = СтрНайти(Текст, "ПОМЕСТИТЬ", НаправлениеПоиска.СНачала);
+ НаименованиеТаблицы = Сред(Текст, ПозицияПоместить, ПозицияИз - ПозицияПоместить);
+ ОписаниеЗапроса.ТекстыЗапросов.Добавить(Текст, СокрЛП(СтрЗаменить(НаименованиеТаблицы, "ПОМЕСТИТЬ", "")));
+ Счетчик = Счетчик + 1;
+ КонецЦикла;
+ КонецЕсли;
+ КонецЕсли;
+
+ ТекстЗапроса = Неопределено;
+
+ //++ Локализация
+
+
+ //-- Локализация
+
+ Если ТекстЗапроса = Неопределено Тогда
+ ТекстЗапроса =
+ "ВЫБРАТЬ
+ | Товары.ИдентификаторСтрокиВТ КАК ИдентификаторСтрокиВТ,
+ | ЕСТЬNULL(ПодакцизныеТовары.ПодакцизныйТовар, ЛОЖЬ) КАК ПодакцизныйТовар,
+ | Ложь КАК МаркируемаяПродукция,
+ | ЕСТЬNULL(ПодакцизныеТовары.КоэффициентПересчетаЕдиницИзмерения, 0)
+ | * Товары.Количество КАК НалоговаяБазаАкцизы,
+ | ЕСТЬNULL(ПодакцизныеТовары.Ставка, 0) КАК ТвердаяСтавкаАкциза,
+ | ЕСТЬNULL(ПодакцизныеТовары.СтавкаРегл, 0) * ЕСТЬNULL(ПодакцизныеТовары.КоэффициентПересчетаЕдиницИзмерения, 0)
+ | * Товары.Количество КАК СуммаАкциза,
+ | ЕСТЬNULL(ПодакцизныеТовары.КатегорияПодакцизногоТовара, ЗНАЧЕНИЕ(Справочник.КатегорииПодакцизныхТоваров.ПустаяСсылка)) КАК КатегорияПодакцизныхТоваров,
+ | ЕСТЬNULL(УпаковкиЕдиницыИзмерения.Код, """") КАК ЕдиницаИзмеренияАкциза,
+ | ЕСТЬNULL(ПодакцизныеТовары.КоэффициентПересчетаЕдиницИзмерения, 0) КАК КоэффициентПересчета
+ |ИЗ
+ | ВтИсточникДанных КАК Товары
+ | ЛЕВОЕ СОЕДИНЕНИЕ ПодакцизныеТовары КАК ПодакцизныеТовары
+ | ПО Товары.Номенклатура = ПодакцизныеТовары.Номенклатура
+ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения
+ | ПО ПодакцизныеТовары.ЕдиницаИзмеренияАкциза = УпаковкиЕдиницыИзмерения.Ссылка
+ |";
+ КонецЕсли;
+
+ Дата = СтруктураПараметровДействия.Дата;
+ Организация = СтруктураПараметровДействия.Организация;
+ ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация);
+ ОписаниеЗапроса.ПараметрыЗапроса.Вставить("Период", ?(ЗначениеЗаполнено(Дата), Дата, ТекущаяДатаСеанса()));
+ ОписаниеЗапроса.ПараметрыЗапроса.Вставить("СтранаРегистрации",
+ ЗначениеНастроекКлиентСерверПовтИсп.СтранаРегистрацииОрганизации(Организация));
+ ОписаниеЗапроса.ПараметрыЗапроса.Вставить("БазоваяВалюта", ВалютаРегламентированногоУчета);
+ ОписаниеЗапроса.ТекстыЗапросов.Добавить(ТекстЗапроса, "ЗаполнитьРеквизитыРасчетаАкциза");
+
+ КонецЕсли;
+
+КонецПроцедуры
+
// Добавляет запрос в пакет запросов для получения параметров пересчета суммы акциза при пакетной обработке
// строк табличной части.
//
@@ -585,6 +663,45 @@
КонецПроцедуры
+// Заполняет реквизиты Подакцизных товаров в текущей обрабатываемой строке табличной части в механизмах
+// пакетной обработки строк табличных частей.
+//
+// Параметры:
+// ТекущаяСтрока - см. ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ
+// СтруктураДействий - см. ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ.СтруктураДействий
+// КэшированныеЗначения - см. ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения
+//
+Процедура ЗаполнитьРеквизитыРасчетаАкциза(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения) Экспорт
+
+ Если Не СтруктураДействий.Свойство("ЗаполнитьРеквизитыРасчетаАкциза") Тогда
+ Возврат;
+ КонецЕсли;
+
+ ДанныеДляОбработки = ПакетнаяОбработкаТабличнойЧастиСервер.ДанныеДляОбработкиСтроки(
+ "ЗаполнитьРеквизитыРасчетаАкциза", КэшированныеЗначения);
+
+ Если ДанныеДляОбработки <> Неопределено Тогда
+ ТекущаяСтрока.ПодакцизныйТовар = ДанныеДляОбработки[0].ПодакцизныйТовар;
+ ТекущаяСтрока.КатегорияПодакцизныхТоваров = ДанныеДляОбработки[0].КатегорияПодакцизныхТоваров;
+ ТекущаяСтрока.ТвердаяСтавкаАкциза = ДанныеДляОбработки[0].ТвердаяСтавкаАкциза;
+ ТекущаяСтрока.ЕдиницаИзмеренияАкциза = ДанныеДляОбработки[0].ЕдиницаИзмеренияАкциза;
+ ТекущаяСтрока.КоэффициентПересчета = ДанныеДляОбработки[0].КоэффициентПересчета;
+ ТекущаяСтрока.НалоговаяБазаАкцизы = ДанныеДляОбработки[0].НалоговаяБазаАкцизы;
+ ТекущаяСтрока.СуммаАкциза = ДанныеДляОбработки[0].СуммаАкциза;
+ ТекущаяСтрока.МаркируемаяПродукция = ДанныеДляОбработки[0].МаркируемаяПродукция;
+ Иначе
+ ТекущаяСтрока.ПодакцизныйТовар = Ложь;
+ ТекущаяСтрока.КатегорияПодакцизныхТоваров = Справочники.КатегорииПодакцизныхТоваров.ПустаяСсылка();
+ ТекущаяСтрока.ТвердаяСтавкаАкциза = 0;
+ ТекущаяСтрока.ЕдиницаИзмеренияАкциза = Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка();
+ ТекущаяСтрока.КоэффициентПересчета = 0;
+ ТекущаяСтрока.НалоговаяБазаАкцизы = 0;
+ ТекущаяСтрока.СуммаАкциза = 0;
+ ТекущаяСтрока.МаркируемаяПродукция = Ложь;
+ КонецЕсли;
+
+КонецПроцедуры
+
// Пересчитывает сумму акциза для текущей обрабатываемой строки табличной части в механизмах пакетной обработки
// строк табличных частей.
//
@@ -1088,6 +1205,7 @@
|ВЫБРАТЬ
| ТаблицаКатегории.Номенклатура КАК Номенклатура,
| ТаблицаКатегории.ПодакцизныйТовар КАК ПодакцизныйТовар,
+ | ТаблицаКатегории.КатегорияПодакцизногоТовара КАК КатегорияПодакцизногоТовара,
| ТаблицаСтавкиПоКатегориям.Ставка КАК Ставка,
| КатегорииПодакцизныхТоваров.Код КАК КодАкциза,
| КатегорииПодакцизныхТоваров.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
@@ -1132,6 +1250,7 @@
| ПодакцизныеТовары.ПодакцизныйТовар КАК ПодакцизныйТовар,
| ПодакцизныеТовары.Ставка КАК Ставка,
| ПодакцизныеТовары.КодАкциза КАК КодАкциза,
+ | ПодакцизныеТовары.КатегорияПодакцизногоТовара КАК КатегорияПодакцизногоТовара,
| ПодакцизныеТовары.Ставка * ЕСТЬNULL(КурсыВалют.КоэффициентПересчета, 1) КАК СтавкаРегл,
| ПодакцизныеТовары.ЕдиницаИзмерения КАК ЕдиницаИзмеренияАкциза,
| ПодакцизныеТовары.КоэффициентПересчета КАК КоэффициентПересчетаЕдиницИзмерения,
@@ -1156,6 +1275,7 @@
| ЛОЖЬ КАК ПодакцизныйТовар,
| 0 КАК Ставка,
| """" КАК КодАкциза,
+ | ЗНАЧЕНИЕ(Справочник.КатегорииПодакцизныхТоваров.ПустаяСсылка) КАК КатегорияПодакцизногоТовара,
| 0 КАК СтавкаРегл,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК ЕдиницаИзмеренияАкциза,
| 1 КАК КоэффициентПересчетаЕдиницИзмерения,
diff --git a/src/CommonModules/УчетныеЗаписиЭДО/Ext/Module.bsl b/src/CommonModules/УчетныеЗаписиЭДО/Ext/Module.bsl
index 485a7a07c..8415bc2ae 100644
--- a/src/CommonModules/УчетныеЗаписиЭДО/Ext/Module.bsl
+++ b/src/CommonModules/УчетныеЗаписиЭДО/Ext/Module.bsl
@@ -358,6 +358,24 @@
|;
|
|////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | УчетныеЗаписиЭДО.ИдентификаторЭДО КАК ИдентификаторОтправителя,
+ | ЛОЖЬ КАК ОбменБезПодписи
+ |ПОМЕСТИТЬ НастройкиОтправкиЭлектронныхДокументовПоВидам
+ |ИЗ
+ | УчетныеЗаписиЭДО КАК УчетныеЗаписиЭДО
+ |ГДЕ
+ | 1 В
+ | (ВЫБРАТЬ ПЕРВЫЕ 1
+ | 1
+ | ИЗ
+ | РегистрСведений.НастройкиОтправкиЭлектронныхДокументовПоВидам КАК НастройкиОтправкиЭлектронныхДокументовПоВидам
+ | ГДЕ
+ | НастройкиОтправкиЭлектронныхДокументовПоВидам.ИдентификаторОтправителя = УчетныеЗаписиЭДО.ИдентификаторЭДО
+ | И НЕ НастройкиОтправкиЭлектронныхДокументовПоВидам.ОбменБезПодписи)
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| УчетныеЗаписиЭДО.ИдентификаторЭДО КАК ИдентификаторЭДО
|ПОМЕСТИТЬ УчетныеЗаписиСНедоступнымиСертификатами
@@ -405,7 +423,6 @@
Запросы.Добавить(ИнтеграцияЭДО.ЗапросДоступныхОрганизаций("Организации"));
ОтборУчетныхЗаписей = НовыйОтборУчетныхЗаписей();
Запросы.Добавить(ЗапросУчетныхЗаписей("УчетныеЗаписиЭДО", ОтборУчетныхЗаписей));
- Запросы.Добавить(НастройкиЭДО.ЗапросНастроекОтправкиУчетныхЗаписей("НастройкиОтправкиЭлектронныхДокументовПоВидам"));
Запросы.Добавить(ЗапросСертификатовУчетныхЗаписей("СертификатыУчетныхЗаписей"));
ОтборДействующихСертификатов = КриптографияБЭД.НовыйОтборСертификатов();
@@ -779,6 +796,7 @@
//
// Параметры:
// ИдентификаторУчетнойЗаписи - Строка
+// КэшЦиклов - Соответствие из КлючИЗначение, Неопределено - Возвращаемый параметр, кэширует значение между циклами.
// Возвращаемое значение:
// Структура, Неопределено - данные учетной записи:
// * НаименованиеУчетнойЗаписи - Строка - наименование учетной записи
@@ -786,18 +804,47 @@
// * Организация - ОпределяемыйТип.Организация
// * ОператорЭДО - Строка - идентификатор оператора электронного документооборота
// * СпособОбменаЭД - ПеречислениеСсылка.СпособыОбменаЭД
-Функция ДанныеУчетнойЗаписи(ИдентификаторУчетнойЗаписи) Экспорт
+Функция ДанныеУчетнойЗаписи(ИдентификаторУчетнойЗаписи, КэшЦиклов = Неопределено) Экспорт
Данные = Неопределено;
- Если ОбщегоНазначения.ПодсистемаСуществует(
- "ЭлектронноеВзаимодействие.ЭлектронноеАктированиеЕИС") Тогда
- МодульЭлектронноеАктированиеЕИС = ОбщегоНазначения.ОбщийМодуль("ЭлектронноеАктированиеЕИС");
- Если МодульЭлектронноеАктированиеЕИС.ИспользоватьЭлектронноеАктированиеВЕИС() Тогда
- ДанныеУчетнойЗаписиЕИС = МодульЭлектронноеАктированиеЕИС.ДанныеУчетнойЗаписи(ИдентификаторУчетнойЗаписи);
- Если ЗначениеЗаполнено(ДанныеУчетнойЗаписиЕИС) Тогда
- Возврат ДанныеУчетнойЗаписиЕИС;
+ КэшДанныеУчетныхЗаписей = Неопределено;
+ Если КэшЦиклов <> Неопределено Тогда
+ Если КэшЦиклов["КэшДанныеУчетныхЗаписей"] = Неопределено Тогда
+ КэшЦиклов["КэшДанныеУчетныхЗаписей"] = Новый Соответствие;
+ КонецЕсли;
+ КэшДанныеУчетныхЗаписей = КэшЦиклов["КэшДанныеУчетныхЗаписей"];
+ КонецЕсли;
+ Если КэшДанныеУчетныхЗаписей <> Неопределено
+ И КэшДанныеУчетныхЗаписей[ИдентификаторУчетнойЗаписи] <> Неопределено Тогда
+ Возврат КэшДанныеУчетныхЗаписей[ИдентификаторУчетнойЗаписи];
+ КонецЕсли;
+
+ МодульЭлектронноеАктированиеЕИС = Неопределено;
+ Если КэшЦиклов <> Неопределено И КэшЦиклов["ИспользоватьЭлектронноеАктированиеВЕИС"] <> Неопределено Тогда
+ ИспользоватьЭлектронноеАктированиеВЕИС = КэшЦиклов["ИспользоватьЭлектронноеАктированиеВЕИС"];
+ Иначе
+ Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ЭлектронноеАктированиеЕИС") Тогда
+ МодульЭлектронноеАктированиеЕИС = ОбщегоНазначения.ОбщийМодуль("ЭлектронноеАктированиеЕИС");
+ ИспользоватьЭлектронноеАктированиеВЕИС =
+ МодульЭлектронноеАктированиеЕИС.ИспользоватьЭлектронноеАктированиеВЕИС();
+ Иначе
+ ИспользоватьЭлектронноеАктированиеВЕИС = Ложь;
+ КонецЕсли;
+ Если КэшЦиклов <> Неопределено Тогда
+ КэшЦиклов["ИспользоватьЭлектронноеАктированиеВЕИС"] = ИспользоватьЭлектронноеАктированиеВЕИС;
+ КонецЕсли;
+ КонецЕсли;
+ Если ИспользоватьЭлектронноеАктированиеВЕИС Тогда
+ Если МодульЭлектронноеАктированиеЕИС = Неопределено Тогда
+ МодульЭлектронноеАктированиеЕИС = ОбщегоНазначения.ОбщийМодуль("ЭлектронноеАктированиеЕИС");
+ КонецЕсли;
+ ДанныеУчетнойЗаписиЕИС = МодульЭлектронноеАктированиеЕИС.ДанныеУчетнойЗаписи(ИдентификаторУчетнойЗаписи);
+ Если ЗначениеЗаполнено(ДанныеУчетнойЗаписиЕИС) Тогда
+ Если КэшДанныеУчетныхЗаписей <> Неопределено Тогда
+ КэшДанныеУчетныхЗаписей[ИдентификаторУчетнойЗаписи] = ДанныеУчетнойЗаписиЕИС;
КонецЕсли;
+ Возврат ДанныеУчетнойЗаписиЕИС;
КонецЕсли;
КонецЕсли;
@@ -828,6 +875,10 @@
КонецЕсли;
+ Если КэшДанныеУчетныхЗаписей <> Неопределено Тогда
+ КэшДанныеУчетныхЗаписей[ИдентификаторУчетнойЗаписи] = Данные;
+ КонецЕсли;
+
Возврат Данные;
КонецФункции
@@ -1532,6 +1583,12 @@
КонецФункции
+// Возвращаемое значение:
+// Булево
+Функция ЕстьУчетныеЗаписиЭДО() Экспорт
+ Возврат Не РегистрыСведений.УчетныеЗаписиЭДО.УчетныеЗаписиОтсутствуют();
+КонецФункции
+
// Параметры:
// Организация - ОпределяемыйТип.Организация
// ИспользоватьЦентрЭДО - Неопределено,Булево
@@ -1810,6 +1867,95 @@
КонецПроцедуры
+#Область ОбновлениеКонфигурации
+
+// См. ЭлектронноеВзаимодействие.ПриДобавленииОбработчиковОбновления.
+//
+// Параметры:
+// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления
+Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
+
+#Область Версия_1_9_16
+
+#Область Константы_ДатаОтключенияAPIТакском_ОбработатьДанныеДляПереходаНаНовуюВерсию
+
+ Обработчик = Обработчики.Добавить();
+ Обработчик.Версия = "1.9.16.31";
+ Обработчик.РежимВыполнения = "Отложенно";
+ Обработчик.Процедура = "Константы.ДатаОтключенияAPIТакскомЭДО.ОбработатьДанныеДляПереходаНаНовуюВерсию";
+ Обработчик.Идентификатор = Новый УникальныйИдентификатор("3795fcd8-af98-443b-85fa-f627fe8ffd0e");
+ Обработчик.ПроцедураЗаполненияДанныхОбновления = "ЭлектронноеВзаимодействие.ЗаполнениеДанныхОбновления";
+ Обработчик.ОчередьОтложеннойОбработки = 1;
+ Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
+ Обработчик.БлокируемыеОбъекты = "";
+ Обработчик.Комментарий = НСтр("ru = '1С:Обмен с контрагентами: Установка даты отключения API из сохраненных данных патча'");
+
+ Изменяемые = Новый Массив;
+ Изменяемые.Добавить(Метаданные.Константы.ДатаОтключенияAPIТакскомЭДО.ПолноеИмя());
+ Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ",");
+#КонецОбласти
+
+#Область Константы_ДатаПереводаАбонентовИзТакском_ОбработатьДанныеДляПереходаНаНовуюВерсию
+
+ Обработчик = Обработчики.Добавить();
+ Обработчик.Версия = "1.9.16.31";
+ Обработчик.РежимВыполнения = "Отложенно";
+ Обработчик.Процедура = "Константы.ДатаПереводаАбонентовИзТакскомЭДО.ОбработатьДанныеДляПереходаНаНовуюВерсию";
+ Обработчик.Идентификатор = Новый УникальныйИдентификатор("6cb5d807-e75e-456f-b54f-4b1b11bc28ca");
+ Обработчик.ПроцедураЗаполненияДанныхОбновления = "ЭлектронноеВзаимодействие.ЗаполнениеДанныхОбновления";
+ Обработчик.ОчередьОтложеннойОбработки = 1;
+ Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
+ Обработчик.БлокируемыеОбъекты = "";
+ Обработчик.Комментарий = НСтр("ru = '1С:Обмен с контрагентами: Установка даты перевода абонентов поддержкой из сохраненных данных патча'");
+
+ Изменяемые = Новый Массив;
+ Изменяемые.Добавить(Метаданные.Константы.ДатаПереводаАбонентовИзТакскомЭДО.ПолноеИмя());
+ Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ",");
+
+#КонецОбласти
+
+#Область РегистрыСведений_УчетныеЗаписиПереведенныеИзТакском_ОбработатьДанныеДляПереходаНаНовуюВерсию
+
+ Обработчик = Обработчики.Добавить();
+ Обработчик.Версия = "1.9.16.31";
+ Обработчик.РежимВыполнения = "Отложенно";
+ Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
+ Обработчик.Процедура = "РегистрыСведений.УчетныеЗаписиПереведенныеИзТакскомЭДО.ОбработатьДанныеДляПереходаНаНовуюВерсию";
+ Обработчик.Идентификатор = Новый УникальныйИдентификатор("ada22dca-e83f-45e8-a0ee-1ab535d13ec9");
+ Обработчик.ПроцедураЗаполненияДанныхОбновления = "ЭлектронноеВзаимодействие.ЗаполнениеДанныхОбновления";
+ Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
+ Обработчик.Комментарий = НСтр("ru = '1С:Обмен с контрагентами: заполнение переведенных в хаб учетных записей из сохраненных данных патча.'");
+
+ Изменяемые = Новый Массив;
+ Изменяемые.Добавить(Метаданные.РегистрыСведений.УчетныеЗаписиПереведенныеИзТакскомЭДО.ПолноеИмя());
+ Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ",");
+
+#КонецОбласти
+
+#Область РегистрыСведений_ОшибкиПереводаАбонентовВХАБ_ОбработатьДанныеДляПереходаНаНовуюВерсию
+
+ Обработчик = Обработчики.Добавить();
+ Обработчик.Версия = "1.9.16.31";
+ Обработчик.РежимВыполнения = "Отложенно";
+ Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
+ Обработчик.Процедура = "РегистрыСведений.ОшибкиПереводаАбонентовВХАБЭДО.ОбработатьДанныеДляПереходаНаНовуюВерсию";
+ Обработчик.Идентификатор = Новый УникальныйИдентификатор("7b1d3661-c802-4f2b-9402-bc328d0ffeb1");
+ Обработчик.ПроцедураЗаполненияДанныхОбновления = "ЭлектронноеВзаимодействие.ЗаполнениеДанныхОбновления";
+ Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
+ Обработчик.Комментарий = НСтр("ru = '1С:Обмен с контрагентами: заполнение регистра ошибок перевода абонентов в ХАБ из сохраненных данных патча.'");
+
+ Изменяемые = Новый Массив;
+ Изменяемые.Добавить(Метаданные.РегистрыСведений.ОшибкиПереводаАбонентовВХАБЭДО.ПолноеИмя());
+ Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ",");
+
+#КонецОбласти
+
+#КонецОбласти
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
// Выполняет проверку существования учетной записи ЭДО.
@@ -1922,6 +2068,365 @@
КонецФункции
+#Область ПереводАбонентовИзТакскомВХаб
+
+// Параметры:
+// КлючиСинхронизации - См. СинхронизацияЭДОКлиентСервер.НовыеКлючиСинхронизации
+Процедура ПеревестиУчетныеЗаписиТакскомВХаб(КлючиСинхронизации) Экспорт
+
+ УстановитьПривилегированныйРежим(Истина);
+ Если Не ДоступенПереводАбонентовИзТакскомВХаб() Тогда
+ Возврат;
+ КонецЕсли;
+
+ УчетныеЗаписиПереведенныеИзТакском = СписокУчетныхЗаписейПереведенныхИзТакском();
+ КлючиСинхронизацииЗаписейКПереводу = Новый Соответствие;
+ СертификатыКлючейКПереводу = Новый Массив;
+ Для Каждого КлючЗначениеКлючаСинхронизации Из КлючиСинхронизации Цикл
+ КлючСинхронизации = КлючЗначениеКлючаСинхронизации.Значение;
+ Если КлючСинхронизации.СпособОбмена = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском
+ И УчетныеЗаписиПереведенныеИзТакском.Найти(КлючСинхронизации.ИдентификаторУчетнойЗаписи) = Неопределено Тогда
+
+ КлючиСинхронизацииЗаписейКПереводу.Вставить(КлючЗначениеКлючаСинхронизации.Ключ, КлючСинхронизации);
+ СертификатыКлючейКПереводу.Добавить(КлючСинхронизации.ВыбранныйСертификат);
+ КонецЕсли;
+ КонецЦикла;
+
+ СвойстваСертификатов = КриптографияБЭД.СвойстваСертификатов(СертификатыКлючейКПереводу);
+ Для Каждого КлючЗначениеКлючаСинхронизацииКПереводу Из КлючиСинхронизацииЗаписейКПереводу Цикл
+ КлючСинхронизации = КлючЗначениеКлючаСинхронизацииКПереводу.Значение;
+ СвойстваСертификата = СвойстваСертификатов.Получить(КлючСинхронизации.ВыбранныйСертификат);
+ Если ЗначениеЗаполнено(СвойстваСертификата) Тогда
+ СервисЭДО.ПеревестиУчетнуюЗаписьИзТакскомВХаб(КлючСинхронизации,
+ СвойстваСертификата.ДанныеСертификата);
+ КонецЕсли;
+ КонецЦикла;
+
+ УстановитьПривилегированныйРежим(Ложь);
+КонецПроцедуры
+
+Процедура ИзменитьСпособОбменаВсехУчетныхЗаписейПереводимыхИзТакском() Экспорт
+ УстановитьПривилегированныйРежим(Истина);
+
+ ДатаПереводаАбонентовИзТакском = ДатаПереводаАбонентовИзТакском();
+ Если ЗначениеЗаполнено(ДатаПереводаАбонентовИзТакском)
+ И ДатаПереводаАбонентовИзТакском < ТекущаяДатаСеанса() Тогда
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | УчетныеЗаписиЭДО.ИдентификаторЭДО КАК ИдентификаторЭДО
+ |ИЗ
+ | РегистрСведений.УчетныеЗаписиЭДО КАК УчетныеЗаписиЭДО
+ |ГДЕ
+ | УчетныеЗаписиЭДО.СпособОбменаЭД = &СпособОбменаЭД";
+
+ Запрос.УстановитьПараметр("СпособОбменаЭД", Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском);
+
+ РезультатЗапроса = Запрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ Возврат;
+ КонецЕсли;
+
+ ВыборкаУчетныеЗаписи = РезультатЗапроса.Выбрать();
+
+ Пока ВыборкаУчетныеЗаписи.Следующий() Цикл
+ ИзменитьСпособОбменаУчетнойЗаписиПереводимойИзТакском(ВыборкаУчетныеЗаписи.ИдентификаторЭДО);
+ КонецЦикла;
+ КонецЕсли;
+ УстановитьПривилегированныйРежим(Ложь);
+КонецПроцедуры
+
+// Параметры:
+// ИдентификаторЭДО - Строка
+Процедура ИзменитьСпособОбменаУчетнойЗаписиПереводимойИзТакском(ИдентификаторЭДО) Экспорт
+
+ УстановитьПривилегированныйРежим(Истина);
+
+ Если УчетнаяЗаписьПереведенаИзТакском(ИдентификаторЭДО) Тогда
+ Возврат;
+ КонецЕсли;
+
+ ПереводЗафиксирован = Ложь;
+
+ НачатьТранзакцию();
+ Попытка
+
+ ИзменитьСпособОбменаВПереводимойУчетнойЗаписиИзТакском(ИдентификаторЭДО);
+ ИзменитьСпособОбменаОператораТакском();
+
+ ДатыЗапросаДанныхОператораЭДО = СинхронизацияЭДО.ДатыЗапросаДанныхОператораЭДО(
+ ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторЭДО),
+ СинхронизацияЭДО.ТипДанныхЗапросаОператораЭДОДокументы());
+ ДатыЗапросаДанныхОператораЭДО = ДатыЗапросаДанныхОператораЭДО.Получить(ИдентификаторЭДО);
+
+ Набор = РегистрыСведений.УчетныеЗаписиПереведенныеИзТакскомЭДО.СоздатьНаборЗаписей();
+ Набор.Отбор.ИдентификаторЭДО.Установить(ИдентификаторЭДО);
+ Запись = Набор.Добавить();
+ Запись.ИдентификаторЭДО = ИдентификаторЭДО;
+
+ Если ЗначениеЗаполнено(ДатыЗапросаДанныхОператораЭДО) Тогда
+ Запись.ДатаПолучения = ДатыЗапросаДанныхОператораЭДО.ДатаПолучения;
+ Запись.ДатаПолученияЭПД = ДатыЗапросаДанныхОператораЭДО.ДатаПолученияЭПД;
+ Запись.ПроверочнаяДатаПолучения = ДатыЗапросаДанныхОператораЭДО.ПроверочнаяДатаПолучения;
+ КонецЕсли;
+
+ Набор.Записать();
+
+ ПереводЗафиксирован = Истина;
+
+ ЗафиксироватьТранзакцию();
+ Исключение
+ ОтменитьТранзакцию();
+
+ Информация = ИнформацияОбОшибке();
+
+ ПодробныйТекстОшибкиПеревода = СтрШаблон(НСтр("ru = 'Не удалось выполнить изменение способа обмена учетной записи %1 по причине: %2'"),
+ ИдентификаторЭДО,
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация));
+
+ ЭлектронноеВзаимодействие.ОбработатьОшибку(НСтр("ru = 'Изменение способа обмена учетной записи'"),
+ ПодробныйТекстОшибкиПеревода);
+
+ КонецПопытки;
+
+ Если ПереводЗафиксирован Тогда
+ ОтклонитьВсеНепринятыеПриглашенияПриПереводеИзТакском(ИдентификаторЭДО);
+ КонецЕсли;
+
+ УстановитьПривилегированныйРежим(Ложь);
+
+КонецПроцедуры
+
+// Параметры:
+// ИдентификаторЭДО - Строка
+//
+// Возвращаемое значение:
+// Булево
+Функция УчетнаяЗаписьПереведенаИзТакском(ИдентификаторЭДО) Экспорт
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ ПЕРВЫЕ 1
+ | УчетныеЗаписиПереведенныеИзТакском.ИдентификаторЭДО
+ |ИЗ
+ | РегистрСведений.УчетныеЗаписиПереведенныеИзТакскомЭДО КАК УчетныеЗаписиПереведенныеИзТакском
+ |ГДЕ
+ | УчетныеЗаписиПереведенныеИзТакском.ИдентификаторЭДО = &ИдентификаторЭДО";
+
+ Запрос.УстановитьПараметр("ИдентификаторЭДО", ИдентификаторЭДО);
+
+ РезультатЗапроса = Запрос.Выполнить();
+
+ Возврат Не РезультатЗапроса.Пустой();
+КонецФункции
+
+// Возвращаемое значение:
+// Массив Из Строка
+Функция СписокУчетныхЗаписейПереведенныхИзТакском() Экспорт
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | УчетныеЗаписиПереведенныеИзТакском.ИдентификаторЭДО
+ |ИЗ
+ | РегистрСведений.УчетныеЗаписиПереведенныеИзТакскомЭДО КАК УчетныеЗаписиПереведенныеИзТакском";
+
+ РезультатЗапроса = Запрос.Выполнить();
+
+ Результат = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("ИдентификаторЭДО");
+ Возврат Результат;
+КонецФункции
+
+// Возвращаемое значение:
+// Булево
+Функция ТребуетсяВыполнениеДействийПоAPIТакском() Экспорт
+
+ Если НаступилаДатаОтключенияAPIТакском() Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ ПЕРВЫЕ 1
+ | УчетныеЗаписиПереведенныеИзТакском.ИдентификаторЭДО
+ |ИЗ
+ | РегистрСведений.УчетныеЗаписиПереведенныеИзТакскомЭДО КАК УчетныеЗаписиПереведенныеИзТакском";
+
+ РезультатЗапроса = Запрос.Выполнить();
+
+ Возврат Не РезультатЗапроса.Пустой();
+КонецФункции
+
+// Возвращаемое значение:
+// Булево
+Функция НаступилаДатаОтключенияAPIТакском() Экспорт
+ ДатаОтключенияAPIТакском = ДатаОтключенияAPIТакском();
+ Возврат ЗначениеЗаполнено(ДатаОтключенияAPIТакском) И ДатаОтключенияAPIТакском < ТекущаяДатаСеанса();
+КонецФункции
+
+// Возвращаемое значение:
+// Дата
+Функция ДатаОтключенияAPIТакском() Экспорт
+ ЗагрузитьДатыПереводаАбонентовИзТакском();
+
+ УстановитьПривилегированныйРежим(Истина);
+ Результат = Константы.ДатаОтключенияAPIТакскомЭДО.Получить();
+ УстановитьПривилегированныйРежим(Ложь);
+ Возврат Результат;
+КонецФункции
+
+// Возвращаемое значение:
+// Булево
+Функция НаступилаДатаПереводаАбонентовИзТакском() Экспорт
+ ДатаПереводаАбонентовИзТакском = ДатаПереводаАбонентовИзТакском();
+ Возврат ЗначениеЗаполнено(ДатаПереводаАбонентовИзТакском) И ДатаПереводаАбонентовИзТакском < ТекущаяДатаСеанса();
+КонецФункции
+
+// Параметры:
+// КлючиСинхронизации - См. СинхронизацияЭДОКлиентСервер.НовыеКлючиСинхронизации
+// ПараметрыВыполнения - См. ЭлектронныеДокументыЭДОКлиентСервер.НовыеПараметрыВыполненияДействийПоЭДО
+Процедура СкорректироватьСпособОбменаВКлючахСинхронизации(КлючиСинхронизации, ПараметрыВыполнения) Экспорт
+ Если Не ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыВыполнения, "ВыполнитьТолькоПоТакском", Ложь) Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если Не ТребуетсяВыполнениеДействийПоAPIТакском() Тогда
+ Возврат;
+ КонецЕсли;
+
+ УчетныеЗаписиПереведенныеИзТакском = СписокУчетныхЗаписейПереведенныхИзТакском();
+ Для каждого КлючЗначение Из КлючиСинхронизации Цикл
+ Если УчетныеЗаписиПереведенныеИзТакском.Найти(КлючЗначение.Ключ) <> Неопределено Тогда
+ КлючЗначение.Значение.СпособОбмена = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском;
+ КонецЕсли;
+ КонецЦикла;
+КонецПроцедуры
+
+// Параметры:
+// КлючиСинхронизации - См. СинхронизацияЭДОКлиентСервер.НовыеКлючиСинхронизации
+Процедура УдалитьПереведенныеУчетныеЗаписиТакскомаИзКлючейСинхронизации(КлючиСинхронизации) Экспорт
+ Если Не ЗначениеЗаполнено(КлючиСинхронизации) Тогда
+ Возврат;
+ КонецЕсли;
+
+ УчетныеЗаписиПереведенныеИзТакском = СписокУчетныхЗаписейПереведенныхИзТакском();
+ Если ЗначениеЗаполнено(УчетныеЗаписиПереведенныеИзТакском) Тогда
+ ИдентификаторыЭДОКУдалениюИзКлючей = Новый Массив;
+
+ Для каждого КлючЗначение Из КлючиСинхронизации Цикл
+ ИдентификаторЭДО = КлючЗначение.Ключ;
+ СвойстваКлюча = КлючЗначение.Значение;
+
+ Если СвойстваКлюча.СпособОбмена = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском
+ И УчетныеЗаписиПереведенныеИзТакском.Найти(ИдентификаторЭДО) <> Неопределено Тогда
+
+ ИдентификаторыЭДОКУдалениюИзКлючей.Добавить(ИдентификаторЭДО);
+ КонецЕсли;
+ КонецЦикла;
+
+ Для каждого ИдентификаторЭДОКУдалению Из ИдентификаторыЭДОКУдалениюИзКлючей Цикл
+ КлючиСинхронизации.Удалить(ИдентификаторЭДОКУдалению);
+ КонецЦикла;
+ КонецЕсли;
+КонецПроцедуры
+
+#Если Не ВнешнееСоединение Тогда
+// Параметры:
+// Форма - ФормаКлиентскогоПриложения
+Процедура НастроитьГруппуПредупреждениеОЗавершенииДокументовТакском(Форма) Экспорт
+ ПоказыватьСписокДокументовТакскомТребующихЗавершения = ПоказыватьСписокДокументовТакскомТребующихЗавершения();
+
+ ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ Форма.Элементы,
+ "ГруппаПредупреждениеОЗавершенииДокументовТакском",
+ "Видимость",
+ ПоказыватьСписокДокументовТакскомТребующихЗавершения);
+
+ Если ПоказыватьСписокДокументовТакскомТребующихЗавершения Тогда
+ ШаблонНадписиГруппы = НСтр("ru = 'В связи с переходом оператора Такском на платформу 1С:Хаб необходимо до %1 завершить документооборот для некоторых электронных документов. Количество документов к завершению %3.'");
+ ТекстСообщения = СтрШаблон(ШаблонНадписиГруппы,
+ Формат(ДатаОтключенияAPIТакском(), "ДЛФ=DD"),
+ "ОткрытьФормуНезавершенныхДокументовТакском",
+ КоличествоНезавершенныхДокументовТакскомПоСтаромуAPI());
+ ФорматированныйЗаголовок = СтроковыеФункции.ФорматированнаяСтрока(ТекстСообщения);
+
+ ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
+ Форма.Элементы,
+ "НадписьПредупреждениеОЗавершенииДокументовТакском",
+ "Заголовок",
+ ФорматированныйЗаголовок);
+
+ КонецЕсли;
+КонецПроцедуры
+
+#КонецЕсли
+
+// Возвращаемое значение:
+// Булево
+Функция ПоказыватьСписокДокументовТакскомТребующихЗавершения() Экспорт
+
+ ДатаОтключенияAPIТакском = ДатаОтключенияAPIТакском();
+ Если Не ЗначениеЗаполнено(ДатаОтключенияAPIТакском) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ ДатаНачалаПоказаУведомления = ДобавитьМесяц(ДатаОтключенияAPIТакском, -2);
+ Если ДатаНачалаПоказаУведомления > ТекущаяДатаСеанса() Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Если Не ЗначениеЗаполнено(СписокУчетныхЗаписейПереведенныхИзТакском()) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ КоличествоНезавершенныхДокументовТакском = КоличествоНезавершенныхДокументовТакскомПоСтаромуAPI();
+ Если КоличествоНезавершенныхДокументовТакском = 0 Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Возврат Истина;
+КонецФункции
+
+// Параметры:
+// ИдентификаторЭДО - Строка
+// ОшибкаОператора - Неопределено,
+// - См. СервисЭДО.НоваяОшибкаОператора
+Процедура ДобавитьОшибкуПереводаИзТакскомВХаб(ИдентификаторЭДО, ОшибкаОператора) Экспорт
+
+ УстановитьПривилегированныйРежим(Истина);
+ Если Не ЗначениеЗаполнено(ИдентификаторЭДО) Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если Не ЗначениеЗаполнено(ОшибкаОператора) Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если Не ЗначениеЗаполнено(ОшибкаОператора.Текст) Тогда
+ Возврат;
+ КонецЕсли;
+
+ ИдентификаторОшибки = Строка(Новый УникальныйИдентификатор);
+ ДатаОшибки = ТекущаяДатаСеанса();
+
+ ОшибкиПереводаАбонентовВХАБ = РегистрыСведений.ОшибкиПереводаАбонентовВХАБЭДО.СоздатьНаборЗаписей();
+ ОшибкиПереводаАбонентовВХАБ.Отбор.ИдентификаторЭДО.Установить(ИдентификаторЭДО);
+ ОшибкиПереводаАбонентовВХАБ.Отбор.ИдентификаторОшибки.Установить(ИдентификаторОшибки);
+ ОшибкиПереводаАбонентовВХАБ.Отбор.Дата.Установить(ДатаОшибки);
+
+ НоваяОшибки = ОшибкиПереводаАбонентовВХАБ.Добавить();
+ НоваяОшибки.ИдентификаторЭДО = ИдентификаторЭДО;
+ НоваяОшибки.ИдентификаторОшибки = ИдентификаторОшибки;
+ НоваяОшибки.ТекстОшибки = ОшибкаОператора.Текст;
+ НоваяОшибки.Дата = ДатаОшибки;
+
+ ОшибкиПереводаАбонентовВХАБ.Записать();
+
+ УстановитьПривилегированныйРежим(Ложь);
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -2177,4 +2682,273 @@
КонецПроцедуры
+#Область ПереводАбонентовИзТакскомВХаб
+
+// Возвращаемое значение:
+// Булево
+Функция ДоступенПереводАбонентовИзТакскомВХаб()
+ Возврат Ложь; // проектное поведение, перевод авторизацией выполняется только при наличии патча
+КонецФункции
+
+// Возвращаемое значение:
+// Число
+Функция КоличествоНезавершенныхДокументовТакскомПоСтаромуAPI()
+ Результат = 0;
+
+ Запрос = Новый Запрос;
+ Запрос.УстановитьПараметр("ЧерезОператораЭДОТакском", Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском);
+ Запрос.УстановитьПараметр("СостоянияЗавершенногоЭДО", РегламентыЭДО.СостоянияЗавершенногоЭДО());
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | КОЛИЧЕСТВО(СостоянияДокументовЭДО.ЭлектронныйДокумент) КАК ЭлектронныйДокумент
+ |ПОМЕСТИТЬ ВТ_ВсеДокументы
+ |ИЗ
+ | РегистрСведений.СостоянияДокументовЭДО КАК СостоянияДокументовЭДО
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЭлектронныйДокументВходящийЭДО КАК ЭлектронныйДокументВходящийЭДО
+ | ПО СостоянияДокументовЭДО.ЭлектронныйДокумент = ЭлектронныйДокументВходящийЭДО.Ссылка
+ | И НЕ СостоянияДокументовЭДО.Состояние В (&СостоянияЗавершенногоЭДО)
+ | И ЭлектронныйДокументВходящийЭДО.СпособОбмена = &ЧерезОператораЭДОТакском
+ | И ЭлектронныйДокументВходящийЭДО.ПометкаУдаления = ЛОЖЬ
+ |
+ |ОБЪЕДИНИТЬ ВСЕ
+ |
+ |ВЫБРАТЬ
+ | КОЛИЧЕСТВО(СостоянияДокументовЭДО.ЭлектронныйДокумент)
+ |ИЗ
+ | РегистрСведений.СостоянияДокументовЭДО КАК СостоянияДокументовЭДО
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЭлектронныйДокументИсходящийЭДО КАК ЭлектронныйДокументИсходящийЭДО
+ | ПО СостоянияДокументовЭДО.ЭлектронныйДокумент = ЭлектронныйДокументИсходящийЭДО.Ссылка
+ | И НЕ СостоянияДокументовЭДО.Состояние В (&СостоянияЗавершенногоЭДО)
+ | И ЭлектронныйДокументИсходящийЭДО.СпособОбмена = &ЧерезОператораЭДОТакском
+ | И ЭлектронныйДокументИсходящийЭДО.ПометкаУдаления = ЛОЖЬ
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | СУММА(ВТ_ВсеДокументы.ЭлектронныйДокумент) КАК ЭлектронныйДокумент
+ |ИЗ
+ | ВТ_ВсеДокументы КАК ВТ_ВсеДокументы";
+
+ РезультатЗапроса = Запрос.Выполнить();
+ Выборка = РезультатЗапроса.Выбрать();
+ Если Выборка.Следующий() Тогда
+ Результат = Выборка.ЭлектронныйДокумент;
+ КонецЕсли;
+ Возврат Результат;
+
+КонецФункции
+
+// Параметры:
+// ИдентификаторЭДО - Строка
+Процедура ИзменитьСпособОбменаВПереводимойУчетнойЗаписиИзТакском(ИдентификаторЭДО)
+ Поля = Новый Структура;
+ Поля.Вставить("ИдентификаторЭДО", ИдентификаторЭДО);
+ ОбщегоНазначенияБЭД.УстановитьУправляемуюБлокировку("РегистрСведений.УчетныеЗаписиЭДО", Поля);
+
+ НаборЗаписей = РегистрыСведений.УчетныеЗаписиЭДО.СоздатьНаборЗаписей();
+ НаборЗаписей.Отбор.ИдентификаторЭДО.Установить(ИдентификаторЭДО);
+ НаборЗаписей.Прочитать();
+ НаборЗаписей.Отбор.ИдентификаторЭДО.Установить(ИдентификаторЭДО);
+ Для каждого СтрокаНабора Из НаборЗаписей Цикл
+ Если СтрокаНабора.СпособОбменаЭД = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском Тогда
+ СтрокаНабора.СпособОбменаЭД = Перечисления.СпособыОбменаЭД.ЧерезСервис1СЭДО;
+
+ Если ВРег(СтрокаНабора.КодНалоговогоОргана) = "УКАЖ" Тогда
+ СтрокаНабора.КодНалоговогоОргана = "";
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+
+ НаборЗаписей.Записать();
+КонецПроцедуры
+
+Процедура ИзменитьСпособОбменаОператораТакском()
+ ИдентификаторОператораТакском = "2AL";
+ Поля = Новый Структура;
+ Поля.Вставить("ИдентификаторОператора", ИдентификаторОператораТакском);
+ ОбщегоНазначенияБЭД.УстановитьУправляемуюБлокировку("РегистрСведений.ОператорыЭДО", Поля);
+
+ НаборЗаписей = РегистрыСведений.ОператорыЭДО.СоздатьНаборЗаписей();
+ НаборЗаписей.Отбор.ИдентификаторОператора.Установить(ИдентификаторОператораТакском);
+ НаборЗаписей.Прочитать();
+
+ СпособИзменен = Ложь;
+ НаборЗаписей.Отбор.ИдентификаторОператора.Установить(ИдентификаторОператораТакском);
+ Для каждого СтрокаНабора Из НаборЗаписей Цикл
+ Если СтрокаНабора.СпособОбменаЭД = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском Тогда
+ СтрокаНабора.СпособОбменаЭД = Перечисления.СпособыОбменаЭД.ЧерезСервис1СЭДО;
+ СпособИзменен = Истина;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если СпособИзменен Тогда
+ НаборЗаписей.Записать();
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Параметры:
+// ИдентификаторЭДО - Строка
+Процедура ОтклонитьВсеНепринятыеПриглашенияПриПереводеИзТакском(ИдентификаторЭДО)
+ Запросы = Новый Массив;
+
+ Отбор = НовыйОтборУчетныхЗаписей();
+ Отбор.УчетныеЗаписи = "&ИдентификаторОрганизации";
+ ЗапросУчетныхЗаписей = ЗапросУчетныхЗаписей("УчетныеЗаписиЭДО", Отбор);
+ Запросы.Добавить(ЗапросУчетныхЗаписей);
+
+ ОтборПриглашений = ПриглашенияЭДО.НовыйОтборПриглашений();
+ ОтборПриглашений.ИдентификаторОрганизации = "&ИдентификаторОрганизации";
+ ОтборПриглашений.Статус = "&СтатусыНепринятыхПриглашений";
+ ЗапросПриглашений = ПриглашенияЭДО.ЗапросПриглашений("Приглашения", ОтборПриглашений);
+ Запросы.Добавить(ЗапросПриглашений);
+
+ Запрос = Новый Запрос;
+ Запрос.Текст = "ВЫБРАТЬ
+ | Приглашения.КлючПриглашения КАК КлючПриглашения,
+ | Приглашения.ИдентификаторОрганизации КАК ИдентификаторОрганизации,
+ | УчетныеЗаписиЭДО.Организация КАК Организация
+ |ИЗ
+ | Приглашения КАК Приглашения
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ УчетныеЗаписиЭДО КАК УчетныеЗаписиЭДО
+ | ПО Приглашения.ИдентификаторОрганизации = УчетныеЗаписиЭДО.ИдентификаторЭДО";
+
+ ИтоговыйЗапрос = ОбщегоНазначенияБЭД.СоединитьЗапросы(Запрос, Запросы);
+ ИтоговыйЗапрос.УстановитьПараметр("ИдентификаторОрганизации", ИдентификаторЭДО);
+
+ СтатусыНепринятыхПриглашений = Новый Массив;
+ СтатусыНепринятыхПриглашений.Добавить(Перечисления.СтатусыПриглашений.ОжидаемСогласия);
+ СтатусыНепринятыхПриглашений.Добавить(Перечисления.СтатусыПриглашений.ТребуетсяСогласие);
+ ИтоговыйЗапрос.УстановитьПараметр("СтатусыНепринятыхПриглашений", СтатусыНепринятыхПриглашений);
+
+ РезультатЗапроса = ИтоговыйЗапрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ Возврат;
+ КонецЕсли;
+
+ СведенияОтклоненныхПриглашений = Новый Массив;
+
+ Выборка = РезультатЗапроса.Выбрать();
+ Пока Выборка.Следующий() Цикл
+
+ НачатьТранзакцию();
+ Попытка
+ Поля = Новый Структура;
+ Поля.Вставить("Ключ", Выборка.КлючПриглашения);
+ Поля.Вставить("ИдентификаторОрганизации", Выборка.ИдентификаторОрганизации);
+ ОбщегоНазначенияБЭД.УстановитьУправляемуюБлокировку("РегистрСведений.ПриглашенияКОбменуЭлектроннымиДокументами", Поля);
+
+ НаборЗаписей = РегистрыСведений.ПриглашенияКОбменуЭлектроннымиДокументами.СоздатьНаборЗаписей();
+ НаборЗаписей.Отбор.ИдентификаторОрганизации.Установить(Выборка.ИдентификаторОрганизации);
+ НаборЗаписей.Отбор.Ключ.Установить(Выборка.КлючПриглашения);
+ НаборЗаписей.Прочитать();
+
+ НаборЗаписей.Отбор.ИдентификаторОрганизации.Установить(Выборка.ИдентификаторОрганизации);
+ НаборЗаписей.Отбор.Ключ.Установить(Выборка.КлючПриглашения);
+
+ СведенияОПриглашении = ПриглашенияЭДОСлужебный.СведенияОЗаписанномПриглашении();
+ СведенияОПриглашении.Организация = Выборка.Организация;
+
+ Для каждого СтрокаНабора Из НаборЗаписей Цикл
+ СтрокаНабора.Статус = Перечисления.СтатусыПриглашений.Отклонено;
+ СтрокаНабора.ПричинаОтказа = НСтр("ru = 'Перевод в 1С:ХАБ'");
+
+ ЗаполнитьЗначенияСвойств(СведенияОПриглашении, СтрокаНабора);
+
+ КонецЦикла;
+
+ НаборЗаписей.Записать();
+
+ СведенияОтклоненныхПриглашений.Добавить(СведенияОПриглашении);
+
+ ЗафиксироватьТранзакцию();
+ Исключение
+ ОтменитьТранзакцию();
+
+ Информация = ИнформацияОбОшибке();
+
+ ПодробныйТекстОшибкиПеревода = СтрШаблон(НСтр("ru = 'Не удалось отклонить приглашение при переводе учетной записи %1 по причине: %2'"),
+ ИдентификаторЭДО,
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация));
+
+ ЭлектронноеВзаимодействие.ОбработатьОшибку(НСтр("ru = 'Отклонение приглашений'"),
+ ПодробныйТекстОшибкиПеревода);
+
+ КонецПопытки;
+ КонецЦикла;
+
+ КонтекстДиагностики = ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики();
+ ПричинаОстановки = Перечисления.ПричиныОстановкиЭДО.ОтклонениеПриглашения;
+ Для каждого СведенияПриглашения Из СведенияОтклоненныхПриглашений Цикл
+ ЭлектронныеДокументыЭДОСлужебный.ОстановитьДокументыПослеИзмененияПриглашения(
+ СведенияПриглашения.ИдентификаторОрганизации,
+ СведенияПриглашения.ИдентификаторКонтрагента,
+ ПричинаОстановки,
+ КонтекстДиагностики,
+ Истина);
+
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ЗагрузитьДатыПереводаАбонентовИзТакском()
+ Если Не ТребуетсяСинхронизацияДатПереводаИзСервисаНастроек() Тогда
+ Возврат;
+ КонецЕсли;
+
+ ПолныйАдрес = СервисНастроекЭДО.АдресОблачногоХранилищаНастроек() + "/operators/2AL/APIDeprecationDate.json";
+ РезультатПолученияФайла = ПолучениеФайловИзИнтернета.СкачатьФайлВоВременноеХранилище(ПолныйАдрес);
+ Если РезультатПолученияФайла.Статус Тогда
+ УстановитьПривилегированныйРежим(Истина);
+
+ ДанныеФайла = ПолучитьИзВременногоХранилища(РезультатПолученияФайла.Путь);
+ ДатыИзСервиса = ОбщегоНазначенияБЭД.JSONЗначение(ДанныеФайла, Истина);
+
+ Если ЗначениеЗаполнено(ДатыИзСервиса["ДатаПереводаАбонентовИзТакском"]) Тогда
+ Константы.ДатаПереводаАбонентовИзТакскомЭДО.Установить(ПрочитатьДатуJSON(ДатыИзСервиса["ДатаПереводаАбонентовИзТакском"], ФорматДатыJSON.ISO));
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(ДатыИзСервиса["ДатаОтключенияAPIТакском"]) Тогда
+ Константы.ДатаОтключенияAPIТакскомЭДО.Установить(ПрочитатьДатуJSON(ДатыИзСервиса["ДатаОтключенияAPIТакском"], ФорматДатыJSON.ISO));
+ КонецЕсли;
+
+ СервисНастроекЭДО.ИзменитьСостояниеСинхронизации(Перечисления.ТипыСинхронизацииСервисаНастроекЭДО.СинхронизацияДатПереводаАбонентовИзТакскомВХАБ,
+ НачалоДня(ТекущаяДатаСеанса()));
+ УстановитьПривилегированныйРежим(Ложь);
+ КонецЕсли;
+КонецПроцедуры
+
+// Возвращаемое значение:
+// Булево
+Функция ТребуетсяСинхронизацияДатПереводаИзСервисаНастроек()
+
+ ДатаСинхронизацииДатПереводаАбонентовИзТакскомВХАБ = СинхронизацияЭДО.ДатаПоследнегоИзмененияДанныхСервисаНастроек(
+ Перечисления.ТипыСинхронизацииСервисаНастроекЭДО.СинхронизацияДатПереводаАбонентовИзТакскомВХАБ);
+
+ Возврат НачалоДня(ДатаСинхронизацииДатПереводаАбонентовИзТакскомВХАБ) < НачалоДня(ТекущаяДатаСеанса())
+ Или Не ЗначениеЗаполнено(ДатаСинхронизацииДатПереводаАбонентовИзТакскомВХАБ);
+
+КонецФункции
+
+// Возвращаемое значение:
+// Дата
+Функция ДатаПереводаАбонентовИзТакском()
+ ЗагрузитьДатыПереводаАбонентовИзТакском();
+
+ УстановитьПривилегированныйРежим(Истина);
+ Результат = Константы.ДатаПереводаАбонентовИзТакскомЭДО.Получить();
+ УстановитьПривилегированныйРежим(Ложь);
+ Возврат Результат;
+КонецФункции
+
+#КонецОбласти
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("АвторизоватьсяВСервисеЭДО", Истина);
+ Методы.Вставить("ДанныеПоИдентификаторамДляРегистрацииВЭДО", Истина);
+ Методы.Вставить("УдалитьУчетнуюЗапись", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/УчетныеЗаписиЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl b/src/CommonModules/УчетныеЗаписиЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
index 31a244f67..9fe40af60 100644
--- a/src/CommonModules/УчетныеЗаписиЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
+++ b/src/CommonModules/УчетныеЗаписиЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
@@ -1229,7 +1229,7 @@
СертификатыЗаявки = ОбщегоНазначения.ВыгрузитьКолонку(СертификатыПоОтпечаткам, "Значение");
ДанныеДляПодписания = НовыеДанныеДляПодписанияНаРегистрациюВЭДО();
- ДанныеДляПодписания.СертификатыДляВыбора = ОбщегоНазначенияБЭД.ПересечениеМассивов(
+ ДанныеДляПодписания.СертификатыДляВыбора = ОбщегоНазначенияБЭДКлиентСервер.ПересечениеМассивов(
ДоступныеСертификаты, СертификатыЗаявки);
ДанныеДляПодписания.ДанныеСоглашения = Base64Значение(ДанныеДляПодписанияВФорматеСервиса.ДанныеСоглашения);
ДанныеДляПодписания.ДанныеДляРегистрации = Base64Значение(ДанныеДляПодписанияВФорматеСервиса.ДанныеДляРегистрации);
@@ -1702,13 +1702,21 @@
ОписаниеВФорматеСервиса.УведомлятьОбОкончанииСрокаДействияСертификата;
ОписаниеУчетнойЗаписи.ПараметрыУведомлений = ПараметрыУведомлений;
+ ТекущиеСертификаты = УчетныеЗаписиЭДО.СертификатыУчетнойЗаписи(ОписаниеВФорматеСервиса.Идентификатор);
+
Для Каждого СертификатУчетнойЗаписи Из ОписаниеВФорматеСервиса.Сертификаты Цикл
ДанныеСертификата = Base64Значение(СертификатУчетнойЗаписи.Данные);
СсылкаНаСертификат = ЭлектроннаяПодпись.СсылкаНаСертификат(ДанныеСертификата);
Если Не ЗначениеЗаполнено(СсылкаНаСертификат) Тогда
- СсылкаНаСертификат = ЭлектроннаяПодпись.ЗаписатьСертификатВСправочник(ДанныеСертификата);
+ Продолжить;
КонецЕсли;
+
+ ТекущийСертификат = ТекущиеСертификаты.Найти(СсылкаНаСертификат, "Сертификат");
+ Если ТекущийСертификат = Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+
ОписаниеУчетнойЗаписи.Сертификаты.Добавить(СсылкаНаСертификат);
Должность = СертификатУчетнойЗаписи.Должность;
@@ -1904,4 +1912,18 @@
#КонецОбласти
-#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("АвторизоватьсяВСервисеЭДО", Истина);
+ Методы.Вставить("НастройкиУведомленийУчетнойЗаписиЭДО", Истина);
+ Методы.Вставить("ОбновитьИнформациюОбУчетнойЗаписиЭДО", Истина);
+ Методы.Вставить("ОбновитьНастройкиУведомленийУчетнойЗаписиЭДО", Истина);
+ Методы.Вставить("ОтправитьРегистрационныйПакетЭДО", Истина);
+ Методы.Вставить("ПодготовитьДанныеДляПодписанияНаРегистрациюВЭДО", Истина);
+ Методы.Вставить("ПолучитьВсеИдентификаторыУчетныхЗаписейЭДО", Истина);
+ Методы.Вставить("ПроверитьОбработкуРегистрационныхПакетовЭДО", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/УчетныеЗаписиЭДОКлиент/Ext/Module.bsl b/src/CommonModules/УчетныеЗаписиЭДОКлиент/Ext/Module.bsl
index 7aaf78779..26d8dd234 100644
--- a/src/CommonModules/УчетныеЗаписиЭДОКлиент/Ext/Module.bsl
+++ b/src/CommonModules/УчетныеЗаписиЭДОКлиент/Ext/Module.bsl
@@ -338,4 +338,17 @@
Возврат "СозданПрофиль1СЭДО";
КонецФункции
+// Параметры:
+// Элемент - Надпись
+// НавигационнаяСсылкаФорматированнойСтроки - Строка
+// СтандартнаяОбработка - Булево
+Процедура ОбработкаНавигационнойСсылкиЗавершенияДокументовТакском(Элемент, НавигационнаяСсылкаФорматированнойСтроки,
+ СтандартнаяОбработка) Экспорт
+
+ СтандартнаяОбработка = Ложь;
+ ОткрытьФорму("Обработка.ИнтерфейсДокументовЭДО.Форма.СписокДокументовТакскомКЗавершению", , , , , , ,
+ РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/УчетныеЗаписиЭДОСлужебный/Ext/Module.bsl b/src/CommonModules/УчетныеЗаписиЭДОСлужебный/Ext/Module.bsl
index fe59e3aec..14309120f 100644
--- a/src/CommonModules/УчетныеЗаписиЭДОСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/УчетныеЗаписиЭДОСлужебный/Ext/Module.bsl
@@ -953,10 +953,10 @@
Если ВидСертификата = ВидыСертификатов.СертификатЮЛ Тогда
- ЗаполенаФамилия = ЗначениеЗаполнено(СвойстваСубъектаСертификата.Фамилия);
+ ЗаполненаФамилия = ЗначениеЗаполнено(СвойстваСубъектаСертификата.Фамилия);
ЗаполненоОГРН = ЗначениеЗаполнено(СвойстваСубъектаСертификата.ОГРН);
- ЭтоОбезличенныйСертификат = Не ЗаполенаФамилия И ЗаполненоОГРН;
+ ЭтоОбезличенныйСертификат = Не ЗаполненаФамилия И ЗаполненоОГРН;
КонецЕсли;
@@ -1145,8 +1145,8 @@
Если Не СертификатОтозван Тогда
МенеджерКриптографии = ЭлектроннаяПодпись.МенеджерКриптографии("", Ложь);
ОписаниеОшибки = "";
- ДвоичныеДанныеСертификта = КриптографияБЭД.ДвоичныеДанныеСертификата(Сертификат);
- ЭлектроннаяПодпись.ПроверитьСертификат(МенеджерКриптографии, ДвоичныеДанныеСертификта, ОписаниеОшибки);
+ ДвоичныеДанныеСертификата = КриптографияБЭД.ДвоичныеДанныеСертификата(Сертификат);
+ ЭлектроннаяПодпись.ПроверитьСертификат(МенеджерКриптографии, ДвоичныеДанныеСертификата, ОписаниеОшибки);
СертификатОтозван = КриптографияБЭД.СертификатОтозван(Сертификат);
КонецЕсли;
Если СертификатОтозван Тогда
diff --git a/src/CommonModules/УчетныеЗаписиЭДОЦентрЭДО/Ext/Module.bsl b/src/CommonModules/УчетныеЗаписиЭДОЦентрЭДО/Ext/Module.bsl
index 7b8fe3f05..3098e5fed 100644
--- a/src/CommonModules/УчетныеЗаписиЭДОЦентрЭДО/Ext/Module.bsl
+++ b/src/CommonModules/УчетныеЗаписиЭДОЦентрЭДО/Ext/Module.bsl
@@ -215,14 +215,8 @@
Возврат Результат;
КонецЕсли;
- ПараметрыУчетнойЗаписиЭДО = РегистрыСведений.ЗаявкиНаРегистрациюВЭДО.НовыеПараметрыУчетнойЗаписиЭДО();
- ПараметрыУчетнойЗаписиЭДО.Назначение = ДанныеЗаявки.Назначение;
- ПараметрыУчетнойЗаписиЭДО.ПодробноеОписание = ДанныеЗаявки.ПодробноеОписание;
- ПараметрыУчетнойЗаписиЭДО.ДатаПолученияДокументов = ДанныеЗаявки.ДатаПолученияДокументов;
- ПараметрыУчетнойЗаписиЭДО.РежимПереходаВЦентрЭДО = ДанныеЗаявки.РежимПереходаВЦентрЭДО;
-
РезультатЗаписи = РегистрыСведений.ЗаявкиНаРегистрациюВЭДО.ЗаписатьЗаявкуНаРегистрациюВЭДО(
- ПараметрыРегистрации, ДанныеПакета, ПараметрыУчетнойЗаписиЭДО);
+ ПараметрыРегистрации, ДанныеПакета);
Если РезультатЗаписи.Успех Тогда
Результат.Успех = Истина;
@@ -318,9 +312,10 @@
Возврат Результат;
КонецЕсли;
- Если ЗначениеЗаполнено(ДанныеЗаявки.ИдентификаторЭДО)
- И Не ТребуетсяАктуализацияСертификатовВУчетнойЗаписи(СертификатыДляРегистрации,
- ДанныеЗаявки.ИдентификаторЭДО) Тогда
+ ДополнитьСертификатамиУчетнойЗаписиДляРегистрацииВЭДО(
+ СертификатыДляРегистрации, ДанныеЗаявки.ИдентификаторЭДО);
+
+ Если Не ЗначениеЗаполнено(СертификатыДляРегистрации) Тогда
Ошибка = НоваяОшибкаФормированияЗаявкиНаРегистрацию();
Ошибка.СертификатыУжеЗарегистрированы = Истина;
Результат.Ошибка = Ошибка;
@@ -1187,7 +1182,7 @@
Возврат;
КонецЕсли;
- СертификатыУчетнойЗаписи = РегистрыСведений.СертификатыУчетныхЗаписейЭДО.СертификатыУчетнойЗаписи(
+ СертификатыУчетнойЗаписи = УчетныеЗаписиЭДО.СертификатыУчетнойЗаписи(
ИдентификаторЭДО).ВыгрузитьКолонку("Сертификат");
НезарегистрированныеСертификаты = ОбщегоНазначенияКлиентСервер.РазностьМассивов(
@@ -1202,22 +1197,6 @@
КонецПроцедуры
-// Параметры:
-// СертификатыДляРегистрации - Массив из СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
-// ИдентификаторЭДО - Строка
-Функция ТребуетсяАктуализацияСертификатовВУчетнойЗаписи(СертификатыДляРегистрации, ИдентификаторЭДО)
-
- Если Не ЗначениеЗаполнено(ИдентификаторЭДО) Тогда
- Возврат Ложь;
- КонецЕсли;
-
- СертификатыУчетнойЗаписи = РегистрыСведений.СертификатыУчетныхЗаписейЭДО.СертификатыУчетнойЗаписи(
- ИдентификаторЭДО).ВыгрузитьКолонку("Сертификат");
-
- Возврат Не ОбщегоНазначенияКлиентСервер.СпискиЗначенийИдентичны(СертификатыДляРегистрации, СертификатыУчетнойЗаписи);
-
-КонецФункции
-
// Параметры:
// Идентификатор - Строка
// СостояниеРегистрации - Структура
@@ -1247,8 +1226,8 @@
ОтменитьТранзакцию();
Результат.Ошибка = СтрШаблон(НСтр("ru = 'Неизвестная ошибка при обработке заявки на регистрацию %1'"),
Идентификатор);
- ЗаписьЖурналаРегистрации(НСтр("ru = 'Обработка состояния регистрации в ЭДО'"),
- УровеньЖурналаРегистрации.Ошибка,,Идентификатор,
+ ИмяСобытия = НСтр("ru = 'Обработка состояния регистрации в ЭДО'", ОбщегоНазначения.КодОсновногоЯзыка());
+ ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка,,Идентификатор,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
diff --git a/src/CommonModules/ФайлыБТС/Ext/Module.bsl b/src/CommonModules/ФайлыБТС/Ext/Module.bsl
index 87d2d2994..a42e2c36f 100644
--- a/src/CommonModules/ФайлыБТС/Ext/Module.bsl
+++ b/src/CommonModules/ФайлыБТС/Ext/Module.bsl
@@ -550,4 +550,11 @@
КонецФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("УдалениеФайловВременногоХранилища", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ФорматыЭДО/Ext/Module.bsl b/src/CommonModules/ФорматыЭДО/Ext/Module.bsl
index 1e011133e..db1fe7a6d 100644
--- a/src/CommonModules/ФорматыЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ФорматыЭДО/Ext/Module.bsl
@@ -3556,25 +3556,29 @@
// Инициализирует параметры заполнения дополнительных полей
//
// Параметры:
-// ОписаниеДанныхЭД - см. ДеревоЭлектронногоДокументаБЭД.ДеревоЭлектронногоДокумента
-// НастройкиОбмена - см. НовыеНастройкиФормированияДокументаПоОбъектуУчета
-// НастройкаЗаполнения - см. НастройкаЗаполненияДополнительныхПолей
-// СсылкаНаОбъект - ОпределяемыйТип.ОснованияЭлектронныхДокументовЭДО -
+// ОписаниеДанныхЭД - см. ДеревоЭлектронногоДокументаБЭД.ДеревоЭлектронногоДокумента -
+// НастройкиОбмена - см. НовыеНастройкиФормированияДокументаПоОбъектуУчета -
+// НастройкаЗаполнения - см. НастройкаЗаполненияДополнительныхПолей -
+// СсылкаНаОбъект - ОпределяемыйТип.ОснованияЭлектронныхДокументовЭДО, Неопределено -
+// ОбъектУчета - ОпределяемыйТип.ОснованияЭлектронныхДокументовЭДО, Неопределено -
//
// Возвращаемое значение:
// Структура:
-// * ОписаниеДанныхЭД - см. ДеревоЭлектронногоДокументаБЭД.ДеревоЭлектронногоДокумента
-// * НастройкиОбмена - см. НовыеНастройкиФормированияДокументаПоОбъектуУчета
-// * НастройкаЗаполнения - см. НастройкиЭДО.НастройкаЗаполненияДополнительныхПолей
-// * СсылкаНаОбъект - ОпределяемыйТип.ОснованияЭлектронныхДокументовЭДО -
+// * ОписаниеДанныхЭД - см. ДеревоЭлектронногоДокументаБЭД.ДеревоЭлектронногоДокумента -
+// * НастройкиОбмена - см. НовыеНастройкиФормированияДокументаПоОбъектуУчета -
+// * НастройкаЗаполнения - см. НастройкиЭДО.НастройкаЗаполненияДополнительныхПолей -
+// * СсылкаНаОбъект - ОпределяемыйТип.ОснованияЭлектронныхДокументовЭДО, Неопределено -
+// * ОбъектУчета - ОпределяемыйТип.ОснованияЭлектронныхДокументовЭДО, Неопределено -
//
-Функция ПараметрыЗаполненияДополнительныхПолей(ОписаниеДанныхЭД, НастройкиОбмена, НастройкаЗаполнения, СсылкаНаОбъект) Экспорт
+Функция ПараметрыЗаполненияДополнительныхПолей(ОписаниеДанныхЭД,
+ НастройкиОбмена, НастройкаЗаполнения, СсылкаНаОбъект, ОбъектУчета) Экспорт
ПараметрыЗаполнения = Новый Структура();
ПараметрыЗаполнения.Вставить("ОписаниеДанныхЭД", ОписаниеДанныхЭД);
ПараметрыЗаполнения.Вставить("НастройкиОбмена", НастройкиОбмена);
ПараметрыЗаполнения.Вставить("НастройкаЗаполнения", НастройкаЗаполнения);
ПараметрыЗаполнения.Вставить("СсылкаНаОбъект", СсылкаНаОбъект);
+ ПараметрыЗаполнения.Вставить("ОбъектУчета", ОбъектУчета);
Возврат ПараметрыЗаполнения;
КонецФункции
@@ -3624,7 +3628,7 @@
НастройкаЗаполнения = НастройкаЗаполненияДополнительныхПолей(ОбъектУчета, Настройки);
СсылкаНаОбъект = ?(ЗначениеЗаполнено(СчетФактура), СчетФактура, ОбъектУчета);
ПараметрыЗаполнения = ПараметрыЗаполненияДополнительныхПолей(
- ДанныеДокумента, Настройки, НастройкаЗаполнения, СсылкаНаОбъект);
+ ДанныеДокумента, Настройки, НастройкаЗаполнения, СсылкаНаОбъект, ОбъектУчета);
НовыеДанныеДляФормированияОсновногоТитула();
ТрансграничныйЭДО.ДополнитьНастройкуЗаполненияДополнительныхПолей(
Данные.Участники.ИдентификаторПолучателя, ПараметрыЗаполнения);
@@ -5306,8 +5310,7 @@
Если ДанныеФайлаЭД.Свойства().Получить("ВерсПрог") <> Неопределено Тогда
ДопПараметры.Вставить("ВерсПрог", РаботаСФайламиБЭД.ЗначениеСвойстваXDTO(ДанныеФайлаЭД, "ВерсПрог"));
КонецЕсли;
-
-
+
Если СтрНайти(ДанныеФайлаЭД.ИдФайл, "ON_SCHFDOPPR") > 0 Тогда
НаборДанных = РаботаСФайламиБЭД.ЗначениеСвойстваXDTO(ДанныеФайлаЭД, "Документ.ТаблСчФакт.СведТов",,, Истина);
@@ -5994,7 +5997,7 @@
Обработчик = Обработчики.Добавить();
Обработчик.Процедура = "КонвертацияЭДО.ВыполнитьЗаполнениеПравилПреобразования";
- Обработчик.Версия = "1.9.16.36";
+ Обработчик.Версия = "1.9.16.54";
Обработчик.РежимВыполнения = "Оперативно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("086b4610-a498-466e-8d21-97d7edf79578");
Обработчик.ОбщиеДанные = Истина;
@@ -6038,7 +6041,7 @@
#Область ПереченьСпециальныхОбстоятельствДокументаЭДО_ОбработатьДанныеДляПереходаНаНовуюВерсию
Обработчик = Обработчики.Добавить();
Обработчик.Процедура = "КонвертацияЭДО.ЗаполнитьПереченьСпециальныхОбстоятельствДокументаЭДО";
- Обработчик.Версия = "1.9.16.36";
+ Обработчик.Версия = "1.9.16.54";
Обработчик.РежимВыполнения = "Оперативно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("c9bf16c0-bbdb-4f91-9b44-600230c1897e");
Обработчик.НачальноеЗаполнение = Истина;
@@ -7988,10 +7991,10 @@
// Формирует таблицу номенклатуры, работ, услуг и их характеристик и свойств по данным электронного документа
//
// Параметры:
-// ТЗ - см. НоваяТаблицаТоваров - Таблица значений, содержит результат вызова
+// ТаблицаТоваров - Неопределено - Таблица значений, содержит результат вызова см. НоваяТаблицаТоваров
// НаборДанных - ОбъектXDTO - Источник данных
// ДопПараметры - Структура - с полями:
-// * ДеревоДопДанных - см. ДеревоДопДанных - Дерево содержащее дополнительные данные;
+// * ДеревоДопДанных - ДеревоЗначений - см. ДеревоДопДанных - Дерево содержащее дополнительные данные;
// * ИмяТЧ - Строка - Имя табличной части для чтения доп данных;
// * НомерСтроки - Число - Номер строки для чтения доп данных;
// * ЕстьСвойствоИдФайл - Булево - Признак наличия ИдФайл в источнике данных;
@@ -7999,7 +8002,7 @@
// * ВидСчетаФактуры - Строка - Признак авансовой счет фактору, проверяется только значение "Авансовый";
// * ВерсПрог - Строка - Версия программы для для сравнения с реквизитом Файл.ВерсПрог;
// * ЭтоГосЗакКазн - Булево - Признак государственного заказа.
-Процедура СформироватьТЗПоНаборуДанныхXDTO(ТЗ, НаборДанных, ДопПараметры = Неопределено)
+Процедура СформироватьТЗПоНаборуДанныхXDTO(ТаблицаТоваров, НаборДанных, ДопПараметры = Неопределено)
ДеревоДопДанных = Неопределено;
ЕстьСвойствоИдФайл = Ложь;
@@ -8036,10 +8039,10 @@
КонецЕсли;
- ТЗ = НоваяТаблицаТоваров();
+ ТаблицаТоваров = НоваяТаблицаТоваров();
СвойстваНоменклатурыЭталон = Новый Структура;
- Для Каждого Колонка Из ТЗ.Колонки Цикл
+ Для Каждого Колонка Из ТаблицаТоваров.Колонки Цикл
СвойстваНоменклатурыЭталон.Вставить(Колонка.Имя, Неопределено);
КонецЦикла;
@@ -8085,9 +8088,9 @@
СвойстваНоменклатуры.МаркируемыйТовар = (НомСредИдентТов <> Неопределено);
КонецЕсли;
- СвТД = РаботаСФайламиБЭД.ЗначениеСвойстваXDTO(ТекЭлемент, "СвТД");
- Если СвТД <> Неопределено Тогда
- СвойстваНоменклатуры.СтранаПроисхожденияКод = РаботаСФайламиБЭД.ЗначениеСвойстваXDTO(СвТД,
+ СвДТ = РаботаСФайламиБЭД.ЗначениеСвойстваXDTO(ТекЭлемент, "СвДТ");
+ Если СвДТ <> Неопределено Тогда
+ СвойстваНоменклатуры.СтранаПроисхожденияКод = РаботаСФайламиБЭД.ЗначениеСвойстваXDTO(СвДТ,
"КодПроисх", , "Строка");
КонецЕсли;
@@ -8172,7 +8175,7 @@
СвойстваНоменклатуры.Наименование = НаименованиеРаботыДопДанные;
КонецЕсли;
- НовЗапись = ТЗ.Добавить();
+ НовЗапись = ТаблицаТоваров.Добавить();
ЗаполнитьЗначенияСвойств(НовЗапись, СвойстваНоменклатуры);
Если НЕ Элемент.Свойства().Получить("ИД") = Неопределено Тогда
@@ -8320,8 +8323,8 @@
ДополнительныеРеквизиты = РаботаСФайламиБЭД.ЗначениеСвойстваXDTO(Элемент, "ДополнительныеРеквизиты",,, Истина);
Если ДополнительныеРеквизиты <> Неопределено Тогда
Для Каждого ЭлементДанных Из ДополнительныеРеквизиты Цикл
- Если ТЗ.Колонки.Найти("Доп_" + ЭлементДанных.Наименование) = Неопределено Тогда
- ТЗ.Колонки.Добавить("Доп_" + ЭлементДанных.Наименование, ОбщегоНазначения.ОписаниеТипаСтрока(300));
+ Если ТаблицаТоваров.Колонки.Найти("Доп_" + ЭлементДанных.Наименование) = Неопределено Тогда
+ ТаблицаТоваров.Колонки.Добавить("Доп_" + ЭлементДанных.Наименование, ОбщегоНазначения.ОписаниеТипаСтрока(300));
ИменаДопКолонок = ИменаДопКолонок + ", "+ "Доп_" + ЭлементДанных.Наименование;
КонецЕсли;
Для Каждого ЭлементЗначения Из ЭлементДанных.Значение Цикл
@@ -8414,10 +8417,10 @@
КонецЦикла;
- ДополнитьИнформациюОТовареДаннымиДляСопоставления(ТЗ, ЭтоСчетФактураНаАванс, СодержитИзменяемыеДанные);
+ ДополнитьИнформациюОТовареДаннымиДляСопоставления(ТаблицаТоваров, ЭтоСчетФактураНаАванс, СодержитИзменяемыеДанные);
// Удаляем переносы строки из идентификатора.
- Для Каждого СтрокаТовара Из ТЗ Цикл
+ Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл
Если СтрокаТовара.Сопоставление = Неопределено
Или Не СтрокаТовара.Сопоставление.Свойство("Идентификатор") Тогда
Продолжить;
diff --git a/src/CommonModules/ФорматыЭДО_ФНС/Ext/Module.bsl b/src/CommonModules/ФорматыЭДО_ФНС/Ext/Module.bsl
index cb70f669a..5ee8626d6 100644
--- a/src/CommonModules/ФорматыЭДО_ФНС/Ext/Module.bsl
+++ b/src/CommonModules/ФорматыЭДО_ФНС/Ext/Module.bsl
@@ -8779,7 +8779,7 @@
// Заполняет данные дерева значений информации покупателя.
//
// Параметры:
-// Данные - ДеревоЗначений - Дерево данных
+// ДеревоДанных - ДеревоЗначений - Дерево данных
//
// Возвращаемое значение:
// см. НовыйРезультатЗаполненияДокумента
@@ -9034,21 +9034,29 @@
КонецЕсли;
РаботаСФайламиБЭД.ЗаполнитьСвойствоXDTO(СодФХЖ4, "СвПрин", СвПрин, Истина, Ошибки);
+ СведенияОВыбытииМаркированныхТоваров = ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(ДеревоДанных,
+ "СодержаниеФХЖ.СведенияОПринятииТоваров.СведенияОВыбытииМаркированныхТоваров");
+
Путь = "СодержаниеФХЖ.ИнформационноеПолеФХЖ";
- Если ЗначениеЗаполнено(ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(ДеревоДанных, Путь)) Тогда
+ ИнформационноеПолеФХЖ = ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(ДеревоДанных, Путь);
+
+ Если ЗначениеЗаполнено(ИнформационноеПолеФХЖ) Или ЗначениеЗаполнено(СведенияОВыбытииМаркированныхТоваров) Тогда
СвойствоИнфПолФХЖ4 = СодФХЖ4.Свойства().Получить("ИнфПолФХЖ4");
ИнфПолФХЖ4 = ПолучитьОбъектТипаCML(СвойствоИнфПолФХЖ4.Тип, ПространствоИмен);
+ СвойствоТекстИнф = ИнфПолФХЖ4.Свойства().Получить("ТекстИнф");
- РаботаСФайламиБЭД.ЗаполнитьСвойствоXDTO(ИнфПолФХЖ4, "ИдФайлИнфПол",
- ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(
- ДеревоДанных, Путь + ".ИдентификаторФайла"),, Ошибки);
+ ИДФайла = ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(ДеревоДанных,
+ Путь + ".ИдентификаторФайла");
+ Если ЗначениеЗаполнено(ИДФайла) Тогда
+ РаботаСФайламиБЭД.ЗаполнитьСвойствоXDTO(ИнфПолФХЖ4, "ИдФайлИнфПол", ИДФайла,, Ошибки);
+ КонецЕсли;
ТекстоваяИнформация = ДеревоДанных.Строки.Найти(Путь + ".ТекстоваяИнформация", "ПолныйПуть", Истина);
Если ЗначениеЗаполнено(ТекстоваяИнформация.Значение) Тогда
ТекстоваяИнформацияПуть = Путь + ".ТекстоваяИнформация.НомерСтроки.";
Для Каждого ТекущаяСтрока Из ТекстоваяИнформация.Строки Цикл
- ТекстИнф = ПолучитьОбъектТипаCML("ТекстИнфТип", ПространствоИмен);
+ ТекстИнф = ПолучитьОбъектТипаCML(СвойствоТекстИнф.Тип, ПространствоИмен);
Идентификатор = ДеревоЭлектронногоДокументаБЭД.ЗначениеРеквизитаВДереве(
ТекущаяСтрока, ТекстоваяИнформацияПуть + "Идентификатор");
@@ -9062,6 +9070,16 @@
КонецЦикла;
КонецЕсли;
+ Если ЗначениеЗаполнено(СведенияОВыбытииМаркированныхТоваров) Тогда
+
+ ТекстИнф = ПолучитьОбъектТипаCML(СвойствоТекстИнф.Тип, ПространствоИмен);
+ РаботаСФайламиБЭД.ЗаполнитьСвойствоXDTO(ТекстИнф, "Идентиф", "СвВыбытияМАРК",, Ошибки);
+ РаботаСФайламиБЭД.ЗаполнитьСвойствоXDTO(ТекстИнф, "Значен", СведенияОВыбытииМаркированныхТоваров,, Ошибки);
+
+ ИнфПолФХЖ4.ТекстИнф.Добавить(ТекстИнф);
+
+ КонецЕсли;
+
РаботаСФайламиБЭД.ЗаполнитьСвойствоXDTO(СодФХЖ4, "ИнфПолФХЖ4", ИнфПолФХЖ4,, Ошибки);
КонецЕсли;
@@ -16056,7 +16074,7 @@
// ФИО - ОбъектXDTO
// ДеревоДанных - ДеревоЗначений
// Путь - Строка
-// Ошибки - Массив из ОбщегоНазначенияБЭДКлиентСервер.НовыеПараметрыОшибки
+// Ошибки - Массив из см. ОбщегоНазначенияБЭДКлиентСервер.НовыеПараметрыОшибки
//
Процедура ЗаполнитьФИО_УПД_5_02(ФИО, ДеревоДанных, Путь, Ошибки)
@@ -16079,7 +16097,7 @@
// Параметры:
// ДокументXDTO - ОбъектXDTO
// СтрокаДереваДанных - СтрокаДереваЗначений
-// Ошибки - Массив из ОбщегоНазначенияБЭДКлиентСервер.НовыеПараметрыОшибки
+// Ошибки - Массив из см. ОбщегоНазначенияБЭДКлиентСервер.НовыеПараметрыОшибки
// ПространствоИмен - Строка
// ПутьКДокументу - Строка
// УдалятьНомерИДатуИзНаименования - Булево
@@ -31752,12 +31770,16 @@
// ИнформационныеПоля - Массив Из Строка
Процедура ЗаполнитьНомераДоверенностейИзСодержимогоЭД(НомераДоверенностей, ОписаниеФайла, ИнформационныеПоля)
+ КоличествоПолей = ИнформационныеПоля.Количество();
+ Если КоличествоПолей = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
Поток = ОписаниеФайла.ДвоичныеДанные.ОткрытьПотокДляЧтения();
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьПоток(Поток);
ПровереноПолей = 0;
- КоличествоПолей = ИнформационныеПоля.Количество();
Пока ЧтениеXML.Прочитать() Цикл
diff --git a/src/CommonModules/ЦентрЭДО/Ext/Module.bsl b/src/CommonModules/ЦентрЭДО/Ext/Module.bsl
index 028df1a94..42956009a 100644
--- a/src/CommonModules/ЦентрЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ЦентрЭДО/Ext/Module.bsl
@@ -329,6 +329,12 @@
ОтветHTTP = ВыполнитьЗапрос(Запрос, ИдентификаторЗапроса);
Исключение
+ ИмяСобытия = ПредставлениеПодсистемы();
+ Уровень = УровеньЖурналаРегистрации.Ошибка;
+ ОбъектМетаданных = Метаданные.HTTPСервисы.edo;
+ Комментарий = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ ЗаписьЖурналаРегистрации(ИмяСобытия, Уровень, ОбъектМетаданных, ИдентификаторЗапроса, Комментарий);
+
Ошибка = ОшибкаЗапроса(ТипОшибкиЗапросаВнутренняяОшибкаСервера(),
НСтр("ru = 'Внутренняя ошибка сервера'"), ИнформацияОбОшибке());
ОтветHTTP = ОтветПоОшибкеЗапроса(Ошибка, ИдентификаторЗапроса);
diff --git a/src/CommonModules/ЧекККМВозвратЛокализация/Ext/Module.bsl b/src/CommonModules/ЧекККМВозвратЛокализация/Ext/Module.bsl
index ea1b44b73..b0cb6edf2 100644
--- a/src/CommonModules/ЧекККМВозвратЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/ЧекККМВозвратЛокализация/Ext/Module.bsl
@@ -397,10 +397,13 @@
| ТабличнаяЧасть.Номенклатура.Принципал КАК Принципал,
| ТабличнаяЧасть.Номенклатура.Контрагент КАК Контрагент,
| ТабличнаяЧасть.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
- | ТабличнаяЧасть.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины КАК ТипИзмеряемойВеличины
+ | ТабличнаяЧасть.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины КАК ТипИзмеряемойВеличины,
+ | ЕСТЬNULL(ОписаниеНоменклатурыИС.КлючВидовПродукции, ЗНАЧЕНИЕ(Справочник.КлючиВидовПродукцииИС.ПустаяСсылка)) КАК ВидПродукцииИС
|ПОМЕСТИТЬ ТаблицаНоменклатуры
|ИЗ
| ТаблицаТовары КАК ТабличнаяЧасть
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОписаниеНоменклатурыИС КАК ОписаниеНоменклатурыИС
+ | ПО ТабличнаяЧасть.Номенклатура = ОписаниеНоменклатурыИС.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО Номенклатура
|;
@@ -654,6 +657,7 @@
| Товары.ИдентификаторСтроки,
| Товары.НомерСтроки,
| Товары.НоменклатураЕГАИС,
+ | СпрНоменклатура.ВидПродукцииИС КАК ВидПродукцииИС,
| Товары.Номенклатура,
|
| СпрНоменклатура.ТипНоменклатуры КАК ТипНоменклатуры,
@@ -752,6 +756,7 @@
| Товары.ИдентификаторСтроки,
| Товары.НомерСтроки,
| Товары.НоменклатураЕГАИС,
+ | Товары.ВидПродукцииИС,
| Товары.Номенклатура,
| Товары.ТипНоменклатуры,
| Товары.ПодакцизныйТовар,
diff --git a/src/CommonModules/ЧекККМКоррекцииЛокализация/Ext/Module.bsl b/src/CommonModules/ЧекККМКоррекцииЛокализация/Ext/Module.bsl
index cadc88693..a8572bbdd 100644
--- a/src/CommonModules/ЧекККМКоррекцииЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/ЧекККМКоррекцииЛокализация/Ext/Module.bsl
@@ -144,10 +144,13 @@
| ТабличнаяЧасть.Номенклатура.Принципал КАК Принципал,
| ТабличнаяЧасть.Номенклатура.Контрагент КАК Контрагент,
| ТабличнаяЧасть.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
- | ТабличнаяЧасть.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины КАК ТипИзмеряемойВеличины
+ | ТабличнаяЧасть.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины КАК ТипИзмеряемойВеличины,
+ | ЕСТЬNULL(ОписаниеНоменклатурыИС.КлючВидовПродукции, ЗНАЧЕНИЕ(Справочник.КлючиВидовПродукцииИС.ПустаяСсылка)) КАК ВидПродукцииИС
|ПОМЕСТИТЬ ТаблицаНоменклатуры
|ИЗ
| ТаблицаТовары КАК ТабличнаяЧасть
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОписаниеНоменклатурыИС КАК ОписаниеНоменклатурыИС
+ | ПО ТабличнаяЧасть.Номенклатура = ОписаниеНоменклатурыИС.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО Номенклатура
|;
@@ -396,6 +399,7 @@
| Товары.ИдентификаторСтроки,
| Товары.НомерСтроки,
| Товары.НоменклатураЕГАИС,
+ | СпрНоменклатура.ВидПродукцииИС КАК ВидПродукцииИС,
| Товары.Номенклатура,
| СпрНоменклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| ЕСТЬNULL(ВтПодакцизныеТовары.ПодакцизныйТовар, ЛОЖЬ) КАК ПодакцизныйТовар,
@@ -487,6 +491,7 @@
| Товары.ИдентификаторСтроки,
| Товары.НомерСтроки,
| Товары.НоменклатураЕГАИС,
+ | Товары.ВидПродукцииИС,
| Товары.Номенклатура,
| Товары.ТипНоменклатуры,
| Товары.ПодакцизныйТовар,
diff --git a/src/CommonModules/ЧекККМЛокализация/Ext/Module.bsl b/src/CommonModules/ЧекККМЛокализация/Ext/Module.bsl
index df93925ef..6c82f9849 100644
--- a/src/CommonModules/ЧекККМЛокализация/Ext/Module.bsl
+++ b/src/CommonModules/ЧекККМЛокализация/Ext/Module.bsl
@@ -828,7 +828,7 @@
| Товары.ИдентификаторСтроки,
| Товары.НомерСтроки,
| Товары.НоменклатураЕГАИС,
- | СпрНоменклатура.ВидПродукцииИС,
+ | СпрНоменклатура.ВидПродукцииИС КАК ВидПродукцииИС,
| Товары.Номенклатура,
|
| СпрНоменклатура.ТипНоменклатуры КАК ТипНоменклатуры,
diff --git a/src/CommonModules/ШтрихкодированиеИСКлиентСерверПереопределяемый/Ext/Module.bsl b/src/CommonModules/ШтрихкодированиеИСКлиентСерверПереопределяемый/Ext/Module.bsl
index ab5b195ff..ec55b2464 100644
--- a/src/CommonModules/ШтрихкодированиеИСКлиентСерверПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/ШтрихкодированиеИСКлиентСерверПереопределяемый/Ext/Module.bsl
@@ -8,12 +8,12 @@
// ВидПродукции - Массив Из СправочникСсылка.ВидыПродукцииИС - Вид продукции, по которому будут инициализированы параметры сканирования
// Сценарий - Число - сценарий при наличии нескольких возможных сценариев.
Процедура ПриЗаполненииПараметровСканирования(ПараметрыСканирования, Контекст, ВидПродукции, Сценарий = 0) Экспорт
- // УАС - АКС - начало
+ // УАС - начало
УАС_МДЛПКлиентСервер.ВключитьПоддержкуМДЛП(ПараметрыСканирования, Контекст, ВидПродукции);
- // УАС - АКС - конец
+ // УАС - конец
//++ НЕ ГОСИС
- ИнтеграцияИСУТКлиентСервер.ВключитьПоддержкуВидовПродукцииИС(Контекст, ПараметрыСканирования, ВидПродукции);
+ ИнтеграцияИСУТКлиентСервер.ВключитьПоддержкуВидовПродукцииИС(Контекст, ПараметрыСканирования, ВидПродукции, Сценарий);
//-- НЕ ГОСИС
Возврат;
diff --git a/src/CommonModules/ШтрихкодированиеИСМПКлиентСервер/Ext/Module.bsl b/src/CommonModules/ШтрихкодированиеИСМПКлиентСервер/Ext/Module.bsl
index f955c2c5b..9d652220a 100644
--- a/src/CommonModules/ШтрихкодированиеИСМПКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ШтрихкодированиеИСМПКлиентСервер/Ext/Module.bsl
@@ -815,6 +815,14 @@
ЗаполнитьПараметрыСканированияПеремещениеМеждуМОД_ИСМП(Контекст, ПараметрыСканирования);
+ // УАС - начало
+ ИначеЕсли ШтрихкодированиеИСКлиентСервер.ЭтоКонтекстОбъекта(Контекст, "Обработка.УАС_ПроверкаПоступившихТоваров") Тогда
+
+ ВключитьПоддержкуПродукцииИСМП(ПараметрыСканирования);
+ ПараметрыСканирования.ИмяТабличнойЧастиШтрихкодыУпаковок = Неопределено;
+ ПараметрыСканирования.ИмяКолонкиШтрихкодУпаковки = Неопределено;
+ ПараметрыСканирования.ТолькоМаркируемаяПродукция = Истина;
+ // УАС - конец
КонецЕсли;
КонецПроцедуры
diff --git a/src/CommonModules/ШтрихкодированиеОбщегоНазначенияИСКлиент/Ext/Module.bsl b/src/CommonModules/ШтрихкодированиеОбщегоНазначенияИСКлиент/Ext/Module.bsl
index cce0d6a5e..b1ee50294 100644
--- a/src/CommonModules/ШтрихкодированиеОбщегоНазначенияИСКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ШтрихкодированиеОбщегоНазначенияИСКлиент/Ext/Module.bsl
@@ -405,7 +405,12 @@
// #РазрешительныйРежим #11712
// Передача данных штрихкода в форму для переноса Номеров упаковок из формы УАС_МДЛП.ЗаполнениеНомеровУпаковок
// с учетом доработок УАС
- ПараметрыЗавершенияВводаШтрихкода.Вставить("ДополнительныеПараметры",ДополнительныеПараметры);
+ ПараметрыЗавершенияВводаШтрихкода.Вставить("ДополнительныеПараметры", ДополнительныеПараметры);
+ Если Форма.ИмяФормы = "Обработка.УАС_ПроверкаПоступившихТоваров.Форма.ПроверкаПоступившихТоваров" Тогда
+ ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(
+ ПараметрыЗавершенияВводаШтрихкода.ДополнительныеПараметры, РезультатОбработкиШтрихкода, Ложь);
+ ПараметрыЗавершенияВводаШтрихкода.ДополнительныеПараметры.Вставить("КодМаркировкиДляУточнения", ДанныеШтрихкода);
+ КонецЕсли;
// УАС - конец - ГАС2
Если Не ПараметрыСканирования.РасширеннаяВерсияГосИС Тогда
@@ -679,24 +684,30 @@
// ТребуетсяСопоставлениеНоменклатуры - для массива штрихкодов вызывается только 1 раз
Если РезультатОбработки.ТребуетсяСопоставлениеНоменклатуры
Или РезультатОбработки.ТребуетсяУточнениеКоэффициентовУпаковок Тогда
+
// УАС - начало - ГАС2
// #РазрешительныйРежим #11712
// Изменение поведения логики если вызывается из обработки УАС_МДЛП
КонецЕсли;
- Если Форма.ИмяФормы="Обработка.УАС_МДЛП.Форма.ЗаполнениеНомеровУпаковок"
- И РезультатОбработки.ТребуетсяСопоставлениеНоменклатуры Тогда
+
+ Если Форма.ИмяФормы = "Обработка.УАС_МДЛП.Форма.ЗаполнениеНомеровУпаковок"
+ И РезультатОбработки.ТребуетсяСопоставлениеНоменклатуры Тогда
Форма.КодМаркировкиДляУточнения = ПараметрыЗавершенияОбработкиШтрихкода;
Форма.ПодключитьОбработчикОжидания("Подключаемый_ОткрытьФормуУточненияДанных_Дополнительная", 0.1, Истина);
Возврат;
- ИначеЕсли Форма.ИмяФормы="Обработка.УАС_МДЛП.Форма.ЗаполнениеНомеровУпаковок"
- И РезультатОбработки.ТребуетсяУточнениеКоэффициентовУпаковок Тогда
+ ИначеЕсли УАС_МДЛПКлиент.ИспользуетсяОтраслеваяФормаУпаковок(Форма.ИмяФормы)
+ И РезультатОбработки.ТребуетсяУточнениеКоэффициентовУпаковок Тогда
РезультатОбработки.ТребуетсяУточнениеКоэффициентовУпаковок = Ложь;
ИначеЕсли РезультатОбработки.ТребуетсяСопоставлениеНоменклатуры
- Или РезультатОбработки.ТребуетсяУточнениеКоэффициентовУпаковок Тогда
+ Или РезультатОбработки.ТребуетсяУточнениеКоэффициентовУпаковок Тогда
// УАС - конец - ГАС2
-
+
Если Форма.ИмяФормы = "Обработка.ПроверкаКодовМаркировкиИСМП.Форма.ФормаПроверки" Тогда
Форма.КодМаркировкиДляУточнения = ПараметрыЗавершенияОбработкиШтрихкода;
+ // УАС - начало
+ ИначеЕсли Форма.ИмяФормы = "Обработка.УАС_ПроверкаПоступившихТоваров.Форма.ПроверкаПоступившихТоваров" Тогда
+ Форма.КодМаркировкиДляУточнения = ПараметрыЗавершенияОбработкиШтрихкода;
+ // УАС - конец
ИначеЕсли ПараметрыСканирования.РежимБРМК Тогда
ПараметрыЗавершенияОбработкиШтрихкода.Форма = Неопределено;
Форма.КодМаркировкиДляУточнения = ПараметрыЗавершенияОбработкиШтрихкода;
@@ -710,7 +721,7 @@
Если РезультатОбработки.ОткрытьФормуВводаКодаМаркировки Тогда
// УАС - начало
- Если Форма.ИмяФормы <> "Обработка.УАС_МДЛП.Форма.ЗаполнениеНомеровУпаковок" Тогда
+ Если Не УАС_МДЛПКлиент.ИспользуетсяОтраслеваяФормаУпаковок(Форма.ИмяФормы) Тогда
// УАС - конец
ПараметрыЗавершенияОбработкиШтрихкода.Форма = Неопределено;
Форма.КодМаркировкиДляУточнения = ПараметрыЗавершенияОбработкиШтрихкода;
@@ -728,16 +739,16 @@
Или РезультатОбработки.ТребуетсяУточнениеСоставаУпаковки Тогда
// УАС - начало
- Если Форма.ИмяФормы <> "Обработка.УАС_МДЛП.Форма.ЗаполнениеНомеровУпаковок" Тогда
+ Если Не УАС_МДЛПКлиент.ИспользуетсяОтраслеваяФормаУпаковок(Форма.ИмяФормы) Тогда
// УАС - конец
ПараметрыЗавершенияОбработкиШтрихкода.Форма = Неопределено;
Форма.КодМаркировкиДляУточнения = ПараметрыЗавершенияОбработкиШтрихкода;
Форма.ПодключитьОбработчикОжидания("Подключаемый_ОткрытьФормуУточненияДанных", 0.1, Истина);
Возврат;
+
// УАС - начало
КонецЕсли;
// УАС - конец
-
КонецЕсли;
Если ПараметрыСканирования.ВыводитьСообщенияОбОшибках Тогда
@@ -756,7 +767,7 @@
И РезультатОбработки.ДанныеШтрихкода.ВидУпаковки = ПредопределенноеЗначение("Перечисление.ВидыУпаковокИС.Логистическая")
Или ЗначениеЗаполнено(РезультатОбработки.ТекстОшибки))
// УАС - начало
- И Форма.ИмяФормы <> "Обработка.УАС_МДЛП.Форма.ЗаполнениеНомеровУпаковок"
+ И Не УАС_МДЛПКлиент.ИспользуетсяОтраслеваяФормаУпаковок(Форма.ИмяФормы)
// УАС - конец
И Форма.ИмяФормы <> "РегистрСведений.ВскрытыеПотребительскиеУпаковкиИС.Форма.ФормаЗаписи" Тогда
@@ -809,23 +820,35 @@
И ПрисутствуетАлкогольнаяПродукция(РезультатОбработки.ВидыПродукции, ПараметрыСканирования)
И ПараметрыСканирования.РасширеннаяВерсияГосИС Тогда
+ // УАС - начало
+ Если Не Форма.ИмяФормы = "Обработка.УАС_ПроверкаПоступившихТоваров.Форма.ПроверкаПоступившихТоваров" Тогда
+ // УАС - конец
//@skip-check wrong-string-literal-content
МодульОбработки = ОбщегоНазначенияКлиент.ОбщийМодуль("ШтрихкодированиеЕГАИСКлиент");
Если МодульОбработки.ЗавершитьОбработкуШтрихкода(ПараметрыЗавершенияОбработкиШтрихкода) Тогда
Возврат;
КонецЕсли;
+ // УАС - начало
+ КонецЕсли;
+ // УАС - конец
КонецЕсли;
Если ПараметрыСканирования.ИСМП
И ПрисутствуетПродукцияИСМП(ПараметрыСканирования.ДопустимыеВидыПродукции, Истина)
И ПрисутствуетПродукцияИСМП(РезультатОбработки.ВидыПродукции, Истина) Тогда
+ // УАС - начало
+ Если Не Форма.ИмяФормы = "Обработка.УАС_ПроверкаПоступившихТоваров.Форма.ПроверкаПоступившихТоваров" Тогда
+ // УАС - конец
//@skip-check wrong-string-literal-content
МодульОбработки = ОбщегоНазначенияКлиент.ОбщийМодуль("ШтрихкодированиеОбщегоНазначенияИСМПКлиент");
Если МодульОбработки.ЗавершитьОбработкуВводаШтрихкода(ПараметрыЗавершенияОбработкиШтрихкода, Ложь) Тогда
Возврат;
КонецЕсли;
+ // УАС - начало
+ КонецЕсли;
+ // УАС - конец
КонецЕсли;
@@ -838,7 +861,8 @@
// #РазрешительныйРежим #11712
// Передача данных штрихкода в форму для переноса Номеров упаковок из формы УАС_МДЛП.ЗаполнениеНомеровУпаковок
// с учетом доработок УАС
- Если Форма.ИмяФормы = "Обработка.УАС_МДЛП.Форма.ЗаполнениеНомеровУпаковок" Тогда
+ Если УАС_МДЛПКлиент.ИспользуетсяОтраслеваяФормаУпаковок(Форма.ИмяФормы)
+ И ПараметрыЗавершенияОбработкиШтрихкода.ДополнительныеПараметры <> Неопределено Тогда
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ДополнительныеПараметры, ПараметрыЗавершенияОбработкиШтрихкода.ДополнительныеПараметры, Ложь);
КонецЕсли;
// УАС - конец - ГАС2
diff --git a/src/CommonModules/ШтрихкодированиеОбщегоНазначенияИСМПКлиент/Ext/Module.bsl b/src/CommonModules/ШтрихкодированиеОбщегоНазначенияИСМПКлиент/Ext/Module.bsl
index cc2af5b43..a2bb7dec5 100644
--- a/src/CommonModules/ШтрихкодированиеОбщегоНазначенияИСМПКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ШтрихкодированиеОбщегоНазначенияИСМПКлиент/Ext/Module.bsl
@@ -442,7 +442,7 @@
ПараметрыЗавершенияВводаШтрихкода.Форма = Неопределено;
// УАС - начало - #РазрешительныйРежим
// Отменяем открытие формы уточнения для МДЛП
- Если Форма.ИмяФормы = "Обработка.УАС_МДЛП.Форма.ЗаполнениеНомеровУпаковок" Тогда
+ Если УАС_МДЛПКлиент.ИспользуетсяОтраслеваяФормаУпаковок(Форма.ИмяФормы) Тогда
Возврат Ложь;
КонецЕсли;
// УАС - конец
@@ -458,7 +458,7 @@
ПараметрыЗавершенияВводаШтрихкода.Форма = Неопределено;
// УАС - начало - #РазрешительныйРежим
// Отменяем открытие формы уточнения для МДЛП
- Если Форма.ИмяФормы = "Обработка.УАС_МДЛП.Форма.ЗаполнениеНомеровУпаковок" Тогда
+ Если УАС_МДЛПКлиент.ИспользуетсяОтраслеваяФормаУпаковок(Форма.ИмяФормы) Тогда
Возврат Ложь;
КонецЕсли;
// УАС - конец
@@ -2842,7 +2842,7 @@
// УАС - начало - ГАС2
// #РазрешительныйРежим #11712
// Отменяем открытие формы уточнения для МДЛП
- Если Форма.ИмяФормы="Обработка.УАС_МДЛП.Форма.ЗаполнениеНомеровУпаковок" Тогда
+ Если УАС_МДЛПКлиент.ИспользуетсяОтраслеваяФормаУпаковок(Форма.ИмяФормы) Тогда
Возврат Ложь;
КонецЕсли;
// УАС - конец - ГАС2
diff --git a/src/CommonModules/ЭлектроннаяПодписьВМоделиСервиса/Ext/Module.bsl b/src/CommonModules/ЭлектроннаяПодписьВМоделиСервиса/Ext/Module.bsl
index d16f664e8..4ba24e155 100644
--- a/src/CommonModules/ЭлектроннаяПодписьВМоделиСервиса/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектроннаяПодписьВМоделиСервиса/Ext/Module.bsl
@@ -450,4 +450,11 @@
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("УстановкаПараметровСеанса");
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/ЭлектронноеАктированиеЕИСПолучениеВходящих/Ext/Module.bsl b/src/CommonModules/ЭлектронноеАктированиеЕИСПолучениеВходящих/Ext/Module.bsl
index 22704b34c..deab59b57 100644
--- a/src/CommonModules/ЭлектронноеАктированиеЕИСПолучениеВходящих/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронноеАктированиеЕИСПолучениеВходящих/Ext/Module.bsl
@@ -2213,7 +2213,14 @@
ЗаписьЖурналаРегистрации(ИмяСобытия,
УровеньЖурналаРегистрации.Ошибка, , ,
ТекстОшибкиЖурнал);
- Прервать;
+ Если СтрНайти(РезультатПолученияЭД.ОписаниеОшибки, "Документ с идентификатором") > 0
+ И СтрНайти(РезультатПолученияЭД.ОписаниеОшибки, "не найден") > 0 Тогда
+
+ ТекстОшибки = "";
+ Продолжить;
+ Иначе
+ Прервать;
+ КонецЕсли;
КонецЕсли;
Если РезультатПолученияЭД.ДанныеОбъекта.ОтсутствуютДанныеПакета Тогда
@@ -2859,7 +2866,14 @@
ЗаписьЖурналаРегистрации(ИмяСобытия,
УровеньЖурналаРегистрации.Ошибка, , ,
Комментарий);
- Прервать;
+ Если СтрНайти(РезультатПолученияЭД.ОписаниеОшибки, "Документ с идентификатором") > 0
+ И СтрНайти(РезультатПолученияЭД.ОписаниеОшибки, "не найден") > 0 Тогда
+
+ ИмяСобытия = "";
+ Продолжить;
+ Иначе
+ Прервать;
+ КонецЕсли;
КонецЕсли;
Если РезультатПолученияЭД.ДанныеОбъекта.ОтсутствуютДанныеПакета Тогда
diff --git a/src/CommonModules/ЭлектронноеВзаимодействие/Ext/Module.bsl b/src/CommonModules/ЭлектронноеВзаимодействие/Ext/Module.bsl
index 48f550d26..ba6ccfe7d 100644
--- a/src/CommonModules/ЭлектронноеВзаимодействие/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронноеВзаимодействие/Ext/Module.bsl
@@ -494,6 +494,17 @@
#Область ДляВызоваИзДругихПодсистем
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ЗаполнениеДанныхОбновления", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
//++ Локализация
//См. МониторПортала1СИТСПереопределяемый.ПриЗаполненииПараметровСервисов
@@ -1021,7 +1032,7 @@
Не ЗначениеЗаполнено(ИменаСправочников));
КонецЕсли;
- Если Метаданные.ОпределяемыеТипы.ВладелецФайлаКвитанцииДТС.Тип.СодержитТип(ТипВладелецФайла) Тогда
+ Если Метаданные.ОпределяемыеТипы["ВладелецФайлаКвитанцииДТС"].Тип.СодержитТип(ТипВладелецФайла) Тогда
ИменаСправочников.Вставить("КвитанцииДТСПрисоединенныеФайлы", Ложь);
КонецЕсли;
diff --git a/src/CommonModules/ЭлектронноеВзаимодействиеОбработчикиОбновления/Ext/Module.bsl b/src/CommonModules/ЭлектронноеВзаимодействиеОбработчикиОбновления/Ext/Module.bsl
index 3e4e2b6f4..2b4f03e3b 100644
--- a/src/CommonModules/ЭлектронноеВзаимодействиеОбработчикиОбновления/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронноеВзаимодействиеОбработчикиОбновления/Ext/Module.bsl
@@ -1,5 +1,16 @@
#Область СлужебныйПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("Справочники_НастройкиОбменСБанками_ДанныеОбновленыНаНовуюВерсиюПрограммы");
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область Справочники_НастройкиОбменСБанками
// См. Справочники.НастройкиОбменСБанками.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию
diff --git a/src/CommonModules/ЭлектронноеВзаимодействиеПереопределяемый/Ext/Module.bsl b/src/CommonModules/ЭлектронноеВзаимодействиеПереопределяемый/Ext/Module.bsl
index 39e29933f..f766d5f43 100644
--- a/src/CommonModules/ЭлектронноеВзаимодействиеПереопределяемый/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронноеВзаимодействиеПереопределяемый/Ext/Module.bsl
@@ -88,6 +88,7 @@
// "ЮридическоеФизическоеЛицо"
// Для подсистемы ОбменСБанками требуется определение следующих полей:
// "ИННОрганизации" (обязательное)
+// "ПолноеНаименованиеОрганизации" (обязательное)
// "Банк.БИК" (обязательное)
// "Банк.Наименование" (обязательное)
// "Банк.Город" (обязательное)
diff --git a/src/CommonModules/ЭлектронноеВзаимодействиеУТ/Ext/Module.bsl b/src/CommonModules/ЭлектронноеВзаимодействиеУТ/Ext/Module.bsl
index d6fb68ea4..ed55bcf76 100644
--- a/src/CommonModules/ЭлектронноеВзаимодействиеУТ/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронноеВзаимодействиеУТ/Ext/Module.bsl
@@ -418,6 +418,9 @@
СведенияОбАдресе = РаботаСАдресами.СведенияОбАдресе(Сведения.ФактическийАдресXML);
Сведения.КодСтраныНерезидента = СведенияОбАдресе.КодСтраны;
КонецЕсли;
+
+ Сведения.ИдентификаторЮридическогоЛица = ДанныеЮрФизЛица.НалоговыйНомерВСтранеРегистрации;
+
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
diff --git a/src/CommonModules/ЭлектронныеДокументыЭДО/Ext/Module.bsl b/src/CommonModules/ЭлектронныеДокументыЭДО/Ext/Module.bsl
index a7f9783cc..e94206393 100644
--- a/src/CommonModules/ЭлектронныеДокументыЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронныеДокументыЭДО/Ext/Module.bsl
@@ -204,6 +204,21 @@
#КонецОбласти
+#Область СтандартныеПодсистемы
+
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВыполнитьДействияПоИнтеграциямЭДО", Истина);
+ Методы.Вставить("ЗаписатьРезультатПроверкиПодписейДокумента", Истина);
+ Методы.Вставить("ПредставлениеДанныхСообщения", Истина);
+ Методы.Вставить("ПредставлениеДанныхСообщенияПоСсылке", Истина);
+ Методы.Вставить("ПродолжитьВыполнениеДействийПоИнтеграциямЭДОПослеОбработкиРезультатов", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецОбласти
#КонецОбласти
@@ -805,6 +820,14 @@
Возврат Перечисления.ТипыДокументовЭДО.ТипыДокументовПроизвольногоФормата();
КонецФункции
+// Возвращает доступные типы не имеющие подпись.
+//
+// Возвращаемое значение:
+// Массив из ПеречислениеСсылка.ТипыДокументовЭДО - типы электронного документа.
+Функция ТипыДокументовБезПодписи() Экспорт
+ Возврат Перечисления.ТипыДокументовЭДО.ТипыДокументовБезПодписи();
+КонецФункции
+
// Определяет является ли тип документа стандартным.
//
// Параметры:
@@ -995,6 +1018,38 @@
КонецФункции
+// Параметры:
+// ТипДокумента - ПеречислениеСсылка.ТипыДокументовЭДО
+//
+// Возвращаемое значение:
+// Булево
+Функция ЭтоИсправляющийТипДокумента(ТипДокумента) Экспорт
+
+ Возврат Перечисления.ТипыДокументовЭДО.ЭтоИсправляющий(ТипДокумента);
+
+КонецФункции
+
+// Параметры:
+// ТипДокумента - ПеречислениеСсылка.ТипыДокументовЭДО
+//
+// Возвращаемое значение:
+// Булево
+Функция ЭтоКорректирующийТипДокумента(ТипДокумента) Экспорт
+
+ Возврат Перечисления.ТипыДокументовЭДО.ЭтоКорректирующий(ТипДокумента);
+
+КонецФункции
+
+// Возвращаемое значение:
+// Соответствие из КлючИЗначение:
+// * Ключ - ПеречислениеСсылка.ТипыДокументовЭДО
+// * Значение - ПеречислениеСсылка.ТипыДокументовЭДО
+Функция КорректируемыеТипыДокументов() Экспорт
+
+ Возврат Перечисления.ТипыДокументовЭДО.КорректируемыеТипыДокументов();
+
+КонецФункции
+
#КонецОбласти
#Область ВидыДокументов
@@ -1287,6 +1342,29 @@
КонецФункции
+// Возвращает виды документов с подписью.
+//
+// Возвращаемое значение:
+// Массив из СправочникСсылка.ВидыДокументовЭДО - доступные виды документов.
+Функция ВидыДокументовСПодписью() Экспорт
+
+ ТипыДокументовБезПодписи = ТипыДокументовБезПодписи();
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ВидыДокументовЭДО.Ссылка
+ |ИЗ
+ | Справочник.ВидыДокументовЭДО КАК ВидыДокументовЭДО
+ |ГДЕ
+ | Не ВидыДокументовЭДО.ТипДокумента В (&ТипыДокументовБезПодписи)";
+
+ Запрос.УстановитьПараметр("ТипыДокументовБезПодписи", ТипыДокументовБезПодписи);
+
+ Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
+
+КонецФункции
+
// Возвращает вид электронного документа по доступному типу электронного документа.
//
// Параметры:
@@ -3978,7 +4056,9 @@
| ТипДокументаНеПодходитДляВыгрузки,
| СообщениеЭДО.Направление КАК НаправлениеЭДО,
| СообщениеЭДО.ТипЭлементаРегламента КАК ТипЭлементаРегламента,
- | СообщениеЭДО.ВидСообщения.ТипДокумента КАК ТипДокументаЭДО
+ | СообщениеЭДО.ВидСообщения.ТипДокумента КАК ТипДокументаЭДО,
+ | ЭлектронныйДокументВходящийЭДО.ФорматОсновногоТитула КАК ФорматОсновногоТитула,
+ | ЭлектронныйДокументВходящийЭДО.ИдентификаторКонтрагента КАК ИдентификаторКонтрагента
|ИЗ
| Документ.ЭлектронныйДокументВходящийЭДО КАК ЭлектронныйДокументВходящийЭДО
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СообщениеЭДО КАК СообщениеЭДО
@@ -4001,7 +4081,9 @@
| ЭлектронныйДокументИсходящийЭДО.ВидДокумента.ТипДокумента НЕ В (&ТипыДокументовЭДОВыгрузкиДляФНС),
| СообщениеЭДО.Направление,
| СообщениеЭДО.ТипЭлементаРегламента,
- | СообщениеЭДО.ВидСообщения.ТипДокумента
+ | СообщениеЭДО.ВидСообщения.ТипДокумента,
+ | ЭлектронныйДокументИсходящийЭДО.ФорматОсновногоТитула,
+ | ЭлектронныйДокументИсходящийЭДО.ИдентификаторКонтрагента
|ИЗ
| Документ.ЭлектронныйДокументИсходящийЭДО КАК ЭлектронныйДокументИсходящийЭДО
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СообщениеЭДО КАК СообщениеЭДО
@@ -5674,9 +5756,11 @@
Если АктОРасхождениях.Свойство("ВариантФормированияИтоговПриемки", ВариантФормированияИтоговПриемки)
И Не ПустаяСтрока(ВариантФормированияИтоговПриемки) Тогда
ВариантыФормированияИтоговПриемки = ФорматыЭДО.ВариантыФормированияИтоговПриемки();
- ДокументОбъект.ТребуетсяПодтверждение = (ВариантФормированияИтоговПриемки =
- ВариантыФормированияИтоговПриемки.ПродавцомФормируютсяДопСведенияОСогласииНесогласииСРезультатамиПриемки
- Или ВариантФормированияИтоговПриемки = ВариантыФормированияИтоговПриемки.ПродавцомФормируютсяДопСведенияИные);
+
+ Если Не ВариантФормированияИтоговПриемки = ВариантыФормированияИтоговПриемки.НеФормируются Тогда
+ ДокументОбъект.ТребуетсяПодтверждение = Ложь;
+ КонецЕсли;
+
КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -5905,21 +5989,24 @@
//
// Параметры:
// ИдентификаторыОрганизаций - Массив из Строка - набор идентификаторов организаций, по которым производится отправка
-// ОтпечаткиСертификатов - См. КриптографияБЭДКлиентСервер.НовыйРезультатПолученияОтпечатков
+// ПараметрыДействийПоЭДО - Неопределено,
+// -См. ИнтерфейсДокументовЭДОКлиентСервер.НовыеПараметрыВыполненияДействийПоЭДО
// КонтекстДиагностики - См. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
// Возвращаемое значение:
// Неопределено - если выполнение действий запрещено.
// См. СинхронизацияЭДО.ОтправитьОбъекты
-Функция ОтправитьВсеДокументы(ИдентификаторыОрганизаций, ОтпечаткиСертификатов = Неопределено, КонтекстДиагностики = Неопределено) Экспорт
+Функция ОтправитьВсеДокументы(ИдентификаторыОрганизаций, ПараметрыДействийПоЭДО = Неопределено, КонтекстДиагностики = Неопределено) Экспорт
Если Не ЗначениеЗаполнено(ИдентификаторыОрганизаций)
ИЛИ ВыполнениеДействийПоЭДОЗапрещено(КонтекстДиагностики) Тогда
Возврат Неопределено;
КонецЕсли;
- ПараметрыДействийПоЭДО = ИнтерфейсДокументовЭДОКлиентСервер.НовыеПараметрыВыполненияДействийПоЭДО();
- ПараметрыДействийПоЭДО.ОбъектыДействий.ИдентификаторыОрганизаций = ИдентификаторыОрганизаций;
- ПараметрыДействийПоЭДО.ОтпечаткиСертификатов = ОтпечаткиСертификатов;
+ Если ПараметрыДействийПоЭДО = Неопределено Тогда
+ ПараметрыДействийПоЭДО = ИнтерфейсДокументовЭДОКлиентСервер.НовыеПараметрыВыполненияДействийПоЭДО();
+ ПараметрыДействийПоЭДО.ОбъектыДействий.ИдентификаторыОрганизаций = ИдентификаторыОрганизаций;
+ КонецЕсли;
+
ДобавитьДействие(ПараметрыДействийПоЭДО.НаборДействий, Перечисления.ДействияПоЭДО.Отправить);
РезультатОтправки = ЭлектронныеДокументыЭДОСлужебный.ОтправитьСообщения(ПараметрыДействийПоЭДО, КонтекстДиагностики);
@@ -6135,6 +6222,17 @@
КонецПроцедуры
+// Параметры:
+// Ошибка - см. ОбработкаНеисправностейБЭД.НоваяОшибка
+//
+// Возвращаемое значение:
+// Булево
+Функция ЭтоОшибкаФормированияОтвета(Ошибка) Экспорт
+
+ Возврат Ошибка.ВидОшибки.Идентификатор = ИдентификаторОшибкиФормированияОтвета();
+
+КонецФункции
+
#КонецОбласти
#Область ТекстыЗапросов
@@ -6733,6 +6831,7 @@
ТипыДокументов.Добавить(Перечисления.ТипыДокументовЭДО.ДоговорныйДокумент);
ТипыДокументов.Добавить(Перечисления.ТипыДокументовЭДО.СчетНаОплату);
ТипыДокументов.Добавить(Перечисления.ТипыДокументовЭДО.СчетОферта);
+ ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ТипыДокументов, ТрансграничныйЭДО.ТипыДокументовЭДОВыгрузкиДляФНС());
Возврат ТипыДокументов;
@@ -6794,7 +6893,6 @@
#КонецОбласти
-
#Область Документы_ЭлектронныйДокументВходящий_ОбработатьДанныеДляПереходаНаНовуюВерсию
Обработчик = Обработчики.Добавить();
@@ -6889,6 +6987,8 @@
#КонецОбласти
+#КонецОбласти
+
#Область Версия_1_9_9
#Область Справочники_ВидыДокументовЭДО_ОбработатьДанныеДляПереходаНаНовуюВерсию
@@ -6948,7 +7048,7 @@
#Область РегистрыСведений_СвязьВидовИФорматовДокументовЭДО_ОбработатьДанныеДляПереходаНаНовуюВерсию
Обработчик = Обработчики.Добавить();
- Обработчик.Версия = "1.9.16.36";
+ Обработчик.Версия = "1.9.16.54";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
Обработчик.Процедура = "РегистрыСведений.СвязьВидовИФорматовДокументовЭДО.ОбработатьДанныеДляПереходаНаНовуюВерсию";
@@ -7016,7 +7116,7 @@
#Область РегистрыСведений_ФорматыЭлектронныхДокументов_ОбработатьДанныеДляПереходаНаНовуюВерсию
Обработчик = Обработчики.Добавить();
- Обработчик.Версия = "1.9.16.36";
+ Обработчик.Версия = "1.9.16.54";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
Обработчик.Процедура = "РегистрыСведений.ФорматыЭлектронныхДокументов.ОбработатьДанныеДляПереходаНаНовуюВерсию";
@@ -7135,18 +7235,47 @@
#КонецОбласти
+#Область Документы_ЭлектронныйДокументВходящий_ОбработатьДанныеДляПереходаНаНовуюВерсию
+
+ Обработчик = Обработчики.Добавить();
+ Обработчик.Версия = "1.9.16.46";
+ Обработчик.РежимВыполнения = "Отложенно";
+ Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
+ Обработчик.Процедура = "Документы.ЭлектронныйДокументВходящийЭДО.ОбработатьДанныеДляПереходаНаНовуюВерсию_АктОРасхождениях";
+ Обработчик.Идентификатор = Новый УникальныйИдентификатор("dcafb44d-22d0-431a-aa23-999aa799a09b");
+ Обработчик.Многопоточный = Истина;
+ Обработчик.ПроцедураЗаполненияДанныхОбновления = "Документы.ЭлектронныйДокументВходящийЭДО.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию_АктОРасхождениях";
+ Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
+ Обработчик.Комментарий = НСтр("ru = '1С:Обмен с контрагентами: обновление входящих электронных документов, акт о расхождениях.'");
+
+ Обработчик.ЧитаемыеОбъекты = "Документ.ЭлектронныйДокументВходящийЭДО";
+ Обработчик.ИзменяемыеОбъекты = "Документ.ЭлектронныйДокументВходящийЭДО";
+
#КонецОбласти
#КонецОбласти
+
+#Область Версия_1_9_16
+
+#Область ПервыйЗапуск
+
+ Обработчик = Обработчики.Добавить();
+ Обработчик.Версия = "";
+ Обработчик.НачальноеЗаполнение = Истина;
+ Обработчик.РежимВыполнения = "Монопольно";
+ Обработчик.Процедура = "ОбновлениеИнформационнойБазыБЭД.ПервыйЗапуск";
+ Обработчик.ЧитаемыеОбъекты = "";
+ Обработчик.ИзменяемыеОбъекты = "";
+ Обработчик.Комментарий = НСтр("ru = 'Инициализация настроек программы при первом запуске.'");
- ФорматыЭДО.ПриДобавленииОбработчиковОбновления(Обработчики);
-
+#КонецОбласти
+
+#КонецОбласти
+
КонецПроцедуры
#КонецОбласти
-#КонецОбласти
-
#Область Обновление
// Параметры:
@@ -7683,6 +7812,8 @@
#КонецОбласти
+#КонецОбласти
+
#Область СлужебныеПроцедурыИФункции
#Область Настройки
@@ -7759,7 +7890,6 @@
ИначеЕсли ТипДокумента = Перечисления.ТипыДокументовЭДО.ОтчетОПродажахКомиссионногоТовара
Или ТипДокумента = Перечисления.ТипыДокументовЭДО.ОтчетОСписанииКомиссионногоТовара
- Или ТипДокумента = Перечисления.ТипыДокументовЭДО.АктОРасхождениях
Или ТипДокумента = Перечисления.ТипыДокументовЭДО.АктСверкиВзаиморасчетов
Или ТипДокумента = Перечисления.ТипыДокументовЭДО.МашиночитаемаяДоверенность
Или ТипДокумента = Перечисления.ТипыДокументовЭДО.СчетОферта Тогда
diff --git a/src/CommonModules/ЭлектронныеДокументыЭДОВызовСервера/Ext/Module.bsl b/src/CommonModules/ЭлектронныеДокументыЭДОВызовСервера/Ext/Module.bsl
index 6ddcfc693..2d1bf4996 100644
--- a/src/CommonModules/ЭлектронныеДокументыЭДОВызовСервера/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронныеДокументыЭДОВызовСервера/Ext/Module.bsl
@@ -53,6 +53,18 @@
КонецФункции
+// Возвращаемое значение:
+// Булево
+Функция ТребуетсяВыполнениеДействийПоAPIТакском() Экспорт
+ Возврат УчетныеЗаписиЭДО.ТребуетсяВыполнениеДействийПоAPIТакском();
+КонецФункции
+
+// Возвращаемое значение:
+// Массив из Строка
+Функция СписокУчетныхЗаписейПереведенныхИзТакском() Экспорт
+ Возврат УчетныеЗаписиЭДО.СписокУчетныхЗаписейПереведенныхИзТакском();
+КонецФункции
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git a/src/CommonModules/ЭлектронныеДокументыЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl b/src/CommonModules/ЭлектронныеДокументыЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
index 32da517a5..d29a5a7e9 100644
--- a/src/CommonModules/ЭлектронныеДокументыЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронныеДокументыЭДОИнтеграцияЦентраЭДО/Ext/Module.bsl
@@ -1349,6 +1349,10 @@
ОбработанныеДействия.Добавить(Перечисления.ДействияПоЭДО.СформироватьОтвет);
+ Если ЕстьОшибкиФормированияОтветныхТитулов(КонтекстДиагностики) Тогда
+ Возврат Результат;;
+ КонецЕсли;
+
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.Переформировать) Тогда
@@ -1490,6 +1494,11 @@
ОшибкиФормирования = ОшибкиФормированияДляИнтерактивногоИсправления(КонтекстДиагностики);
Если ЗначениеЗаполнено(ОшибкиФормирования) Тогда
РезультатДействийЭДО.ОшибкиФормирования = ОшибкиФормирования;
+ Для Каждого ДействиеНабора Из ПараметрыОперации.НаборДействий Цикл
+ Если ОбработаноПоДействиям[ДействиеНабора.Ключ] = Неопределено Тогда
+ ОбработаноПоДействиям.Вставить(ДействиеНабора.Ключ, 0);
+ КонецЕсли;
+ КонецЦикла;
Возврат РезультатДействийЭДО;
КонецЕсли;
@@ -1539,8 +1548,8 @@
Пока Счетчик > 0 Цикл
Счетчик = Счетчик - 1;
Ошибка = ОшибкиДиагностики[Счетчик];
- Если Ошибка.ВидОшибки.Идентификатор = ЭлектронныеДокументыЭДО.ИдентификаторОшибкиФормированияОтвета()
- И ЗначениеЗаполнено(Ошибка.ДополнительныеДанные) Тогда
+ Если ЭлектронныеДокументыЭДО.ЭтоОшибкаФормированияОтвета(Ошибка)
+ И ЗначениеЗаполнено(Ошибка.ДополнительныеДанные) Тогда
ОшибкиФормирования.Добавить(Ошибка.ДополнительныеДанные);
ОшибкиДиагностики.Удалить(Счетчик);
КонецЕсли;
@@ -2479,6 +2488,28 @@
КонецПроцедуры
+// Параметры:
+// КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
+//
+// Возвращаемое значение:
+// Булево
+Функция ЕстьОшибкиФормированияОтветныхТитулов(КонтекстДиагностики)
+
+ ОшибкиДиагностики = ОбработкаНеисправностейБЭДКлиентСервер.ПолучитьОшибки(КонтекстДиагностики);
+ Если Не ЗначениеЗаполнено(ОшибкиДиагностики) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Для Каждого Ошибка Из ОшибкиДиагностики Цикл
+ Если ЭлектронныеДокументыЭДО.ЭтоОшибкаФормированияОтвета(Ошибка) Тогда
+ Возврат Истина;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Ложь;
+
+КонецФункции
+
#КонецОбласти
#Область Переформировать
@@ -3257,6 +3288,8 @@
Возврат;
КонецЕсли;
+ УстановитьПривилегированныйРежим(Истина);
+
ДанныеСинхронизацииДокументовЭДО = ДанныеСинхронизацииДокументовЭДОИзФорматаСервиса(РезультатМетода.НаборДанных);
РезультатОбновления = ОбновитьДокументыЭДОПоДаннымСинхронизацииПриЗагрузке(ДанныеСинхронизацииДокументовЭДО,
@@ -3324,6 +3357,8 @@
Возврат;
КонецЕсли;
+ УстановитьПривилегированныйРежим(Истина);
+
ДанныеСинхронизацииДокументовЭДО = ДанныеСинхронизацииДокументовЭДОИзФорматаСервиса(РезультатМетода);
ОбновитьДокументыЭДОПоДаннымСинхронизацииПриЗагрузке(ДанныеСинхронизацииДокументовЭДО,
@@ -3342,7 +3377,7 @@
//
// Возвращаемое значение:
// Массив из см. НовыеДанныеСинхронизацииДокументаЭДО
-Функция ДанныеСинхронизацииДокументовЭДОИзФорматаСервиса(НаборДанныхВФорматеСервиса)
+Функция ДанныеСинхронизацииДокументовЭДОИзФорматаСервиса(НаборДанныхВФорматеСервиса) Экспорт
НаборДанных = Новый Массив; // см. ДанныеСинхронизацииДокументовЭДОИзФорматаСервиса
Если Не ЗначениеЗаполнено(НаборДанныхВФорматеСервиса) Тогда
@@ -5792,6 +5827,8 @@
ИдентификаторыЭДОПоУчетнымЗаписямЦентровЭДО =
ИнтеграцияЦентраЭДО.ИдентификаторыЭДОПоУчетнымЗаписямЦентровЭДО();
+ УстановитьПривилегированныйРежим(Истина);
+
Для Каждого ИдентификаторыЭДОПоУчетнойЗаписиЦентраЭДО Из ИдентификаторыЭДОПоУчетнымЗаписямЦентровЭДО Цикл
УчетнаяЗаписьЦентраЭДО = ИдентификаторыЭДОПоУчетнойЗаписиЦентраЭДО.Ключ;
@@ -5819,10 +5856,8 @@
РегистрыСведений.СостоянияСинхронизацииСЦентромЭДО.МеткиВремениИдентификаторовЭДО(
СостоянияСинхронизации, ТипСинхронизации, ИдентификаторыЭДО);
- УстановитьПривилегированныйРежим(Истина);
ПараметрыВыполнения = ИнтеграцияЦентраЭДОПовтИсп.ПараметрыВыполненияМетодаСервиса(
УчетнаяЗаписьЦентраЭДО);
- УстановитьПривилегированныйРежим(Ложь);
Пока Истина Цикл
@@ -5851,11 +5886,9 @@
РезультатПолучения = ПолучитьПолныеДанныеДокументовПоСостояниямСинхронизации(
УчетнаяЗаписьЦентраЭДО, СостоянияСинхронизации, КонтекстДиагностики);
- УстановитьПривилегированныйРежим(Истина);
РегистрыСведений.СостоянияСинхронизацииСЦентромЭДО.ЗаписатьКоллекцию(
Перечисления.ТипыСинхронизацииСЦентромЭДО.ДанныеДокументовЭДО,
РезультатПолучения.МеткиВремениПоИдентификаторамЭДО, КонтекстДиагностики);
- УстановитьПривилегированныйРежим(Ложь);
Если ПорцияДанных.ЭтоПоследний Тогда
Возврат;
@@ -6829,7 +6862,10 @@
ПараметрыДобавленияФайла.ИмяБезРасширения = ИмяБезРасширения;
ПараметрыДобавленияФайла.РасширениеБезТочки = РасширениеБезТочки;
ПараметрыДобавленияФайла.Вставить("ПолноеИмяФайла", Файл.ПолноеИмя);
+ КлючЗамера = "РаботаСФайлами.ДобавитьФайлЭДО";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
РаботаСФайлами.ДобавитьФайл(ПараметрыДобавленияФайла, АдресДвоичныхДанных,,,ДанныеФайла.Ссылка);
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
УстановитьПривилегированныйРежим(Истина);
РегистрыСведений.ИдентификаторыСинхронизируемыхОбъектовЦентраЭДО.Записать(
@@ -7274,7 +7310,6 @@
УстановитьАктивностьРегламентногоЗаданияВыгрузкиВЦентрЭДО(Истина);
РегламентноеЗаданиеМетаданные = Метаданные.РегламентныеЗадания.ВыгрузкаВЦентрЭДО;
- ИмяМетода = РегламентноеЗаданиеМетаданные.ИмяМетода;
Ключ = РегламентноеЗаданиеМетаданные.Ключ;
Отбор = Новый Структура("Ключ, Состояние", Ключ, СостояниеФоновогоЗадания.Активно);
@@ -7282,7 +7317,7 @@
Если АктивныеФоновыеЗадания.Количество() = 0 Тогда
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияПроцедуры();
ПараметрыВыполнения.КлючФоновогоЗадания = Ключ;
- ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, ИмяМетода);
+ ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, Метаданные.РегламентныеЗадания.ВыгрузкаВЦентрЭДО.ИмяМетода);
КонецЕсли;
Возврат РегистрыСведений.СостоянияВыгрузкиВЦентрЭДО.СостояниеПоИдентификаторуЭДО(ИдентификаторЭДО);
@@ -8800,4 +8835,15 @@
#КонецОбласти // ВходящиеДокументы
-#КонецОбласти // СлужебныеПроцедурыИФункции
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ВыгрузитьНаборДокументовВЦентрЭДО", Истина);
+ Методы.Вставить("ВыполнитьВыгрузкуВЦентрЭДО", Истина);
+ Методы.Вставить("ЗаполнитьДанныеДляПодписанияПоВыбраннымСертификатам", Истина);
+ Методы.Вставить("ИзменитьДанныеВходящегоДокументаВЦентреЭДО", Истина);
+ Методы.Вставить("ПолнаяСинхронизацияДокументовЦентраЭДО", Истина);
+
+КонецПроцедуры
+
+#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git a/src/CommonModules/ЭлектронныеДокументыЭДОКлиент/Ext/Module.bsl b/src/CommonModules/ЭлектронныеДокументыЭДОКлиент/Ext/Module.bsl
index 5208ca0e9..c49743f25 100644
--- a/src/CommonModules/ЭлектронныеДокументыЭДОКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронныеДокументыЭДОКлиент/Ext/Module.bsl
@@ -41,8 +41,10 @@
НаборДействий = ПараметрыВыполнения.НаборДействий;
- Если ЭлектроннаяПодписьКлиент.ИспользоватьЭлектронныеПодписи()
+ Если Не МобильныйЭДОКлиент.ЭтоМобильныйКлиент()
+ И ЭлектроннаяПодписьКлиент.ИспользоватьЭлектронныеПодписи()
И ЭлектронныеДокументыЭДОКлиентСервер.ТребуютсяОтпечаткиСертификатовДляНабораДействий(НаборДействий) Тогда
+
Оповещение = Новый ОписаниеОповещения("ВыполнитьДействияПоЭДОПослеПолученияОтпечатков",
ЭлектронныеДокументыЭДОКлиент, КонтекстДействийПоЭДО);
КриптографияБЭДКлиент.ПолучитьОтпечаткиСертификатов(Оповещение);
@@ -419,7 +421,7 @@
ДополнительныеПараметры.НазваниеКнопкиПоУмолчанию = НСтр("ru = 'Отказать'");
ДополнительныеПараметры.Многострочность = Истина;
ДополнительныеПараметры.Обязательность = Истина;
- ДополнительныеПараметры.Строка = НСтр("ru = 'Причина отказа: '");
+ ДополнительныеПараметры.Строка = НСтр("ru = 'Причина отказа:'") + " ";
ДополнительныеПараметры.КомментарийОбязательностиВвода =
НСтр("ru = 'Для отказа от подписания документа необходимо указать причину.'");
ОбщегоНазначенияБЭДКлиент.ПоказатьВводСтрокиБЭД(Обработчик, ДополнительныеПараметры);
@@ -460,7 +462,7 @@
ДополнительныеПараметры.Обязательность = Истина;
ДополнительныеПараметры.КомментарийОбязательностиВвода =
НСтр("ru = 'Для запроса уточнения документа необходимо указать причину.'");
- ДополнительныеПараметры.Строка = НСтр("ru = 'Причина уточнения: '");
+ ДополнительныеПараметры.Строка = НСтр("ru = 'Причина уточнения:'") + " ";
ОбщегоНазначенияБЭДКлиент.ПоказатьВводСтрокиБЭД(Обработчик, ДополнительныеПараметры);
КонецПроцедуры
@@ -570,6 +572,7 @@
// * ДокументыДляОбработкиДополнительныхСведений - Соответствие из КлючИЗначение:
// ** Ключ - ДокументСсылка.ЭлектронныйДокументВходящийЭДО,ДокументСсылка.ЭлектронныйДокументИсходящийЭДО
// ** Значение - Булево
+// * ВыполнениеПоТакском - Булево
Функция НовыйКонтекстДействийПоЭДО()
Контекст = Новый Структура;
Контекст.Вставить("ИтогВыполненияДействий", ЭлектронныеДокументыЭДОКлиентСервер.НовыйИтогВыполненияДействийПоЭДО());
@@ -584,6 +587,8 @@
Контекст.Вставить("ОшибкиФормирования", Новый Массив);
Контекст.Вставить("ДокументыДляОбработкиИзвещений", Новый Соответствие);
Контекст.Вставить("ДокументыДляОбработкиДополнительныхСведений", Новый Соответствие);
+ Контекст.Вставить("ВыполнениеПоТакском", Ложь);
+
Возврат Контекст;
КонецФункции
@@ -631,7 +636,10 @@
Возврат;
КонецЕсли;
КонецЕсли;
-
+ КлючЗамера = ОбщегоНазначенияБЭДКлиент.НачатьЗамер("ОтправитьПолучитьЭДО");
+ ОповещениеОЗавершенииЗамера = ОбщегоНазначенияБЭДКлиент.ОповещениеОЗавершенииЗамера(КлючЗамера,
+ КонтекстДействийПоЭДО.ОповещениеОЗавершении);
+ КонтекстДействийПоЭДО.ОповещениеОЗавершении = ОповещениеОЗавершенииЗамера;
ДлительнаяОперация = ЭлектронныеДокументыЭДОВызовСервера.ВыполнитьДействияПоИнтеграциямЭДОВФоне(
ПараметрыВыполненияДействий);
@@ -706,6 +714,14 @@
ИначеЕсли ЗначениеЗаполнено(КонтекстДействийПоЭДО.ДокументыДляОбработкиИзвещений) Тогда
ВыполнитьДействияПоИзвещениямДокументовЭДО(КонтекстДействийПоЭДО);
+
+ ИначеЕсли Не КонтекстДействийПоЭДО.ВыполнениеПоТакском Тогда
+
+ Если ЭлектронныеДокументыЭДОВызовСервера.ТребуетсяВыполнениеДействийПоAPIТакском() Тогда
+ ВыполнитьДействияЭДОПриПереходеСТакском(КонтекстДействийПоЭДО);
+ Иначе
+ ЗавершитьВыполнениеДействийПоЭДО(КонтекстДействийПоЭДО);
+ КонецЕсли;
Иначе
@@ -739,6 +755,7 @@
ПараметрыВыполнения.ОбъектыДействий.ЭлектронныеДокументы = ОбщегоНазначенияБЭДКлиент.ВыгрузитьКолонку(
КонтекстДействийПоЭДО.ДокументыДляОбработкиИзвещений, "Ключ");
ПараметрыВыполнения.ОбработатьТолькоИзвещения = Истина;
+ ПараметрыВыполнения.ВыполнитьТолькоПоТакском = КонтекстДействийПоЭДО.ВыполнениеПоТакском;
ПараметрыВыполнения.ОтпечаткиСертификатов = КонтекстДействийПоЭДО.ПараметрыВыполненияДействий.ОтпечаткиСертификатов;
ПараметрыВыполнения.РасшифрованныеМаркеры = КонтекстДействийПоЭДО.ПараметрыВыполненияДействий.РасшифрованныеМаркеры;
@@ -802,6 +819,43 @@
КонецПроцедуры
+// Параметры:
+// КонтекстДействийПоЭДО - См. НовыйКонтекстДействийПоЭДО
+Процедура ВыполнитьДействияЭДОПриПереходеСТакском(КонтекстДействийПоЭДО)
+
+ ИдентификаторыОрганизацийПереводимыеИзТакском = ОбщегоНазначенияБЭДКлиентСервер.ПересечениеМассивов(
+ КонтекстДействийПоЭДО.ПараметрыВыполненияДействий.ОбъектыДействий.ИдентификаторыОрганизаций,
+ ЭлектронныеДокументыЭДОВызовСервера.СписокУчетныхЗаписейПереведенныхИзТакском());
+
+ ПараметрыВыполнения = ИнтерфейсДокументовЭДОКлиентСервер.НовыеПараметрыВыполненияДействийПоЭДО();
+ ПараметрыВыполнения.ВыполнитьТолькоПоТакском = Истина;
+ ПараметрыВыполнения.ОбъектыДействий.ИдентификаторыОрганизаций = ИдентификаторыОрганизацийПереводимыеИзТакском;
+ ПараметрыВыполнения.ОбъектыДействий.ЭлектронныеДокументы = КонтекстДействийПоЭДО.ПараметрыВыполненияДействий.ОбъектыДействий.ЭлектронныеДокументы;
+ ПараметрыВыполнения.ОбъектыДействий.ПакетыДокументов = КонтекстДействийПоЭДО.ПараметрыВыполненияДействий.ОбъектыДействий.ПакетыДокументов;
+ ПараметрыВыполнения.ОбъектыДействий.ТранспортныеКонтейнеры = КонтекстДействийПоЭДО.ПараметрыВыполненияДействий.ОбъектыДействий.ТранспортныеКонтейнеры;
+ ПараметрыВыполнения.ОтпечаткиСертификатов = КонтекстДействийПоЭДО.ПараметрыВыполненияДействий.ОтпечаткиСертификатов;
+
+ ТекущийНаборДействий = КонтекстДействийПоЭДО.ПараметрыВыполненияДействий.НаборДействий;
+ НаборДействий = ПараметрыВыполнения.НаборДействий;
+
+ ДействиеЗагрузить = ПредопределенноеЗначение("Перечисление.ДействияПоЭДО.Загрузить");
+ Если ЭлектронныеДокументыЭДОКлиентСервер.ЕстьДействие(ТекущийНаборДействий, ДействиеЗагрузить) Тогда
+ ИнтерфейсДокументовЭДОКлиентСервер.ДобавитьДействие(НаборДействий, ДействиеЗагрузить);
+ КонецЕсли;
+
+ ДействиеОтправить = ПредопределенноеЗначение("Перечисление.ДействияПоЭДО.Отправить");
+ Если ЭлектронныеДокументыЭДОКлиентСервер.ЕстьДействие(ТекущийНаборДействий, ДействиеОтправить) Тогда
+ ИнтерфейсДокументовЭДОКлиентСервер.ДобавитьДействие(НаборДействий, ДействиеОтправить);
+ КонецЕсли;
+
+ КонтекстДействийПоЭДО.ПараметрыВыполненияДействий = ПараметрыВыполнения;
+ КонтекстДействийПоЭДО.СостоянияВыполненияДействий = НовыеСостоянияВыполненияДействийПоИнтеграциямЭДО();
+ КонтекстДействийПоЭДО.ВыполнениеПоТакском = Истина;
+
+ ВыполнитьДействияПоЭДО(КонтекстДействийПоЭДО);
+
+КонецПроцедуры
+
// Завершает выполнение действий по ЭДО.
//
// Параметры:
diff --git a/src/CommonModules/ЭлектронныеДокументыЭДОКлиентСервер/Ext/Module.bsl b/src/CommonModules/ЭлектронныеДокументыЭДОКлиентСервер/Ext/Module.bsl
index 6a4a453ad..1e5ff2f17 100644
--- a/src/CommonModules/ЭлектронныеДокументыЭДОКлиентСервер/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронныеДокументыЭДОКлиентСервер/Ext/Module.bsl
@@ -194,6 +194,7 @@
// - См. ИнтерфейсДокументовЭДОКлиентСервер.ДанныеРучногоФормированияТитула
// * ОбработатьТолькоИзвещения - Булево
// * ИспользоватьТокеныДоступа - Булево
+// * ВыполнитьТолькоПоТакском - Булево
Функция НовыеПараметрыВыполненияДействийПоЭДО() Экспорт
ПараметрыВыполнения = Новый Структура;
ПараметрыВыполнения.Вставить("НаборДействий", НовыйНаборДействийПоЭДО());
@@ -212,6 +213,8 @@
ПараметрыВыполнения.Вставить("ДанныеРучногоФормированияТитула", Неопределено);
ПараметрыВыполнения.Вставить("ОбработатьТолькоИзвещения", Ложь);
ПараметрыВыполнения.Вставить("ИспользоватьТокеныДоступа", Ложь);
+ ПараметрыВыполнения.Вставить("ВыполнитьТолькоПоТакском", Ложь);
+
Возврат ПараметрыВыполнения;
КонецФункции
@@ -376,46 +379,6 @@
#Область ДанныеОтветныхТитулов
-// Возвращаемое значение:
-// Структура:
-// * СоставительДокументаНаименование - Строка
-// * СодержаниеФХЖ - Структура:
-// ** СведенияОПринятииТоваров - Структура:
-// *** КодИтога - Строка
-// *** ДатаПолученияТоваров - Дата
-// *** СодержаниеОперации - Строка
-// *** ДокументОРасхождениях - Структура:
-// **** НаименованиеДокумента - Строка
-// **** ДатаДокумента - Дата
-// **** НомерДокумента - Строка
-// * ЗакупкаДляГосударственныхНужд - Неопределено,Структура:
-// ** КодЗакупки - Строка
-// ** НомерЛицевогоСчетаПокупателя - Строка
-// ** НаименованиеФинансовогоОрганаПокупателя - Строка
-// ** НомерРеестровойЗаписиПокупателя - Строка
-// ** НомерБюджетногоОбязательстваПокупателя - Строка
-// ** КазначействоПокупателяКод - Строка
-// ** КазначействоПокупателяНаименование - Строка
-// ** ОКТМОМестаПоставки - Строка
-// ** НомерДенежногоОбязательства - Строка
-// ** ПредельнаяДатаОплаты - Дата
-// ** ОКТМОПокупателя - Строка
-// * ДенежныеОбязательства - Неопределено,Массив Из Структура:
-// ** ВидСредств - Строка
-// ** КодБюджетнойКлассификации - Строка
-// ** КодОбъектаФАИП - Строка
-// ** КодЦели - Строка
-// ** НомерСтрокиИнформацииПродавца - Число
-// ** СуммаАванса - Число
-Функция НовыеДанныеРучногоФормированияОтветногоТитулаУПД_5_02() Экспорт
- Данные = Новый Структура;
- Данные.Вставить("СоставительДокументаНаименование", "");
- Данные.Вставить("СодержаниеФХЖ", Новый Структура);
- Данные.Вставить("ЗакупкаДляГосударственныхНужд", Неопределено);
- Данные.Вставить("ДенежныеОбязательства", Новый Массив);
- Возврат Данные;
-КонецФункции
-
// Возвращаемое значение:
// Структура:
// * СоставительДокументаНаименование - Строка
@@ -489,10 +452,6 @@
#КонецОбласти
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
#Область КонтрактМенеджераДействийЭДО
// Возвращаемое значение:
@@ -503,4 +462,4 @@
#КонецОбласти
-#КонецОбласти
+#КонецОбласти
\ No newline at end of file
diff --git a/src/CommonModules/ЭлектронныеДокументыЭДОСлужебный/Ext/Module.bsl b/src/CommonModules/ЭлектронныеДокументыЭДОСлужебный/Ext/Module.bsl
index 1a69fd279..3304522c9 100644
--- a/src/CommonModules/ЭлектронныеДокументыЭДОСлужебный/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронныеДокументыЭДОСлужебный/Ext/Module.bsl
@@ -22,6 +22,8 @@
// См. НовыйРезультатДействийПоЭДО
Функция ВыполнитьДействияЭДО(ПараметрыВыполнения, КонтекстДиагностики = Неопределено) Экспорт
+ УчетныеЗаписиЭДО.ИзменитьСпособОбменаВсехУчетныхЗаписейПереводимыхИзТакском();
+
Если КонтекстДиагностики = Неопределено Тогда
КонтекстДиагностики = ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики();
КонецЕсли;
@@ -268,80 +270,103 @@
НаборДействий = ПараметрыВыполнения.НаборДействий;
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ВыполнениеДействийЭДО");
+
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.ЗакрытьПринудительно) Тогда
ВыполнитьДействиеЗакрыть(ПараметрыВыполнения, РезультатДействий);
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.ЗакрытьПринудительно];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ЗакрытьПринудительно", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.ВернутьВРаботу) Тогда
ВыполнитьДействиеВернутьВРаботу(ПараметрыВыполнения, РезультатДействий);
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.ВернутьВРаботу];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ВернутьВРаботу", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.ОтправитьВАрхив) Тогда
ВыполнитьДействиеОтправитьВАрхив(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.ОтправитьВАрхив];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ОтправитьВАрхив", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.ОтклонитьПодписание) Тогда
ВыполнитьДействиеОтклонитьПодписание(ПараметрыВыполнения, РезультатДействий);
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.ОтклонитьПодписание];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ОтклонитьПодписание", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.Сформировать) Тогда
ВыполнитьДействиеСформировать(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.Сформировать];
Если ЗначениеЗаполнено(РезультатДействий.ОшибкиФормирования) Тогда
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("Сформировать", ОписаниеЗамера, Обработано,
+ НСтр("ru = 'Ошибки при формировании документа'"));
Возврат;
КонецЕсли;
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("Сформировать", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.СформироватьДополнительнуюИнформацию) Тогда
ВыполнитьДействиеСформироватьДополнительнуюИнформацию(ПараметрыВыполнения, РезультатДействий);
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.СформироватьДополнительнуюИнформацию];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("СформироватьДополнительнуюИнформацию", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.СформироватьИсправление) Тогда
ВыполнитьДействиеСформироватьИсправление(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.СформироватьИсправление];
Если ЗначениеЗаполнено(РезультатДействий.ОшибкиФормирования) Тогда
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("СформироватьИсправление", ОписаниеЗамера, Обработано,
+ НСтр("ru = 'Ошибки при формировании исправления документа'"));
Возврат;
КонецЕсли;
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("СформироватьИсправление", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.СформироватьИзвещение) Тогда
ВыполнитьДействиеСформироватьИзвещение(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.СформироватьИзвещение];
Если ЗначениеЗаполнено(РезультатДействий.ОшибкиФормирования) Тогда
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("СформироватьИзвещение", ОписаниеЗамера, Обработано,
+ НСтр("ru = 'Ошибки при формировании извещения'"));
Возврат;
КонецЕсли;
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("СформироватьИзвещение", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.Переформировать) Тогда
ВыполнитьДействиеПереформировать(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.Переформировать];
Если ЗначениеЗаполнено(РезультатДействий.ОшибкиФормирования) Тогда
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("Переформировать", ОписаниеЗамера, Обработано,
+ НСтр("ru = 'Ошибки при переформировании документа'"));
Возврат;
КонецЕсли;
-
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("Переформировать", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.Отклонить) Тогда
ВыполнитьДействиеОтклонить(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.Отклонить];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("Отклонить", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.ЗапроситьУточнение) Тогда
@@ -353,109 +378,132 @@
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.Аннулировать) Тогда
ВыполнитьДействиеАннулировать(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.Аннулировать];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("Аннулировать", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.ПринятьАннулирование) Тогда
ВыполнитьДействиеПринятьАннулирование(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.ПринятьАннулирование];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ПринятьАннулирование", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.ОтклонитьАннулирование) Тогда
ВыполнитьДействиеОтклонитьАннулирование(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.ОтклонитьАннулирование];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ОтклонитьАннулирование", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.Перенаправить) Тогда
ВыполнитьДействиеПеренаправить(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.Перенаправить];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("Перенаправить", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.Утвердить) Тогда
ВыполнитьДействиеУтвердить(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.Утвердить];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("Утвердить", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.СформироватьОтвет) Тогда
ВыполнитьДействиеСформироватьОтвет(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.СформироватьОтвет];
Если ЗначениеЗаполнено(РезультатДействий.ОшибкиФормирования) Тогда
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("СформироватьОтвет", ОписаниеЗамера, Обработано,
+ НСтр("ru = 'Ошибки при формировании ответа документа'"));
Возврат;
КонецЕсли;
-
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("СформироватьОтвет", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.Подписать) Тогда
ВыполнитьДействиеПодписать(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.Подписать];
Если ЗначениеЗаполнено(РезультатДействий.ПараметрыПодписания) Тогда
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПодписатьНаСервере", ОписаниеЗамера, Обработано,
+ НСтр("ru = 'Подписание выполняется на клиенте'"));
Возврат;
КонецЕсли;
-
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ПодписатьНаСервере", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.ОтменитьОтправку) Тогда
ВыполнитьДействиеОтменитьОтправку(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.ОтменитьОтправку];
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ОтменитьОтправку", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.ПодготовитьКОтправке) Тогда
ВыполнитьДействиеПодготовитьКОтправке(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.ПодготовитьКОтправке];
Если ЗначениеЗаполнено(РезультатДействий.ЗашифрованныеМаркеры) Тогда
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПодготовитьКОтправке", ОписаниеЗамера, Обработано,
+ НСтр("ru = 'Расшифровка маркеров на клиенте'"));
Возврат;
КонецЕсли;
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ПодготовитьКОтправке", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.ЗагрузитьПриглашения) Тогда
ВыполнитьДействиеЗагрузитьПриглашения(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.ЗагрузитьПриглашения];
Если ЗначениеЗаполнено(РезультатДействий.ЗашифрованныеМаркеры) Тогда
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ЗагрузитьПриглашения", ОписаниеЗамера, Обработано,
+ НСтр("ru = 'Расшифровка маркеров на клиенте'"));
Возврат;
КонецЕсли;
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ЗагрузитьПриглашения", ОписаниеЗамера, Обработано);
+
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.ПринятьПриглашения) Тогда
ВыполнитьДействиеПринятьПриглашения(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.ПринятьПриглашения];
Если ЗначениеЗаполнено(РезультатДействий.ЗашифрованныеМаркеры) Тогда
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПринятьПриглашения", ОписаниеЗамера, Обработано,
+ НСтр("ru = 'Расшифровка маркеров на клиенте'"));
Возврат;
КонецЕсли;
-
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("ПринятьПриглашения", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.Отправить) Тогда
ВыполнитьДействиеОтправить(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.Отправить];
Если ЗначениеЗаполнено(РезультатДействий.ЗашифрованныеМаркеры) Тогда
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("Отправить", ОписаниеЗамера, Обработано,
+ НСтр("ru = 'Расшифровка маркеров на клиенте'"));
Возврат;
КонецЕсли;
-
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("Отправить", ОписаниеЗамера, Обработано);
КонецЕсли;
Если ЕстьДействие(НаборДействий, Перечисления.ДействияПоЭДО.Загрузить) Тогда
ВыполнитьДействиеЗагрузить(ПараметрыВыполнения, РезультатДействий);
-
+ Обработано = РезультатДействий.Итог.ОбработаноПоДействиям[Перечисления.ДействияПоЭДО.Загрузить];
Если ЗначениеЗаполнено(РезультатДействий.ЗашифрованныеМаркеры) Тогда
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("Загрузить", ОписаниеЗамера, Обработано,
+ НСтр("ru = 'Расшифровка маркеров на клиенте'"));
Возврат;
КонецЕсли;
-
+ ОбщегоНазначенияБЭД.ЗафиксироватьЭтап("Загрузить", ОписаниеЗамера, Обработано);
КонецЕсли;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ВыполнениеДействийЭДО", ОписаниеЗамера);
КонецПроцедуры
// Параметры:
@@ -3212,14 +3260,16 @@
ПараметрыДобавленияФайла.Служебный = Не ДоступноИнтерактивноеРедактирование;
ПараметрыДобавленияФайла.Автор = Пользователи.ТекущийПользователь();
- Файл = Новый Файл(ОписаниеДанных.ИмяФайла);
+ Файл = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ОписаниеДанных.ИмяФайла);
ПараметрыДобавленияФайла.ИмяБезРасширения = Файл.ИмяБезРасширения;
ПараметрыДобавленияФайла.РасширениеБезТочки = СтрЗаменить(Файл.Расширение,".","");
- ПараметрыДобавленияФайла.Вставить("ПолноеИмяФайла", Файл.ПолноеИмя);
+ ПараметрыДобавленияФайла.Вставить("ПолноеИмяФайла", Файл.Имя);
АдресДвоичныхДанных = ПоместитьВоВременноеХранилище(ОписаниеДанных.ДвоичныеДанные);
-
+ КлючЗамера = "РаботаСФайлами.ДобавитьФайлЭДО";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
ПрисоединенныйФайл = РаботаСФайлами.ДобавитьФайл(ПараметрыДобавленияФайла, АдресДвоичныхДанных,,,НоваяСсылкаНаФайл);
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
УдалитьИзВременногоХранилища(АдресДвоичныхДанных);
@@ -3282,7 +3332,6 @@
КонецПроцедуры
-
// Возвращает настройки отправки ЭДО по переданным параметрам документа
//
// Параметры:
@@ -3291,7 +3340,7 @@
//
// Возвращаемое значение:
// см. НастройкиЭДОКлиентСервер.НоваяНастройкаОтправки
-Функция НастройкиОтправкиДокументаПоПараметрамДокумента(ПараметрыДокумента, СодержаниеДокумента) Экспорт
+Функция НастройкиОтправкиДокументаПоПараметрамДокумента(ПараметрыДокумента, СодержаниеДокумента)
ВидДокумента = ПараметрыДокумента.ВидДокумента;
Если Не ЗначениеЗаполнено(ВидДокумента) Тогда
@@ -3389,7 +3438,7 @@
// Возвращаемое значение:
// см. НовыйРезультатПроверкиПараметровСозданияФайла
//
-Функция ПроверитьПараметрыСозданияДокумента(ПараметрыСозданияДокумента, СодержаниеДокумента) Экспорт
+Функция ПроверитьПараметрыСозданияДокумента(ПараметрыСозданияДокумента, СодержаниеДокумента)
РезультатПроверки = ПроверитьЗаполнениеОрганизацииИКонтрагентаПриСозданииПоФайлу(
ПараметрыСозданияДокумента, СодержаниеДокумента);
@@ -5078,10 +5127,11 @@
// Действие - ПеречислениеСсылка.ДействияПоЭДО
// КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
// Комментарий - Строка
+// ВызыватьИсключение - Булево
//
// Возвращаемое значение:
// Булево - Остановить документ
-Функция ОстановитьДокумент(ЭлектронныйДокумент, ПричинаОстановки, Действие, КонтекстДиагностики, Комментарий = "")
+Функция ОстановитьДокумент(ЭлектронныйДокумент, ПричинаОстановки, Действие, КонтекстДиагностики, Комментарий = "", ВызыватьИсключение = Истина)
Результат = Ложь;
КонтекстВыполненияДействия = СоздатьКонтекстВыполненияДействияПоДокументу(ЭлектронныйДокумент, Действие);
@@ -5161,7 +5211,10 @@
ОтменитьТранзакцию();
ТекстОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ДобавитьОшибкуВыполненияДействия(ТекстОшибки, КонтекстВыполненияДействия, КонтекстДиагностики);
- ВызватьИсключение ТекстОшибки;
+ Если ВызыватьИсключение Тогда
+ ВызватьИсключение ТекстОшибки;
+ КонецЕсли;
+
КонецПопытки;
Возврат Результат;
@@ -7735,7 +7788,9 @@
НайденнаяСтрока.Состояние = СообщениеОбъект.Состояние;
СформироватьМаршрут = Ложь;
- Если РегламентыЭДО_Формализованный.ДокументБезОтветногоТитула(ПараметрыДокумента) Тогда
+ Если РегламентыЭДО.ДокументБезОтветногоТитула(ПараметрыДокумента)
+ Или ПараметрыДокумента.ТипРегламента = Перечисления.ТипыРегламентовЭДО.АктОРасхождениях Тогда
+
СформироватьМаршрут = ПараметрыДокумента.ТребуетсяПодтверждение
И Не ПараметрыДокумента.ОбменБезПодписи;
Иначе
@@ -8006,8 +8061,29 @@
| ЭлектронныйДокументВходящийЭДО.ТребуетсяПодтверждение
| И ЭлектронныйДокументВходящийЭДО.ТипРегламента <> ЗНАЧЕНИЕ(Перечисление.ТипыРегламентовЭДО.Неформализованный)
| И СформированныеОтветы.ЭлектронныйДокумент ЕСТЬ NULL
+ | И НЕ ЭлектронныйДокументВходящийЭДО.ИспользоватьЦентрЭДО
+ |
+ |ОБЪЕДИНИТЬ ВСЕ
+ |
+ |ВЫБРАТЬ РАЗЛИЧНЫЕ
+ | ЭлектронныеДокументыОбъектовУчета.ЭлектронныйДокумент
+ |ИЗ
+ | ЭлектронныеДокументыОбъектовУчета КАК ЭлектронныеДокументыОбъектовУчета
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЭлектронныйДокументВходящийЭДО КАК ЭлектронныйДокументВходящийЭДО
+ | ПО ЭлектронныеДокументыОбъектовУчета.ЭлектронныйДокумент = ЭлектронныйДокументВходящийЭДО.Ссылка
+ | И (ЭлектронныйДокументВходящийЭДО.ТребуетсяПодтверждение = ЛОЖЬ)
+ | И (ЭлектронныйДокументВходящийЭДО.ТипРегламента = ЗНАЧЕНИЕ(Перечисление.ТипыРегламентовЭДО.АктОРасхождениях))
+ | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СообщениеЭДО КАК СформированныеОтветы
+ | ПО (СформированныеОтветы.ЭлектронныйДокумент = ЭлектронныйДокументВходящийЭДО.Ссылка)
+ | И (СформированныеОтветы.ТипЭлементаРегламента В (&ОтветныеЭлементыРегламента))
+ | И (СформированныеОтветы.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыСообщенийЭДО.НеСформирован))
+ | И (НЕ СформированныеОтветы.ПометкаУдаления)
+ |ГДЕ
+ | ЭлектронныйДокументВходящийЭДО.ТребуетсяПодтверждение = ЛОЖЬ
+ | И ЭлектронныйДокументВходящийЭДО.ТипРегламента = ЗНАЧЕНИЕ(Перечисление.ТипыРегламентовЭДО.АктОРасхождениях)
+ | И СформированныеОтветы.ЭлектронныйДокумент ЕСТЬ NULL
| И НЕ ЭлектронныйДокументВходящийЭДО.ИспользоватьЦентрЭДО";
-
+
ТекстыЗапросов.Добавить(ТекстЗапроса);
Если МодульОбменСГИСЭПД <> Неопределено Тогда
@@ -8035,6 +8111,24 @@
| И ЭлектронныйДокументВходящийЭДО.ТребуетсяПодтверждение
| И ЭлектронныйДокументВходящийЭДО.ТипРегламента <> ЗНАЧЕНИЕ(Перечисление.ТипыРегламентовЭДО.Неформализованный)
| И СформированныеОтветы.ЭлектронныйДокумент ЕСТЬ NULL
+ | И НЕ ЭлектронныйДокументВходящийЭДО.ИспользоватьЦентрЭДО
+ |
+ |ОБЪЕДИНИТЬ ВСЕ
+ |
+ |ВЫБРАТЬ РАЗЛИЧНЫЕ
+ | ЭлектронныйДокументВходящийЭДО.Ссылка
+ |ИЗ
+ | Документ.ЭлектронныйДокументВходящийЭДО КАК ЭлектронныйДокументВходящийЭДО
+ | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СообщениеЭДО КАК СформированныеОтветы
+ | ПО (СформированныеОтветы.ЭлектронныйДокумент = ЭлектронныйДокументВходящийЭДО.Ссылка)
+ | И (СформированныеОтветы.ТипЭлементаРегламента В (&ОтветныеЭлементыРегламента))
+ | И (СформированныеОтветы.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыСообщенийЭДО.НеСформирован))
+ | И (НЕ СформированныеОтветы.ПометкаУдаления)
+ |ГДЕ
+ | ЭлектронныйДокументВходящийЭДО.Ссылка В(&ОтборЭлектронныеДокументы)
+ | И ЭлектронныйДокументВходящийЭДО.ТребуетсяПодтверждение = Ложь
+ | И ЭлектронныйДокументВходящийЭДО.ТипРегламента = ЗНАЧЕНИЕ(Перечисление.ТипыРегламентовЭДО.АктОРасхождениях)
+ | И СформированныеОтветы.ЭлектронныйДокумент ЕСТЬ NULL
| И НЕ ЭлектронныйДокументВходящийЭДО.ИспользоватьЦентрЭДО";
ТекстыЗапросов.Добавить(ТекстЗапроса);
@@ -8229,23 +8323,6 @@
КонецЕсли;
КонецЕсли;
- МодульОбменСГИСЭПД = Неопределено;
- Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСГИСЭПД") Тогда
- МодульОбменСГИСЭПД = ОбщегоНазначения.ОбщийМодуль("ОбменСГИСЭПД");
- КонецЕсли;
-
- Если (Не ПараметрыДокумента.ТребуетсяПодтверждение
- И НЕ (МодульОбменСГИСЭПД <> Неопределено
- И МодульОбменСГИСЭПД.ЭтоТипРегламентаЭПД(ПараметрыДокумента.ТипРегламента)))
- ИЛИ (Не РегламентыЭДО.ЕстьИнформацияПолучателя(ПараметрыДокумента.ТипРегламента)
- И НЕ ЭтоЭлектронноеАктирование)
- ИЛИ СостоянияСообщений.Найти(Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияПолучателя,
- "ТипЭлементаРегламента") <> Неопределено
- ИЛИ РегламентыЭДО.ЕстьАктивноеАннулирование(СостоянияСообщений) Тогда
- ЗафиксироватьТранзакцию();
- Возврат Результат;
- КонецЕсли;
-
ВыборкаОсновногоФайла = РезультатыЗапроса[2].Выбрать();
Если Не ВыборкаОсновногоФайла.Следующий() Тогда
Результат.Отказ = Истина;
@@ -8260,6 +8337,36 @@
СвойстваОсновногоФайла.ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(ВыборкаОсновногоФайла.Ссылка);
СвойстваОсновногоФайла.Содержание = ФорматыЭДО.ПрочитатьСодержаниеДокумента(СвойстваОсновногоФайла);
+ МодульОбменСГИСЭПД = Неопределено;
+ Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСГИСЭПД") Тогда
+ МодульОбменСГИСЭПД = ОбщегоНазначения.ОбщийМодуль("ОбменСГИСЭПД");
+ КонецЕсли;
+
+ ТребуетсяОтветныйТитул = ПараметрыДокумента.ТребуетсяПодтверждение;
+ Если ПараметрыДокумента.ТипРегламента = Перечисления.ТипыРегламентовЭДО.АктОРасхождениях И Не ТребуетсяОтветныйТитул Тогда
+ СвойстваАктОРасхождениях = СвойстваОсновногоФайла.Содержание.СвойстваДокументовПоФорматам.АктОРасхождениях;
+
+ ВариантыФормирования = ФорматыЭДО.ВариантыФормированияИтоговПриемки();
+ Если СвойстваАктОРасхождениях.ФормируютсяИтогиПриемки
+ И (СвойстваАктОРасхождениях.ВариантФормированияИтоговПриемки = ВариантыФормирования.ПродавцомФормируютсяДопСведенияОСогласииНесогласииСРезультатамиПриемки
+ ИЛИ СвойстваАктОРасхождениях.ВариантФормированияИтоговПриемки = ВариантыФормирования.ПродавцомФормируютсяДопСведенияИные) Тогда
+
+ ТребуетсяОтветныйТитул = Истина;
+ КонецЕсли;
+ КонецЕсли;
+
+ Если (Не ТребуетсяОтветныйТитул
+ И НЕ (МодульОбменСГИСЭПД <> Неопределено
+ И МодульОбменСГИСЭПД.ЭтоТипРегламентаЭПД(ПараметрыДокумента.ТипРегламента)))
+ ИЛИ (Не РегламентыЭДО.ЕстьИнформацияПолучателя(ПараметрыДокумента.ТипРегламента)
+ И НЕ ЭтоЭлектронноеАктирование)
+ ИЛИ СостоянияСообщений.Найти(Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияПолучателя,
+ "ТипЭлементаРегламента") <> Неопределено
+ ИЛИ РегламентыЭДО.ЕстьАктивноеАннулирование(СостоянияСообщений) Тогда
+ ЗафиксироватьТранзакцию();
+ Возврат Результат;
+ КонецЕсли;
+
ПоддерживаемыеФорматыФНС = ФорматыЭДО_ФНС.ПоддерживаемыеФорматы();
ФорматОсновногоФайла = СвойстваОсновногоФайла.Содержание.Формат;
@@ -12032,6 +12139,9 @@
ОбъектыСообщений = Новый Соответствие();
+ ЗакрытыйПакет = ПакетыДокументовЭДО.ЭтоЗакрытыйПакет(ПакетДокументов);
+ ОтветНаЗакрытыйПакет = СинхронизацияЭДО.НовыеДанныеОбъектов();
+
Пока СвойстваДокументаСообщения.Следующий() Цикл
СообщениеОбъект = СвойстваДокументаСообщения.Сообщение.ПолучитьОбъект();
@@ -12047,7 +12157,15 @@
ЭтоОсновнойОбъект = Не ЭтоВходящийЭДО
И СообщениеОбъект.ТипЭлементаРегламента = Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя;
- ДанныеОбъектов = ?(ЭтоОсновнойОбъект, ДанныеОсновныхОбъектов, СинхронизацияЭДО.НовыеДанныеОбъектов());
+
+ Если ЭтоОсновнойОбъект Тогда
+ ДанныеОбъектов = ДанныеОсновныхОбъектов;
+ ИначеЕсли ЗакрытыйПакет Тогда
+ ДанныеОбъектов = ОтветНаЗакрытыйПакет;
+ Иначе
+ ДанныеОбъектов = СинхронизацияЭДО.НовыеДанныеОбъектов();
+ КонецЕсли;
+
ДанныеОбъекта = СинхронизацияЭДО.ДобавитьДанныеОбъекта(ДанныеОбъектов);
Отбор = Новый Структура("Сообщение", СообщениеОбъект.Ссылка);
@@ -12061,13 +12179,15 @@
ЗаполнитьДанныеОбъектаДляПодготовкиКОтправке(ДанныеОбъекта, СвойстваДокументаСообщения, СообщениеОбъект,
ТипСообщения, ФайлыСообщения, ИдентификаторыОснований, КонтекстДиагностики);
+ ДанныеОбъекта.ЗакрытыйПакет = ЗакрытыйПакет;
+
Если ДанныеОбъекта.Отказ Тогда
ДобавитьОшибкуОтменыОперации(КонтекстВыполненияДействия, КонтекстДиагностики);
ОтменитьТранзакцию();
Возврат;
КонецЕсли;
- Если ЭтоОсновнойОбъект Тогда
+ Если ЭтоОсновнойОбъект Или ЗакрытыйПакет Тогда
Продолжить;
КонецЕсли;
@@ -12088,7 +12208,7 @@
И ЗначениеЗаполнено(ДанныеОсновныхОбъектов) Тогда
НеподходящиеДокументы = Новый Массив;
- СвойстваСообщений = СвойстваОсновныхСообщенийДокументовПакета(ДокументыПакета);
+ СвойстваСообщений = СвойстваСообщенийДокументовПакета(ДокументыПакета, Ложь);
Если Не ПроверитьСостоянияОсновныхСообщенийПакета(СвойстваСообщений, НеподходящиеДокументы) Тогда
Если Не ЕстьДействияПоДокументамПакета(РезультатДействий.Итог.ОбработанныеДокументы, ДокументыПакета) Тогда
ДобавитьОшибкуОжиданияДругихДокументовПакета(ПакетДокументов, НеподходящиеДокументы, КонтекстДиагностики);
@@ -12098,7 +12218,34 @@
Возврат;
КонецЕсли;
- РезультатПодготовки = СинхронизацияЭДО.ПодготовитьОбъектыКОтправке(ДанныеОсновныхОбъектов, КонтекстДиагностики);
+ РезультатПодготовки =
+ СинхронизацияЭДО.ПодготовитьОбъектыКОтправке(ДанныеОсновныхОбъектов, КонтекстДиагностики);
+
+ Если РезультатПодготовки.Отказ Тогда
+ ПричинаОстановки = ПричинаОстановкиПодготовкиОбъектаКОтправке(ДанныеОсновныхОбъектов);
+ Если Не ЗначениеЗаполнено(ПричинаОстановки) Тогда
+ ДобавитьОшибкуОтменыОперации(КонтекстВыполненияДействия, КонтекстДиагностики);
+ ОтменитьТранзакцию();
+ Возврат;
+ КонецЕсли;
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Если Не ЗначениеЗаполнено(ПричинаОстановки)
+ И ЗначениеЗаполнено(ОтветНаЗакрытыйПакет) Тогда
+
+ НеподходящиеДокументы = Новый Массив;
+ СвойстваСообщений = СвойстваСообщенийДокументовПакета(ДокументыПакета, Истина);
+ Если Не ПодготовленыВсеОтветыНаЗакрытыйПакет(ДокументыПакета, СвойстваСообщений, НеподходящиеДокументы) Тогда
+ ДобавитьОшибкуПодготовкиОтветаНаЗакрытыйПакет(ПакетДокументов, НеподходящиеДокументы, КонтекстДиагностики);
+ ДобавитьОшибкуОтменыОперации(КонтекстВыполненияДействия, КонтекстДиагностики);
+ ОтменитьТранзакцию();
+ Возврат;
+ КонецЕсли;
+
+ РезультатПодготовки =
+ СинхронизацияЭДО.ПодготовитьОбъектыКОтправке(ОтветНаЗакрытыйПакет, КонтекстДиагностики);
Если РезультатПодготовки.Отказ Тогда
ПричинаОстановки = ПричинаОстановкиПодготовкиОбъектаКОтправке(ДанныеОсновныхОбъектов);
@@ -12478,6 +12625,29 @@
КонецЕсли;
+ Если ДанныеОбъекта.ТипРегламента = Перечисления.ТипыРегламентовЭДО.АктОРасхождениях
+ И ДанныеОбъекта.ТипЭлементаРегламента = Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя
+ И Не ДанныеОбъекта.ТребуетсяПодтверждение Тогда
+
+ ПараметрыСообщенияОтправителя = ЭлектронныеДокументыЭДО.РаспознатьСообщение(СвойстваСообщения.Ссылка);
+ Если ПараметрыСообщенияОтправителя.Свойство("СвойстваДокументовПоФорматам")
+ И ПараметрыСообщенияОтправителя.СвойстваДокументовПоФорматам.Свойство("АктОРасхождениях") Тогда
+ СвойстваАкта = ПараметрыСообщенияОтправителя.СвойстваДокументовПоФорматам.АктОРасхождениях;
+
+ ВариантФормированияИтоговПриемки = "";
+ ВариантыФормированияИтоговПриемки = ФорматыЭДО.ВариантыФормированияИтоговПриемки();
+ Если СвойстваАкта.Свойство("ВариантФормированияИтоговПриемки", ВариантФормированияИтоговПриемки)
+ И Не ПустаяСтрока(ВариантФормированияИтоговПриемки) Тогда
+
+ ДанныеОбъекта.ТребуетсяПодтверждение = (ВариантФормированияИтоговПриемки =
+ ВариантыФормированияИтоговПриемки.ПродавцомФормируютсяДопСведенияОСогласииНесогласииСРезультатамиПриемки
+ Или ВариантФормированияИтоговПриемки = ВариантыФормированияИтоговПриемки.ПродавцомФормируютсяДопСведенияИные);
+
+ КонецЕсли;
+
+ КонецЕсли;
+ КонецЕсли;
+
КонецПроцедуры
// Параметры:
@@ -12718,16 +12888,22 @@
// Параметры:
// ДокументыПакета - См. ПакетыДокументовЭДО.ДокументыПакета
+// ЗакрытыйПакет - Булево
//
// Возвращаемое значение:
// ТаблицаЗначений:
// * Ссылка - ДокументСсылка.СообщениеЭДО
// * Состояние - ПеречислениеСсылка.СостоянияСообщенийЭДО
// * ЭлектронныйДокумент - ДокументСсылка.ЭлектронныйДокументВходящийЭДО,ДокументСсылка.ЭлектронныйДокументИсходящийЭДО
-Функция СвойстваОсновныхСообщенийДокументовПакета(ДокументыПакета)
+Функция СвойстваСообщенийДокументовПакета(ДокументыПакета, Знач ЗакрытыйПакет)
+
+ ТипыЭлементовРегламента = ТипыЭлементовРегламентаСообщенийОтправляемыхВОтветНаПакет(ЗакрытыйПакет);
+
Запрос = Новый Запрос(ТекстЗапросаСвойствОсновныхСообщенийДокументовПакета());
Запрос.УстановитьПараметр("ЭлектронныеДокументы", ДокументыПакета);
+ Запрос.УстановитьПараметр("ТипЭлементаРегламента", ТипыЭлементовРегламента);
Возврат Запрос.Выполнить().Выгрузить();
+
КонецФункции
// Возвращаемое значение:
@@ -12742,7 +12918,30 @@
| Документ.СообщениеЭДО КАК СообщениеЭДО
|ГДЕ
| СообщениеЭДО.ЭлектронныйДокумент В (&ЭлектронныеДокументы)
- | И СообщениеЭДО.ТипЭлементаРегламента = ЗНАЧЕНИЕ(Перечисление.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя)";
+ | И СообщениеЭДО.ТипЭлементаРегламента В (&ТипЭлементаРегламента)";
+КонецФункции
+
+// Параметры:
+// ЗакрытыйПакет - Булево
+//
+// Возвращаемое значение:
+// Массив из см. ПеречислениеСсылка.ТипыЭлементовРегламентаЭДО - Список типов сообщений отправляемых в ответ на пакет.
+Функция ТипыЭлементовРегламентаСообщенийОтправляемыхВОтветНаПакет(ЗакрытыйПакет)
+
+ ТипыЭлементовРегламента = Новый Массив();
+
+ Если ЗакрытыйПакет Тогда
+ ТипыЭлементовРегламента.Добавить(Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияПолучателя);
+ ТипыЭлементовРегламента.Добавить(Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя);
+ ТипыЭлементовРегламента.Добавить(Перечисления.ТипыЭлементовРегламентаЭДО.УС_ОтказВПодписи);
+ ТипыЭлементовРегламента.Добавить(Перечисления.ТипыЭлементовРегламентаЭДО.УОУ);
+ ТипыЭлементовРегламента.Добавить(Перечисления.ТипыЭлементовРегламентаЭДО.ПОА);
+ Иначе
+ ТипыЭлементовРегламента.Добавить(Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя);
+ КонецЕсли;
+
+ Возврат ТипыЭлементовРегламента;
+
КонецФункции
// Параметры:
@@ -12780,6 +12979,82 @@
Возврат Ложь;
КонецФункции
+// Параметры:
+// ДокументыПакета - См. ПакетыДокументовЭДО.ДокументыПакета
+// СвойстваСообщений - см. СвойстваОсновныхСообщенийПакетаДляПодготовкиКОтправке
+// НеподходящиеДокументы - Неопределено
+// - Массив из ДокументСсылка.ЭлектронныйДокументВходящийЭДО, ДокументСсылка.ЭлектронныйДокументИсходящийЭДО
+// Возвращаемое значение:
+// Булево
+Функция ПодготовленыВсеОтветыНаЗакрытыйПакет(ДокументыПакета, СвойстваСообщений, НеподходящиеДокументы = Неопределено)
+
+ Если НеподходящиеДокументы = Неопределено Тогда
+ НеподходящиеДокументы = Новый Массив;
+ КонецЕсли;
+
+ ДокументыСПодтверждениями = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(ДокументыПакета, "ТребуетсяПодтверждение");
+ Для Каждого КлючИЗначение Из ДокументыСПодтверждениями Цикл
+
+ Если Не КлючИЗначение.Значение Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Отбор = Новый Структура("ЭлектронныйДокумент", КлючИЗначение.Ключ);
+ ПодготовленныеСообщения = СвойстваСообщений.НайтиСтроки(Отбор);
+ Если ПодготовленныеСообщения = Неопределено Тогда
+ НеподходящиеДокументы.Добавить(КлючИЗначение.Ключ);
+ Продолжить;
+ КонецЕсли;
+
+ ЕстьПодготовленныйОтвет = Ложь;
+ Для Каждого Сообщение Из ПодготовленныеСообщения Цикл
+ Если Сообщение.Состояние = Перечисления.СостоянияСообщенийЭДО.ПодготовкаКОтправке Тогда
+ ЕстьПодготовленныйОтвет = Истина;
+ Продолжить;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если Не ЕстьПодготовленныйОтвет Тогда
+ НеподходящиеДокументы.Добавить(КлючИЗначение.Ключ);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Если ЗначениеЗаполнено(НеподходящиеДокументы) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Возврат Истина;
+
+КонецФункции
+
+// Параметры:
+// ИдентификаторПакета - УникальныйИдентификатор
+// ДокументыПакета - См. ПакетыДокументовЭДО.ДокументыПакета
+// КонтекстДиагностики - См. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
+Процедура ДобавитьОшибкуПодготовкиОтветаНаЗакрытыйПакет(ИдентификаторПакета, ДокументыПакета, КонтекстДиагностики)
+
+ ВидОперации = НСтр("ru = 'Подготовка к отправке.'");
+ ВидОшибки = ОбработкаНеисправностейБЭДКлиентСервер.ВидОшибкиНеизвестнаяОшибка();
+
+ КраткоеПредставление =
+ НСтр("ru = 'Не удалось подготовить к отправке ответ на пакет электронных документов с признаком ""закрытый"".
+ |Все сообщения в ответе должны быть отправлены единовременно.'");
+
+ МассивСтрок = Новый Массив;
+ МассивСтрок.Добавить(КраткоеПредставление);
+ МассивСтрок.Добавить(СтрШаблон(НСтр("ru = 'Идентификатор пакета: %1'"), ИдентификаторПакета));
+ МассивСтрок.Добавить(НСтр("ru = 'В пакете есть документы, по которым еще не подготовлен ответ:'"));
+ ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивСтрок, ДокументыПакета);
+ ПодробноеПредставление = СтрСоединить(МассивСтрок, Символы.ПС);
+
+ Ошибка =
+ ОбработкаНеисправностейБЭД.НоваяОшибка(ВидОперации, ВидОшибки, ПодробноеПредставление, КраткоеПредставление);
+ ПодсистемыБЭД = ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД();
+ ОбработкаНеисправностейБЭД.ДобавитьОшибку(КонтекстДиагностики, Ошибка, ПодсистемыБЭД.ОбменСКонтрагентами);
+
+КонецПроцедуры
+
#КонецОбласти
#Область ОтменитьОтправку
@@ -13135,6 +13410,8 @@
ДополнительныеПараметры = Новый Структура("ИтогДействийПоЭДО",
ИнтерфейсДокументовЭДОКлиентСервер.НовыйИтогВыполненияДействийПоЭДО());
+ ДополнительныеПараметры.Вставить("ПараметрыВыполнения", ПараметрыВыполнения);
+
РезультатОтправки = СинхронизацияЭДО.ОтправитьОбъекты(ОписаниеЗапроса, КонтекстДиагностики,
ПараметрыВыполнения.ОтпечаткиСертификатов, ПараметрыВыполнения.ВыбранныеСертификаты, ДополнительныеПараметры,
ПараметрыВыполнения.РасшифрованныеМаркеры);
@@ -13453,9 +13730,14 @@
Если ПараметрыВыполнения.РасшифрованныеМаркеры = Неопределено Тогда
+ ПараметрыПереводаИзТакском = СинхронизацияЭДО.ПараметрыПереводаИзТакском();
+ Если ПараметрыВыполнения.ВыполнитьТолькоПоТакском Тогда
+ ПараметрыПереводаИзТакском.СпособОбменаДляПодмены = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском;
+ КонецЕсли;
+
ДанныеДляСинхронизации = СинхронизацияЭДО.ДанныеДляСинхронизации(ОтпечаткиСертификатов,
КонтекстДиагностики, ПараметрыВыполнения.ОбъектыДействий.ИдентификаторыОрганизаций,
- ПараметрыВыполнения.ВыбранныеСертификаты);
+ ПараметрыВыполнения.ВыбранныеСертификаты, ПараметрыПереводаИзТакском);
КлючиСинхронизации = ДанныеДляСинхронизации.КлючиСинхронизации;
@@ -13502,6 +13784,8 @@
КлючиСинхронизации = СинхронизацияЭДО.КлючиСинхронизацииИзРасшифрованныхМаркеров(
ПараметрыВыполнения.РасшифрованныеМаркеры);
+
+ УчетныеЗаписиЭДО.СкорректироватьСпособОбменаВКлючахСинхронизации(КлючиСинхронизации, ПараметрыВыполнения);
КонецЕсли;
@@ -13522,6 +13806,11 @@
ИЛИ ТребуетсяЗагрузкаИзЕИС
ИЛИ ЕстьПрямойОбмен Тогда
+ УчетныеЗаписиЭДО.СкорректироватьСпособОбменаВКлючахСинхронизации(КлючиСинхронизации, ПараметрыВыполнения);
+ Если Не ПараметрыВыполнения.ВыполнитьТолькоПоТакском Тогда
+ УчетныеЗаписиЭДО.ПеревестиУчетныеЗаписиТакскомВХаб(КлючиСинхронизации);
+ КонецЕсли;
+
РезультатПолучения = СинхронизацияЭДО.ПолучитьКонтейнеры(КлючиСинхронизации, ОтпечаткиСертификатов,
КонтекстДиагностики, РезультатыОтправкиПолучения);
@@ -13608,7 +13897,7 @@
// * ДвоичныеДанныеФайла - Неопределено,ДвоичныеДанные
// * ДвоичныеДанныеПодписи - Неопределено,ДвоичныеДанные
// * ЭтоОсновныеДанные - Булево
-Функция НовыеДанныеДляПроверкиПодписейНаКлиенте() Экспорт
+Функция НовыеДанныеДляПроверкиПодписейНаКлиенте()
ДанныеПодписи = Новый Структура;
ДанныеПодписи.Вставить("ИдентификаторДанныхДокумента", "");
ДанныеПодписи.Вставить("ДвоичныеДанныеФайла", Неопределено);
@@ -13715,6 +14004,8 @@
// ДанныеОбъектов - см. СинхронизацияЭДО.НовыеДанныеОбъектов
Процедура ДополнитьДанныеОбъектовДляЗагрузки(ДанныеОбъектов)
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ЗаполнениеТаблицыКонтейнеровДаннымиИзФорматов");
+
ДанныеОбъектов.Колонки.Добавить("Содержание");
ДанныеОбъектов.Колонки.Добавить("ПрикладнойТипДокумента", ИнтеграцияЭДО.ОписаниеТиповПрикладныхЭлектронныхДокументов());
ДанныеОбъектов.Колонки.Добавить("КомментарийСообщения", Новый ОписаниеТипов("Строка", ,
@@ -13727,6 +14018,7 @@
ЕстьОтветнаяПодпись = Ложь;
ЕстьИнформацияОтправителя = Ложь;
+ КэшЦиклов = Новый Соответствие;
Для Каждого СтрокаТаблицы Из ДанныеОбъектов Цикл
@@ -13739,7 +14031,7 @@
ЕстьИнформацияОтправителя = Истина;
КонецЕсли;
- ДополнитьДанныеОбъектаСодержаниемИнформацииОтправителя(СтрокаТаблицы);
+ ДополнитьДанныеОбъектаСодержаниемИнформацииОтправителя(СтрокаТаблицы, КэшЦиклов);
ДополнитьДанныеОбъектаКомментариемКОтклонениюАннулированию(СтрокаТаблицы);
@@ -13789,6 +14081,9 @@
Запрос.УстановитьПараметр("ДанныеДляОбработки", ДанныеОбъектов.Скопировать(, ПоляВыбора));
РезультатыЗапроса = Запрос.ВыполнитьПакет();
+ // Для поиск в СинхронизацияЭДО.ДанныеОбъектаПоИдентификатору добавим индекс по ИдентификаторСтроки.
+ ОбщегоНазначенияБЭД.ДобавитьИндексПриНеобходимости(ДанныеОбъектов, "ИдентификаторСтроки");
+
ДополнитьДанныеОбъектовВидамиДокументов(ДанныеОбъектов, РезультатыЗапроса[1]);
Если ЕстьОтветнаяПодпись Тогда
@@ -13798,7 +14093,8 @@
Если ЕстьИнформацияОтправителя Тогда
ДополнитьДанныеОбъектовПредыдущимиВерсиямиДокументов(ДанныеОбъектов, РезультатыЗапроса[2 + ЕстьОтветнаяПодпись]);
КонецЕсли;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ЗаполнениеТаблицыКонтейнеровДаннымиИзФорматов", ОписаниеЗамера,
+ ДанныеОбъектов.Количество());
КонецПроцедуры
// Возвращаемое значение:
@@ -13889,7 +14185,8 @@
// Параметры:
// ДанныеОбъекта - СтрокаТаблицыЗначений: см. СинхронизацияЭДО.НовыеДанныеОбъектов
-Процедура ДополнитьДанныеОбъектаСодержаниемИнформацииОтправителя(ДанныеОбъекта)
+// КэшЦиклов - Соответствие из КлючИЗначение, Неопределено - Возвращаемый параметр, кэширует значение между циклами.
+Процедура ДополнитьДанныеОбъектаСодержаниемИнформацииОтправителя(ДанныеОбъекта, КэшЦиклов)
МодульОбменСГИСЭПД = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСГИСЭПД") Тогда
@@ -13933,7 +14230,14 @@
ПараметрыПриглашения.ИдентификаторОрганизации = ДанныеОбъекта.ИдентификаторПолучателя;
ПараметрыПриглашения.ИдентификаторКонтрагента = ДанныеОбъекта.ИдентификаторОтправителя;
- СоздаватьКонтрагентовАвтоматическиБЭД = НастройкиЭДО.СоздаватьКонтрагентовАвтоматически();
+ Если КэшЦиклов <> Неопределено И КэшЦиклов["СоздаватьКонтрагентовАвтоматически"] <> Неопределено Тогда
+ СоздаватьКонтрагентовАвтоматическиБЭД = КэшЦиклов["СоздаватьКонтрагентовАвтоматически"];
+ Иначе
+ СоздаватьКонтрагентовАвтоматическиБЭД = НастройкиЭДО.СоздаватьКонтрагентовАвтоматически();
+ Если КэшЦиклов <> Неопределено Тогда
+ КэшЦиклов["СоздаватьКонтрагентовАвтоматически"] = СоздаватьКонтрагентовАвтоматическиБЭД;
+ КонецЕсли;
+ КонецЕсли;
ОбменМеждуСобственнымиОрганизациями = Неопределено;
ОбменПоПриглашению = СинхронизацияЭДОКлиентСервер.ЭтоОбменЧерезОператора(ДанныеОбъекта.СпособОбмена);
@@ -13942,7 +14246,10 @@
КлючКонтрагента.ИНН = Содержание.Отправитель.ИНН;
КлючКонтрагента.КПП = Содержание.Отправитель.КПП;
КлючКонтрагента.ДатаСведений = Содержание.ДатаДокумента;
- СтруктураУчастникаЭДО = ПриглашенияЭДО.УчастникЭДОПоКлючуИПриглашению(ПараметрыПриглашения, КлючКонтрагента);
+ СтруктураУчастникаЭДО = ПриглашенияЭДО.УчастникЭДОПоКлючуИПриглашению(
+ ПараметрыПриглашения,
+ КлючКонтрагента,
+ КэшЦиклов);
КонтрагентИзСодержания = СтруктураУчастникаЭДО.Ссылка;
ОбменМеждуСобственнымиОрганизациями = СтруктураУчастникаЭДО.ЭтоОрганизация;
Иначе
@@ -14052,11 +14359,11 @@
Если ЗначениеЗаполнено(Выборка.ВидДокумента) Тогда
ДанныеОбъекта.ВидДокумента = Выборка.ВидДокумента;
Иначе
- ПараметрыПоиска = Справочники.ВидыДокументовЭДО.НовыеПараметрыПоискаВидаДокумента(ДанныеОбъекта.ТипДокумента);
+ ПараметрыПоиска = ЭлектронныеДокументыЭДО.НовыеПараметрыПоискаВидаДокумента(ДанныеОбъекта.ТипДокумента);
Если ЗначениеЗаполнено(ДанныеОбъекта.ПрикладнойТипДокумента) Тогда
ПараметрыПоиска.ПрикладнойТипДокумента = ДанныеОбъекта.ПрикладнойТипДокумента;
КонецЕсли;
- ДанныеОбъекта.ВидДокумента = Справочники.ВидыДокументовЭДО.СоздатьВидДокумента(ПараметрыПоиска);
+ ДанныеОбъекта.ВидДокумента = ЭлектронныеДокументыЭДО.НайтиСоздатьВидДокумента(ПараметрыПоиска);
КонецЕсли;
КонецЦикла;
@@ -14129,6 +14436,7 @@
// * Значение - см. ПроверитьПодписиДанныхДокумента
Функция ПроверитьПодписиПоОбъектамКонтейнеров(ДанныеОбъектов, МенеджерКриптографии, КонтекстДиагностики) Экспорт
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ПроверитьПодписиПоОбъектамКонтейнеров");
Результат = Новый Соответствие;
Для Каждого ДанныеОбъекта Из ДанныеОбъектов Цикл
@@ -14153,7 +14461,7 @@
Результат.Вставить(ДанныеОбъекта.ИдентификаторСтроки, ПроверенныеПодписи);
КонецЦикла;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПроверитьПодписиПоОбъектамКонтейнеров", ОписаниеЗамера, ДанныеОбъектов.Количество());
Возврат Результат;
КонецФункции
@@ -14277,8 +14585,7 @@
ТребуетсяПроверкаПодписейНаКлиенте = Истина;
Если КриптографияБЭД.ДоступнаПроверкаПодписиНаСервере()
- Или ((АвтоматическоеПолучениеЭДОПовтИсп.ИспользоватьПолучениеПоКлючуДоступа()
- Или АвтоматическоеПолучениеЭДОПовтИсп.ИспользоватьПолучениеПоТокенамДоступа())
+ Или (АвтоматическоеПолучениеЭДО.Использовать()
И КриптографияБЭД.ДоступнаПроверкаПодписиВОблаке()) Тогда
ТребуетсяПроверкаПодписейНаКлиенте = Ложь;
КонецЕсли;
@@ -14435,7 +14742,7 @@
// РезультатЗагрузкиДанных - см. НовыйРезультатЗагрузкиДокументов
//
Процедура ЗагрузитьДанныеОбъекта(ДанныеОбъекта, ПроверенныеПодписи, КонтекстДиагностики, РезультатЗагрузкиДанных)
-
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("СозданиеДокументаЭДОПоДаннымСтрокиТаблицыКонтейнеров");
КлючБлокировкиДокумента = ЭлектронныеДокументыЭДО.НовыйКлючДокументаДляБлокировки();
КлючБлокировкиДокумента.ИдентификаторДокументооборота = ДанныеОбъекта.ИдентификаторДокументооборота;
@@ -14462,7 +14769,7 @@
ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().ОбменСКонтрагентами);
Возврат;
КонецПопытки;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("СозданиеДокументаЭДОПоДаннымСтрокиТаблицыКонтейнеров", ОписаниеЗамера);
Если ДанныеОбъекта.Отказ
Или ДанныеОбъекта.ЭтоПовторноЗагружаемоеСообщение Тогда
Возврат;
@@ -14500,6 +14807,7 @@
Попытка
СвойстваДокументовДляОписанияПакета = НовыеСвойстваДокументовДляОписанияПакетов();
+ ЗакрытыйПакет = Ложь;
Для Каждого ДанныеОбъекта Из ДанныеОбъектовПакета.Значение Цикл
@@ -14526,6 +14834,16 @@
Если ТипЭлементаРегламента = Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя Тогда
ЗаполнитьЗначенияСвойств(СвойстваДокументовДляОписанияПакета.Добавить(),
РезультатЗагрузкиСообщения.ПараметрыДокумента);
+
+ ДополнительныеДанныеКарточки = ДанныеОбъекта.Карточка.ДополнительныеПараметры;
+ ClosedMessage =
+ ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанныеКарточки,
+ "ClosedMessage", "false");
+ Если ТипЗнч(ClosedMessage) = Тип("Массив") Тогда
+ ЗакрытыйПакет = ОбщегоНазначения.JSONВЗначение(ClosedMessage.Получить(0));
+ Иначе
+ ЗакрытыйПакет = ОбщегоНазначения.JSONВЗначение(ClosedMessage);
+ КонецЕсли;
КонецЕсли;
КонецЦикла;
@@ -14536,7 +14854,7 @@
Возврат;
КонецЕсли;
- ПакетыДокументовЭДО.ЗагрузитьДокументыПакета(СвойстваДокументовДляОписанияПакета);
+ ПакетыДокументовЭДО.ЗагрузитьДокументыПакета(СвойстваДокументовДляОписанияПакета, ЗакрытыйПакет);
ЗафиксироватьТранзакцию();
Исключение
@@ -16205,18 +16523,8 @@
Если СвойстваДокументовПоФорматам.ФормируютсяИтогиПриемки Тогда
- ВариантыФормирования = ФорматыЭДО.ВариантыФормированияИтоговПриемки();
-
- ВариантыФормированияПродавца = Новый Массив;
- ВариантыФормированияПродавца.Добавить(
- ВариантыФормирования.ПродавцомФормируютсяДопСведенияОСогласииНесогласииСРезультатамиПриемки);
- ВариантыФормированияПродавца.Добавить(
- ВариантыФормирования.ПродавцомФормируютсяДопСведенияИные);
+ ТребуетсяПодтверждение = Ложь;
- НайденныйВариантФормирования = ВариантыФормированияПродавца.Найти(
- СвойстваДокументовПоФорматам.ВариантФормированияИтоговПриемки);
- ТребуетсяПодтверждение = (НайденныйВариантФормирования <> Неопределено);
-
КонецЕсли;
Возврат ТребуетсяПодтверждение;
@@ -16516,11 +16824,11 @@
НоваяСтрока = ТаблицаРегулярныхВыражений.Добавить();
НоваяСтрока.ТипДокумента = Перечисления.ТипыДокументовЭДО.ДополнительноеСоглашение;
- НоваяСтрока.РегулярноеВыражение = "дополнительное[\s_]+соглашение|доп\.?[\s_]*соглашение|дс\b";
+ НоваяСтрока.РегулярноеВыражение = "дополнительное[\s_]+соглашение|доп\.?[\s_]*соглашение|дс(?:[_\s\.]|$)";
НоваяСтрока = ТаблицаРегулярныхВыражений.Добавить();
НоваяСтрока.ТипДокумента = Перечисления.ТипыДокументовЭДО.ДополнительноеСоглашение;
- НоваяСтрока.РегулярноеВыражение = "dopolnitelnoe[\s_]+soglashenie|dop\.?[\s_]*soglashenie|ds\b";
+ НоваяСтрока.РегулярноеВыражение = "dopolnitelnoe[\s_]+soglashenie|dop\.?[\s_]*soglashenie|ds(?:[_\s\.]|$)";
НоваяСтрока = ТаблицаРегулярныхВыражений.Добавить();
НоваяСтрока.ТипДокумента = Перечисления.ТипыДокументовЭДО.ДоговорныйДокумент;
@@ -16732,9 +17040,14 @@
Если ПараметрыВыполнения.РасшифрованныеМаркеры = Неопределено Тогда
+ ПараметрыПереводаИзТакском = СинхронизацияЭДО.ПараметрыПереводаИзТакском();
+ Если ПараметрыВыполнения.ВыполнитьТолькоПоТакском Тогда
+ ПараметрыПереводаИзТакском.СпособОбменаДляПодмены = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском;
+ КонецЕсли;
+
ДанныеДляСинхронизации = СинхронизацияЭДО.ДанныеДляСинхронизации(ОтпечаткиСертификатов,
КонтекстДиагностики, ПараметрыВыполнения.ОбъектыДействий.ИдентификаторыОрганизаций,
- ПараметрыВыполнения.ВыбранныеСертификаты);
+ ПараметрыВыполнения.ВыбранныеСертификаты, ПараметрыПереводаИзТакском);
КлючиСинхронизации = ДанныеДляСинхронизации.КлючиСинхронизации;
@@ -16763,6 +17076,8 @@
КлючиСинхронизации = СинхронизацияЭДО.КлючиСинхронизацииИзРасшифрованныхМаркеров(
ПараметрыВыполнения.РасшифрованныеМаркеры);
+ УчетныеЗаписиЭДО.СкорректироватьСпособОбменаВКлючахСинхронизации(КлючиСинхронизации, ПараметрыВыполнения);
+
КонецЕсли;
Если ПараметрыВыполнения.ИспользоватьТокеныДоступа Тогда
@@ -16781,6 +17096,8 @@
ПриглашенийПолучено = 0;
Если ЗначениеЗаполнено(КлючиСинхронизации) Тогда
+ УчетныеЗаписиЭДО.УдалитьПереведенныеУчетныеЗаписиТакскомаИзКлючейСинхронизации(КлючиСинхронизации);
+
ПриглашенийПолучено = ПриглашенияЭДО.ПолучитьПриглашения(КлючиСинхронизации, КонтекстДиагностики);
КонецЕсли;
@@ -16811,10 +17128,14 @@
КлючиСинхронизации = СинхронизацияЭДОКлиентСервер.НовыеКлючиСинхронизации();
Если ПараметрыВыполнения.РасшифрованныеМаркеры = Неопределено Тогда
+ ПараметрыПереводаИзТакском = СинхронизацияЭДО.ПараметрыПереводаИзТакском();
+ Если ПараметрыВыполнения.ВыполнитьТолькоПоТакском Тогда
+ ПараметрыПереводаИзТакском.СпособОбменаДляПодмены = Перечисления.СпособыОбменаЭД.ЧерезОператораЭДОТакском;
+ КонецЕсли;
ДанныеДляСинхронизации = СинхронизацияЭДО.ДанныеДляСинхронизации(ОтпечаткиСертификатов,
КонтекстДиагностики, ПараметрыВыполнения.ОбъектыДействий.ИдентификаторыОрганизаций,
- ПараметрыВыполнения.ВыбранныеСертификаты);
+ ПараметрыВыполнения.ВыбранныеСертификаты, ПараметрыПереводаИзТакском);
КлючиСинхронизации = ДанныеДляСинхронизации.КлючиСинхронизации;
@@ -16842,6 +17163,8 @@
КлючиСинхронизации = СинхронизацияЭДО.КлючиСинхронизацииИзРасшифрованныхМаркеров(ПараметрыВыполнения.РасшифрованныеМаркеры);
+ УчетныеЗаписиЭДО.СкорректироватьСпособОбменаВКлючахСинхронизации(КлючиСинхронизации, ПараметрыВыполнения);
+
КонецЕсли;
Если ПараметрыВыполнения.ИспользоватьТокеныДоступа Тогда
@@ -16860,6 +17183,8 @@
ПриглашенийПринято = 0;
Если ЗначениеЗаполнено(КлючиСинхронизации) Тогда
+ УчетныеЗаписиЭДО.УдалитьПереведенныеУчетныеЗаписиТакскомаИзКлючейСинхронизации(КлючиСинхронизации);
+
РезультатПринятия = ПриглашенияЭДОСлужебный.ПринятьПриглашенияПоУчетнымЗаписям(КлючиСинхронизации,
КонтекстДиагностики);
@@ -17034,7 +17359,7 @@
//
// Возвращаемое значение:
// См. СоздатьКонтекстВыполненияДействия
-Функция СоздатьКонтекстВыполненияДействияПоПакету(ИдентификаторПакета, Действие) Экспорт
+Функция СоздатьКонтекстВыполненияДействияПоПакету(ИдентификаторПакета, Действие)
ПредставлениеДействия = НРег(Действие);
@@ -17060,7 +17385,7 @@
// ТекстОшибки - Строка
// КонтекстВыполнения - См. СоздатьКонтекстВыполненияДействия
// КонтекстДиагностики - См. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
-Процедура ДобавитьОшибкуВыполненияДействия(ТекстОшибки, КонтекстВыполнения, КонтекстДиагностики) Экспорт
+Процедура ДобавитьОшибкуВыполненияДействия(ТекстОшибки, КонтекстВыполнения, КонтекстДиагностики)
ВидОшибки = ОбработкаНеисправностейБЭДКлиентСервер.ВидОшибкиНеизвестнаяОшибка();
ПодробноеПредставлениеОшибки = КонтекстВыполнения.ПодробноеПредставление + Символы.ПС + ТекстОшибки;
@@ -17079,7 +17404,7 @@
// Параметры:
// КонтекстВыполнения - См. СоздатьКонтекстВыполненияДействия
// КонтекстДиагностики - См. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
-Процедура ДобавитьОшибкуОтменыОперации(КонтекстВыполнения, КонтекстДиагностики) Экспорт
+Процедура ДобавитьОшибкуОтменыОперации(КонтекстВыполнения, КонтекстДиагностики)
ТекстОшибки = НСтр("ru = 'Отмена операции'");
@@ -17643,7 +17968,9 @@
// ИдентификаторКонтрагента - Строка
// ПричинаОстановки - ПеречислениеСсылка.ПричиныОстановкиЭДО
// КонтекстДиагностики - См. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
-Процедура ОстановитьДокументыПослеИзмененияПриглашения(ИдентификаторОрганизации, ИдентификаторКонтрагента, ПричинаОстановки, КонтекстДиагностики)
+// КонтекстДиагностики - См. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
+// ЭтоПереводВХаб - Булево
+Процедура ОстановитьДокументыПослеИзмененияПриглашения(ИдентификаторОрганизации, ИдентификаторКонтрагента, ПричинаОстановки, КонтекстДиагностики, ЭтоПереводВХаб = Ложь) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
@@ -17715,7 +18042,12 @@
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
- ОстановитьДокумент(Выборка.ЭлектронныйДокумент, ПричинаОстановки, Действие, КонтекстДиагностики);
+ Если ЭтоПереводВХаб Тогда
+ ОстановитьДокумент(Выборка.ЭлектронныйДокумент, ПричинаОстановки, Действие, КонтекстДиагностики, "", Ложь);
+ Иначе
+ ОстановитьДокумент(Выборка.ЭлектронныйДокумент, ПричинаОстановки, Действие, КонтекстДиагностики);
+ КонецЕсли;
+
КонецЦикла;
КонецПроцедуры
@@ -17809,9 +18141,9 @@
Процедура ОбновитьСвязанныеДокументы(ТипДокумента, ИдентификаторыОснований, Действие, КонтекстДиагностики, ЭтоВходящийЭДО = Ложь) Экспорт
- ЭтоИсправляющийТипДокумента = Перечисления.ТипыДокументовЭДО.ЭтоИсправляющий(ТипДокумента);
+ ЭтоИсправляющийТипДокумента = ЭлектронныеДокументыЭДО.ЭтоИсправляющийТипДокумента(ТипДокумента);
- ЭтоКорректирующийТипДокумента = Перечисления.ТипыДокументовЭДО.ЭтоКорректирующий(ТипДокумента);
+ ЭтоКорректирующийТипДокумента = ЭлектронныеДокументыЭДО.ЭтоКорректирующийТипДокумента(ТипДокумента);
Если Не ЭтоИсправляющийТипДокумента
И Не ЭтоКорректирующийТипДокумента Тогда
@@ -17916,7 +18248,7 @@
Возврат;
КонецЕсли;
- КорректируемыеТипыДокументов = Перечисления.ТипыДокументовЭДО.КорректируемыеТипыДокументов();
+ КорректируемыеТипыДокументов = ЭлектронныеДокументыЭДО.КорректируемыеТипыДокументов();
СвойстваСообщения = Новый Структура("Ссылка, Статус");
@@ -19369,6 +19701,12 @@
Действия, СостояниеДокумента, СвойстваДокумента);
КонецЕсли;
+ Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСГИСЭПД") Тогда
+ МодульОбменСГИСЭПД = ОбщегоНазначения.ОбщийМодуль("ОбменСГИСЭПД");
+ МодульОбменСГИСЭПД.ПриОпределенииДоступныхДействийПоЭДО(
+ Действия, СостояниеДокумента, СвойстваДокумента);
+ КонецЕсли;
+
Возврат Действия;
КонецФункции
@@ -20701,7 +21039,7 @@
// Параметры:
// КонтекстДиагностики - См. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
// ПараметрыОшибки - См. НовыеПараметрыОшибкиПроверкиПодписиПоМЧД
-Процедура ДобавитьОшибкуПроверкиПодписиПоМЧД(КонтекстДиагностики, ПараметрыОшибки) Экспорт
+Процедура ДобавитьОшибкуПроверкиПодписиПоМЧД(КонтекстДиагностики, ПараметрыОшибки)
ВидОперации = НСтр("ru = 'Проверка подписей по МЧД'");
@@ -20847,7 +21185,8 @@
Возврат РегламентыЭДО.ЕстьИнформацияПолучателя(ДополнительныйКонтекстПроверки.СвойстваДокумента.ТипРегламента)
И Не ДополнительныйКонтекстПроверки.СвойстваСообщения.ТипЭлементаРегламента = Перечисления.ТипыЭлементовРегламентаЭДО.ПОА
И Не ДополнительныйКонтекстПроверки.СвойстваСообщения.ТипЭлементаРегламента = Перечисления.ТипыЭлементовРегламентаЭДО.УОУ
- И Не ДополнительныйКонтекстПроверки.СвойстваСообщения.ТипЭлементаРегламента = Перечисления.ТипыЭлементовРегламентаЭДО.ПОА_УОУ;
+ И Не ДополнительныйКонтекстПроверки.СвойстваСообщения.ТипЭлементаРегламента = Перечисления.ТипыЭлементовРегламентаЭДО.ПОА_УОУ
+ И Не ДополнительныйКонтекстПроверки.СвойстваДокумента.ТипРегламента = Перечисления.ТипыРегламентовЭДО.АктОРасхождениях;
КонецФункции
@@ -20886,8 +21225,9 @@
// Параметры:
// ФайлыСообщенийДляПроверкиПодписейПоМЧД - Массив Из СправочникСсылка.СообщениеЭДОПрисоединенныеФайлы
// КонтекстДиагностики - См. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
-Процедура ПроверитьПодписиПоМЧДПослеЗагрузкиДанных(ФайлыСообщенийДляПроверкиПодписейПоМЧД, КонтекстДиагностики) Экспорт
+Процедура ПроверитьПодписиПоМЧДПослеЗагрузкиДанных(ФайлыСообщенийДляПроверкиПодписейПоМЧД, КонтекстДиагностики)
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ПроверитьПодписиПоМЧДПослеЗагрузкиДанных");
УстановитьПривилегированныйРежим(Истина);
СведенияОПодписяхДляПроверки = МашиночитаемыеДоверенности.СведенияОПодписяхДляПроверки(ФайлыСообщенийДляПроверкиПодписейПоМЧД);
@@ -20895,7 +21235,8 @@
ПроверитьПодписиФайловПоМЧДПослеЗагрузкиДанных(СведенияОПодписяхДляПроверки, КонтекстДиагностики);
ЗапуститьПолнуюПроверкуПодписейПоМЧД();
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПроверитьПодписиПоМЧДПослеЗагрузкиДанных", ОписаниеЗамера,
+ СведенияОПодписяхДляПроверки.Количество());
КонецПроцедуры
// Запускает фоновую проверку всех подписей по МЧД где проверка не выполнена
@@ -20926,11 +21267,13 @@
// КонтекстДиагностики - Неопределено, См. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
Процедура ПроверитьНепроверенныеПодписиПоМЧДВФоне(КонтекстДиагностики = Неопределено) Экспорт
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ПроверитьНепроверенныеПодписиПоМЧДВФоне");
+ КоличествоЗамеров = 0;
УстановитьПривилегированныйРежим(Истина);
Если КонтекстДиагностики = Неопределено Тогда
КонтекстДиагностики = ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики();
- КонецЕсли;
+ КонецЕсли;
ТекущийФайлСообщения = Справочники.СообщениеЭДОПрисоединенныеФайлы.ПустаяСсылка();
РазмерПорции = 25;
@@ -20941,6 +21284,7 @@
ТекущийФайлСообщения, РазмерПорции);
Количество = СведенияОПодписяхДляПроверки.Количество();
+ КоличествоЗамеров = КоличествоЗамеров + Количество;
Если Количество = 0 Тогда
Возврат;
КонецЕсли;
@@ -20954,8 +21298,8 @@
КонецЕсли;
КонецЦикла;
-
-КонецПроцедуры
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПроверитьПодписиПоМЧДПослеЗагрузкиДанных", ОписаниеЗамера, КоличествоЗамеров);
+КонецПроцедуры
// Проверяет подписи файлов по МЧД после загрузки данных.
//
@@ -21047,6 +21391,8 @@
Функция ПроверитьПодписьПоМЧД(ФайлСообщения, НаправлениеСообщения, ОписаниеФайла, СвойстваПодписи,
Доверитель, ПроверкиОператоромЭДО, КэшСведенийОСтатусахМЧД = Неопределено)
+ КлючЗамера = "ПроверитьПодписьПоМЧД";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
ХешПодписи = КриптографияБЭД.ХешПодписи(СвойстваПодписи.Подпись);
РегистрационныеДанныеДоверителя = МашиночитаемыеДоверенности.НовыеРеквизитыОтбора();
РезультатПроверки = МашиночитаемыеДоверенности.НовыйРезультатПроверкиПодписи();
@@ -21055,12 +21401,13 @@
"ВладелецФайла.ТипЭлементаРегламента, ВладелецФайла.ЭлектронныйДокумент");
ТипЭлементаРегламента = ЗначениеРеквизитовСообщения.ВладелецФайлаТипЭлементаРегламента;
-
+ КомментарийЗавершенияЗамераБезПроверки = НСтр("ru = 'Проверка подписи не требуется'");
Если Не РегламентыЭДО.ЭтоИнформацияУчастникаЭДО(ТипЭлементаРегламента)
И ТипЭлементаРегламента <> Перечисления.ТипыЭлементовРегламентаЭДО.ПОА
И ТипЭлементаРегламента <> Перечисления.ТипыЭлементовРегламентаЭДО.УОУ
И ТипЭлементаРегламента <> Перечисления.ТипыЭлементовРегламентаЭДО.ПОА_УОУ Тогда
РезультатПроверки.ПроверкаВыполнена = Истина;
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера,, КомментарийЗавершенияЗамераБезПроверки);
Возврат РезультатПроверки;
КонецЕсли;
@@ -21075,6 +21422,7 @@
Если Не ЗначениеЗаполнено(РегистрационныеДанныеДоверителя.ИНН) Тогда
РезультатПроверки.ПроверкаВыполнена = Истина;
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера,, КомментарийЗавершенияЗамераБезПроверки);
Возврат РезультатПроверки;
КонецЕсли;
КонецЕсли;
@@ -21092,6 +21440,7 @@
СвойстваПодписи.Сертификат) Тогда
РезультатПроверки.ПроверкаВыполнена = Истина;
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера,, КомментарийЗавершенияЗамераБезПроверки);
Возврат РезультатПроверки;
КонецЕсли;
@@ -21228,6 +21577,7 @@
И МЧДИзДокументаСоответствуетПредставителю Тогда
РезультатПроверки.ТребуетсяДоверенность = Истина;
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера,, КомментарийЗавершенияЗамераБезПроверки);
Возврат РезультатПроверки;
КонецЕсли;
КонецЕсли;
@@ -21246,7 +21596,7 @@
Если ОшибкиПроверкиПолномочий.Количество() > 0 Тогда
РезультатПроверки.ПротоколПроверки.ОшибкиПроверкиПолномочий = ОшибкиПроверкиПолномочий;
КонецЕсли;
-
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
Возврат РезультатПроверки;
КонецФункции
@@ -21632,9 +21982,11 @@
Продолжить;
КонецЕсли;
+ РезультатПроверкиПодписиМЧД = ПараметрыПроверки.СведенияМЧД.ПротоколПроверкиМЧД.Получить();
+
МЧД = ПараметрыПроверки.СведенияМЧД.Ссылка;
МашиночитаемыеДоверенности.ОтразитьРезультатПроверкиМЧД(МЧД, ПараметрыПроверки.СведенияМЧД.Верна,
- ПараметрыПроверки.ТекстОшибки);
+ ПараметрыПроверки.ТекстОшибки, , РезультатПроверкиПодписиМЧД);
КонецЦикла;
@@ -21826,7 +22178,7 @@
// Возвращаемое значение:
// Строка
-Функция КлючЗаданияФоновойПроверкиПодписейПоМЧД() Экспорт
+Функция КлючЗаданияФоновойПроверкиПодписейПоМЧД()
Возврат "ФоноваяПроверкаПодписейПоМЧД";
КонецФункции
@@ -21854,8 +22206,16 @@
Для Каждого ОшибкаФормирования Из ДанныеПоДокументам.ОшибкиФормирования Цикл
+ Если ОшибкаФормирования.ОшибкиДанных = Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+
Для Каждого Сообщение Из Сообщения Цикл
+ Если Сообщение.КлючДанных = Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+
Если Сообщение.КлючДанных = ОшибкаФормирования.ОписаниеОбъектаУчета.ОбъектУчета Тогда
ДанныеОшибки = ОбщегоНазначенияБЭДКлиентСервер.НовыеПараметрыОшибки();
@@ -21864,16 +22224,29 @@
ОбщегоНазначенияБЭД.ДобавитьОшибку(ОшибкаФормирования.ОшибкиДанных.ЗаполнениеДанных,
Сообщение.Текст, ДанныеОшибки);
- ИначеЕсли Не ЗначениеЗаполнено(Сообщение.КлючДанных) Тогда
- Сообщение.Сообщить();
КонецЕсли;
КонецЦикла;
КонецЦикла;
+
+ Для Каждого Сообщение Из Сообщения Цикл
+
+ Если Сообщение.КлючДанных = Неопределено Тогда
+ Сообщение.Сообщить();
+ КонецЕсли;
+
+ КонецЦикла;
КонецПроцедуры
#КонецОбласти
+// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
+Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
+
+ Методы.Вставить("ПроверитьНепроверенныеПодписиПоМЧДВФоне", Истина);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/CommonModules/ЭлектронныеДокументыЭДОСлужебныйКлиент/Ext/Module.bsl b/src/CommonModules/ЭлектронныеДокументыЭДОСлужебныйКлиент/Ext/Module.bsl
index af3d176dd..5c2fc8168 100644
--- a/src/CommonModules/ЭлектронныеДокументыЭДОСлужебныйКлиент/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронныеДокументыЭДОСлужебныйКлиент/Ext/Module.bsl
@@ -441,7 +441,7 @@
ПараметрыВвода.Обязательность = Истина;
ПараметрыВвода.ДополнительноеОписание =
Нстр("ru = 'Укажите должность для подписания документов.
- |Позже ее можно изменить в настройках учётной записи ЭДО.'");
+ |Позже ее можно изменить в настройках учетной записи ЭДО.'");
ПараметрыВвода.КоличествоСтрокДополнительногоОписания = 2;
ОбщегоНазначенияБЭДКлиент.ПоказатьВводСтрокиБЭД(ПослеВводаДополнительныхДанных, ПараметрыВвода);
Иначе
@@ -1089,7 +1089,7 @@
// КонтекстДиагностики - см. ОбработкаНеисправностейБЭД.НовыйКонтекстДиагностики
//
Процедура НачатьПроверкуПодписей(ОповещениеОЗавершении, ПодписиДляПроверки, КонтекстДиагностики)
-
+
ПараметрыПроверки = НовыеПараметрыПроверкиПодписейПриЗагрузкеДокумента();
ПараметрыПроверки.ПодписиДляПроверки = ПодписиДляПроверки;
ПараметрыПроверки.ОбработкаЗавершенияПроверки = ОповещениеОЗавершении;
diff --git a/src/CommonModules/ЭлектронныеДокументыЭДОЦентрЭДО/Ext/Module.bsl b/src/CommonModules/ЭлектронныеДокументыЭДОЦентрЭДО/Ext/Module.bsl
index 39a086ef1..84894d8ad 100644
--- a/src/CommonModules/ЭлектронныеДокументыЭДОЦентрЭДО/Ext/Module.bsl
+++ b/src/CommonModules/ЭлектронныеДокументыЭДОЦентрЭДО/Ext/Module.bsl
@@ -1726,7 +1726,7 @@
ЭлементБлокировки.УстановитьЗначение("ИдентификаторПакета", ИдентификаторПакета);
Блокировка.Заблокировать();
- ОбъединитьДокументыВПакет(ИдентификаторПакета,
+ ПакетыДокументовЭДО.ОбъединитьДокументыВПакет(ИдентификаторПакета,
ОбщегоНазначения.ВыгрузитьКолонку(ДокументыПоИдентификаторам, "Значение"));
ЗафиксироватьТранзакцию();
@@ -3588,7 +3588,7 @@
ОтпечаткиПоСертификатам = ОтпечаткиПоСертификатамУчетныхЗаписейДокументовЭДО(ДокументыЭДО);
ОтпечаткиДляДокументовЭДО = ОтпечаткиПоСертификатам.ВыгрузитьКолонку("Отпечаток");
- ОтпечаткиДляПодписания = ОбщегоНазначенияБЭД.ПересечениеМассивов(ОтпечаткиДляДокументовЭДО, ОтпечаткиСертификатов);
+ ОтпечаткиДляПодписания = ОбщегоНазначенияБЭДКлиентСервер.ПересечениеМассивов(ОтпечаткиДляДокументовЭДО, ОтпечаткиСертификатов);
РезультатыПолученияОтпечатков = РезультатыПолученияОтпечатков(ОтпечаткиДляПодписания);
@@ -5550,7 +5550,7 @@
Для Каждого ДанныеФайлаСообщения Из ДанныеФайловСообщений Цикл
Сообщение = ИдентификаторыОбъектов[ДанныеФайлаСообщения.ИдентификаторСообщения]; // ДокументСсылка.СообщениеЭДО
НоваяСсылкаНаФайл = ИдентификаторыОбъектов[ДанныеФайлаСообщения.Идентификатор]; // Неопределено,СправочникСсылка.СообщениеЭДОПрисоединенныеФайлы
- Файл = Новый Файл(ДанныеФайлаСообщения.Имя);
+ Файл = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ДанныеФайлаСообщения.Имя);
ДвоичныеДанные = Base64Значение(ДанныеФайлаСообщения.Данные);
АдресДвоичныхДанных = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
ПараметрыДобавленияФайла = РаботаСФайлами.ПараметрыДобавленияФайла();
@@ -5559,8 +5559,11 @@
ПараметрыДобавленияФайла.Автор = Пользователи.ТекущийПользователь();
ПараметрыДобавленияФайла.ИмяБезРасширения = Файл.ИмяБезРасширения;
ПараметрыДобавленияФайла.РасширениеБезТочки = СтрЗаменить(Файл.Расширение,".","");
- ПараметрыДобавленияФайла.Вставить("ПолноеИмяФайла", Файл.ПолноеИмя);
+ ПараметрыДобавленияФайла.Вставить("ПолноеИмяФайла", Файл.Имя);
+ КлючЗамера = "РаботаСФайлами.ДобавитьФайлЭДО";
+ ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
СсылкаНаФайл = РаботаСФайлами.ДобавитьФайл(ПараметрыДобавленияФайла, АдресДвоичныхДанных,,,НоваяСсылкаНаФайл);
+ ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
ИдентификаторыОбъектов.Вставить(ДанныеФайлаСообщения.Идентификатор, СсылкаНаФайл);
@@ -5702,34 +5705,6 @@
КонецПроцедуры
-// Параметры:
-// ИдентификаторПакета - УникальныйИдентификатор
-// ЭлектронныеДокументы - Массив из ДокументСсылка.ЭлектронныйДокументВходящийЭДО,ДокументСсылка.ЭлектронныйДокументИсходящийЭДО
-Процедура ОбъединитьДокументыВПакет(ИдентификаторПакета, ЭлектронныеДокументы)
-
- Если Не ЗначениеЗаполнено(ЭлектронныеДокументы) Тогда
- Возврат;
- КонецЕсли;
-
- СвойстваДокументовДляОписанияПакетов = ЭлектронныеДокументыЭДО.СвойстваДокументовДляОписанияПакетов(
- ЭлектронныеДокументы);
-
- РегистрыСведений.ПакетыДокументовЭДО.Удалить(ИдентификаторПакета);
- РегистрыСведений.ПакетыДокументовЭДО.ОбновитьОписание(ИдентификаторПакета, СвойстваДокументовДляОписанияПакетов);
-
- ТекущиеДокументыПакета = ПакетыДокументовЭДО.ДокументыПакета(ИдентификаторПакета);
- Для Каждого ТекущийДокументПакета Из ТекущиеДокументыПакета Цикл
- РегистрыСведений.СоставПакетовДокументовЭДО.Удалить(ТекущийДокументПакета);
- КонецЦикла;
-
- Для Каждого ЭлектронныйДокумент Из ЭлектронныеДокументы Цикл
- СвойстваДокумента = СвойстваДокументовДляОписанияПакетов.Найти(ЭлектронныйДокумент, "Ссылка");
- РегистрыСведений.СоставПакетовДокументовЭДО.Записать(ИдентификаторПакета, ЭлектронныйДокумент,
- СвойстваДокумента);
- КонецЦикла;
-
-КонецПроцедуры
-
#КонецОбласти
#Область МеткиВремени
@@ -5801,4 +5776,4 @@
#КонецОбласти
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
+#КонецОбласти // СлужебныеПроцедурыИФункции
diff --git a/src/CommonPictures/ДлительнаяОперация32ОбменСБанками.xml b/src/CommonPictures/ДлительнаяОперация32ОбменСБанками.xml
new file mode 100644
index 000000000..9e60eafea
--- /dev/null
+++ b/src/CommonPictures/ДлительнаяОперация32ОбменСБанками.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ ДлительнаяОперация32ОбменСБанками
+
+
+ ru
+ Длительная операция обмен с банками
+
+
+
+ false
+ false
+
+
+
\ No newline at end of file
diff --git a/src/CommonPictures/ДлительнаяОперация32ОбменСБанками/Ext/Picture.xml b/src/CommonPictures/ДлительнаяОперация32ОбменСБанками/Ext/Picture.xml
new file mode 100644
index 000000000..bdcc47166
--- /dev/null
+++ b/src/CommonPictures/ДлительнаяОперация32ОбменСБанками/Ext/Picture.xml
@@ -0,0 +1,7 @@
+
+
+
+ Picture.zip
+ false
+
+
\ No newline at end of file
diff --git a/src/CommonPictures/ДлительнаяОперация32ОбменСБанками/Ext/Picture/Picture.zip b/src/CommonPictures/ДлительнаяОперация32ОбменСБанками/Ext/Picture/Picture.zip
new file mode 100644
index 000000000..5773974bb
Binary files /dev/null and b/src/CommonPictures/ДлительнаяОперация32ОбменСБанками/Ext/Picture/Picture.zip differ
diff --git a/src/CommonPictures/НастройкаНазначенияПлатежа.xml b/src/CommonPictures/НастройкаНазначенияПлатежа.xml
new file mode 100644
index 000000000..56b6cf33c
--- /dev/null
+++ b/src/CommonPictures/НастройкаНазначенияПлатежа.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ НастройкаНазначенияПлатежа
+
+
+ ru
+ Настройка назначения платежа
+
+
+
+ false
+ false
+
+
+
\ No newline at end of file
diff --git a/src/CommonPictures/НастройкаНазначенияПлатежа/Ext/Picture.xml b/src/CommonPictures/НастройкаНазначенияПлатежа/Ext/Picture.xml
new file mode 100644
index 000000000..bdcc47166
--- /dev/null
+++ b/src/CommonPictures/НастройкаНазначенияПлатежа/Ext/Picture.xml
@@ -0,0 +1,7 @@
+
+
+
+ Picture.zip
+ false
+
+
\ No newline at end of file
diff --git a/src/CommonPictures/НастройкаНазначенияПлатежа/Ext/Picture/Picture.zip b/src/CommonPictures/НастройкаНазначенияПлатежа/Ext/Picture/Picture.zip
new file mode 100644
index 000000000..7507212cb
Binary files /dev/null and b/src/CommonPictures/НастройкаНазначенияПлатежа/Ext/Picture/Picture.zip differ
diff --git a/src/CommonPictures/НастройкиПлатежныхСистем/Ext/Picture.xml b/src/CommonPictures/НастройкиПлатежныхСистем/Ext/Picture.xml
index 6adf1e379..bdcc47166 100644
--- a/src/CommonPictures/НастройкиПлатежныхСистем/Ext/Picture.xml
+++ b/src/CommonPictures/НастройкиПлатежныхСистем/Ext/Picture.xml
@@ -1,7 +1,7 @@
- Picture.svg
+ Picture.zip
false
\ No newline at end of file
diff --git a/src/CommonPictures/НастройкиПлатежныхСистем/Ext/Picture/Picture.zip b/src/CommonPictures/НастройкиПлатежныхСистем/Ext/Picture/Picture.zip
new file mode 100644
index 000000000..cc86b2ebe
Binary files /dev/null and b/src/CommonPictures/НастройкиПлатежныхСистем/Ext/Picture/Picture.zip differ
diff --git a/src/CommonPictures/УАС_ПроверкаПоступившегоТовара.xml b/src/CommonPictures/УАС_ПроверкаПоступившегоТовара.xml
new file mode 100644
index 000000000..67329f5e4
--- /dev/null
+++ b/src/CommonPictures/УАС_ПроверкаПоступившегоТовара.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ УАС_ПроверкаПоступившегоТовара
+
+
+ ru
+ Проверка поступившего товара
+
+
+
+ false
+ false
+
+
+
\ No newline at end of file
diff --git a/src/CommonPictures/УАС_ПроверкаПоступившегоТовара/Ext/Picture.xml b/src/CommonPictures/УАС_ПроверкаПоступившегоТовара/Ext/Picture.xml
new file mode 100644
index 000000000..984140b8e
--- /dev/null
+++ b/src/CommonPictures/УАС_ПроверкаПоступившегоТовара/Ext/Picture.xml
@@ -0,0 +1,7 @@
+
+
+
+ Picture.png
+ false
+
+
\ No newline at end of file
diff --git a/src/CommonPictures/УАС_ПроверкаПоступившегоТовара/Ext/Picture/Picture.png b/src/CommonPictures/УАС_ПроверкаПоступившегоТовара/Ext/Picture/Picture.png
new file mode 100644
index 000000000..0e3c5194c
Binary files /dev/null and b/src/CommonPictures/УАС_ПроверкаПоступившегоТовара/Ext/Picture/Picture.png differ
diff --git a/src/CommonTemplates/fresh/Ext/Template.bin b/src/CommonTemplates/fresh/Ext/Template.bin
index d37e611e3..ef785e604 100644
Binary files a/src/CommonTemplates/fresh/Ext/Template.bin and b/src/CommonTemplates/fresh/Ext/Template.bin differ
diff --git a/src/CommonTemplates/ОписаниеИзмененийСистемы/Ext/Template.xml b/src/CommonTemplates/ОписаниеИзмененийСистемы/Ext/Template.xml
index 300a9e606..cbc89ff31 100644
--- a/src/CommonTemplates/ОписаниеИзмененийСистемы/Ext/Template.xml
+++ b/src/CommonTemplates/ОписаниеИзмененийСистемы/Ext/Template.xml
@@ -33,7 +33,7 @@
ru
- Новое в версии 11.5.27.61
+ Новое в версии 11.5.27.70
@@ -60,7 +60,7 @@
ru
- Взаиморасчеты
+ Сервисные возможности и настройки интеграции
@@ -76,7 +76,8 @@
ru
- Сервис "Сверка 2.0"
+ Стандартные подсистемы
+Библиотека стандартных подсистем обновлена до версии 3.1.12.254.
@@ -88,14 +89,8 @@
- 4
-
-
- ru
- Отчет по сверке разделяет документы сверки на документы с критичными расхождениями, незначительными расхождениями и без расхождений. Отчет открывается с настройкой по критичным расхождениям. Переработана компоновка и логика формирования отчета. Отчет адаптирован под интерфейс такси и 8.5.
- Упрощено переключение логина ИТС для организаций, которые ранее были подключены к бизнес-сети.
-
-
+ 3
+
@@ -120,7 +115,7 @@
ru
- Сервисные возможности и настройки интеграции
+ Новое в версии 11.5.27.68
@@ -132,14 +127,8 @@
- 4
-
-
- ru
- Интеграция с торговой площадкой "Озон"
-Учтены изменения в программном интерфейсе взаимодействия с торговой площадкой.
-
-
+ 3
+
@@ -149,8 +138,13 @@
- 3
-
+ 2
+
+
+ ru
+ Сервисные возможности и настройки интеграции
+
+
@@ -160,8 +154,14 @@
- 3
-
+ 4
+
+
+ ru
+ Обмен электронными документами
+Библиотека электронных документов обновлена до версии 1.9.16.55.
+
+
@@ -171,11 +171,12 @@
- 2
+ 4
ru
- Новое в версии 11.5.27.58
+ Интернет-поддержка пользователей
+Библиотека интернет-поддержки пользователей обновлена до версии 2.8.4.33.
@@ -198,13 +199,8 @@
- 2
-
-
- ru
- Нормативно-справочная информация
-
-
+ 3
+
@@ -214,13 +210,11 @@
- 4
+ 2
ru
- Обособленные подразделения организации
-При формировании исходящих счетов-фактур и УПД в документах реализации уточнен порядок отнесения реализации к обособленному подразделению:
-Если в документе реализации указан склад, в котором указано обособленное подразделение, то считается, что реализация выполняется обособленным подразделением, указанным для склада, вне зависимости от подразделения, указанного непосредственно в документе на закладке Дополнительно.
+ Новое в версии 11.5.27.61
@@ -243,8 +237,13 @@
- 3
-
+ 2
+
+
+ ru
+ Взаиморасчеты
+
+
@@ -254,11 +253,11 @@
- 2
+ 4
ru
- Сервисные возможности и настройки интеграции
+ Сервис "Сверка 2.0"
@@ -274,8 +273,8 @@
ru
- Интеграция с 1С:Документооборот
-Библиотека интеграции с 1С:Документооборотом обновлена до версии 3.0.4.2.
+ Отчет по сверке разделяет документы сверки на документы с критичными расхождениями, незначительными расхождениями и без расхождений. Отчет открывается с настройкой по критичным расхождениям. Переработана компоновка и логика формирования отчета. Отчет адаптирован под интерфейс такси и 8.5.
+Упрощено переключение логина ИТС для организаций, которые ранее были подключены к бизнес-сети.
@@ -287,13 +286,8 @@
- 4
-
-
- ru
- Изменен режим использования команды Документооборот: Начать обработку. Реализована возможность множественного выполнения.
-
-
+ 3
+
@@ -303,12 +297,11 @@
- 4
+ 2
ru
- Стандартные подсистемы
-Библиотека стандартных подсистем обновлена до версии 3.1.12.238.
+ Сервисные возможности и настройки интеграции
@@ -320,8 +313,14 @@
- 3
-
+ 4
+
+
+ ru
+ Интеграция с торговой площадкой "Озон"
+Учтены изменения в программном интерфейсе взаимодействия с торговой площадкой.
+
+
@@ -339,6 +338,17 @@
23
+
+
+
+ 3
+
+
+
+
+
+
+ 24
@@ -346,7 +356,7 @@
ru
- Новое в версии 11.5.27.56
+ Новое в версии 11.5.27.58
@@ -354,7 +364,7 @@
- 24
+ 25
@@ -365,7 +375,7 @@
- 25
+ 26
@@ -373,24 +383,7 @@
ru
- Сервисные возможности и настройки интеграции
-
-
-
-
-
-
-
- 26
-
-
-
- 4
-
-
- ru
- Интеграция с ГИС МТ "Честный знак"
-Библиотека ГосИС обновлена до версии 2.0.7.
+ Нормативно-справочная информация
@@ -406,7 +399,9 @@
ru
- Поддержан учет сырья для фармацевтических препаратов.
+ Обособленные подразделения организации
+При формировании исходящих счетов-фактур и УПД в документах реализации уточнен порядок отнесения реализации к обособленному подразделению:
+Если в документе реализации указан склад, в котором указано обособленное подразделение, то считается, что реализация выполняется обособленным подразделением, указанным для склада, вне зависимости от подразделения, указанного непосредственно в документе на закладке Дополнительно.
@@ -444,7 +439,7 @@
ru
- Новое в версии 11.5.27.52
+ Сервисные возможности и настройки интеграции
@@ -456,8 +451,14 @@
- 3
-
+ 4
+
+
+ ru
+ Интеграция с 1С:Документооборот
+Библиотека интеграции с 1С:Документооборотом обновлена до версии 3.0.4.2.
+
+
@@ -467,11 +468,11 @@
- 2
+ 4
ru
- Новое в версии 11.5.27.50
+ Изменен режим использования команды Документооборот: Начать обработку. Реализована возможность множественного выполнения.
@@ -483,8 +484,14 @@
- 3
-
+ 4
+
+
+ ru
+ Стандартные подсистемы
+Библиотека стандартных подсистем обновлена до версии 3.1.12.238.
+
+
@@ -494,13 +501,8 @@
- 2
-
-
- ru
- Новое в версии 11.5.27.49
-
-
+ 3
+
@@ -525,7 +527,7 @@
ru
- Сервисные возможности и настройки интеграции
+ Новое в версии 11.5.27.56
@@ -537,13 +539,8 @@
- 4
-
-
- ru
- Интеграция с торговой площадкой Яндекс Маркет
-
-
+ 3
+
@@ -553,12 +550,11 @@
- 4
+ 2
ru
- В интерфейсе авторизации появилось описание наборов прав, предоставляемых подключаемому.
-Идентификатор товара продавца ограничен до 200 символов согласно требованиям площадки.
+ Сервисные возможности и настройки интеграции
@@ -575,8 +571,7 @@
ru
Интеграция с ГИС МТ "Честный знак"
-Библиотека ГосИС обновлена до версии 2.0.36.
-Реализовано хранение списка мест осуществления деятельности (МОД) организаций и контрагентов.
+Библиотека ГосИС обновлена до версии 2.0.7.
@@ -592,7 +587,7 @@
ru
- Поддержано указание МОД при выводе из оборота для ряда товарных групп: Обувь, Легкая промышленность, Духи, Шины, Табак, АТП, НСП, Игрушки, Ноутбуки, Строительные материалы.
+ Поддержан учет сырья для фармацевтических препаратов.
@@ -604,14 +599,8 @@
- 4
-
-
- ru
- Обмен электронными документами
-Библиотека электронных документов обновлена до версии 1.9.16.38.
-
-
+ 3
+
@@ -629,6 +618,22 @@
43
+
+
+
+ 2
+
+
+ ru
+ Новое в версии 11.5.27.52
+
+
+
+
+
+
+
+ 44
@@ -639,7 +644,183 @@
- 44
+ 45
+
+
+
+ 2
+
+
+ ru
+ Новое в версии 11.5.27.50
+
+
+
+
+
+
+
+ 46
+
+
+
+ 3
+
+
+
+
+
+
+ 47
+
+
+
+ 2
+
+
+ ru
+ Новое в версии 11.5.27.49
+
+
+
+
+
+
+
+ 48
+
+
+
+ 3
+
+
+
+
+
+
+ 49
+
+
+
+ 2
+
+
+ ru
+ Сервисные возможности и настройки интеграции
+
+
+
+
+
+
+
+ 50
+
+
+
+ 4
+
+
+ ru
+ Интеграция с торговой площадкой Яндекс Маркет
+
+
+
+
+
+
+
+ 51
+
+
+
+ 4
+
+
+ ru
+ В интерфейсе авторизации появилось описание наборов прав, предоставляемых подключаемому.
+Идентификатор товара продавца ограничен до 200 символов согласно требованиям площадки.
+
+
+
+
+
+
+
+ 52
+
+
+
+ 4
+
+
+ ru
+ Интеграция с ГИС МТ "Честный знак"
+Библиотека ГосИС обновлена до версии 2.0.36.
+Реализовано хранение списка мест осуществления деятельности (МОД) организаций и контрагентов.
+
+
+
+
+
+
+
+ 53
+
+
+
+ 4
+
+
+ ru
+ Поддержано указание МОД при выводе из оборота для ряда товарных групп: Обувь, Легкая промышленность, Духи, Шины, Табак, АТП, НСП, Игрушки, Ноутбуки, Строительные материалы.
+
+
+
+
+
+
+
+ 54
+
+
+
+ 4
+
+
+ ru
+ Обмен электронными документами
+Библиотека электронных документов обновлена до версии 1.9.16.38.
+
+
+
+
+
+
+
+ 55
+
+
+
+ 3
+
+
+
+
+
+
+ 56
+
+
+
+ 3
+
+
+
+
+
+
+ 57
@@ -655,7 +836,7 @@
- 45
+ 58
@@ -666,7 +847,7 @@
- 46
+ 59
@@ -682,7 +863,7 @@
- 47
+ 60
@@ -693,7 +874,7 @@
- 48
+ 61
@@ -709,7 +890,7 @@
- 49
+ 62
@@ -726,7 +907,7 @@
- 50
+ 63
@@ -752,7 +933,7 @@
- 51
+ 64
@@ -763,7 +944,7 @@
- 52
+ 65
@@ -774,7 +955,7 @@
- 53
+ 66
@@ -790,7 +971,7 @@
- 54
+ 67
@@ -807,7 +988,7 @@
- 55
+ 68
@@ -827,7 +1008,7 @@
- 56
+ 69
@@ -844,7 +1025,7 @@
- 57
+ 70
@@ -861,7 +1042,7 @@
- 58
+ 71
@@ -878,7 +1059,7 @@
- 59
+ 72
@@ -900,7 +1081,7 @@
- 60
+ 73
@@ -911,7 +1092,7 @@
- 61
+ 74
@@ -922,7 +1103,7 @@
- 62
+ 75
@@ -938,7 +1119,7 @@
- 63
+ 76
@@ -954,7 +1135,7 @@
- 64
+ 77
@@ -971,7 +1152,7 @@
- 65
+ 78
@@ -988,7 +1169,7 @@
- 66
+ 79
@@ -1008,7 +1189,7 @@
- 67
+ 80
@@ -1025,7 +1206,7 @@
- 68
+ 81
@@ -1043,7 +1224,7 @@
- 69
+ 82
@@ -1061,7 +1242,7 @@
- 70
+ 83
@@ -1084,7 +1265,7 @@
- 71
+ 84
@@ -1101,7 +1282,7 @@
- 72
+ 85
@@ -1119,7 +1300,7 @@
- 73
+ 86
@@ -1135,7 +1316,7 @@
- 74
+ 87
@@ -1152,7 +1333,7 @@
- 75
+ 88
@@ -1169,7 +1350,7 @@
- 76
+ 89
@@ -1180,7 +1361,7 @@
- 77
+ 90
@@ -1196,7 +1377,7 @@
- 78
+ 91
@@ -1215,7 +1396,7 @@
- 79
+ 92
@@ -1226,7 +1407,7 @@
- 80
+ 93
@@ -1242,7 +1423,7 @@
- 81
+ 94
@@ -1260,7 +1441,7 @@
- 82
+ 95
@@ -1277,7 +1458,7 @@
- 83
+ 96
@@ -1299,7 +1480,7 @@
- 84
+ 97
@@ -1316,7 +1497,7 @@
- 85
+ 98
@@ -1333,7 +1514,7 @@
- 86
+ 99
@@ -1354,7 +1535,7 @@
- 87
+ 100
@@ -1371,7 +1552,7 @@
- 88
+ 101
@@ -1388,7 +1569,7 @@
- 89
+ 102
@@ -1412,7 +1593,7 @@
- 90
+ 103
@@ -1429,7 +1610,7 @@
- 91
+ 104
@@ -1446,7 +1627,7 @@
- 92
+ 105
@@ -1463,7 +1644,7 @@
- 93
+ 106
@@ -1480,7 +1661,7 @@
- 94
+ 107
@@ -1497,7 +1678,7 @@
- 95
+ 108
@@ -1513,7 +1694,7 @@
- 96
+ 109
@@ -1529,7 +1710,7 @@
- 97
+ 110
@@ -1540,7 +1721,7 @@
- 98
+ 111
@@ -1551,7 +1732,7 @@
- 99
+ 112
@@ -1563,8 +1744,8 @@
true
5
- 99
- 99
+ 112
+ 112
Portrait
true
diff --git a/src/ConfigDumpInfo.xml b/src/ConfigDumpInfo.xml
index 7ec1edaf3..7b260597f 100644
--- a/src/ConfigDumpInfo.xml
+++ b/src/ConfigDumpInfo.xml
@@ -689,7 +689,7 @@
-
+
@@ -730,7 +730,7 @@
-
+
@@ -1051,7 +1051,7 @@
-
+
@@ -1067,6 +1067,7 @@
+
@@ -1074,6 +1075,7 @@
+
@@ -1665,7 +1667,7 @@
-
+
@@ -1739,7 +1741,7 @@
-
+
@@ -1755,7 +1757,7 @@
-
+
@@ -1803,7 +1805,7 @@
-
+
@@ -1968,7 +1970,7 @@
-
+
@@ -3305,7 +3307,7 @@
-
+
@@ -3381,7 +3383,7 @@
-
+
@@ -3834,7 +3836,7 @@
-
+
@@ -4053,7 +4055,7 @@
-
+
@@ -4092,8 +4094,8 @@
-
-
+
+
@@ -4267,7 +4269,7 @@
-
+
@@ -4278,7 +4280,7 @@
-
+
@@ -4496,8 +4498,8 @@
-
-
+
+
@@ -4553,7 +4555,7 @@
-
+
@@ -4755,7 +4757,7 @@
-
+
@@ -4763,11 +4765,11 @@
-
+
-
+
-
+
@@ -5482,7 +5484,7 @@
-
+
@@ -5649,7 +5651,7 @@
-
+
@@ -6007,7 +6009,7 @@
-
+
@@ -6844,7 +6846,7 @@
-
+
@@ -7077,7 +7079,7 @@
-
+
@@ -7178,7 +7180,7 @@
-
+
@@ -7448,7 +7450,7 @@
-
+
@@ -7465,9 +7467,9 @@
-
+
-
+
@@ -7540,7 +7542,7 @@
-
+
@@ -7817,7 +7819,7 @@
-
+
@@ -8076,7 +8078,7 @@
-
+
@@ -8232,7 +8234,7 @@
-
+
@@ -8263,19 +8265,19 @@
-
-
+
+
-
+
-
-
+
+
-
+
@@ -8296,7 +8298,7 @@
-
+
@@ -8312,14 +8314,14 @@
-
+
-
+
-
+
@@ -8500,7 +8502,7 @@
-
+
@@ -8508,9 +8510,9 @@
-
+
-
+
@@ -8685,7 +8687,7 @@
-
+
@@ -8831,8 +8833,8 @@
-
-
+
+
@@ -8845,7 +8847,7 @@
-
+
@@ -9164,7 +9166,7 @@
-
+
@@ -9186,6 +9188,7 @@
+
@@ -9218,8 +9221,8 @@
-
-
+
+
@@ -9230,17 +9233,17 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -9460,7 +9463,7 @@
-
+
@@ -9478,6 +9481,7 @@
+
@@ -9506,11 +9510,11 @@
-
-
-
+
+
+
-
+
@@ -9618,6 +9622,7 @@
+
@@ -9650,13 +9655,13 @@
-
-
+
+
-
+
@@ -9725,20 +9730,20 @@
-
+
-
+
-
+
-
+
-
+
@@ -9807,7 +9812,7 @@
-
+
@@ -9844,7 +9849,7 @@
-
+
@@ -9894,7 +9899,7 @@
-
+
@@ -9975,7 +9980,7 @@
-
+
@@ -9983,15 +9988,15 @@
-
+
-
+
-
+
@@ -10048,33 +10053,33 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
@@ -10086,8 +10091,8 @@
-
-
+
+
@@ -10100,7 +10105,7 @@
-
+
@@ -10117,15 +10122,15 @@
-
+
-
-
+
+
-
+
@@ -10133,7 +10138,7 @@
-
+
@@ -10160,7 +10165,7 @@
-
+
@@ -10173,19 +10178,19 @@
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
+
+
+
@@ -10352,7 +10357,7 @@
-
+
@@ -10382,9 +10387,9 @@
-
+
-
+
@@ -10559,12 +10564,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -10793,8 +10798,8 @@
-
-
+
+
@@ -10805,7 +10810,7 @@
-
+
@@ -10954,7 +10959,7 @@
-
+
@@ -10964,9 +10969,9 @@
-
+
-
+
@@ -11047,7 +11052,7 @@
-
+
@@ -11062,7 +11067,7 @@
-
+
@@ -11260,7 +11265,7 @@
-
+
@@ -11416,8 +11421,8 @@
-
-
+
+
@@ -12032,7 +12037,7 @@
-
+
@@ -12103,8 +12108,8 @@
-
-
+
+
@@ -12605,7 +12610,7 @@
-
+
@@ -12633,8 +12638,8 @@
-
-
+
+
@@ -13135,7 +13140,7 @@
-
+
@@ -13224,7 +13229,7 @@
-
+
@@ -13362,7 +13367,7 @@
-
+
@@ -13372,16 +13377,16 @@
-
+
-
+
-
+
-
+
@@ -13412,7 +13417,7 @@
-
+
@@ -13808,7 +13813,7 @@
-
+
@@ -13821,7 +13826,7 @@
-
+
@@ -13835,14 +13840,14 @@
-
+
-
+
-
+
-
+
@@ -14208,7 +14213,7 @@
-
+
@@ -14290,8 +14295,8 @@
-
-
+
+
@@ -14556,7 +14561,7 @@
-
+
@@ -14697,7 +14702,7 @@
-
+
@@ -15014,7 +15019,7 @@
-
+
@@ -15101,7 +15106,7 @@
-
+
@@ -15141,7 +15146,7 @@
-
+
@@ -15206,8 +15211,8 @@
-
-
+
+
@@ -15575,7 +15580,7 @@
-
+
@@ -15735,7 +15740,7 @@
-
+
@@ -16463,8 +16468,8 @@
-
-
+
+
@@ -16928,7 +16933,7 @@
-
+
@@ -16938,9 +16943,9 @@
-
+
-
+
@@ -17124,7 +17129,7 @@
-
+
@@ -17132,11 +17137,11 @@
-
+
-
+
-
+
@@ -17156,7 +17161,7 @@
-
+
@@ -17181,7 +17186,7 @@
-
+
@@ -17192,15 +17197,15 @@
-
+
-
+
-
+
-
+
-
+
@@ -17885,8 +17890,8 @@
-
-
+
+
@@ -18348,8 +18353,8 @@
-
-
+
+
@@ -18457,7 +18462,7 @@
-
+
@@ -18507,9 +18512,9 @@
-
+
-
+
@@ -18535,9 +18540,9 @@
-
+
-
+
@@ -18632,7 +18637,7 @@
-
+
@@ -18705,7 +18710,7 @@
-
+
@@ -18987,7 +18992,7 @@
-
+
@@ -19045,16 +19050,16 @@
-
+
-
+
-
+
@@ -19113,8 +19118,8 @@
-
-
+
+
@@ -19242,15 +19247,15 @@
-
+
-
+
-
+
-
+
@@ -19287,7 +19292,7 @@
-
+
@@ -19451,7 +19456,7 @@
-
+
@@ -19467,11 +19472,11 @@
-
+
-
+
-
+
@@ -19515,7 +19520,7 @@
-
+
@@ -19526,11 +19531,11 @@
-
+
-
+
-
+
@@ -20011,18 +20016,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -20291,7 +20296,7 @@
-
+
@@ -20440,7 +20445,7 @@
-
+
@@ -20551,7 +20556,7 @@
-
+
@@ -20884,7 +20889,7 @@
-
+
@@ -21103,10 +21108,10 @@
-
-
-
-
+
+
+
+
@@ -21262,7 +21267,7 @@
-
+
@@ -21413,20 +21418,20 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
@@ -21455,8 +21460,8 @@
-
-
+
+
@@ -21466,8 +21471,8 @@
-
-
+
+
@@ -21509,7 +21514,7 @@
-
+
@@ -21685,7 +21690,7 @@
-
+
@@ -21751,8 +21756,8 @@
-
-
+
+
@@ -21829,8 +21834,8 @@
-
-
+
+
@@ -21841,7 +21846,7 @@
-
+
@@ -21849,9 +21854,9 @@
-
+
-
+
@@ -21871,8 +21876,8 @@
-
-
+
+
@@ -21957,8 +21962,8 @@
-
-
+
+
@@ -21997,8 +22002,8 @@
-
-
+
+
@@ -22073,31 +22078,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -22113,9 +22118,9 @@
-
-
-
+
+
+
@@ -22155,22 +22160,22 @@
-
+
-
-
+
+
-
+
-
-
+
+
@@ -22183,8 +22188,8 @@
-
-
+
+
@@ -22195,14 +22200,14 @@
-
-
+
+
-
-
-
-
+
+
+
+
@@ -22213,8 +22218,8 @@
-
-
+
+
@@ -22263,8 +22268,8 @@
-
-
+
+
@@ -22303,10 +22308,10 @@
-
-
-
-
+
+
+
+
@@ -22319,10 +22324,10 @@
-
-
-
-
+
+
+
+
@@ -22387,17 +22392,17 @@
-
-
+
+
-
+
-
+
@@ -22439,7 +22444,7 @@
-
+
@@ -22457,24 +22462,24 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -22537,8 +22542,8 @@
-
-
+
+
@@ -22549,8 +22554,8 @@
-
-
+
+
@@ -22585,14 +22590,14 @@
-
-
+
+
-
-
-
-
+
+
+
+
@@ -22615,8 +22620,8 @@
-
-
+
+
@@ -22625,24 +22630,24 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
@@ -22729,7 +22734,7 @@
-
+
@@ -22763,7 +22768,7 @@
-
+
@@ -22783,16 +22788,16 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -22813,10 +22818,10 @@
-
-
-
-
+
+
+
+
@@ -22837,23 +22842,23 @@
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
+
@@ -22861,8 +22866,8 @@
-
-
+
+
@@ -22943,14 +22948,14 @@
-
-
+
+
-
-
+
+
@@ -22959,8 +22964,8 @@
-
-
+
+
@@ -22973,8 +22978,8 @@
-
-
+
+
@@ -22985,10 +22990,10 @@
-
-
-
-
+
+
+
+
@@ -23007,8 +23012,8 @@
-
-
+
+
@@ -23039,20 +23044,20 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -23061,8 +23066,8 @@
-
-
+
+
@@ -23073,8 +23078,8 @@
-
-
+
+
@@ -23101,10 +23106,10 @@
-
-
-
-
+
+
+
+
@@ -23121,21 +23126,21 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
@@ -23177,18 +23182,18 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -23201,8 +23206,8 @@
-
-
+
+
@@ -23243,8 +23248,8 @@
-
-
+
+
@@ -23259,8 +23264,8 @@
-
-
+
+
@@ -23277,8 +23282,8 @@
-
-
+
+
@@ -23305,8 +23310,8 @@
-
-
+
+
@@ -23327,15 +23332,15 @@
-
-
+
+
-
+
-
+
-
+
@@ -23439,40 +23444,40 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -23533,7 +23538,7 @@
-
+
@@ -23543,28 +23548,28 @@
-
-
+
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -23583,10 +23588,10 @@
-
-
-
-
+
+
+
+
@@ -23647,20 +23652,20 @@
-
-
+
+
-
-
+
+
-
+
-
-
+
+
@@ -23685,15 +23690,15 @@
-
+
-
+
-
-
-
+
+
+
@@ -23701,10 +23706,10 @@
-
+
-
-
+
+
@@ -23715,8 +23720,8 @@
-
-
+
+
@@ -23755,8 +23760,8 @@
-
-
+
+
@@ -23797,9 +23802,9 @@
-
+
-
+
@@ -23849,36 +23854,36 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -23915,8 +23920,8 @@
-
-
+
+
@@ -23925,8 +23930,8 @@
-
-
+
+
@@ -23935,10 +23940,10 @@
-
-
-
-
+
+
+
+
@@ -23955,8 +23960,8 @@
-
-
+
+
@@ -23971,10 +23976,10 @@
-
-
-
-
+
+
+
+
@@ -24003,24 +24008,24 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
@@ -24141,40 +24146,40 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
@@ -24183,42 +24188,42 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -24231,8 +24236,8 @@
-
-
+
+
@@ -24241,8 +24246,8 @@
-
-
+
+
@@ -24265,10 +24270,10 @@
-
-
-
-
+
+
+
+
@@ -24283,14 +24288,14 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -24311,13 +24316,13 @@
-
-
+
+
-
+
@@ -24331,8 +24336,8 @@
-
-
+
+
@@ -24427,8 +24432,8 @@
-
-
+
+
@@ -24439,8 +24444,8 @@
-
-
+
+
@@ -24451,16 +24456,16 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -24501,8 +24506,8 @@
-
-
+
+
@@ -24515,24 +24520,24 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -24603,12 +24608,12 @@
-
-
+
+
-
-
+
+
@@ -24643,34 +24648,34 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -24687,34 +24692,34 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -24773,7 +24778,7 @@
-
+
@@ -24823,8 +24828,8 @@
-
-
+
+
@@ -24971,8 +24976,8 @@
-
-
+
+
@@ -24981,38 +24986,38 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
+
+
@@ -25039,12 +25044,12 @@
-
-
+
+
-
-
+
+
@@ -25053,8 +25058,8 @@
-
-
+
+
@@ -25077,7 +25082,7 @@
-
+
@@ -25121,43 +25126,45 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -25267,8 +25274,8 @@
-
-
+
+
@@ -25279,7 +25286,7 @@
-
+
@@ -25287,15 +25294,15 @@
-
+
-
+
-
+
-
+
-
+
@@ -25325,16 +25332,16 @@
-
-
+
+
-
-
+
+
@@ -25461,10 +25468,10 @@
-
-
-
-
+
+
+
+
@@ -25473,8 +25480,8 @@
-
-
+
+
@@ -25483,14 +25490,14 @@
-
+
-
-
+
+
@@ -25513,7 +25520,7 @@
-
+
@@ -25521,8 +25528,8 @@
-
-
+
+
@@ -25539,7 +25546,7 @@
-
+
@@ -25551,10 +25558,10 @@
-
+
-
-
+
+
@@ -25567,8 +25574,8 @@
-
-
+
+
@@ -25583,11 +25590,11 @@
-
+
-
+
-
+
@@ -25659,14 +25666,14 @@
-
-
+
+
-
-
+
+
@@ -25677,8 +25684,8 @@
-
-
+
+
@@ -25689,8 +25696,8 @@
-
-
+
+
@@ -25699,8 +25706,8 @@
-
-
+
+
@@ -25727,8 +25734,8 @@
-
-
+
+
@@ -25785,8 +25792,8 @@
-
-
+
+
@@ -25801,10 +25808,10 @@
-
-
-
-
+
+
+
+
@@ -25813,7 +25820,7 @@
-
+
@@ -25851,19 +25858,19 @@
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
@@ -25893,21 +25900,21 @@
-
+
-
+
-
-
+
+
-
+
@@ -26125,28 +26132,28 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -26173,8 +26180,8 @@
-
-
+
+
@@ -26201,8 +26208,8 @@
-
-
+
+
@@ -26217,18 +26224,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -26273,8 +26280,8 @@
-
-
+
+
@@ -26287,8 +26294,8 @@
-
-
+
+
@@ -26311,8 +26318,8 @@
-
-
+
+
@@ -26351,8 +26358,8 @@
-
-
+
+
@@ -26385,28 +26392,28 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
@@ -26435,10 +26442,10 @@
-
-
-
-
+
+
+
+
@@ -26449,16 +26456,16 @@
-
-
+
+
-
+
-
-
-
-
+
+
+
+
@@ -26483,7 +26490,7 @@
-
+
@@ -26497,10 +26504,10 @@
-
-
-
-
+
+
+
+
@@ -26517,8 +26524,8 @@
-
-
+
+
@@ -26527,16 +26534,16 @@
-
-
+
+
-
+
-
-
+
+
@@ -26549,10 +26556,10 @@
-
-
-
-
+
+
+
+
@@ -26655,8 +26662,8 @@
-
-
+
+
@@ -26705,10 +26712,10 @@
-
-
-
-
+
+
+
+
@@ -26825,8 +26832,8 @@
-
-
+
+
@@ -26839,10 +26846,10 @@
-
-
-
-
+
+
+
+
@@ -26857,9 +26864,9 @@
-
-
-
+
+
+
@@ -26889,8 +26896,8 @@
-
-
+
+
@@ -26919,8 +26926,8 @@
-
-
+
+
@@ -26941,8 +26948,8 @@
-
-
+
+
@@ -26961,14 +26968,14 @@
-
-
+
+
-
-
-
-
+
+
+
+
@@ -26979,16 +26986,16 @@
-
-
+
+
-
-
+
+
@@ -27033,23 +27040,23 @@
-
-
+
+
-
+
-
-
+
+
-
+
@@ -27075,18 +27082,18 @@
-
-
+
+
-
-
-
-
+
+
+
+
@@ -27096,12 +27103,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -27112,22 +27119,22 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -27136,8 +27143,8 @@
-
-
+
+
@@ -27156,8 +27163,8 @@
-
-
+
+
@@ -27178,8 +27185,8 @@
-
-
+
+
@@ -27236,8 +27243,8 @@
-
-
+
+
@@ -27274,8 +27281,8 @@
-
-
+
+
@@ -27294,7 +27301,7 @@
-
+
@@ -27308,32 +27315,32 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
+
+
@@ -27346,8 +27353,8 @@
-
-
+
+
@@ -27358,30 +27365,30 @@
-
-
-
-
+
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
@@ -27390,8 +27397,8 @@
-
-
+
+
@@ -27436,12 +27443,12 @@
-
-
+
+
-
-
+
+
@@ -27488,14 +27495,14 @@
-
+
-
-
+
+
@@ -27506,12 +27513,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -27556,16 +27563,16 @@
-
-
+
+
-
-
+
+
@@ -27598,16 +27605,16 @@
-
-
+
+
-
-
+
+
@@ -27632,8 +27639,8 @@
-
-
+
+
@@ -27690,8 +27697,8 @@
-
-
+
+
@@ -27702,8 +27709,8 @@
-
-
+
+
@@ -27718,46 +27725,46 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
@@ -27776,7 +27783,7 @@
-
+
@@ -27806,7 +27813,7 @@
-
+
@@ -27818,9 +27825,9 @@
-
+
-
+
@@ -27944,7 +27951,7 @@
-
+
@@ -28028,7 +28035,7 @@
-
+
@@ -28218,7 +28225,7 @@
-
+
@@ -28232,6 +28239,8 @@
+
+
@@ -28330,7 +28339,7 @@
-
+
@@ -28382,7 +28391,7 @@
-
+
@@ -28550,7 +28559,7 @@
-
+
@@ -28702,7 +28711,7 @@
-
+
@@ -28774,19 +28783,19 @@
-
+
-
+
-
+
@@ -28804,7 +28813,7 @@
-
+
@@ -28872,7 +28881,7 @@
-
+
@@ -28930,9 +28939,9 @@
-
+
-
+
@@ -29022,9 +29031,9 @@
-
+
-
+
@@ -29070,7 +29079,7 @@
-
+
@@ -29290,25 +29299,25 @@
-
+
-
+
-
+
-
+
-
+
@@ -29316,7 +29325,7 @@
-
+
@@ -29330,17 +29339,17 @@
-
+
-
+
-
+
@@ -29388,6 +29397,8 @@
+
+
@@ -29396,8 +29407,8 @@
-
-
+
+
@@ -29480,7 +29491,7 @@
-
+
@@ -29502,7 +29513,7 @@
-
+
@@ -29548,7 +29559,7 @@
-
+
@@ -29848,13 +29859,13 @@
-
+
-
+
-
+
@@ -30200,7 +30211,7 @@
-
+
@@ -30520,9 +30531,9 @@
-
+
-
+
@@ -30752,7 +30763,7 @@
-
+
@@ -30762,7 +30773,7 @@
-
+
@@ -30874,7 +30885,7 @@
-
+
@@ -30882,13 +30893,13 @@
-
+
-
+
-
+
@@ -30910,7 +30921,7 @@
-
+
@@ -30922,9 +30933,9 @@
-
+
-
+
@@ -31174,6 +31185,8 @@
+
+
@@ -31334,7 +31347,7 @@
-
+
@@ -31484,7 +31497,7 @@
-
+
@@ -31494,7 +31507,7 @@
-
+
@@ -31504,7 +31517,7 @@
-
+
@@ -31526,8 +31539,8 @@
-
-
+
+
@@ -31658,7 +31671,7 @@
-
+
@@ -31788,7 +31801,7 @@
-
+
@@ -31800,7 +31813,7 @@
-
+
@@ -31862,8 +31875,8 @@
-
-
+
+
@@ -31952,7 +31965,7 @@
-
+
@@ -31986,7 +31999,7 @@
-
+
@@ -31996,9 +32009,9 @@
-
+
-
+
@@ -32065,6 +32078,9 @@
+
+
+
@@ -32097,7 +32113,7 @@
-
+
@@ -32116,7 +32132,7 @@
-
+
@@ -32135,7 +32151,7 @@
-
+
@@ -32163,6 +32179,12 @@
+
+
+
+
+
+
@@ -32303,7 +32325,7 @@
-
+
@@ -32324,7 +32346,7 @@
-
+
@@ -32363,7 +32385,7 @@
-
+
@@ -32558,7 +32580,7 @@
-
+
@@ -32577,7 +32599,7 @@
-
+
@@ -32622,7 +32644,7 @@
-
+
@@ -32697,7 +32719,7 @@
-
+
@@ -32750,7 +32772,7 @@
-
+
@@ -32802,8 +32824,8 @@
-
-
+
+
@@ -32957,9 +32979,9 @@
-
+
-
+
@@ -33053,7 +33075,7 @@
-
+
@@ -33064,8 +33086,8 @@
-
-
+
+
@@ -33075,7 +33097,7 @@
-
+
@@ -33113,7 +33135,7 @@
-
+
@@ -33153,8 +33175,8 @@
-
-
+
+
@@ -33172,7 +33194,7 @@
-
+
@@ -33197,7 +33219,7 @@
-
+
@@ -33240,7 +33262,7 @@
-
+
@@ -33260,7 +33282,7 @@
-
+
@@ -33445,10 +33467,10 @@
-
-
-
-
+
+
+
+
@@ -33463,10 +33485,10 @@
-
-
-
-
+
+
+
+
@@ -33698,12 +33720,12 @@
-
-
+
+
-
+
-
+
@@ -33780,10 +33802,10 @@
-
+
-
+
@@ -33834,20 +33856,20 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
+
@@ -34296,13 +34318,13 @@
-
+
-
-
-
+
+
+
@@ -34442,7 +34464,7 @@
-
+
@@ -34455,19 +34477,19 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
+
@@ -34891,7 +34913,7 @@
-
+
@@ -34917,8 +34939,8 @@
-
-
+
+
@@ -34933,37 +34955,39 @@
-
-
+
+
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -35099,10 +35123,10 @@
-
-
+
+
-
+
@@ -35165,7 +35189,7 @@
-
+
@@ -35379,6 +35403,7 @@
+
@@ -35470,8 +35495,8 @@
-
-
+
+
@@ -35481,7 +35506,7 @@
-
+
@@ -35612,16 +35637,16 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -35671,7 +35696,7 @@
-
+
@@ -35693,9 +35718,9 @@
-
+
-
+
@@ -35766,36 +35791,36 @@
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -35935,12 +35960,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -36136,8 +36161,8 @@
-
-
+
+
@@ -36146,8 +36171,8 @@
-
-
+
+
@@ -36190,11 +36215,11 @@
-
+
-
+
@@ -36230,7 +36255,7 @@
-
+
@@ -36272,8 +36297,8 @@
-
-
+
+
@@ -36318,8 +36343,8 @@
-
-
+
+
@@ -36342,16 +36367,16 @@
-
-
+
+
-
-
+
+
@@ -36718,7 +36743,7 @@
-
+
@@ -36824,17 +36849,17 @@
-
+
-
-
+
+
-
-
+
+
@@ -36882,23 +36907,23 @@
-
+
-
+
-
+
-
-
+
+
@@ -36935,8 +36960,8 @@
-
-
+
+
@@ -37587,7 +37612,7 @@
-
+
@@ -37624,9 +37649,9 @@
-
+
-
+
@@ -37640,20 +37665,20 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -37825,7 +37850,7 @@
-
+
@@ -37845,11 +37870,11 @@
-
+
-
+
-
+
@@ -38066,8 +38091,8 @@
-
-
+
+
@@ -38077,14 +38102,14 @@
-
-
-
+
+
+
-
-
+
+
@@ -38094,7 +38119,7 @@
-
+
@@ -38118,19 +38143,22 @@
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
+
+
@@ -38145,7 +38173,7 @@
-
+
@@ -38160,7 +38188,7 @@
-
+
@@ -38248,8 +38276,8 @@
-
-
+
+
@@ -38439,8 +38467,8 @@
-
-
+
+
@@ -38545,8 +38573,8 @@
-
-
+
+
@@ -38630,12 +38658,12 @@
-
-
+
+
-
+
@@ -39134,7 +39162,7 @@
-
+
@@ -39147,19 +39175,19 @@
-
-
+
+
-
+
-
+
-
+
-
-
+
+
@@ -39380,13 +39408,13 @@
-
+
-
+
-
+
@@ -39401,11 +39429,11 @@
-
+
-
-
-
+
+
+
@@ -39437,7 +39465,7 @@
-
+
@@ -39488,7 +39516,7 @@
-
+
@@ -39503,8 +39531,8 @@
-
-
+
+
@@ -39517,8 +39545,8 @@
-
-
+
+
@@ -39544,11 +39572,11 @@
-
-
+
+
-
-
+
+
@@ -39561,8 +39589,8 @@
-
-
+
+
@@ -39577,8 +39605,8 @@
-
-
+
+
@@ -39586,11 +39614,11 @@
-
-
+
+
-
-
+
+
@@ -39604,7 +39632,7 @@
-
+
@@ -39670,8 +39698,8 @@
-
-
+
+
@@ -40051,7 +40079,7 @@
-
+
@@ -40063,7 +40091,7 @@
-
+
@@ -40079,7 +40107,7 @@
-
+
@@ -40179,7 +40207,7 @@
-
+
@@ -40224,9 +40252,9 @@
-
+
-
+
@@ -40302,19 +40330,21 @@
-
+
-
-
+
+
+
+
-
-
+
+
@@ -40488,7 +40518,7 @@
-
+
@@ -40512,11 +40542,11 @@
-
+
-
+
-
+
@@ -40573,8 +40603,8 @@
-
-
+
+
@@ -40587,8 +40617,8 @@
-
-
+
+
@@ -40598,25 +40628,25 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
@@ -40633,14 +40663,14 @@
-
-
+
+
-
-
+
+
@@ -40648,8 +40678,8 @@
-
-
+
+
@@ -40677,12 +40707,12 @@
-
+
-
+
@@ -40773,8 +40803,8 @@
-
-
+
+
@@ -40953,7 +40983,7 @@
-
+
@@ -40961,19 +40991,19 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -40981,52 +41011,52 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -41563,6 +41593,11 @@
+
+
+
+
+
@@ -42106,8 +42141,8 @@
-
-
+
+
@@ -42429,8 +42464,8 @@
-
-
+
+
@@ -42518,7 +42553,7 @@
-
+
@@ -42566,7 +42601,7 @@
-
+
@@ -42578,7 +42613,7 @@
-
+
@@ -42624,17 +42659,17 @@
-
-
+
+
-
+
-
+
-
+
@@ -42687,7 +42722,7 @@
-
+
@@ -42763,7 +42798,7 @@
-
+
@@ -43067,7 +43102,7 @@
-
+
@@ -43267,7 +43302,7 @@
-
+
@@ -43397,12 +43432,12 @@
-
+
-
+
@@ -43410,7 +43445,7 @@
-
+
@@ -43641,7 +43676,7 @@
-
+
@@ -43652,14 +43687,14 @@
-
+
-
+
@@ -43691,10 +43726,10 @@
-
-
-
-
+
+
+
+
@@ -43740,12 +43775,12 @@
-
+
-
+
@@ -43763,10 +43798,10 @@
-
-
+
+
-
+
@@ -43793,7 +43828,7 @@
-
+
@@ -43859,7 +43894,7 @@
-
+
@@ -43879,7 +43914,7 @@
-
+
@@ -44060,7 +44095,7 @@
-
+
@@ -44095,7 +44130,7 @@
-
+
@@ -44162,6 +44197,7 @@
+
@@ -44308,7 +44344,7 @@
-
+
@@ -44441,8 +44477,8 @@
-
-
+
+
@@ -44452,7 +44488,7 @@
-
+
@@ -44498,7 +44534,7 @@
-
+
@@ -46497,7 +46533,7 @@
-
+
@@ -46600,7 +46636,7 @@
-
+
@@ -46859,7 +46895,7 @@
-
+
@@ -47014,6 +47050,7 @@
+
@@ -47346,7 +47383,7 @@
-
+
@@ -47806,7 +47843,7 @@
-
+
@@ -47939,6 +47976,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -48021,7 +48121,7 @@
-
+
@@ -48141,7 +48241,7 @@
-
+
@@ -48356,10 +48456,10 @@
-
+
-
+
@@ -48416,7 +48516,7 @@
-
+
@@ -48452,11 +48552,11 @@
-
+
-
+
-
+
@@ -48620,7 +48720,7 @@
-
+
@@ -48696,7 +48796,7 @@
-
+
@@ -48826,8 +48926,8 @@
-
-
+
+
@@ -49006,7 +49106,7 @@
-
+
@@ -49102,21 +49202,21 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -49124,13 +49224,13 @@
-
+
-
+
@@ -49203,7 +49303,7 @@
-
+
@@ -49299,7 +49399,7 @@
-
+
@@ -49495,8 +49595,8 @@
-
-
+
+
@@ -49511,7 +49611,7 @@
-
+
@@ -49567,7 +49667,7 @@
-
+
@@ -49598,13 +49698,13 @@
-
+
-
-
-
-
-
+
+
+
+
+
@@ -49815,7 +49915,7 @@
-
+
@@ -49863,7 +49963,7 @@
-
+
@@ -50055,8 +50155,8 @@
-
-
+
+
@@ -50783,7 +50883,7 @@
-
+
@@ -50860,7 +50960,7 @@
-
+
@@ -50899,7 +50999,7 @@
-
+
@@ -51478,7 +51578,7 @@
-
+
@@ -51801,7 +51901,7 @@
-
+
@@ -51957,7 +52057,7 @@
-
+
@@ -52435,7 +52535,7 @@
-
+
@@ -52684,8 +52784,8 @@
-
-
+
+
@@ -53091,7 +53191,7 @@
-
+
@@ -53148,7 +53248,7 @@
-
+
@@ -53301,7 +53401,7 @@
-
+
@@ -53616,7 +53716,7 @@
-
+
@@ -53671,7 +53771,7 @@
-
+
@@ -53897,7 +53997,7 @@
-
+
@@ -54014,7 +54114,7 @@
-
+
@@ -54413,7 +54513,7 @@
-
+
@@ -54570,7 +54670,7 @@
-
+
@@ -54951,7 +55051,7 @@