1 Commits

806 changed files with 61967 additions and 11924 deletions
+1 -1
View File
@@ -1 +1 @@
11.5.27.61 11.5.27.70
@@ -730,6 +730,88 @@
<FullTextSearch>Use</FullTextSearch> <FullTextSearch>Use</FullTextSearch>
</Properties> </Properties>
</Attribute> </Attribute>
<Attribute uuid="e59b3a77-4101-4e10-addd-6cd0dc322c7e">
<Properties>
<Name>Партия</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Партия</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:TypeSet>cfg:DefinedType.ДокументПартии</v8:TypeSet>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Партия номенклатуры</v8:content>
</v8:item>
</ToolTip>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Indexing>Index</Indexing>
<FullTextSearch>Use</FullTextSearch>
</Properties>
</Attribute>
<Attribute uuid="989932dc-5e32-4986-a0dc-b3bfb666a0bd">
<Properties>
<Name>АналитикаУчетаПартий</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Аналитика учета партий</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>cfg:CatalogRef.КлючиАналитикиУчетаПартий</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Аналитика учета партии номенклатуры</v8:content>
</v8:item>
</ToolTip>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
</Properties>
</Attribute>
<Dimension uuid="fe5fe4ed-345b-46fb-87d4-3f028aebc54b"> <Dimension uuid="fe5fe4ed-345b-46fb-87d4-3f028aebc54b">
<Properties> <Properties>
<Name>Организация</Name> <Name>Организация</Name>
@@ -860,7 +860,7 @@
Обработчик.Многопоточный = Истина; Обработчик.Многопоточный = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ЗарегистрироватьДанныеАктуальныхДокументов"; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ЗарегистрироватьДанныеАктуальныхДокументов";
Обработчик.ПроцедураПроверки = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ПроцедураПроверки = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ДанныеОбновленыНаНовуюВерсиюПрограммы";
Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Обычный; Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Критичный;
Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра накопления ""Распоряжения на отгрузку и возврат"" для актуальных (незакрытых) распоряжений: Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра накопления ""Распоряжения на отгрузку и возврат"" для актуальных (незакрытых) распоряжений:
|- перенос движений из регистра накопления ""Распоряжения на отгрузку"" |- перенос движений из регистра накопления ""Распоряжения на отгрузку""
|- формирование движений по показателям |- формирование движений по показателям
@@ -936,7 +936,7 @@
Обработчик.Многопоточный = Истина; Обработчик.Многопоточный = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ЗарегистрироватьДанныеДокументовЗаявкаНаВозврат"; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ЗарегистрироватьДанныеДокументовЗаявкаНаВозврат";
Обработчик.ПроцедураПроверки = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ПроцедураПроверки = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ДанныеОбновленыНаНовуюВерсиюПрограммы";
Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Обычный; Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Критичный;
Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра накопления ""Распоряжения на отгрузку и возврат"" для документов возврата: Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра накопления ""Распоряжения на отгрузку и возврат"" для документов возврата:
|- перенос движений из регистра накопления ""Заявки на возврат товаров от клиентов"" |- перенос движений из регистра накопления ""Заявки на возврат товаров от клиентов""
|- формирование движений по показателям |- формирование движений по показателям
@@ -982,7 +982,6 @@
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи"; НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи";
НоваяСтрока.Порядок = "До"; НоваяСтрока.Порядок = "До";
// УАС - конец // УАС - конец
#КонецОбласти #КонецОбласти
#Область ОбработкаАктуальныхДокументовСторно #Область ОбработкаАктуальныхДокументовСторно
@@ -995,7 +994,7 @@
Обработчик.Многопоточный = Истина; Обработчик.Многопоточный = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ЗарегистрироватьДанныеАктуальныхДокументовСторно"; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ЗарегистрироватьДанныеАктуальныхДокументовСторно";
Обработчик.ПроцедураПроверки = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ПроцедураПроверки = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ДанныеОбновленыНаНовуюВерсиюПрограммы";
Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Обычный; Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Критичный;
Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра накопления ""Распоряжения на отгрузку и возврат"" для актуальных документов Сторно'"); Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра накопления ""Распоряжения на отгрузку и возврат"" для актуальных документов Сторно'");
Читаемые = Новый Массив; Читаемые = Новый Массив;
@@ -1036,7 +1035,6 @@
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи"; НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи";
НоваяСтрока.Порядок = "До"; НоваяСтрока.Порядок = "До";
// УАС - конец // УАС - конец
#КонецОбласти #КонецОбласти
#Область ОбработкаНеактуальныхДокументов #Область ОбработкаНеактуальныхДокументов
@@ -1110,7 +1108,6 @@
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи"; НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи";
НоваяСтрока.Порядок = "До"; НоваяСтрока.Порядок = "До";
// УАС - конец // УАС - конец
#КонецОбласти #КонецОбласти
#Область ОбработкаНеактуальныхДокументовСторно #Область ОбработкаНеактуальныхДокументовСторно
@@ -1164,7 +1161,6 @@
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи"; НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.УАС_ОбработатьДанныеДокументовРозничнойПродажи";
НоваяСтрока.Порядок = "До"; НоваяСтрока.Порядок = "До";
// УАС - конец // УАС - конец
#КонецОбласти #КонецОбласти
// УАС - начало // УАС - начало
@@ -1215,7 +1211,6 @@
НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ОбработатьДанныеНеактуальныхДокументовСторно"; НоваяСтрока.Процедура = "РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ОбработатьДанныеНеактуальныхДокументовСторно";
НоваяСтрока.Порядок = "После"; НоваяСтрока.Порядок = "После";
// УАС - конец // УАС - конец
КонецПроцедуры КонецПроцедуры
// Отмечает порцию данных для обработки. // Отмечает порцию данных для обработки.
@@ -1326,19 +1321,11 @@
| ТаблицаОтраженныеРегистраторы.Регистратор | ТаблицаОтраженныеРегистраторы.Регистратор
| ИЗ | ИЗ
| ТаблицаОтраженныеРегистраторы КАК ТаблицаОтраженныеРегистраторы) | ТаблицаОтраженныеРегистраторы КАК ТаблицаОтраженныеРегистраторы)
| И (Таблица.Распоряжение В | И Таблица.Распоряжение В
| (ВЫБРАТЬ | (ВЫБРАТЬ
| ТаблицаАктуальныеРаспоряжения.Распоряжение | ТаблицаАктуальныеРаспоряжения.Распоряжение
| ИЗ | ИЗ
| ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения) | ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения)";
| ИЛИ ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаказКлиента)
| И ВЫРАЗИТЬ(Таблица.Распоряжение КАК
| Документ.ЗаказКлиента).Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт)
| ИЛИ ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаявкаНаВозвратТоваровОтКлиента)
| И НЕ ВЫРАЗИТЬ(Таблица.Распоряжение КАК
| Документ.ЗаявкаНаВозвратТоваровОтКлиента).Статус В (
| ЗНАЧЕНИЕ(Перечисление.СтатусыЗаявокНаВозвратТоваровОтКлиентов.Выполнена),
| ЗНАЧЕНИЕ(Перечисление.СтатусыЗаявокНаВозвратТоваровОтКлиентов.Отклонена)))";
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
@@ -1449,14 +1436,11 @@
| ТаблицаОтраженныеРегистраторы.Регистратор | ТаблицаОтраженныеРегистраторы.Регистратор
| ИЗ | ИЗ
| ТаблицаОтраженныеРегистраторы КАК ТаблицаОтраженныеРегистраторы) | ТаблицаОтраженныеРегистраторы КАК ТаблицаОтраженныеРегистраторы)
| И (Таблица.Распоряжение В | И Таблица.Распоряжение В
| (ВЫБРАТЬ | (ВЫБРАТЬ
| ТаблицаАктуальныеРаспоряжения.Распоряжение | ТаблицаАктуальныеРаспоряжения.Распоряжение
| ИЗ | ИЗ
| ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения) | ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения)
| ИЛИ ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаказКлиента)
| И ВЫРАЗИТЬ(Таблица.Распоряжение КАК
| Документ.ЗаказКлиента).Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт))
| |
|ОБЪЕДИНИТЬ |ОБЪЕДИНИТЬ
| |
@@ -1541,15 +1525,7 @@
| (ВЫБРАТЬ | (ВЫБРАТЬ
| ТаблицаАктуальныеРаспоряжения.Распоряжение | ТаблицаАктуальныеРаспоряжения.Распоряжение
| ИЗ | ИЗ
| ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения) | ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения)";
| И НЕ (ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаказКлиента)
| И ВЫРАЗИТЬ(Таблица.Распоряжение КАК
| Документ.ЗаказКлиента).Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт))
| И НЕ (ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаявкаНаВозвратТоваровОтКлиента)
| И НЕ ВЫРАЗИТЬ(Таблица.Распоряжение КАК
| Документ.ЗаявкаНаВозвратТоваровОтКлиента).Статус В (
| ЗНАЧЕНИЕ(Перечисление.СтатусыЗаявокНаВозвратТоваровОтКлиентов.Выполнена),
| ЗНАЧЕНИЕ(Перечисление.СтатусыЗаявокНаВозвратТоваровОтКлиентов.Отклонена)))";
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
@@ -1616,10 +1592,7 @@
| (ВЫБРАТЬ | (ВЫБРАТЬ
| ТаблицаАктуальныеРаспоряжения.Распоряжение | ТаблицаАктуальныеРаспоряжения.Распоряжение
| ИЗ | ИЗ
| ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения) | ТаблицаАктуальныеРаспоряжения КАК ТаблицаАктуальныеРаспоряжения)";
| И НЕ (ТИПЗНАЧЕНИЯ(Таблица.Распоряжение) = ТИП(Документ.ЗаказКлиента)
| И ВЫРАЗИТЬ(Таблица.Распоряжение КАК
| Документ.ЗаказКлиента).Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт))";
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
@@ -10,6 +10,12 @@
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементОтбора.ПравоеЗначение = ЭлектронныеДокументыЭДО.ВидыДокументовДляПроизвольногоФормата(); ЭлементОтбора.ПравоеЗначение = ЭлектронныеДокументыЭДО.ВидыДокументовДляПроизвольногоФормата();
ЭлементОтбора.Использование = Истина; ЭлементОтбора.Использование = Истина;
ИначеЕсли ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ВыборОграниченийМЧД", Ложь) Тогда
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементОтбора.ПравоеЗначение = ЭлектронныеДокументыЭДО.ВидыДокументовСПодписью();
ЭлементОтбора.Использование = Истина;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -28,6 +28,10 @@
Элемент.ИмяПредопределенныхДанных = "НДС"; Элемент.ИмяПредопределенныхДанных = "НДС";
МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'НДС'", КодыЯзыков);// @НСтр-2 МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'НДС'", КодыЯзыков);// @НСтр-2
Элемент = Элементы.Добавить();
Элемент.ИмяПредопределенныхДанных = "Акцизы";
МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Акцизы'", КодыЯзыков);// @НСтр-2
ВидыНалоговВзносовЛокализация.ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти); ВидыНалоговВзносовЛокализация.ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти);
КонецПроцедуры КонецПроцедуры
@@ -122,6 +126,8 @@
Наименование = "ru = 'НДС при импорте товаров из ЕАЭС'"; // @НСтр-1 Наименование = "ru = 'НДС при импорте товаров из ЕАЭС'"; // @НСтр-1
ИначеЕсли ИмяПредопределенного = "НДС_НалоговыйАгент" Тогда ИначеЕсли ИмяПредопределенного = "НДС_НалоговыйАгент" Тогда
Наименование = "ru = 'НДС при исполнении обязанностей налогового агента'"; // @НСтр-1 Наименование = "ru = 'НДС при исполнении обязанностей налогового агента'"; // @НСтр-1
ИначеЕсли ИмяПредопределенного = "Акцизы" Тогда
Наименование = "ru = 'Акцизы'"; // @НСтр-1
КонецЕсли; КонецЕсли;
Если ПустаяСтрока(Наименование) Тогда Если ПустаяСтрока(Наименование) Тогда
Наименование = Перечисления.УдалитьТипыНалогов.НаименованиеПредопределенногоЭлемента(ИмяПредопределенного); Наименование = Перечисления.УдалитьТипыНалогов.НаименованиеПредопределенногоЭлемента(ИмяПредопределенного);
@@ -2987,6 +2987,7 @@
&НаСервере &НаСервере
Процедура НастроитьФорму() Процедура НастроитьФорму()
ТолькоПросмотр = Не ЕстьПравоРедактирования; ТолькоПросмотр = Не ЕстьПравоРедактирования;
ЗаполняемыйОбъект = Объект; ЗаполняемыйОбъект = Объект;
@@ -3586,15 +3587,22 @@
#Область ДопРеквизитыИДопСведения #Область ДопРеквизитыИДопСведения
Элементы.СтраницаДопРеквизиты.Видимость = ИспользоватьДополнительныеРеквизитыИСведения; Элементы.СтраницаДопРеквизиты.Видимость = ИспользоватьДополнительныеРеквизитыИСведения;
Элементы.СтраницаДопСведения.Видимость = ИспользоватьДополнительныеРеквизитыИСведения; Элементы.СтраницаДопСведения.Видимость = ИспользоватьДополнительныеРеквизитыИСведения;
Элементы.НоменклатураГруппаСоздатьРеквизиты.Видимость = ЕстьПравоРедактирования;
Элементы.ХарактеристикиГруппаСоздатьРеквизиты.Видимость = ЕстьПравоРедактирования;
Элементы.СерииГруппаСоздатьРеквизиты.Видимость = ЕстьПравоРедактирования;
Элементы.НоменклатураГруппаСоздатьСведения.Видимость = ЕстьПравоРедактирования;
Элементы.ХарактеристикиГруппаСоздатьСведения.Видимость = ЕстьПравоРедактирования;
Элементы.СерииГруппаСоздатьСведения.Видимость = ЕстьПравоРедактирования;
ЕстьПравоДобавленияРеквизитов = ПравоДоступа("Добавление", Метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения); Элементы.РеквизитыДляКонтроляНоменклатурыПредставлениеРеквизитаГиперссылка.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
Элементы.РеквизитыДляКонтроляХарактеристикПредставлениеРеквизитаГиперссылка.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
Элементы.РеквизитыДляКонтроляСерийПредставлениеРеквизитаГиперссылка.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
Элементы.НоменклатураГруппаСоздатьРеквизиты.Видимость = ЕстьПравоДобавленияРеквизитов; Элементы.РеквизитыДляКонтроляНоменклатурыВиденСУсловием.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
Элементы.ХарактеристикиГруппаСоздатьРеквизиты.Видимость = ЕстьПравоДобавленияРеквизитов; Элементы.РеквизитыДляКонтроляХарактеристикВиденСУсловием.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
Элементы.СерииГруппаСоздатьРеквизиты.Видимость = ЕстьПравоДобавленияРеквизитов;
Элементы.НоменклатураГруппаСоздатьСведения.Видимость = ЕстьПравоДобавленияРеквизитов; Элементы.РеквизитыДляКонтроляНоменклатурыДоступенСУсловием.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
Элементы.ХарактеристикиГруппаСоздатьСведения.Видимость = ЕстьПравоДобавленияРеквизитов; Элементы.РеквизитыДляКонтроляХарактеристикДоступенСУсловием.ГиперссылкаЯчейки = ЕстьПравоРедактирования;
Элементы.СерииГруппаСоздатьСведения.Видимость = ЕстьПравоДобавленияРеквизитов;
#КонецОбласти #КонецОбласти
#Область КонтролироватьУникальность #Область КонтролироватьУникальность
@@ -6564,11 +6572,13 @@
Запись.КоличествоВПотребительскойУпаковке = 1; Запись.КоличествоВПотребительскойУпаковке = 1;
КонецЕсли; КонецЕсли;
Запись.КлючВидовПродукции = КлючВидовПродукции; Запись.КлючВидовПродукции = КлючВидовПродукции;
УстановитьПривилегированныйРежим(Истина);
Если ЗначениеЗаполнено(Запись.КлючВидовПродукции) Тогда Если ЗначениеЗаполнено(Запись.КлючВидовПродукции) Тогда
Запись.Записать(); Запись.Записать();
Иначе Иначе
Запись.Удалить(); Запись.Удалить();
КонецЕсли; КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
@@ -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]; СтрокаТаблицы = НайденныеСтроки[0];
РезультатПроверки = КлючОбъектаМетаданныхСоответствуетПолномуИмени(СтрокаТаблицы); РезультатПроверки = КлючОбъектаМетаданныхСоответствуетПолномуИмени(СтрокаТаблицы);
Если РезультатПроверки.НеСоответствует Тогда Если РезультатПроверки.НеСоответствует Тогда
НазваниеСправочника = НазваниеСправочника(ЭтоОбъектРасширений(СтрокаТаблицы.Ссылка)); НазваниеСправочника = НазваниеСправочника(ЭтоОбъектРасширений(СтрокаТаблицы));
Если РезультатПроверки.ОбъектМетаданных = Неопределено Тогда Если РезультатПроверки.ОбъектМетаданных = Неопределено Тогда
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
@@ -5412,10 +5412,22 @@
<Description/> <Description/>
<IsFolder>false</IsFolder> <IsFolder>false</IsFolder>
</Item> </Item>
<Item id="3c975331-9d9d-417e-98f6-182d96c3c345">
<Name>РегистрСведенийДокументыОПредстоящейПоставке</Name>
<Code/>
<Description>Регистр сведений документы о предстоящей поставке</Description>
<IsFolder>false</IsFolder>
</Item>
<Item id="43939c06-8cd9-46c6-9d73-0f9d9bc3ca3b"> <Item id="43939c06-8cd9-46c6-9d73-0f9d9bc3ca3b">
<Name>РегистрСведенийМестаОсуществленияДеятельностиИСМП</Name> <Name>РегистрСведенийМестаОсуществленияДеятельностиИСМП</Name>
<Code/> <Code/>
<Description/> <Description/>
<IsFolder>false</IsFolder> <IsFolder>false</IsFolder>
</Item> </Item>
<Item id="197364e9-1734-48e4-8fda-26a23711502f">
<Name>РегистрСведенийСоответствиеНоменклатурыСырьяГИСМТ</Name>
<Code/>
<Description/>
<IsFolder>false</IsFolder>
</Item>
</PredefinedData> </PredefinedData>
@@ -4,6 +4,17 @@
#Область ДляВызоваИзДругихПодсистем #Область ДляВызоваИзДругихПодсистем
#Область СтандартныеПодсистемы
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ОбработатьДанныеДляПереходаНаНовуюВерсиюНачальноеЗаполнение");
КонецПроцедуры
#КонецОбласти
// СтандартныеПодсистемы.ОбновлениеВерсииИБ // СтандартныеПодсистемы.ОбновлениеВерсииИБ
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
@@ -206,6 +206,7 @@
ПараметрыФормы = Новый Структура; ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("МножественныйВыбор", Истина); ПараметрыФормы.Вставить("МножественныйВыбор", Истина);
ПараметрыФормы.Вставить("ВыборОграниченийМЧД", Истина);
Если Элемент.ТекущиеДанные <> Неопределено Тогда Если Элемент.ТекущиеДанные <> Неопределено Тогда
ПараметрыФормы.Вставить("ТекущаяСтрока", Элемент.ТекущиеДанные.Значение); ПараметрыФормы.Вставить("ТекущаяСтрока", Элемент.ТекущиеДанные.Значение);
КонецЕсли; КонецЕсли;
@@ -4,6 +4,17 @@
#Область ДляВызоваИзДругихПодсистем #Область ДляВызоваИзДругихПодсистем
#Область СтандартныеПодсистемы
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ОбработатьДанныеДляПереходаНаНовуюВерсиюНачальноеЗаполнение");
КонецПроцедуры
#КонецОбласти
// СтандартныеПодсистемы.ОбновлениеВерсииИБ // СтандартныеПодсистемы.ОбновлениеВерсииИБ
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
@@ -2,7 +2,6 @@
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.20"> <Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.20">
<CommandSet> <CommandSet>
<ExcludedCommand>CancelSearch</ExcludedCommand> <ExcludedCommand>CancelSearch</ExcludedCommand>
<ExcludedCommand>CustomizeForm</ExcludedCommand>
<ExcludedCommand>DynamicListStandardSettings</ExcludedCommand> <ExcludedCommand>DynamicListStandardSettings</ExcludedCommand>
<ExcludedCommand>Find</ExcludedCommand> <ExcludedCommand>Find</ExcludedCommand>
<ExcludedCommand>FindByCurrentValue</ExcludedCommand> <ExcludedCommand>FindByCurrentValue</ExcludedCommand>
+40
View File
@@ -1512,6 +1512,46 @@
<DataHistory>Use</DataHistory> <DataHistory>Use</DataHistory>
</Properties> </Properties>
</Attribute> </Attribute>
<Attribute uuid="62a971cc-7ba8-40ac-ab04-8fa3b2c9bb72">
<Properties>
<Name>ОбработанаВУпрощенномРежимеРаботыСДоверенностями</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработана в упрощенном режиме работы с доверенностями</v8:content>
</v8:item>
</Synonym>
<Comment>Выполнена проверка подписи доверенности при обновлении ИБ</Comment>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<TabularSection uuid="61dbbcd6-d984-4c00-87f7-fc4c80406b18"> <TabularSection uuid="61dbbcd6-d984-4c00-87f7-fc4c80406b18">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="CatalogTabularSection.МЧД003.Подписи" category="TabularSection"> <xr:GeneratedType name="CatalogTabularSection.МЧД003.Подписи" category="TabularSection">
+228 -6
View File
@@ -1242,9 +1242,10 @@
// если отсутствует возможность проверить подпись МЧД на сервере // если отсутствует возможность проверить подпись МЧД на сервере
// (в настройках установлена проверка подписи на клиенте) // (в настройках установлена проверка подписи на клиенте)
// и необходимо выполнить проверку на клиенте. // и необходимо выполнить проверку на клиенте.
// * ВариантПроверкиСертификатовМЧДЭДО - ПеречислениеСсылка.ВариантыПроверкиСертификатовМЧДЭДО
// * ДанныеДляПроверки - См. МашиночитаемыеДоверенностиКлиентСервер.НовыеДанныеДляПроверкиМЧД // * ДанныеДляПроверки - См. МашиночитаемыеДоверенностиКлиентСервер.НовыеДанныеДляПроверкиМЧД
// * ДанныеДляПроверки - Неопределено // - Неопределено
// * ТекстОшибки - Строка - // * ТекстОшибки - Строка
Функция ЗагрузитьМЧДИзФайла(ДанныеФайла, МЧД = Неопределено, ДополнительныеСведения = Неопределено) Экспорт Функция ЗагрузитьМЧДИзФайла(ДанныеФайла, МЧД = Неопределено, ДополнительныеСведения = Неопределено) Экспорт
ТребуетсяПроверкаМЧДНаКлиенте = Ложь; ТребуетсяПроверкаМЧДНаКлиенте = Ложь;
@@ -1254,6 +1255,7 @@
Результат.Вставить("ТребуетсяПроверкаМЧДНаКлиенте", ТребуетсяПроверкаМЧДНаКлиенте); Результат.Вставить("ТребуетсяПроверкаМЧДНаКлиенте", ТребуетсяПроверкаМЧДНаКлиенте);
Результат.Вставить("ДанныеДляПроверки", Неопределено); Результат.Вставить("ДанныеДляПроверки", Неопределено);
Результат.Вставить("ТекстОшибки", ""); Результат.Вставить("ТекстОшибки", "");
Результат.Вставить("ВариантПроверкиСертификатовМЧДЭДО", МашиночитаемыеДоверенности.ВариантПроверкиСертификатаДоверителя());
Если ТипЗнч(ДанныеФайла) = Тип("Структура") Тогда Если ТипЗнч(ДанныеФайла) = Тип("Структура") Тогда
ДанныеАрхива = ДанныеФайла; ДанныеАрхива = ДанныеФайла;
@@ -1285,7 +1287,7 @@
ДополнительныеСведения = МашиночитаемыеДоверенностиКлиентСервер.ДополнительныеСведенияПоЗагрузкеМЧД(); ДополнительныеСведения = МашиночитаемыеДоверенностиКлиентСервер.ДополнительныеСведенияПоЗагрузкеМЧД();
КонецЕсли; КонецЕсли;
РезультатПроверкиНаСервере = Новый Структура("Результат, ТекстОшибки", Истина, ""); РезультатПроверкиНаСервере = МашиночитаемыеДоверенности.НовыйОбщийРезультатПроверкиПодписиДоверенности(Истина);
ЭтоРучноеСоздание = Ложь; ЭтоРучноеСоздание = Ложь;
ОбновлятьСуществующуюМЧД = Истина; ОбновлятьСуществующуюМЧД = Истина;
@@ -4615,6 +4617,20 @@
// //
Процедура ПроверитьУсловныеПоляОбъектаМЧД(Доверенность, ОшибкиЗаполнения) Процедура ПроверитьУсловныеПоляОбъектаМЧД(Доверенность, ОшибкиЗаполнения)
ПроверитьУсловныеПоляДоверителейМЧД(Доверенность, ОшибкиЗаполнения);
ПроверитьУсловныеПоляПредставителейМЧД(Доверенность, ОшибкиЗаполнения);
ПроверитьУсловныеПоляПолномочийМЧД(Доверенность, ОшибкиЗаполнения);
КонецПроцедуры
// Проверяет условные поля доверителей в МЧД.
//
// Параметры:
// Доверенность см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
// ОшибкиЗаполнения см. НовыйНаборОшибокЗаполненияОбъектаМЧД
//
Процедура ПроверитьУсловныеПоляДоверителейМЧД(Знач Доверенность, ОшибкиЗаполнения)
Доверители = Доверенность.Документ.Довер.СвДоверит; Доверители = Доверенность.Документ.Довер.СвДоверит;
ИндексДоверителя = 0; ИндексДоверителя = 0;
@@ -4624,6 +4640,16 @@
ИндексДоверителя = ИндексДоверителя + 1; ИндексДоверителя = ИндексДоверителя + 1;
КонецЦикла; КонецЦикла;
КонецПроцедуры
// Проверяет условные поля представителей в МЧД.
//
// Параметры:
// Доверенность см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
// ОшибкиЗаполнения см. НовыйНаборОшибокЗаполненияОбъектаМЧД
//
Процедура ПроверитьУсловныеПоляПредставителейМЧД(Знач Доверенность, ОшибкиЗаполнения)
Представители = Доверенность.Документ.Довер.СвУпПред; Представители = Доверенность.Документ.Довер.СвУпПред;
ИндексПредставителя = 0; ИндексПредставителя = 0;
@@ -4633,11 +4659,113 @@
ИндексПредставителя = ИндексПредставителя + 1; ИндексПредставителя = ИндексПредставителя + 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.Доверенность // Доверенность - см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
@@ -4645,6 +4773,20 @@
// //
Процедура ПроверитьУсловныеПоляОбъектаМЧДПередоверия(Доверенность, ОшибкиЗаполнения) Процедура ПроверитьУсловныеПоляОбъектаМЧДПередоверия(Доверенность, ОшибкиЗаполнения)
ПроверитьУсловныеПоляДоверителейМЧДПередоверия(Доверенность, ОшибкиЗаполнения);
ПроверитьУсловныеПоляПредставителейМЧДПередоверия(Доверенность, ОшибкиЗаполнения);
ПроверитьУсловныеПоляПолномочийМЧДПередоверия(Доверенность, ОшибкиЗаполнения);
КонецПроцедуры
// Проверяет условные поля доверителей МЧД передоверия.
//
// Параметры:
// Доверенность - см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
// ОшибкиЗаполнения - см. НовыйНаборОшибокЗаполненияОбъектаМЧД
//
Процедура ПроверитьУсловныеПоляДоверителейМЧДПередоверия(Знач Доверенность, ОшибкиЗаполнения)
Доверители = Доверенность.Документ.Передов.СвПередПолн; Доверители = Доверенность.Документ.Передов.СвПередПолн;
ИндексДоверителя = 0; ИндексДоверителя = 0;
@@ -4654,6 +4796,16 @@
ИндексДоверителя = ИндексДоверителя + 1; ИндексДоверителя = ИндексДоверителя + 1;
КонецЦикла; КонецЦикла;
КонецПроцедуры
// Проверяет условные поля представителей МЧД передоверия.
//
// Параметры:
// Доверенность - см. XDTOПакет.ON_EMCHD_1_928_00_01_01_01.Доверенность
// ОшибкиЗаполнения - см. НовыйНаборОшибокЗаполненияОбъектаМЧД
//
Процедура ПроверитьУсловныеПоляПредставителейМЧДПередоверия(Знач Доверенность, ОшибкиЗаполнения)
Представители = Доверенность.Документ.Передов.СвПолучПолн; Представители = Доверенность.Документ.Передов.СвПолучПолн;
ИндексПредставителя = 0; ИндексПредставителя = 0;
@@ -4663,7 +4815,77 @@
ИндексПредставителя = ИндексПредставителя + 1; ИндексПредставителя = ИндексПредставителя + 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;
КонецЦикла;
КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -197,5 +197,8 @@
</v8:NumberQualifiers> </v8:NumberQualifiers>
</Type> </Type>
</Parameter> </Parameter>
<Parameter name="ДоверенностиОрганизации">
<Type/>
</Parameter>
</Parameters> </Parameters>
</Form> </Form>
@@ -71,11 +71,11 @@
<LocationInCommandBar>InAdditionalSubmenu</LocationInCommandBar> <LocationInCommandBar>InAdditionalSubmenu</LocationInCommandBar>
<ExtendedTooltip name="ФормаЗарегистрироватьВРРФНСРасширеннаяПодсказка" id="397"/> <ExtendedTooltip name="ФормаЗарегистрироватьВРРФНСРасширеннаяПодсказка" id="397"/>
</Button> </Button>
<Button name="ФормаПерепроверитьПодпись" id="619"> <Button name="ФормаПерепроверитьПодпись" id="624">
<Type>CommandBarButton</Type> <Type>CommandBarButton</Type>
<CommandName>Form.Command.ПерепроверитьПодпись</CommandName> <CommandName>Form.Command.ПерепроверитьПодпись</CommandName>
<LocationInCommandBar>InAdditionalSubmenu</LocationInCommandBar> <LocationInCommandBar>InAdditionalSubmenu</LocationInCommandBar>
<ExtendedTooltip name="ФормаПерепроверитьПодписьРасширеннаяПодсказка" id="620"/> <ExtendedTooltip name="ФормаПерепроверитьПодписьРасширеннаяПодсказка" id="625"/>
</Button> </Button>
</ChildItems> </ChildItems>
</ButtonGroup> </ButtonGroup>
@@ -362,6 +362,28 @@
</LabelDecoration> </LabelDecoration>
</ChildItems> </ChildItems>
</UsualGroup> </UsualGroup>
<UsualGroup name="ГруппаНастройки" id="619">
<Visible>false</Visible>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаНастройкиРасширеннаяПодсказка" id="620"/>
<ChildItems>
<LabelDecoration name="НастройкаПроверки" id="621">
<Title formatted="false">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настроить проверку</v8:content>
</v8:item>
</Title>
<Hyperlink>true</Hyperlink>
<ContextMenu name="НастройкаПроверкиКонтекстноеМеню" id="622"/>
<ExtendedTooltip name="НастройкаПроверкиРасширеннаяПодсказка" id="623"/>
<Events>
<Event name="Click">НастройкаПроверкиНажатие</Event>
</Events>
</LabelDecoration>
</ChildItems>
</UsualGroup>
</ChildItems> </ChildItems>
</UsualGroup> </UsualGroup>
<UsualGroup name="ГруппаСтатусВРеестреФНС" id="165"> <UsualGroup name="ГруппаСтатусВРеестреФНС" id="165">
@@ -92,7 +92,7 @@
Если ПротоколПроверкиИзМЧД <> Неопределено Тогда Если ПротоколПроверкиИзМЧД <> Неопределено Тогда
ПротоколПроверкиМЧД = ПротоколПроверкиИзМЧД; ПротоколПроверкиМЧД = ПротоколПроверкиИзМЧД;
Если Не ЗначениеЗаполнено(Объект.ТекстОшибкиПроверкиМЧД) Если Не Объект.Верна И Не ЗначениеЗаполнено(Объект.ТекстОшибкиПроверкиМЧД)
И ЗначениеЗаполнено(ПротоколПроверкиИзМЧД.ОписаниеОшибки) Тогда И ЗначениеЗаполнено(ПротоколПроверкиИзМЧД.ОписаниеОшибки) Тогда
Объект.ТекстОшибкиПроверкиМЧД = ПротоколПроверкиИзМЧД.ОписаниеОшибки; Объект.ТекстОшибкиПроверкиМЧД = ПротоколПроверкиИзМЧД.ОписаниеОшибки;
КонецЕсли; КонецЕсли;
@@ -241,6 +241,14 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура НастройкаПроверкиНажатие(Элемент)
ОткрытьФорму("Обработка.РезультатыПроверкиПодписи.Форма.ИнформацияОНастройкахПроверкиСертификатов", , ЭтотОбъект,
, , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоПолномочийСОграничениями #Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоПолномочийСОграничениями
@@ -349,7 +357,8 @@
ДанныеСтроки = Элемент.ДанныеСтроки(ВыбраннаяСтрока); ДанныеСтроки = Элемент.ДанныеСтроки(ВыбраннаяСтрока);
Если ДанныеСтроки = Неопределено Тогда Если ДанныеСтроки = Неопределено
Или ДанныеСтроки.Ссылка = Неопределено Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -379,6 +379,8 @@
КонецПроцедуры КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоПолномочийСОграничениями #Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоПолномочийСОграничениями
&НаКлиенте &НаКлиенте
@@ -446,8 +448,6 @@
#КонецОбласти #КонецОбласти
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыДоверенностьДокументДоверСвУпПред #Область ОбработчикиСобытийЭлементовТаблицыФормыДоверенностьДокументДоверСвУпПред
&НаКлиенте &НаКлиенте
@@ -1766,6 +1766,7 @@
ПоказатьГруппу(Элементы.ГруппаПредставленияПредставителей, Элементы.ГруппаОдинПредставитель); ПоказатьГруппу(Элементы.ГруппаПредставленияПредставителей, Элементы.ГруппаОдинПредставитель);
ПоказатьГруппу(Элементы.ГруппаПредставитель, ОтображаемаяГруппа); ПоказатьГруппу(Элементы.ГруппаПредставитель, ОтображаемаяГруппа);
Элементы.ДекорацияЗаголовокГруппыПредставителей.Заголовок = НСтр("ru='Сведения о представителях';"); Элементы.ДекорацияЗаголовокГруппыПредставителей.Заголовок = НСтр("ru='Сведения о представителях';");
СброситьОформлениеЭлементовФормы(Элементы.ГруппаПредставитель, Истина);
КонецЕсли; КонецЕсли;
ОбновитьВидимостьКомандТаблицыПредставителей(ЭтотОбъект); ОбновитьВидимостьКомандТаблицыПредставителей(ЭтотОбъект);
ОбновитьНумерациюТаблицы(Доверенность[0].Документ[0].Довер[0].СвУпПред); ОбновитьНумерациюТаблицы(Доверенность[0].Документ[0].Довер[0].СвУпПред);
@@ -2166,6 +2166,7 @@
ПоказатьГруппу(Элементы.ГруппаПредставленияПредставителейПередоверия, Элементы.ГруппаОдинПредставительПередоверия); ПоказатьГруппу(Элементы.ГруппаПредставленияПредставителейПередоверия, Элементы.ГруппаОдинПредставительПередоверия);
ПоказатьГруппу(Элементы.ГруппаПредставительПередоверия, ОтображаемаяГруппа); ПоказатьГруппу(Элементы.ГруппаПредставительПередоверия, ОтображаемаяГруппа);
Элементы.ДекорацияЗаголовокГруппыПредставителейПередоверия.Заголовок = НСтр("ru='Сведения о представителях';"); Элементы.ДекорацияЗаголовокГруппыПредставителейПередоверия.Заголовок = НСтр("ru='Сведения о представителях';");
СброситьОформлениеЭлементовФормы(Элементы.ГруппаПредставительПередоверия, Истина);
КонецЕсли; КонецЕсли;
ОбновитьВидимостьКомандТаблицыПредставителей(ЭтотОбъект); ОбновитьВидимостьКомандТаблицыПредставителей(ЭтотОбъект);
@@ -1731,6 +1731,46 @@
<DataHistory>Use</DataHistory> <DataHistory>Use</DataHistory>
</Properties> </Properties>
</Attribute> </Attribute>
<Attribute uuid="6045e751-0a3c-4767-a4bd-2bcf7a0a2480">
<Properties>
<Name>ОбработанаВУпрощенномРежимеРаботыСДоверенностями</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработана в упрощенном режиме работы с доверенностями</v8:content>
</v8:item>
</Synonym>
<Comment>Выполнена проверка подписи доверенности при обновлении ИБ</Comment>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<TabularSection uuid="352f36e2-51dc-445b-a085-f14a8ed2586d"> <TabularSection uuid="352f36e2-51dc-445b-a085-f14a8ed2586d">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="CatalogTabularSection.МашиночитаемыеДоверенностиКонтрагентов.Представители" category="TabularSection"> <xr:GeneratedType name="CatalogTabularSection.МашиночитаемыеДоверенностиКонтрагентов.Представители" category="TabularSection">
@@ -326,6 +326,7 @@
// если отсутствует возможность проверить подпись МЧД на сервере // если отсутствует возможность проверить подпись МЧД на сервере
// (в настройках установлена проверка подписи на клиенте) // (в настройках установлена проверка подписи на клиенте)
// и необходимо выполнить проверку на клиенте. // и необходимо выполнить проверку на клиенте.
// * ВариантПроверкиСертификатовМЧДЭДО - ПеречислениеСсылка.ВариантыПроверкиСертификатовМЧДЭДО
// * ДанныеДляПроверки - Неопределено // * ДанныеДляПроверки - Неопределено
// - см. МашиночитаемыеДоверенностиКлиентСервер.НовыеДанныеДляПроверкиМЧД // - см. МашиночитаемыеДоверенностиКлиентСервер.НовыеДанныеДляПроверкиМЧД
// //
@@ -338,6 +339,7 @@
Результат.Вставить("ТребуетсяПроверкаМЧДНаКлиенте", ТребуетсяПроверкаМЧДНаКлиенте); Результат.Вставить("ТребуетсяПроверкаМЧДНаКлиенте", ТребуетсяПроверкаМЧДНаКлиенте);
Результат.Вставить("ДанныеДляПроверки", Неопределено); Результат.Вставить("ДанныеДляПроверки", Неопределено);
Результат.Вставить("ТекстОшибки", ""); Результат.Вставить("ТекстОшибки", "");
Результат.Вставить("ВариантПроверкиСертификатовМЧДЭДО", МашиночитаемыеДоверенности.ВариантПроверкиСертификатаДоверителя());
Данные = Неопределено; Данные = Неопределено;
@@ -396,7 +398,10 @@
ДанныеДоверенности.СтатусВРеестреФНС = ДополнительныеСведения.СтатусВРеестреФНС; ДанныеДоверенности.СтатусВРеестреФНС = ДополнительныеСведения.СтатусВРеестреФНС;
КонецЕсли; КонецЕсли;
РезультатЗаписи = ЗаписатьЭлементСправочника(МЧД, ДанныеИзФайлаОбмена, ДанныеДляЗагрузки); РезультатПроверкиНаСервере = МашиночитаемыеДоверенности.НовыйОбщийРезультатПроверкиПодписиДоверенности(Истина);
РезультатЗаписи = ЗаписатьЭлементСправочника(МЧД, ДанныеИзФайлаОбмена, ДанныеДляЗагрузки, РезультатПроверкиНаСервере);
Результат.Вставить("РезультатПроверкиНаСервере", РезультатПроверкиНаСервере);
Если РезультатЗаписи.Ошибка Тогда Если РезультатЗаписи.Ошибка Тогда
Результат.ТекстОшибки = РезультатЗаписи.ОписаниеОшибки; Результат.ТекстОшибки = РезультатЗаписи.ОписаниеОшибки;
@@ -884,7 +889,7 @@
ДанныеДляПроверки.ДанныеДоверенности = ДанныеДляЗагрузки.ДанныеДоверенности; ДанныеДляПроверки.ДанныеДоверенности = ДанныеДляЗагрузки.ДанныеДоверенности;
ДанныеДляПроверки.ДанныеПодписи = ДанныеДляЗагрузки.ДанныеПодписи; ДанныеДляПроверки.ДанныеПодписи = ДанныеДляЗагрузки.ДанныеПодписи;
Если Не МашиночитаемыеДоверенности.ПроверенаВручную(ДанныеДляПроверки.ДанныеДоверенности) Тогда Если Не МашиночитаемыеДоверенности.ПроверенаВручную(ДанныеДляПроверки.ДанныеДоверенности) Тогда
МашиночитаемыеДоверенности.ЗаполнитьПодписанаВерна(ОбъектСправочника, ДанныеДляПроверки, ТребуетсяПроверкаМЧДНаКлиенте, РезультатПроверкиНаСервере); МашиночитаемыеДоверенности.ЗаполнитьПодписанаВерна(ОбъектСправочника, ДанныеДляПроверки, ТребуетсяПроверкаМЧДНаКлиенте,, РезультатПроверкиНаСервере);
КонецЕсли; КонецЕсли;
Если Не ЗначениеЗаполнено(ОбъектСправочника.ВариантЗаполненияПолномочий) Тогда Если Не ЗначениеЗаполнено(ОбъектСправочника.ВариантЗаполненияПолномочий) Тогда
@@ -281,6 +281,28 @@
</LabelDecoration> </LabelDecoration>
</ChildItems> </ChildItems>
</UsualGroup> </UsualGroup>
<UsualGroup name="ГруппаНастройки" id="493">
<Visible>false</Visible>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаНастройкиРасширеннаяПодсказка" id="494"/>
<ChildItems>
<LabelDecoration name="НастройкаПроверки" id="495">
<Title formatted="false">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настроить проверку</v8:content>
</v8:item>
</Title>
<Hyperlink>true</Hyperlink>
<ContextMenu name="НастройкаПроверкиКонтекстноеМеню" id="496"/>
<ExtendedTooltip name="НастройкаПроверкиРасширеннаяПодсказка" id="497"/>
<Events>
<Event name="Click">НастройкаПроверкиНажатие</Event>
</Events>
</LabelDecoration>
</ChildItems>
</UsualGroup>
</ChildItems> </ChildItems>
</UsualGroup> </UsualGroup>
<UsualGroup name="ГруппаСтатусВРеестреФНС" id="163"> <UsualGroup name="ГруппаСтатусВРеестреФНС" id="163">
@@ -518,9 +540,9 @@
<ExcludedCommand>MoveUp</ExcludedCommand> <ExcludedCommand>MoveUp</ExcludedCommand>
</CommandSet> </CommandSet>
<SearchStringLocation>CommandBar</SearchStringLocation> <SearchStringLocation>CommandBar</SearchStringLocation>
<ContextMenu name="ДеревоПолномочийСОграничениямиКонтекстноеМеню" id="493"/> <ContextMenu name="ДеревоПолномочийСОграничениямиКонтекстноеМеню" id="498"/>
<AutoCommandBar name="ДеревоПолномочийСОграничениямиКоманднаяПанель" id="454"/> <AutoCommandBar name="ДеревоПолномочийСОграничениямиКоманднаяПанель" id="454"/>
<ExtendedTooltip name="ДеревоПолномочийСОграничениямиРасширеннаяПодсказка" id="494"/> <ExtendedTooltip name="ДеревоПолномочийСОграничениямиРасширеннаяПодсказка" id="499"/>
<SearchStringAddition name="ДеревоПолномочийСОграничениямиСтрокаПоиска" id="457"> <SearchStringAddition name="ДеревоПолномочийСОграничениямиСтрокаПоиска" id="457">
<AdditionSource> <AdditionSource>
<Item>ДеревоПолномочийСОграничениями</Item> <Item>ДеревоПолномочийСОграничениями</Item>
@@ -10,6 +10,11 @@
&НаСервере &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Ключ.Пустая() Тогда
ВызватьИсключение НСтр("ru = 'Эта форма не предназначена для непосредственного открытия.'",
ОбщегоНазначения.КодОсновногоЯзыка());
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект.Ссылка, ЭтотОбъект); ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект.Ссылка, ЭтотОбъект);
ЗаполнитьТабличныйДокументМЧД(); ЗаполнитьТабличныйДокументМЧД();
@@ -59,7 +64,7 @@
Если ПротоколПроверкиИзМЧД <> Неопределено Тогда Если ПротоколПроверкиИзМЧД <> Неопределено Тогда
ПротоколПроверкиМЧД = ПротоколПроверкиИзМЧД; ПротоколПроверкиМЧД = ПротоколПроверкиИзМЧД;
Если Не ЗначениеЗаполнено(Объект.ТекстОшибкиПроверкиМЧД) Если Не Объект.Верна И Не ЗначениеЗаполнено(Объект.ТекстОшибкиПроверкиМЧД)
И ЗначениеЗаполнено(ПротоколПроверкиИзМЧД.ОписаниеОшибки) Тогда И ЗначениеЗаполнено(ПротоколПроверкиИзМЧД.ОписаниеОшибки) Тогда
Объект.ТекстОшибкиПроверкиМЧД = ПротоколПроверкиИзМЧД.ОписаниеОшибки; Объект.ТекстОшибкиПроверкиМЧД = ПротоколПроверкиИзМЧД.ОписаниеОшибки;
КонецЕсли; КонецЕсли;
@@ -155,6 +160,14 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура НастройкаПроверкиНажатие(Элемент)
ОткрытьФорму("Обработка.РезультатыПроверкиПодписи.Форма.ИнформацияОНастройкахПроверкиСертификатов", , ЭтотОбъект,
, , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоПолномочийСОграничениями #Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоПолномочийСОграничениями
@@ -248,7 +261,8 @@
ДанныеСтроки = Элемент.ДанныеСтроки(ВыбраннаяСтрока); ДанныеСтроки = Элемент.ДанныеСтроки(ВыбраннаяСтрока);
Если ДанныеСтроки = Неопределено Тогда Если ДанныеСтроки = Неопределено
Или ДанныеСтроки.Ссылка = Неопределено Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -3887,6 +3887,46 @@
<DataHistory>Use</DataHistory> <DataHistory>Use</DataHistory>
</Properties> </Properties>
</Attribute> </Attribute>
<Attribute uuid="dbcaa3b7-a383-4731-ab1a-fd230ef12470">
<Properties>
<Name>ОбработанаВУпрощенномРежимеРаботыСДоверенностями</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработана в упрощенном режиме работы с доверенностями</v8:content>
</v8:item>
</Synonym>
<Comment>Выполнена проверка подписи доверенности при обновлении ИБ</Comment>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<TabularSection uuid="37d27fda-e96a-4b8f-9bce-6be95f1595a0"> <TabularSection uuid="37d27fda-e96a-4b8f-9bce-6be95f1595a0">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="CatalogTabularSection.МашиночитаемыеДоверенностиОрганизаций.ФИО" category="TabularSection"> <xr:GeneratedType name="CatalogTabularSection.МашиночитаемыеДоверенностиОрганизаций.ФИО" category="TabularSection">
@@ -448,6 +448,7 @@
// если отсутствует возможность проверить подпись МЧД на сервере // если отсутствует возможность проверить подпись МЧД на сервере
// (в настройках установлена проверка подписи на клиенте) // (в настройках установлена проверка подписи на клиенте)
// и необходимо выполнить проверку на клиенте. // и необходимо выполнить проверку на клиенте.
// * ВариантПроверкиСертификатовМЧДЭДО - ПеречислениеСсылка.ВариантыПроверкиСертификатовМЧДЭДО
// * ДанныеДляПроверки - Неопределено, См. МашиночитаемыеДоверенностиКлиентСервер.НовыеДанныеДляПроверкиМЧД // * ДанныеДляПроверки - Неопределено, См. МашиночитаемыеДоверенностиКлиентСервер.НовыеДанныеДляПроверкиМЧД
// * ТекстОшибки - Строка // * ТекстОшибки - Строка
// //
@@ -460,6 +461,7 @@
Результат.Вставить("ТребуетсяПроверкаМЧДНаКлиенте", ТребуетсяПроверкаМЧДНаКлиенте); Результат.Вставить("ТребуетсяПроверкаМЧДНаКлиенте", ТребуетсяПроверкаМЧДНаКлиенте);
Результат.Вставить("ДанныеДляПроверки", Неопределено); Результат.Вставить("ДанныеДляПроверки", Неопределено);
Результат.Вставить("ТекстОшибки", ""); Результат.Вставить("ТекстОшибки", "");
Результат.Вставить("ВариантПроверкиСертификатовМЧДЭДО", МашиночитаемыеДоверенности.ВариантПроверкиСертификатаДоверителя());
Если ТипЗНч(ДанныеФайла) = Тип("Структура") Тогда Если ТипЗНч(ДанныеФайла) = Тип("Структура") Тогда
ДанныеАрхива = ДанныеФайла; ДанныеАрхива = ДанныеФайла;
@@ -498,7 +500,7 @@
ОбновлятьСуществующуюМЧД = Истина; ОбновлятьСуществующуюМЧД = Истина;
РезультатПроверкиНаСервере = Новый Структура("Результат, ТекстОшибки", Истина, ""); РезультатПроверкиНаСервере = МашиночитаемыеДоверенности.НовыйОбщийРезультатПроверкиПодписиДоверенности(Истина);
РезультатЗагрузки = ЗагрузитьЭлементИзФайлаОбмена(ДанныеДляЗагрузки, ТребуетсяПроверкаМЧДНаКлиенте, РезультатЗагрузки = ЗагрузитьЭлементИзФайлаОбмена(ДанныеДляЗагрузки, ТребуетсяПроверкаМЧДНаКлиенте,
ДополнительныеСведения, ОбновлятьСуществующуюМЧД, МЧД, РезультатПроверкиНаСервере); ДополнительныеСведения, ОбновлятьСуществующуюМЧД, МЧД, РезультатПроверкиНаСервере);
Результат.ТребуетсяПроверкаМЧДНаКлиенте = ТребуетсяПроверкаМЧДНаКлиенте; Результат.ТребуетсяПроверкаМЧДНаКлиенте = ТребуетсяПроверкаМЧДНаКлиенте;
@@ -364,6 +364,28 @@
</LabelDecoration> </LabelDecoration>
</ChildItems> </ChildItems>
</UsualGroup> </UsualGroup>
<UsualGroup name="ГруппаНастройки" id="429">
<Visible>false</Visible>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаНастройкиРасширеннаяПодсказка" id="430"/>
<ChildItems>
<LabelDecoration name="НастройкаПроверки" id="431">
<Title formatted="false">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настроить проверку</v8:content>
</v8:item>
</Title>
<Hyperlink>true</Hyperlink>
<ContextMenu name="НастройкаПроверкиКонтекстноеМеню" id="432"/>
<ExtendedTooltip name="НастройкаПроверкиРасширеннаяПодсказка" id="433"/>
<Events>
<Event name="Click">НастройкаПроверкиНажатие</Event>
</Events>
</LabelDecoration>
</ChildItems>
</UsualGroup>
</ChildItems> </ChildItems>
</UsualGroup> </UsualGroup>
<UsualGroup name="ГруппаСтатусВРеестреФНС" id="165"> <UsualGroup name="ГруппаСтатусВРеестреФНС" id="165">
@@ -823,7 +845,7 @@
<xr:Ref>CommonPicture.ПорядокБЭД</xr:Ref> <xr:Ref>CommonPicture.ПорядокБЭД</xr:Ref>
<xr:LoadTransparent>false</xr:LoadTransparent> <xr:LoadTransparent>false</xr:LoadTransparent>
</HeaderPicture> </HeaderPicture>
<ContextMenu name="ПодписанныеДокументыНаправлениеОбменаКартинкаКонтекстноеМеню" id="430"/> <ContextMenu name="ПодписанныеДокументыНаправлениеОбменаКартинкаКонтекстноеМеню" id="435"/>
<ExtendedTooltip name="ПодписанныеДокументыНаправлениеОбменаКартинкаРасширеннаяПодсказка" id="382"/> <ExtendedTooltip name="ПодписанныеДокументыНаправлениеОбменаКартинкаРасширеннаяПодсказка" id="382"/>
</PictureField> </PictureField>
<InputField name="ПодписанныеДокументыСсылка" id="56"> <InputField name="ПодписанныеДокументыСсылка" id="56">
@@ -906,7 +928,7 @@
<ContextMenu name="ПодписанныеДокументыПодписьВернаКартинкаКонтекстноеМеню" id="383"/> <ContextMenu name="ПодписанныеДокументыПодписьВернаКартинкаКонтекстноеМеню" id="383"/>
<ExtendedTooltip name="ПодписанныеДокументыПодписьВернаКартинкаРасширеннаяПодсказка" id="384"/> <ExtendedTooltip name="ПодписанныеДокументыПодписьВернаКартинкаРасширеннаяПодсказка" id="384"/>
</PictureField> </PictureField>
<CheckBoxField name="ПодписанныеДокументыПроверкаВыполненаВРучную" id="429"> <CheckBoxField name="ПодписанныеДокументыПроверкаВыполненаВРучную" id="434">
<DataPath>ПодписанныеДокументы.ПроверкаВыполненаВРучную</DataPath> <DataPath>ПодписанныеДокументы.ПроверкаВыполненаВРучную</DataPath>
<Title> <Title>
<v8:item> <v8:item>
@@ -86,7 +86,7 @@
Если ПротоколПроверкиИзМЧД <> Неопределено Тогда Если ПротоколПроверкиИзМЧД <> Неопределено Тогда
ПротоколПроверкиМЧД = ПротоколПроверкиИзМЧД; ПротоколПроверкиМЧД = ПротоколПроверкиИзМЧД;
Если Не ЗначениеЗаполнено(Объект.ТекстОшибкиПроверкиМЧД) Если Не Объект.Верна И Не ЗначениеЗаполнено(Объект.ТекстОшибкиПроверкиМЧД)
И ЗначениеЗаполнено(ПротоколПроверкиИзМЧД.ОписаниеОшибки) Тогда И ЗначениеЗаполнено(ПротоколПроверкиИзМЧД.ОписаниеОшибки) Тогда
Объект.ТекстОшибкиПроверкиМЧД = ПротоколПроверкиИзМЧД.ОписаниеОшибки; Объект.ТекстОшибкиПроверкиМЧД = ПротоколПроверкиИзМЧД.ОписаниеОшибки;
КонецЕсли; КонецЕсли;
@@ -229,6 +229,14 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура НастройкаПроверкиНажатие(Элемент)
ОткрытьФорму("Обработка.РезультатыПроверкиПодписи.Форма.ИнформацияОНастройкахПроверкиСертификатов", , ЭтотОбъект,
, , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоПолномочийСОграничениями #Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоПолномочийСОграничениями
@@ -322,7 +330,8 @@
ДанныеСтроки = Элемент.ДанныеСтроки(ВыбраннаяСтрока); ДанныеСтроки = Элемент.ДанныеСтроки(ВыбраннаяСтрока);
Если ДанныеСтроки = Неопределено Тогда Если ДанныеСтроки = Неопределено
Или ДанныеСтроки.Ссылка = Неопределено Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -299,6 +299,17 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом // Конец СтандартныеПодсистемы.УправлениеДоступом
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ЗагрузитьНастройкиОбменаИзФайла", Истина);
Методы.Вставить("ЗаполнитьВерсиюФормата");
Методы.Вставить("ЗарегистрироватьДанныеКОбработке");
Методы.Вставить("ПерезаполнитьНастройкиОбменСБанками");
Методы.Вставить("ПолучитьНастройкиОбменаССервераБанка", Истина);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -697,9 +697,23 @@
// Обновим clientSecret (ТекущийКлиентскийСекретИзФайла) и тем же самым проверим действительность транспортного сертификата // Обновим clientSecret (ТекущийКлиентскийСекретИзФайла) и тем же самым проверим действительность транспортного сертификата
ДвоичныеДанныеСертификата = ОбменСБанкамиSberAPIСлужебныйКлиентСервер.ДвоичныеДанныеИзBase64Строки(СертификатПодключения); ДвоичныеДанныеСертификата = ОбменСБанкамиSberAPIСлужебныйКлиентСервер.ДвоичныеДанныеИзBase64Строки(СертификатПодключения);
ТекстОшибки = ""; ТекстОшибки = "";
УспешноеОбновлениеКлиентскогоСекрета = ОбновитьКлиентскийСекрет(ДвоичныеДанныеСертификата, ТекстОшибки);
Если УспешноеОбновлениеКлиентскогоСекрета Тогда РезультатОбновленияКлиентскогоСекрета = ОбновитьКлиентскийСекрет(ДвоичныеДанныеСертификата, ТекстОшибки);
Если РезультатОбновленияКлиентскогоСекрета.Ошибка = "ОшибкаПароляTLS" Тогда
ТекстСообщения = НСтр("ru = 'Возможно, был введен пароль от личного кабинета банка или учетной записи.'");
ТекстСообщения = ТекстСообщения + " ";
ТекстСообщения = ТекстСообщения + НСтр("ru = 'Для продолжения создания настройки необходимо ввести пароль от сертификата шифрования.'");
ТекстСообщения = ТекстСообщения + " ";
ТекстСообщения = ТекстСообщения + НСтр("ru = 'Этот пароль был указан в личном кабинете банка, при создании нового сертификата.'");
ОповещениеПослеПредупрежденияОПароле = Новый ОписаниеОповещения(
"ОповещениеПослеПредупрежденияОПароле", ЭтотОбъект);
ПоказатьПредупреждение(ОповещениеПослеПредупрежденияОПароле, ТекстСообщения, , НСтр("ru = 'Пароль указан неверно'"));
Возврат;
ИначеЕсли РезультатОбновленияКлиентскогоСекрета.Успех Тогда
ДобавитьНовуюСтраницу(Элементы.СтраницаSberAPI); ДобавитьНовуюСтраницу(Элементы.СтраницаSberAPI);
// Перейдем на этап ввода логина и пароля // Перейдем на этап ввода логина и пароля
@@ -2282,6 +2296,17 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ОповещениеПослеПредупрежденияОПароле(ДополнительныеПараметры) Экспорт
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = НСтр("ru = 'Укажите пароль от сертификата шифрования'");
Сообщение.Поле = "СертификатПодключенияПароль";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область АсинхронныйОбмен #Область АсинхронныйОбмен
@@ -3585,6 +3610,7 @@
КонецЕсли; КонецЕсли;
РезультатОбновления = Неопределено;
Если ЗначениеЗаполнено(ПредыдущийКлиентскийСекретИзФайла) Если ЗначениеЗаполнено(ПредыдущийКлиентскийСекретИзФайла)
И ЗначениеЗаполнено(ПредыдущийКлиентскийСекретОбновленный) И ЗначениеЗаполнено(ПредыдущийКлиентскийСекретОбновленный)
И ПредыдущийКлиентскийСекретИзФайла = ТекущийКлиентскийСекретИзФайла Тогда И ПредыдущийКлиентскийСекретИзФайла = ТекущийКлиентскийСекретИзФайла Тогда
@@ -3600,7 +3626,8 @@
ПредыдущийКлиентскийСекретОбновленный = ""; ПредыдущийКлиентскийСекретОбновленный = "";
ПредыдущийКлиентскийСекретИзФайла = ТекущийКлиентскийСекретИзФайла; ПредыдущийКлиентскийСекретИзФайла = ТекущийКлиентскийСекретИзФайла;
ОбменСБанкамиSberAPIСлужебный.ОбновитьКлиентскийСекрет(
РезультатОбновления = ОбменСБанкамиSberAPIСлужебный.ОбновитьКлиентскийСекрет(
ИдентификаторОрганизации, ИдентификаторОрганизации,
ПредыдущийКлиентскийСекретИзФайла, ПредыдущийКлиентскийСекретИзФайла,
ДвоичныеДанныеСертификата, ДвоичныеДанныеСертификата,
@@ -3617,15 +3644,25 @@
СертификатПодключенияПароль, СертификатПодключенияПароль,
ИдентификаторОрганизации); ИдентификаторОрганизации);
Если ЗначениеЗаполнено(ПредыдущийКлиентскийСекретОбновленный) Тогда Результат = Новый Структура();
Результат.Вставить("Успех", Ложь);
Результат.Вставить("Ошибка", "");
Если РезультатОбновления = "ОшибкаПароляTLS" Тогда
Результат.Вставить("Ошибка", "ОшибкаПароляTLS");
Возврат Результат;
ИначеЕсли ЗначениеЗаполнено(ПредыдущийКлиентскийСекретОбновленный) Тогда
ТекущийКлиентскийСекретИзФайла = ПредыдущийКлиентскийСекретОбновленный; ТекущийКлиентскийСекретИзФайла = ПредыдущийКлиентскийСекретОбновленный;
Возврат Истина; Результат.Вставить("Успех", Истина);
Возврат Результат;
Иначе Иначе
Возврат Ложь; Возврат Результат;
КонецЕсли; КонецЕсли;
@@ -16,9 +16,10 @@
ОформитьИСкрытьНедействительныеНастройкиОбмена(); ОформитьИСкрытьНедействительныеНастройкиОбмена();
ПравоНастройкиОбмена = ОбменСБанкамиСлужебныйВызовСервера.ПравоНастройкиОбмена();
Элементы.СоздатьВручную.Видимость = ПравоНастройкиОбмена;
Элементы.СписокЗагрузитьНастройкиИзФайла.Видимость = ПравоНастройкиОбмена;
ПравоВыполненияОбмена = ОбменСБанкамиСлужебныйВызовСервера.ПравоВыполненияОбмена(); ПравоВыполненияОбмена = ОбменСБанкамиСлужебныйВызовСервера.ПравоВыполненияОбмена();
Элементы.СоздатьВручную.Видимость = ПравоВыполненияОбмена;
Элементы.СписокЗагрузитьНастройкиИзФайла.Видимость = ПравоВыполненияОбмена;
Элементы.ФормаОткрытьСообщенияОбменаСБанками.Видимость = ПравоВыполненияОбмена; Элементы.ФормаОткрытьСообщенияОбменаСБанками.Видимость = ПравоВыполненияОбмена;
Элементы.ОткрытьПакетыЭДОСБанками.Видимость = ПравоВыполненияОбмена; Элементы.ОткрытьПакетыЭДОСБанками.Видимость = ПравоВыполненияОбмена;
@@ -1853,13 +1853,19 @@
Элементы.СертификатыБанкаВыгрузить.Видимость = Ложь; Элементы.СертификатыБанкаВыгрузить.Видимость = Ложь;
КонецЕсли; КонецЕсли;
Если НЕ ПравоДоступа("Изменение", Метаданные.Справочники.НастройкиОбменСБанками) Тогда Если Не ОбменСБанкамиСлужебныйВызовСервера.ПравоНастройкиОбмена() Тогда
Элементы.ЗагрузитьВнешнийМодульИзФайла.Видимость = Ложь; Элементы.ЗагрузитьВнешнийМодульИзФайла.Видимость = Ложь;
Элементы.ЗагрузитьНастройки.Доступность = Ложь; Элементы.ЗагрузитьНастройки.Видимость = Ложь;
Элементы.ВключитьАвтоматическоеПолучениеВыписки.Доступность = Ложь; Элементы.ВключитьАвтоматическоеПолучениеВыписки.Доступность = Ложь;
Элементы.ВыключитьАвтоматическоеПолучениеВыписки.Доступность = Ложь; Элементы.ВыключитьАвтоматическоеПолучениеВыписки.Доступность = Ложь;
Элементы.ИсходящиеДокументыПодписыватьВБанке.Доступность = Ложь; Элементы.ИсходящиеДокументыПодписыватьВБанке.Доступность = Ложь;
Элементы.ОткрытьДополнительныеПараметры.Доступность = Ложь; Элементы.ОткрытьДополнительныеПараметры.Видимость = Ложь;
Элементы.ФормаЗаписатьИЗакрыть.Видимость = Ложь;
Если Элементы.Найти("ФормаЗаписать") <> Неопределено Тогда
Элементы.ФормаЗаписать.Видимость = Ложь;
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -471,7 +471,7 @@
<Presentation> <Presentation>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>MAX</v8:content> <v8:content>МАКС</v8:content>
</v8:item> </v8:item>
</Presentation> </Presentation>
<Value xsi:type="xs:string">MAX</Value> <Value xsi:type="xs:string">MAX</Value>
@@ -227,8 +227,7 @@
<Title formatted="true"> <Title formatted="true">
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>&lt;bgcolor #ffffe1&gt;&lt;font Segoe UI&gt;&lt;fontsize 9&gt;Ключ доступа, полученный сотрудником на портале Госуслуг. Подробнее см. инструкцию по интеграции с Госключом по API &lt;/&gt;&lt;/&gt;&lt;font Segoe UI&gt;&lt;fontsize 9&gt;&lt;link https://partners.gosuslugi.ru/catalog/goskey&gt;https://partners.gosuslugi.ru/catalog/goskey&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt; <v8:content>Ключ доступа, полученный сотрудником на портале Госуслуг. Подробнее см. инструкцию по интеграции с Госключом по API &lt;link https://partners.gosuslugi.ru/catalog/api_for_gu&gt;https://partners.gosuslugi.ru/catalog/api_for_gu&lt;/&gt;</v8:content>
</v8:content>
</v8:item> </v8:item>
</Title> </Title>
</ExtendedTooltip> </ExtendedTooltip>
@@ -17,7 +17,7 @@
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
ВыбраннаяФорма = "Обработка.НастройкиПлатежныхСистем.Форма.Форма"; ВыбраннаяФорма = "Обработка.НастройкиПлатежныхСистем.Форма.Форма";
НастройкиПлатежныхСистемСлужебный.ОбработкаПолученияФормыСписка( НастройкиПлатежныхСистемСлужебный.ОбработкаПолученияФормыСписка(
"ИнтернетЭквайринг", НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыИнтернетЭквайринг(),
ВидФормы, ВидФормы,
Параметры); Параметры);
@@ -32,22 +32,6 @@
#КонецОбласти #КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
#Область ИнтеграцияСБиблиотекойСтандартныхПодсистем
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
//
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("НоваяНастройкаПодключения", Истина);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
// Создает новую настройку подключения к онлайн-заказам. // Создает новую настройку подключения к онлайн-заказам.
@@ -63,7 +63,6 @@
<Representation>List</Representation> <Representation>List</Representation>
<CommandBarLocation>None</CommandBarLocation> <CommandBarLocation>None</CommandBarLocation>
<DefaultItem>true</DefaultItem> <DefaultItem>true</DefaultItem>
<UseAlternationRowColor>true</UseAlternationRowColor>
<InitialTreeView>ExpandTopLevel</InitialTreeView> <InitialTreeView>ExpandTopLevel</InitialTreeView>
<EnableStartDrag>true</EnableStartDrag> <EnableStartDrag>true</EnableStartDrag>
<DataPath>Список</DataPath> <DataPath>Список</DataPath>
@@ -178,6 +178,7 @@
<v8:content>Прием оплат от физлиц</v8:content> <v8:content>Прием оплат от физлиц</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаПриемОплатОтФизическихЛицРасширеннаяПодсказка" id="186"/> <ExtendedTooltip name="ГруппаПриемОплатОтФизическихЛицРасширеннаяПодсказка" id="186"/>
<ChildItems> <ChildItems>
<UsualGroup name="ГруппаПодключениеКСБПc2b" id="73"> <UsualGroup name="ГруппаПодключениеКСБПc2b" id="73">
@@ -338,6 +339,64 @@
</InputField> </InputField>
</ChildItems> </ChildItems>
</UsualGroup> </UsualGroup>
<UsualGroup name="ГруппаПодключениеЯндексПэй" id="264">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Яндекс Пэй</v8:content>
</v8:item>
</Title>
<Group>AlwaysHorizontal</Group>
<Representation>None</Representation>
<United>false</United>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаПодключениеЯндексПэйРасширеннаяПодсказка" id="265"/>
<ChildItems>
<CheckBoxField name="ПриниматьОплатуЯндексПэй" id="266">
<DataPath>ПриниматьОплатуЯндексПэй</DataPath>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Яндекс Пэй</v8:content>
</v8:item>
</Title>
<TitleLocation>Right</TitleLocation>
<CheckBoxType>Switcher</CheckBoxType>
<ContextMenu name="ПриниматьОплатуЯндексПэйКонтекстноеМеню" id="267"/>
<ExtendedTooltip name="ПриниматьОплатуЯндексПэйРасширеннаяПодсказка" id="268"/>
<Events>
<Event name="OnChange">ПриниматьОплатуЯндексПэйПриИзменении</Event>
</Events>
</CheckBoxField>
<InputField name="НастройкаПодключенияКЯндексПэй" id="270">
<DataPath>НастройкаПодключенияКЯндексПэй</DataPath>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Яндекс Пэй</v8:content>
</v8:item>
</Title>
<TitleLocation>None</TitleLocation>
<ClearButton>true</ClearButton>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<AutoMarkIncomplete>true</AutoMarkIncomplete>
<ChooseType>false</ChooseType>
<InputHint>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройка подключения к Яндекс Пэй</v8:content>
</v8:item>
</InputHint>
<ContextMenu name="НастройкаПодключенияКЯндексПэйКонтекстноеМеню" id="271"/>
<ExtendedTooltip name="НастройкаПодключенияКЯндексПэйРасширеннаяПодсказка" id="272"/>
<Events>
<Event name="OnChange">НастройкаПодключенияКЯндексПэйПриИзменении</Event>
<Event name="StartChoice">НастройкаПодключенияКЯндексПэйНачалоВыбора</Event>
<Event name="Creating">НастройкаПодключенияКЯндексПэйСоздание</Event>
</Events>
</InputField>
</ChildItems>
</UsualGroup>
<UsualGroup name="ГруппаПоБанковскимРеквизитамФизЛица" id="115"> <UsualGroup name="ГруппаПоБанковскимРеквизитамФизЛица" id="115">
<Title> <Title>
<v8:item> <v8:item>
@@ -437,6 +496,7 @@
<v8:content>Прием оплат от юрлиц</v8:content> <v8:content>Прием оплат от юрлиц</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаПриемОплатОтЮридическихЛицРасширеннаяПодсказка" id="188"/> <ExtendedTooltip name="ГруппаПриемОплатОтЮридическихЛицРасширеннаяПодсказка" id="188"/>
<ChildItems> <ChildItems>
<UsualGroup name="ГруппаПодключениеКСБПb2b" id="100"> <UsualGroup name="ГруппаПодключениеКСБПb2b" id="100">
@@ -746,6 +806,27 @@
<v8:Type>xs:boolean</v8:Type> <v8:Type>xs:boolean</v8:Type>
</Type> </Type>
</Attribute> </Attribute>
<Attribute name="НастройкаПодключенияКЯндексПэй" id="21">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройка подключения к Яндекс Пэй</v8:content>
</v8:item>
</Title>
<Type/>
<SavedData>true</SavedData>
</Attribute>
<Attribute name="ПриниматьОплатуЯндексПэй" id="22">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Принимать оплату Яндекс Пэй</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
</Attributes> </Attributes>
<Commands> <Commands>
<Command name="НастроитьСтраницуЗаказа" id="1"> <Command name="НастроитьСтраницуЗаказа" id="1">
@@ -28,6 +28,9 @@
ИначеЕсли НастройкаОплаты.СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй Тогда ИначеЕсли НастройкаОплаты.СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ОзонПэй Тогда
НастройкаПодключенияКОзонПэй = НастройкаОплаты.НастройкаПодключения; НастройкаПодключенияКОзонПэй = НастройкаОплаты.НастройкаПодключения;
ПриниматьОплатуОзонПэй = НастройкаОплаты.Используется; ПриниматьОплатуОзонПэй = НастройкаОплаты.Используется;
ИначеЕсли НастройкаОплаты.СпособОплаты = Перечисления.СпособыОплатыОнлайнЗаказов.ЯндексПэй Тогда
НастройкаПодключенияКЯндексПэй = НастройкаОплаты.НастройкаПодключения;
ПриниматьОплатуЯндексПэй = НастройкаОплаты.Используется;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -70,6 +73,8 @@
УправлениеЭлементамиФормыПоДанным(); УправлениеЭлементамиФормыПоДанным();
УстановитьДоступностьНастроекОплатФискализации(); УстановитьДоступностьНастроекОплатФискализации();
Элементы.ФормаОбновитьНастройки.Доступность = Не ТолькоПросмотр;
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -111,6 +116,18 @@
КонецЕсли; КонецЕсли;
Если ПриниматьОплатуЯндексПэй
И Не ЗначениеЗаполнено(НастройкаПодключенияКЯндексПэй) Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Не заполнена настройка подключения к Яндекс Пэй.'"),
,
"НастройкаПодключенияКЯндексПэй",
,
Отказ);
КонецЕсли;
Если Объект.ФискализироватьОнлайнЗаказы Если Объект.ФискализироватьОнлайнЗаказы
И Не ЗначениеЗаполнено(Объект.НастройкаПодключенияКОблачнойКассе) Тогда И Не ЗначениеЗаполнено(Объект.НастройкаПодключенияКОблачнойКассе) Тогда
@@ -175,6 +192,7 @@
ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЗакрытьПослеЗаписи", Ложь); ДополнительныеПараметры.Вставить("ЗакрытьПослеЗаписи", Ложь);
ДополнительныеПараметры.Вставить("ВыполнитьОбработкуЗавершенияОперацииСТокенами", Истина); ДополнительныеПараметры.Вставить("ВыполнитьОбработкуЗавершенияОперацииСТокенами", Истина);
ДополнительныеПараметры.Вставить("ВидОбрабатываемойКоманды", "");
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ПараметрыЗаписи); ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ПараметрыЗаписи);
Если ОписаниеОповещенияОЗакрытии <> Неопределено Если ОписаниеОповещенияОЗакрытии <> Неопределено
@@ -407,6 +425,57 @@
#КонецОбласти #КонецОбласти
#Область ЯндексПэй
&НаКлиенте
Процедура ПриниматьОплатуЯндексПэйПриИзменении(Элемент)
УстановитьИспользованиеСпособаОплаты(
ПредопределенноеЗначение("Перечисление.СпособыОплатыОнлайнЗаказов.ЯндексПэй"),
ПриниматьОплатуЯндексПэй);
КонецПроцедуры
&НаКлиенте
Процедура НастройкаПодключенияКЯндексПэйПриИзменении(Элемент)
ПриИзмененииНастройкиОплаты(
ПредопределенноеЗначение("Перечисление.СпособыОплатыОнлайнЗаказов.ЯндексПэй"),
НастройкаПодключенияКЯндексПэй);
КонецПроцедуры
&НаКлиенте
Процедура НастройкаПодключенияКЯндексПэйНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОнлайнЗаказыКлиентСобытия.ПриВыбореНастройкиПодключения(
ЭтотОбъект,
Новый ОписаниеОповещения("ПослеВыбораНастройкиПодключенияЯндексПэй", ЭтотОбъект),
ПредопределенноеЗначение("Перечисление.СпособыОплатыОнлайнЗаказов.ЯндексПэй"));
КонецПроцедуры
&НаКлиенте
Процедура НастройкаПодключенияКЯндексПэйСоздание(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.НастройкиПлатежныхСистем") Тогда
Возврат;
КонецЕсли;
ОнлайнЗаказыКлиентСобытия.ПриПодключенииПлатежнойСистемы(
ПредопределенноеЗначение("Перечисление.СпособыОплатыОнлайнЗаказов.ЯндексПэй"),
Новый ОписаниеОповещения(
"СозданиеНастройкиПодключенияКЯндексПэйЗавершение",
ЭтотОбъект));
КонецПроцедуры
#КонецОбласти
#Область ПоРеквизитам #Область ПоРеквизитам
&НаКлиенте &НаКлиенте
@@ -520,8 +589,9 @@
&НаКлиенте &НаКлиенте
Процедура НастроитьСтраницуЗаказа(Команда) Процедура НастроитьСтраницуЗаказа(Команда)
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда Если Не ЗначениеЗаполнено(Объект.Ссылка)
ЗадатьВопросОЗаписи("ВнешнийВидСтраницы", Неопределено); Или Модифицированность Тогда
ЗадатьВопросОЗаписи("ВнешнийВидСтраницы");
Иначе Иначе
НастроитьВнешнийВидСтраницы(); НастроитьВнешнийВидСтраницы();
КонецЕсли; КонецЕсли;
@@ -552,15 +622,14 @@
#Область ВыборНастройки #Область ВыборНастройки
&НаКлиенте &НаКлиенте
Процедура ЗадатьВопросОЗаписи(ВидНастройки, НавигационнаяСсылка = Неопределено) Процедура ЗадатьВопросОЗаписи(ВидОбрабатываемойКоманды)
Оповещение = Новый ОписаниеОповещения( Оповещение = Новый ОписаниеОповещения(
"ПослеОтветаНаВопросОЗаписи", "ПослеОтветаНаВопросОЗаписи",
ЭтотОбъект, ЭтотОбъект,
Новый Структура( Новый Структура(
"ВидОбрабатываемойНастройки, НавигационнаяСсылка", "ВидОбрабатываемойКоманды",
ВидНастройки, ВидОбрабатываемойКоманды));
НавигационнаяСсылка));
Кнопки = Новый СписокЗначений; Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, "Записать"); Кнопки.Добавить(КодВозвратаДиалога.Да, "Записать");
@@ -577,17 +646,7 @@
Процедура ПослеОтветаНаВопросОЗаписи(Результат, Параметры) Экспорт Процедура ПослеОтветаНаВопросОЗаписи(Результат, Параметры) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда Если Результат = КодВозвратаДиалога.Да Тогда
Записать(Параметры);
Записать();
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
Возврат;
КонецЕсли;
Если Параметры.ВидОбрабатываемойНастройки = "ВнешнийВидСтраницы" Тогда
НастроитьВнешнийВидСтраницы();
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -706,6 +765,23 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораНастройкиПодключенияЯндексПэй(
НастройкаПодключения,
ДополнительныеПараметры) Экспорт
Если НастройкаПодключения <> Неопределено Тогда
НастройкаПодключенияКЯндексПэй = НастройкаПодключения;
ПриИзмененииНастройкиОплаты(
ПредопределенноеЗначение("Перечисление.СпособыОплатыОнлайнЗаказов.ЯндексПэй"),
НастройкаПодключения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПослеВыбораНастройкиПодключенияСБПb2b( Процедура ПослеВыбораНастройкиПодключенияСБПb2b(
НастройкаПодключения, НастройкаПодключения,
@@ -765,6 +841,20 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура СозданиеНастройкиПодключенияКЯндексПэйЗавершение(
Результат,
ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(Результат) Тогда
НастройкаПодключенияКЯндексПэй = Результат;
ПриИзмененииНастройкиОплаты(
ПредопределенноеЗначение("Перечисление.СпособыОплатыОнлайнЗаказов.ЯндексПэй"),
НастройкаПодключенияКЯндексПэй);
КонецЕсли;
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура СозданиеНастройкиПодключенияКСБПb2bЗавершение( Процедура СозданиеНастройкиПодключенияКСБПb2bЗавершение(
Результат, Результат,
@@ -804,6 +894,7 @@
ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЗакрытьПослеЗаписи", Ложь); ДополнительныеПараметры.Вставить("ЗакрытьПослеЗаписи", Ложь);
ДополнительныеПараметры.Вставить("ВидОбрабатываемойКоманды", "");
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, Параметры); ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, Параметры);
Если Результат = КодВозвратаДиалога.Да Тогда Если Результат = КодВозвратаДиалога.Да Тогда
@@ -826,6 +917,10 @@
ДополнительныеПараметры.ЗакрытьПослеЗаписи, ДополнительныеПараметры.ЗакрытьПослеЗаписи,
Ложь); Ложь);
Если ДополнительныеПараметры.ВидОбрабатываемойКоманды = "ВнешнийВидСтраницы" Тогда
НастроитьВнешнийВидСтраницы();
КонецЕсли;
КонецПроцедуры КонецПроцедуры
&НаСервереБезКонтекста &НаСервереБезКонтекста
@@ -933,6 +1028,10 @@
&НаКлиенте &НаКлиенте
Процедура ПослеЗавершенияОперацийСТокенами(ДополнительныеПараметры) Процедура ПослеЗавершенияОперацийСТокенами(ДополнительныеПараметры)
ПараметрыОбработки = Новый Структура;
ПараметрыОбработки.Вставить("ВидОбрабатываемойКоманды", "");
ЗаполнитьЗначенияСвойств(ПараметрыОбработки, ДополнительныеПараметры);
Если РезультатПроверкиШаблонов <> Неопределено Если РезультатПроверкиШаблонов <> Неопределено
И Не РезультатПроверкиШаблонов.ВсеШаблоны Тогда И Не РезультатПроверкиШаблонов.ВсеШаблоны Тогда
@@ -954,6 +1053,10 @@
Ложь); Ложь);
КонецЕсли; КонецЕсли;
Если ПараметрыОбработки.ВидОбрабатываемойКоманды = "ВнешнийВидСтраницы" Тогда
НастроитьВнешнийВидСтраницы();
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -1356,6 +1459,7 @@
Элементы.ГруппаПодключениеКСБПc2b.Доступность = НастройкаОнлайнЗаказовДоступна; Элементы.ГруппаПодключениеКСБПc2b.Доступность = НастройкаОнлайнЗаказовДоступна;
Элементы.ГруппаПодключениеЭквайринг.Доступность = НастройкаОнлайнЗаказовДоступна; Элементы.ГруппаПодключениеЭквайринг.Доступность = НастройкаОнлайнЗаказовДоступна;
Элементы.ГруппаПодключениеОзонПэй.Доступность = НастройкаОнлайнЗаказовДоступна; Элементы.ГруппаПодключениеОзонПэй.Доступность = НастройкаОнлайнЗаказовДоступна;
Элементы.ГруппаПодключениеЯндексПэй.Доступность = НастройкаОнлайнЗаказовДоступна;
Элементы.ГруппаПоБанковскимРеквизитамФизЛица.Доступность = НастройкаОнлайнЗаказовДоступна; Элементы.ГруппаПоБанковскимРеквизитамФизЛица.Доступность = НастройкаОнлайнЗаказовДоступна;
Элементы.ГруппаПодключениеКОблачнойКассе.Доступность = НастройкаОнлайнЗаказовДоступна; Элементы.ГруппаПодключениеКОблачнойКассе.Доступность = НастройкаОнлайнЗаказовДоступна;
Элементы.ГруппаПодключениеКСБПb2b.Доступность = НастройкаОнлайнЗаказовДоступна; Элементы.ГруппаПодключениеКСБПb2b.Доступность = НастройкаОнлайнЗаказовДоступна;
@@ -1370,6 +1474,7 @@
УстановитьВидимостьПредставлениеОблачнойФискализации(); УстановитьВидимостьПредставлениеОблачнойФискализации();
УстановитьПредставлениеДекорацииПредупреждение(); УстановитьПредставлениеДекорацииПредупреждение();
УстановитьВидимостьПредставлениеОзонПэй(); УстановитьВидимостьПредставлениеОзонПэй();
УстановитьВидимостьПредставлениеЯндексПэй();
КонецПроцедуры КонецПроцедуры
@@ -1389,6 +1494,7 @@
Элементы.НастройкаПодключенияКСБПc2b.Доступность = ПриниматьОплатуСБПc2b; Элементы.НастройкаПодключенияКСБПc2b.Доступность = ПриниматьОплатуСБПc2b;
Элементы.НастройкаПодключенияКОзонПэй.Доступность = ПриниматьОплатуОзонПэй; Элементы.НастройкаПодключенияКОзонПэй.Доступность = ПриниматьОплатуОзонПэй;
Элементы.НастройкаПодключенияКЯндексПэй.Доступность = ПриниматьОплатуЯндексПэй;
Элементы.НастройкаПодключенияКИнтернетЭквайрингу.Доступность = ПриниматьОплатуИнтернетЭквайринг; Элементы.НастройкаПодключенияКИнтернетЭквайрингу.Доступность = ПриниматьОплатуИнтернетЭквайринг;
Элементы.НастройкаПодключенияКОблачнойКассе.Доступность = Объект.ФискализироватьОнлайнЗаказы; Элементы.НастройкаПодключенияКОблачнойКассе.Доступность = Объект.ФискализироватьОнлайнЗаказы;
@@ -1477,6 +1583,25 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьПредставлениеЯндексПэй()
Если ЧтениеНастроекПлатежныхСистемДоступно
И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПлатежныеСистемы.ЯндексПэй") Тогда
Элементы.ГруппаПодключениеЯндексПэй.Видимость = Истина;
Если Не ЗначениеЗаполнено(НастройкаПодключенияКЯндексПэй) Тогда
НастройкаПодключенияКЯндексПэй =
ПредопределенноеЗначение("Справочник.НастройкиПодключенияКПлатежнымСистемам.ПустаяСсылка");
КонецЕсли;
Иначе
Элементы.ГруппаПодключениеЯндексПэй.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере &НаСервере
Процедура УстановитьВидимостьПредставлениеОблачнойФискализации() Процедура УстановитьВидимостьПредставлениеОблачнойФискализации()
@@ -13,10 +13,11 @@
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Если ВидФормы = "ФормаСписка" Или ВидФормы = "ФормаВыбора" Тогда Если ВидФормы = "ФормаСписка" Или ВидФормы = "ФормаВыбора" Тогда
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
ВыбраннаяФорма = "Обработка.НастройкиПлатежныхСистем.Форма.Форма"; ВыбраннаяФорма = "Обработка.НастройкиПлатежныхСистем.Форма.Форма";
НастройкиПлатежныхСистемСлужебный.ОбработкаПолученияФормыСписка( НастройкиПлатежныхСистемСлужебный.ОбработкаПолученияФормыСписка(
"Все", НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыПлатежныеСистемы(),
ВидФормы, ВидФормы,
Параметры); Параметры);
@@ -191,13 +192,12 @@
// Возвращает перечень настроек подключения. // Возвращает перечень настроек подключения.
// //
// Параметры: // Параметры:
// ВариантНастройки - ПеречислениеСсылка.ВариантыНастройкиСБП - вариант настройки Системы быстрых платежей. // ПлатежныйСервис - ПеречислениеСсылка.ПлатежныеСервисы - платежных сервис.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Массив Из Структура - перечень настроек подключения и их параметров: // Массив Из Структура - перечень настроек подключения и их параметров:
// * НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКСистемеБыстрыхПлатежей - настройка подключения; // * НастройкаПодключения - СправочникСсылка.НастройкиПодключенияКПлатежнымСистемам - настройка подключения;
// * Используется - Булево - признак активности настройки. // * Используется - Булево - признак активности настройки.
// * ИдентификаторУчастника - Строка - Идентификатор участника СБП.
// //
Функция НастройкиПодключенияПоСервису(ПлатежныйСервис) Экспорт Функция НастройкиПодключенияПоСервису(ПлатежныйСервис) Экспорт
@@ -6,13 +6,13 @@
<v8:content>Настройка подключения</v8:content> <v8:content>Настройка подключения</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<WindowOpeningMode>LockOwnerWindow</WindowOpeningMode>
<AutoTitle>false</AutoTitle> <AutoTitle>false</AutoTitle>
<CommandSet> <CommandSet>
<ExcludedCommand>Copy</ExcludedCommand> <ExcludedCommand>Copy</ExcludedCommand>
<ExcludedCommand>SetDeletionMark</ExcludedCommand> <ExcludedCommand>SetDeletionMark</ExcludedCommand>
<ExcludedCommand>WriteAndClose</ExcludedCommand> <ExcludedCommand>WriteAndClose</ExcludedCommand>
</CommandSet> </CommandSet>
<ShowTitle>false</ShowTitle>
<UseForFoldersAndItems>Items</UseForFoldersAndItems> <UseForFoldersAndItems>Items</UseForFoldersAndItems>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"> <AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<Autofill>false</Autofill> <Autofill>false</Autofill>
@@ -23,6 +23,11 @@
<CommandName>Form.Command.ЗаписатьИЗакрыть</CommandName> <CommandName>Form.Command.ЗаписатьИЗакрыть</CommandName>
<ExtendedTooltip name="ФормаЗаписатьИЗакрытьРасширеннаяПодсказка" id="36"/> <ExtendedTooltip name="ФормаЗаписатьИЗакрытьРасширеннаяПодсказка" id="36"/>
</Button> </Button>
<Button name="ФормаЗаписать" id="45">
<Type>CommandBarButton</Type>
<CommandName>Form.StandardCommand.Write</CommandName>
<ExtendedTooltip name="ФормаЗаписатьРасширеннаяПодсказка" id="46"/>
</Button>
<ButtonGroup name="КомандыФормы" id="39"> <ButtonGroup name="КомандыФормы" id="39">
<Title> <Title>
<v8:item> <v8:item>
@@ -33,11 +38,6 @@
<CommandSource>Form</CommandSource> <CommandSource>Form</CommandSource>
<ExtendedTooltip name="КомандыФормыРасширеннаяПодсказка" id="40"/> <ExtendedTooltip name="КомандыФормыРасширеннаяПодсказка" id="40"/>
</ButtonGroup> </ButtonGroup>
<Button name="ФормаПроверитьПодключение" id="28">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ПроверитьПодключение</CommandName>
<ExtendedTooltip name="ФормаПроверитьПодключениеРасширеннаяПодсказка" id="29"/>
</Button>
</ChildItems> </ChildItems>
</AutoCommandBar> </AutoCommandBar>
<Events> <Events>
@@ -69,6 +69,18 @@
<ContextMenu name="НаименованиеКонтекстноеМеню" id="13"/> <ContextMenu name="НаименованиеКонтекстноеМеню" id="13"/>
<ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="14"/> <ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="14"/>
</InputField> </InputField>
<UsualGroup name="ГруппаКолонки" id="47">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Колонки</v8:content>
</v8:item>
</Title>
<Group>Vertical</Group>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаКолонкиРасширеннаяПодсказка" id="48"/>
<ChildItems>
<UsualGroup name="ГруппаНастройкиПодключения" id="10" DisplayImportance="Usual"> <UsualGroup name="ГруппаНастройкиПодключения" id="10" DisplayImportance="Usual">
<Title> <Title>
<v8:item> <v8:item>
@@ -79,7 +91,27 @@
<Group>Vertical</Group> <Group>Vertical</Group>
<ControlRepresentation>Picture</ControlRepresentation> <ControlRepresentation>Picture</ControlRepresentation>
<Representation>NormalSeparation</Representation> <Representation>NormalSeparation</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаНастройкиПодключенияРасширеннаяПодсказка" id="11"/> <ExtendedTooltip name="ГруппаНастройкиПодключенияРасширеннаяПодсказка" id="11"/>
<ChildItems>
<UsualGroup name="ГруппаНастройкиАутентификации" id="53">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройки аутентификации</v8:content>
</v8:item>
</Title>
<Group>Vertical</Group>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаНастройкиАутентификацииРасширеннаяПодсказка" id="54"/>
</UsualGroup>
<Button name="ПроверитьПодключение" id="49">
<Type>UsualButton</Type>
<CommandName>Form.Command.ПроверитьПодключение</CommandName>
<ExtendedTooltip name="ПроверитьПодключениеРасширеннаяПодсказка" id="50"/>
</Button>
</ChildItems>
</UsualGroup> </UsualGroup>
<UsualGroup name="ГруппаНастройкиОплаты" id="23" DisplayImportance="Usual"> <UsualGroup name="ГруппаНастройкиОплаты" id="23" DisplayImportance="Usual">
<Title> <Title>
@@ -91,9 +123,10 @@
<Group>Vertical</Group> <Group>Vertical</Group>
<ControlRepresentation>Picture</ControlRepresentation> <ControlRepresentation>Picture</ControlRepresentation>
<Representation>NormalSeparation</Representation> <Representation>NormalSeparation</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаНастройкиОплатыРасширеннаяПодсказка" id="24"/> <ExtendedTooltip name="ГруппаНастройкиОплатыРасширеннаяПодсказка" id="24"/>
</UsualGroup> </UsualGroup>
<UsualGroup name="ГруппаДополнительныеНастройки" id="30"> <UsualGroup name="ГруппаДополнительныеНастройки" id="62">
<Title> <Title>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
@@ -103,25 +136,40 @@
<Group>Vertical</Group> <Group>Vertical</Group>
<Collapsed>true</Collapsed> <Collapsed>true</Collapsed>
<ControlRepresentation>Picture</ControlRepresentation> <ControlRepresentation>Picture</ControlRepresentation>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle> <ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаДополнительныеНастройкиРасширеннаяПодсказка" id="31"/> <ExtendedTooltip name="ГруппаДополнительныеНастройкиРасширеннаяПодсказка" id="63"/>
<ChildItems> <ChildItems>
<LabelDecoration name="ДекорацияНастройкиШаблонов" id="32"> <LabelDecoration name="ДекорацияНастройкиШаблонов" id="64">
<Title formatted="true"> <Title formatted="true">
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>&lt;color #000000&gt;&lt;link open:paymentPurpose&gt;Шаблоны назначения (%1)&lt;/&gt;&lt;/&gt;</v8:content> <v8:content>Шаблоны назначения: &lt;link open:paymentPurpose&gt;Настроить&lt;/&gt;</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ToolTipRepresentation>ShowLeft</ToolTipRepresentation> <ToolTipRepresentation>ShowLeft</ToolTipRepresentation>
<GroupHorizontalAlign>Left</GroupHorizontalAlign> <GroupHorizontalAlign>Left</GroupHorizontalAlign>
<ContextMenu name="ДекорацияНастройкиШаблоновКонтекстноеМеню" id="33"/> <ContextMenu name="ДекорацияНастройкиШаблоновКонтекстноеМеню" id="65"/>
<ExtendedTooltip name="ДекорацияНастройкиШаблоновРасширеннаяПодсказка" id="34"/> <ExtendedTooltip name="ДекорацияНастройкиШаблоновРасширеннаяПодсказка" id="66"/>
<Events> <Events>
<Event name="URLProcessing">ДекорацияНастройкиШаблоновОбработкаНавигационнойСсылки</Event> <Event name="URLProcessing">ДекорацияНастройкиШаблоновОбработкаНавигационнойСсылки</Event>
</Events> </Events>
</LabelDecoration> </LabelDecoration>
<LabelDecoration name="ДекорацияКассовыеСсылки" id="67">
<Title formatted="true">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Кассовые QR-коды: &lt;link open:cashQrc&gt;Настроить&lt;/&gt;</v8:content>
</v8:item>
</Title>
<GroupHorizontalAlign>Left</GroupHorizontalAlign>
<ContextMenu name="ДекорацияКассовыеСсылкиКонтекстноеМеню" id="68"/>
<ExtendedTooltip name="ДекорацияКассовыеСсылкиРасширеннаяПодсказка" id="69"/>
<Events>
<Event name="URLProcessing">ДекорацияКассовыеСсылкиОбработкаНавигационнойСсылки</Event>
</Events>
</LabelDecoration>
</ChildItems>
</UsualGroup>
</ChildItems> </ChildItems>
</UsualGroup> </UsualGroup>
</ChildItems> </ChildItems>
@@ -165,7 +213,7 @@
<ToolTip> <ToolTip>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Проверить подключение</v8:content> <v8:content>Проверить корректность параметров аутентификации</v8:content>
</v8:item> </v8:item>
</ToolTip> </ToolTip>
<Action>ПроверитьПодключение</Action> <Action>ПроверитьПодключение</Action>
@@ -22,7 +22,7 @@
ПлатежныеСистемыСлужебный.ДобавитьНастройкиАутентификации( ПлатежныеСистемыСлужебный.ДобавитьНастройкиАутентификации(
ЭтотОбъект, ЭтотОбъект,
Элементы.ГруппаНастройкиПодключения, Элементы.ГруппаНастройкиАутентификации,
Объект.ПлатежнаяСистема, Объект.ПлатежнаяСистема,
Объект.Ссылка); Объект.Ссылка);
@@ -37,7 +37,7 @@
Объект.ПлатежнаяСистема, Объект.ПлатежнаяСистема,
Объект.Ссылка); Объект.Ссылка);
ЗаполнитьДекорацияНастройкиШаблонов(); ЗаполнитьДекорацииНастройкиШаблоновИКассовыхСсылок();
КонецПроцедуры КонецПроцедуры
@@ -181,6 +181,44 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ДекорацияКассовыеСсылкиОбработкаНавигационнойСсылки(
Элемент,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка)
Если НавигационнаяСсылкаФорматированнойСтроки <> "open:cashQrc" Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = Ложь;
Если Модифицированность Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(
НСтр("ru = 'Перед настройкой кассовых QR-кодов необходимо записать изменения.'"));
Возврат;
КонецЕсли;
Если Не Объект.Используется Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(
НСтр("ru = 'Для отключенной настройки подключения недоступно изменение кассовых QR-кодов.'"));
Возврат;
КонецЕсли;
ОповещениеПослеЗакрытияФормыКассовыхСсылок = Новый ОписаниеОповещения(
"ДекорацияКассовыеСсылкиЗавершение",
ЭтотОбъект);
ПараметрыНастройки = Новый Структура;
ПараметрыНастройки.Вставить("НастройкаПодключения", Объект.Ссылка);
ПараметрыНастройки.Вставить("ПлатежнаяСистема", Объект.ПлатежнаяСистема);
ПлатежныеСистемыКлиент.ПриНастройкеКассовыхСсылок(
ПараметрыНастройки,
ОповещениеПослеЗакрытияФормыКассовыхСсылок);
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура Подключаемый_ПриИзмененииДанныхАутентификации(Элемент) Процедура Подключаемый_ПриИзмененииДанныхАутентификации(Элемент)
@@ -323,17 +361,43 @@
КонецПроцедуры КонецПроцедуры
&НаСервере &НаКлиенте
Процедура ЗаполнитьДекорацияНастройкиШаблонов() Процедура ДекорацияКассовыеСсылкиЗавершение(
Результат,
ДополнительныеПараметры) Экспорт
ПредопределенныеШаблоны = ПлатежныеСистемыСлужебный.НастройкиПодключения( ОбновитьНадписьКассовыеСсылкиНаСервере();
Объект.ПлатежнаяСистема).ШаблоныНазначений;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДекорацииНастройкиШаблоновИКассовыхСсылок()
НастройкиПодключения = ПлатежныеСистемыСлужебный.НастройкиПодключения(
Объект.ПлатежнаяСистема);
ПредопределенныеШаблоны = НастройкиПодключения.ШаблоныНазначений;
НастройкиПлатежныхСистемСлужебный.ЗаполнитьДекорациюНастройкиШаблонов( НастройкиПлатежныхСистемСлужебный.ЗаполнитьДекорациюНастройкиШаблонов(
ПредопределенныеШаблоны, ПредопределенныеШаблоны,
Элементы.ДекорацияНастройкиШаблонов, Элементы.ДекорацияНастройкиШаблонов,
Объект.Ссылка); Объект.Ссылка);
ПлатежныеСистемыСлужебный.ЗаполнитьДекорациюКассовыеСсылки(
НастройкиПодключения.ИспользоватьНастройкуКассовыхСсылок,
Элементы.ДекорацияКассовыеСсылки,
Объект.Ссылка);
КонецПроцедуры
&НаСервере
Процедура ОбновитьНадписьКассовыеСсылкиНаСервере()
ПлатежныеСистемыСлужебный.ЗаполнитьДекорациюКассовыеСсылки(
Элементы.ДекорацияКассовыеСсылки.Видимость,
Элементы.ДекорацияКассовыеСсылки,
Объект.Ссылка);
КонецПроцедуры КонецПроцедуры
&НаСервереБезКонтекста &НаСервереБезКонтекста
@@ -6831,6 +6831,13 @@
НайденнаяСсылка = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Документ.ПолноеИмя()); НайденнаяСсылка = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Документ.ПолноеИмя());
ЭлементТЧ.ИдентификаторОбъектаМетаданных = НайденнаяСсылка; ЭлементТЧ.ИдентификаторОбъектаМетаданных = НайденнаяСсылка;
КонецЕсли; КонецЕсли;
Документ = Метаданные.Документы.Найти("ДокументОПредстоящейПоставке");
Если Документ <> Неопределено Тогда
ЭлементТЧ = Элемент.Документы.Добавить();
ЭлементТЧ.ИмяДокумента = Документ.Имя;
НайденнаяСсылка = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Документ.ПолноеИмя());
ЭлементТЧ.ИдентификаторОбъектаМетаданных = НайденнаяСсылка;
КонецЕсли;
Элемент.ФункциональныеОпции = ТабличныеЧасти.ФункциональныеОпции.Скопировать(); Элемент.ФункциональныеОпции = ТабличныеЧасти.ФункциональныеОпции.Скопировать();
ЭлементТЧ = Элемент.ФункциональныеОпции.Добавить(); ЭлементТЧ = Элемент.ФункциональныеОпции.Добавить();
@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт // Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются // Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке: // Текст лицензии доступен по ссылке:
@@ -220,6 +220,20 @@
Запись.Записать(Истина); Запись.Записать(Истина);
КонецЦикла; КонецЦикла;
ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(); // Все значения = Неопределено, мы не считывали значения состояний.
НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(
Истина, // Прочтена
Неопределено, // Пометка
ЛокальноеОповещениеВключено, // ОповещениеВключено
Неопределено, // ДатаНачалаОповещения
Неопределено, // УдаленаИзСпискаНовостей
Неопределено); // ПрочитатьПозже
ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ЛокальныйТекущийПользователь),
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ТекущаяНовость.Значение),
ПредыдущиеЗначенияСостояний,
НовыеЗначенияСостояний);
Если ЛокальноеОповещениеВключено = Ложь Тогда Если ЛокальноеОповещениеВключено = Ложь Тогда
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = " Запрос.Текст = "
@@ -52,7 +52,6 @@
<SelectionMode>SingleRow</SelectionMode> <SelectionMode>SingleRow</SelectionMode>
<RowSelectionMode>Row</RowSelectionMode> <RowSelectionMode>Row</RowSelectionMode>
<Header>false</Header> <Header>false</Header>
<VerticalLines>false</VerticalLines>
<InitialTreeView>ExpandAllLevels</InitialTreeView> <InitialTreeView>ExpandAllLevels</InitialTreeView>
<FileDragMode>AsFile</FileDragMode> <FileDragMode>AsFile</FileDragMode>
<DataPath>ТаблицаНовостей</DataPath> <DataPath>ТаблицаНовостей</DataPath>
@@ -321,6 +320,42 @@
</v8:StringQualifiers> </v8:StringQualifiers>
</Type> </Type>
</Column> </Column>
<Column name="ОповещениеВключеноПриОткрытии" id="8">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Оповещение включено (при открытии)</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Column>
<Column name="ПрочтенаПриОткрытии" id="9">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Прочтена (при открытии)</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Column>
<Column name="ДатаНачалаОповещенияПриОткрытии" id="10">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Дата начала оповещения (при открытии)</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:dateTime</v8:Type>
<v8:DateQualifiers>
<v8:DateFractions>DateTime</v8:DateFractions>
</v8:DateQualifiers>
</Type>
</Column>
</Columns> </Columns>
</Attribute> </Attribute>
<Attribute name="БылиИзменения" id="1"> <Attribute name="БылиИзменения" id="1">
@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2025, ООО 1С-Софт // Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются // Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке: // Текст лицензии доступен по ссылке:
@@ -214,6 +214,13 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
// Запомнить начальные состояния новостей.
Для Каждого ТекущаяНовость Из ТаблицаНовостей Цикл
ТекущаяНовость.ПрочтенаПриОткрытии = ТекущаяНовость.Прочтена;
ТекущаяНовость.ОповещениеВключеноПриОткрытии = ТекущаяНовость.ОповещениеВключено;
ТекущаяНовость.ДатаНачалаОповещенияПриОткрытии = ТекущаяНовость.ДатаНачалаОповещения;
КонецЦикла;
#Область МобильныйКлиент #Область МобильныйКлиент
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
@@ -386,7 +393,7 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста &НаСервере
// Функция записывает регистр сведений "СостоянияНовостей". // Функция записывает регистр сведений "СостоянияНовостей".
// Также подготавливается список данных для очистки кэша контекстных новостей. // Также подготавливается список данных для очистки кэша контекстных новостей.
// //
@@ -421,6 +428,41 @@
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
// Здесь для каждой новости может быть свое состояние.
// Поэтому надо вначале "свернуть" таблицу, чтобы обрабатывать новости пачками.
ТаблицаНовостейТаблицей = лкТаблицаНовостей.Выгрузить(); // лкТаблицаНовостей - это ДанныеФормыКоллекция.
СгруппированныеСостоянияНовостей = ТаблицаНовостейТаблицей.Скопировать();
СгруппированныеСостоянияНовостей.Свернуть("ОповещениеВключено,Прочтена,ДатаНачалаОповещения,ОповещениеВключеноПриОткрытии,ПрочтенаПриОткрытии,ДатаНачалаОповещенияПриОткрытии");
Для Каждого ТекущееСостояние Из СгруппированныеСостоянияНовостей Цикл
ПараметрыОтбора = Новый Структура("ОповещениеВключено,Прочтена,ДатаНачалаОповещения,ОповещениеВключеноПриОткрытии,ПрочтенаПриОткрытии,ДатаНачалаОповещенияПриОткрытии");
ЗаполнитьЗначенияСвойств(ПараметрыОтбора, ТекущееСостояние);
НовостиПоСостоянию = ТаблицаНовостейТаблицей.НайтиСтроки(ПараметрыОтбора);
МассивНовостей = Новый Массив;
Для Каждого ТекущаяНовостьПоСостоянию Из НовостиПоСостоянию Цикл
МассивНовостей.Добавить(ТекущаяНовостьПоСостоянию.Новость);
КонецЦикла;
ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(
ТекущееСостояние.ПрочтенаПриОткрытии, // Прочтена
Неопределено, // Пометка
ТекущееСостояние.ОповещениеВключеноПриОткрытии, // ОповещениеВключено
ТекущееСостояние.ДатаНачалаОповещенияПриОткрытии, // ДатаНачалаОповещения
Неопределено, // УдаленаИзСпискаНовостей
Неопределено); // ПрочитатьПозже
НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(
ТекущееСостояние.Прочтена, // Прочтена
Неопределено, // Пометка
ТекущееСостояние.ОповещениеВключено, // ОповещениеВключено
ТекущееСостояние.ДатаНачалаОповещения, // ДатаНачалаОповещения
Неопределено, // УдаленаИзСпискаНовостей
Неопределено); // ПрочитатьПозже
ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(лкТекущийПользователь),
МассивНовостей,
ПредыдущиеЗначенияСостояний,
НовыеЗначенияСостояний);
КонецЦикла;
СписокДанныхДляОчисткиКэшаКонтекстныхНовостей = Новый СписокЗначений; СписокДанныхДляОчисткиКэшаКонтекстныхНовостей = Новый СписокЗначений;
Если МассивНовостейДляОчисткиКэшаКонтекстныхНовостей.Количество() > 0 Тогда Если МассивНовостейДляОчисткиКэшаКонтекстныхНовостей.Количество() > 0 Тогда
@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт // Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются // Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке: // Текст лицензии доступен по ссылке:
@@ -210,6 +210,11 @@
ОписательНовости.Вставить("ПрочитатьПозже" , ПрочитатьПозже); ОписательНовости.Вставить("ПрочитатьПозже" , ПрочитатьПозже);
ОписательНовости.Вставить("ОповещениеВключено" , Ложь); ОписательНовости.Вставить("ОповещениеВключено" , Ложь);
ОписательНовости.Вставить("ДатаНачалаОповещения" , '00010101'); ОписательНовости.Вставить("ДатаНачалаОповещения" , '00010101');
ОписательНовости.Вставить("ПрочтенаПриОткрытии" , ПрочтенаПриОткрытии);
ОписательНовости.Вставить("ПометкаПриОткрытии" , ПометкаПриОткрытии);
ОписательНовости.Вставить("ПрочитатьПозжеПриОткрытии" , ПрочитатьПозжеПриОткрытии);
ОписательНовости.Вставить("ОповещениеВключеноПриОткрытии" , ОповещениеВключеноПриОткрытии);
ОписательНовости.Вставить("ДатаНачалаОповещенияПриОткрытии", ДатаНачалаОповещения); // Оставить как есть
// Настройки не изменялись, поэтому не важно, что туда записывать, главное, чтобы совпадали значения с "*ПриОткрытии". // Настройки не изменялись, поэтому не важно, что туда записывать, главное, чтобы совпадали значения с "*ПриОткрытии".
ОписательНастроекЛентыНовостей = Новый Структура; ОписательНастроекЛентыНовостей = Новый Структура;
ОписательНастроекЛентыНовостей.Вставить("ЛентаНовостей" , Объект.ЛентаНовостей); ОписательНастроекЛентыНовостей.Вставить("ЛентаНовостей" , Объект.ЛентаНовостей);
@@ -507,6 +512,11 @@
ОписательНовости.Вставить("ПрочитатьПозже" , ПрочитатьПозже); ОписательНовости.Вставить("ПрочитатьПозже" , ПрочитатьПозже);
ОписательНовости.Вставить("ОповещениеВключено" , ОповещениеВключено); ОписательНовости.Вставить("ОповещениеВключено" , ОповещениеВключено);
ОписательНовости.Вставить("ДатаНачалаОповещения" , ДатаНачалаОповещения); ОписательНовости.Вставить("ДатаНачалаОповещения" , ДатаНачалаОповещения);
ОписательНовости.Вставить("ПрочтенаПриОткрытии" , ПрочтенаПриОткрытии);
ОписательНовости.Вставить("ПометкаПриОткрытии" , ПометкаПриОткрытии);
ОписательНовости.Вставить("ПрочитатьПозжеПриОткрытии" , ПрочитатьПозжеПриОткрытии);
ОписательНовости.Вставить("ОповещениеВключеноПриОткрытии" , ОповещениеВключеноПриОткрытии);
ОписательНовости.Вставить("ДатаНачалаОповещенияПриОткрытии", ДатаНачалаОповещения); // Оставить как есть
ОписательНастроекЛентыНовостей = Новый Структура; ОписательНастроекЛентыНовостей = Новый Структура;
ОписательНастроекЛентыНовостей.Вставить("ЛентаНовостей" , Объект.ЛентаНовостей); ОписательНастроекЛентыНовостей.Вставить("ЛентаНовостей" , Объект.ЛентаНовостей);
ОписательНастроекЛентыНовостей.Вставить("ЛентаНовостейСостояниеОповещений" , ЛентаНовостейСостояниеОповещений); ОписательНастроекЛентыНовостей.Вставить("ЛентаНовостейСостояниеОповещений" , ЛентаНовостейСостояниеОповещений);
@@ -834,6 +844,26 @@
Запись.ДатаНачалаОповещения = ОписательНовости.ДатаНачалаОповещения; Запись.ДатаНачалаОповещения = ОписательНовости.ДатаНачалаОповещения;
Запись.Записать(Истина); Запись.Записать(Истина);
ПредыдущиеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(
ОписательНовости.ПрочтенаПриОткрытии,
ОписательНовости.ПометкаПриОткрытии,
ОписательНовости.ОповещениеВключеноПриОткрытии,
ОписательНовости.ДатаНачалаОповещенияПриОткрытии,
Неопределено,
?(ОписательНовости.ПрочитатьПозжеПриОткрытии = 1, Истина, Ложь));
НовыеЗначенияСостояний = ОбработкаНовостейКлиентСервер.НовыйОписательЗначенийСостоянияНовости(
ОписательНовости.Прочтена,
ОписательНовости.Пометка,
ОписательНовости.ОповещениеВключено,
ОписательНовости.ДатаНачалаОповещения,
Неопределено,
?(ОписательНовости.ПрочитатьПозже = 1, Истина, Ложь));
ОбработкаНовостейПереопределяемый.ПослеИзмененияСостоянияНовостей(
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Пользователи.ТекущийПользователь()),
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОписательНовости.НовостьСсылка),
ПредыдущиеЗначенияСостояний,
НовыеЗначенияСостояний);
// Настройки ленты новостей. // Настройки ленты новостей.
НеобходимоСброситьКэш = Ложь; НеобходимоСброситьКэш = Ложь;
Если (ОписательНастроекЛентыНовостей.ЛентаНовостейСостояниеПодписки <> ОписательНастроекЛентыНовостей.ЛентаНовостейСостояниеПодпискиПриОткрытии) Тогда Если (ОписательНастроекЛентыНовостей.ЛентаНовостейСостояниеПодписки <> ОписательНастроекЛентыНовостей.ЛентаНовостейСостояниеПодпискиПриОткрытии) Тогда
@@ -2054,7 +2054,7 @@
УстановитьДоступностьВестиУчетПоГТДЛокализация(Элементы.ВестиУчетПоГТД, Объект); УстановитьДоступностьВестиУчетПоГТДЛокализация(Элементы.ВестиУчетПоГТД, Объект);
//++ Локализация //++ Локализация
ПриИзмененииТНВЭДиОКПД2(); ПриИзмененииТНВЭДиОКПД2(Ложь);
//-- Локализация //-- Локализация
НастроитьФормуИОбновитьКарточку(); НастроитьФормуИОбновитьКарточку();
@@ -5563,7 +5563,7 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПриИзмененииТНВЭДиОКПД2() Процедура ПриИзмененииТНВЭДиОКПД2(ОбновлятьКарточку = Истина)
УказанТНВЭД = ЗначениеЗаполнено(Объект.КодТНВЭД); УказанТНВЭД = ЗначениеЗаполнено(Объект.КодТНВЭД);
УказанОКПД2 = ЗначениеЗаполнено(Объект.КодОКПД2); УказанОКПД2 = ЗначениеЗаполнено(Объект.КодОКПД2);
@@ -5575,7 +5575,9 @@
Если Не ЗначениеЗаполнено(ВидПродукцииГИСМТ) Тогда Если Не ЗначениеЗаполнено(ВидПродукцииГИСМТ) Тогда
ВидПродукцииГИСМТ = ДоступныеВидыПродукции[0]; ВидПродукцииГИСМТ = ДоступныеВидыПродукции[0];
ИнтеграцияИСКлиент.ВидПродукцииГИСМТПриИзменении(ЭтотОбъект); ИнтеграцияИСКлиент.ВидПродукцииГИСМТПриИзменении(ЭтотОбъект);
Если ОбновлятьКарточку Тогда
НастроитьФормуИОбновитьКарточку(); НастроитьФормуИОбновитьКарточку();
КонецЕсли;
Иначе Иначе
Если УказанТНВЭД И УказанОКПД2 Тогда Если УказанТНВЭД И УказанОКПД2 Тогда
НачалоВопроса = СтрШаблон( НачалоВопроса = СтрШаблон(
@@ -1507,9 +1507,6 @@
</v8:item> </v8:item>
</ToolTip> </ToolTip>
<ToolTipRepresentation>Button</ToolTipRepresentation> <ToolTipRepresentation>Button</ToolTipRepresentation>
<Width>2</Width>
<AutoMaxWidth>false</AutoMaxWidth>
<MaxWidth>2</MaxWidth>
<ChoiceButtonRepresentation>ShowInDropList</ChoiceButtonRepresentation> <ChoiceButtonRepresentation>ShowInDropList</ChoiceButtonRepresentation>
<ListChoiceMode>true</ListChoiceMode> <ListChoiceMode>true</ListChoiceMode>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues> <ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
@@ -1521,7 +1518,7 @@
<Presentation> <Presentation>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Признак отсутствует</v8:content> <v8:content>0 - Отсутствует</v8:content>
</v8:item> </v8:item>
</Presentation> </Presentation>
<Value xsi:type="xs:string">0</Value> <Value xsi:type="xs:string">0</Value>
@@ -1534,7 +1531,7 @@
<Presentation> <Presentation>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Есть право на освобождение от внесения обеспечительного платежа</v8:content> <v8:content>1 – Освобождение от внесения обеспечительного платежа</v8:content>
</v8:item> </v8:item>
</Presentation> </Presentation>
<Value xsi:type="xs:string">1</Value> <Value xsi:type="xs:string">1</Value>
@@ -1547,7 +1544,7 @@
<Presentation> <Presentation>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Иной признак</v8:content> <v8:content>2 – Иной признак</v8:content>
</v8:item> </v8:item>
</Presentation> </Presentation>
<Value xsi:type="xs:string">2</Value> <Value xsi:type="xs:string">2</Value>
@@ -5347,6 +5344,14 @@
<xr:Common>false</xr:Common> <xr:Common>false</xr:Common>
</Visible> </Visible>
</Item> </Item>
<Item>
<Command>InformationRegister.ДокументыОПредстоящейПоставке.StandardCommand.OpenByValue.Организация</Command>
<Type>Auto</Type>
<DefaultVisible>false</DefaultVisible>
<Visible>
<xr:Common>false</xr:Common>
</Visible>
</Item>
</NavigationPanel> </NavigationPanel>
<CommandBar> <CommandBar>
<Item> <Item>
@@ -388,7 +388,21 @@
&НаКлиенте &НаКлиенте
Процедура Подключаемый_ОбновитьКомандыЭДО() Процедура Подключаемый_ОбновитьКомандыЭДО()
Если ИспользоватьПартнеровКакКонтрагентов Тогда
ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
Если ТекущаяСтрока <> Неопределено Тогда
КонтрагентПартнера = ПартнерыИКонтрагентыВызовСервера.КонтрагентПартнера(ТекущаяСтрока);
Если КонтрагентПартнера <> Неопределено Тогда
ОбновитьКомандыЭДОДляКонтрагентаПартнера(КонтрагентПартнера);
Иначе
ОбменСКонтрагентамиКлиент.ОбновитьКоманды(ЭтотОбъект, Элементы.Список); ОбменСКонтрагентамиКлиент.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецЕсли;
КонецЕсли;
Иначе
ОбменСКонтрагентамиКлиент.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами // Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
@@ -729,6 +743,71 @@
КонецПроцедуры КонецПроцедуры
// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
&НаСервере
Функция ВычислитьЗначенияАлгоритмовЭДО(Алгоритмы, ПараметрыАлгоритма)
ЗначенияАлгоритмов = Новый Соответствие;
Для Каждого КлючИЗначение Из Алгоритмы Цикл
СтрокаВычисления = СтрШаблон("%1(Параметры)", КлючИЗначение.Ключ);
Значение = ОбщегоНазначения.ВычислитьВБезопасномРежиме(СтрокаВычисления, ПараметрыАлгоритма);
ЗначенияАлгоритмов.Вставить(КлючИЗначение.Ключ, Значение);
КонецЦикла;
Возврат ЗначенияАлгоритмов;
КонецФункции
&НаКлиенте
Процедура ОбновитьКомандыЭДОДляКонтрагентаПартнера(Контрагент)
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ЭтотОбъект, "ПараметрыУправленияВидимостьюЭДО") Тогда
ПараметрыУправленияВидимостью = ЭтотОбъект.ПараметрыУправленияВидимостьюЭДО;
Иначе
ПараметрыУправленияВидимостью = Неопределено;
КонецЕсли;
Если ПараметрыУправленияВидимостью = Неопределено Тогда
Возврат;
КонецЕсли;
КомандыДляПроверкиАлгоритмами = Новый Соответствие;
ОбъектыДляПроверки = Новый Массив;
ОбъектыДляПроверки.Добавить(Контрагент);
Для Каждого Команда Из ПараметрыУправленияВидимостью.КомандыСУсловиямиВидимости Цикл
КомандаЭлемент = Элементы[Команда.ИмяВФорме];
Видимость = Истина;
Если ЗначениеЗаполнено(Команда.ИмяРеквизитаУсловия) Тогда
Видимость = Ложь;
ИначеЕсли ЗначениеЗаполнено(Команда.ИмяАлгоритмаПроверкиУсловия) Тогда
КомандыДляПроверкиАлгоритмами.Вставить(Команда, Команда.ИмяАлгоритмаПроверкиУсловия);
ИначеЕсли Команда.ЗначениеУсловия = Неопределено Тогда
Видимость = Ложь;
Иначе
Видимость = Истина;
КонецЕсли;
КомандаЭлемент.Видимость = Видимость;
Если Не Видимость Тогда
КомандыДляПроверкиАлгоритмами.Удалить(Команда);
КонецЕсли;
КонецЦикла;
Если КомандыДляПроверкиАлгоритмами.Количество() > 0 Тогда
Алгоритмы = Новый Соответствие;
Для Каждого КомандаИАлгоритм Из КомандыДляПроверкиАлгоритмами Цикл
Алгоритмы.Вставить(КомандаИАлгоритм.Значение, Истина);
КонецЦикла;
ЗначенияАлгоритмов = ВычислитьЗначенияАлгоритмовЭДО(Алгоритмы, ОбъектыДляПроверки);
Для Каждого КомандаИАлгоритм Из КомандыДляПроверкиАлгоритмами Цикл
Команда = КомандаИАлгоритм.Ключ;
КомандаЭлемент = Элементы[Команда.ИмяВФорме];
КомандаЭлемент.Видимость = Команда.ЗначениеУсловия = ЗначенияАлгоритмов[КомандаИАлгоритм.Значение];
КонецЦикла;
КонецЕсли;
КонецПроцедуры
// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -169,7 +169,6 @@
<v8:content>Доверенность</v8:content> <v8:content>Доверенность</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<United>false</United>
<ShowTitle>false</ShowTitle> <ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаДоверенностьРасширеннаяПодсказка" id="13"/> <ExtendedTooltip name="ГруппаДоверенностьРасширеннаяПодсказка" id="13"/>
<ChildItems> <ChildItems>
@@ -991,10 +991,10 @@
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Порядковый номер ограничения</v8:content> <v8:content>Идентификатор ограничения</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment>Порядковый номер ограничения</Comment>
<Type> <Type>
<v8:Type>xs:decimal</v8:Type> <v8:Type>xs:decimal</v8:Type>
<v8:NumberQualifiers> <v8:NumberQualifiers>
@@ -668,7 +668,7 @@
ПравилоНастройкиПроверкиРасширенные = ПравилоОбъект.НастройкиПроверкиРасширенные; ПравилоНастройкиПроверкиРасширенные = ПравилоОбъект.НастройкиПроверкиРасширенные;
ПравилоНастройкиПроверкиРасширенные.Очистить(); ПравилоНастройкиПроверкиРасширенные.Очистить();
Для Каждого ТекущаяНастройка из ФормаНастройкиПроверкиРасширенные Цикл Для Каждого ТекущаяНастройка Из ФормаНастройкиПроверкиРасширенные Цикл
НоваяНастройка = ПравилоНастройкиПроверкиРасширенные.Добавить(); НоваяНастройка = ПравилоНастройкиПроверкиРасширенные.Добавить();
ЗаполнитьЗначенияСвойств(НоваяНастройка, ТекущаяНастройка); ЗаполнитьЗначенияСвойств(НоваяНастройка, ТекущаяНастройка);
@@ -1645,7 +1645,7 @@
КонецПроцедуры КонецПроцедуры
// Установливает текст и параметры запроса для конвертации правил проверки полномочий. // Устанавливает текст и параметры запроса для конвертации правил проверки полномочий.
// //
// Параметры: // Параметры:
// Запрос - Запрос // Запрос - Запрос
@@ -250,7 +250,7 @@
</xr:StandardAttribute> </xr:StandardAttribute>
<xr:StandardAttribute name="Description"> <xr:StandardAttribute name="Description">
<xr:LinkByType/> <xr:LinkByType/>
<xr:FillChecking>DontCheck</xr:FillChecking> <xr:FillChecking>ShowError</xr:FillChecking>
<xr:MultiLine>false</xr:MultiLine> <xr:MultiLine>false</xr:MultiLine>
<xr:FillFromFillingValue>false</xr:FillFromFillingValue> <xr:FillFromFillingValue>false</xr:FillFromFillingValue>
<xr:CreateOnInput>Auto</xr:CreateOnInput> <xr:CreateOnInput>Auto</xr:CreateOnInput>
@@ -352,11 +352,6 @@
&НаСервере &НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
// Проверка данных, которые выведены через реквизиты самой формы. // Проверка данных, которые выведены через реквизиты самой формы.
Если Не ЗначениеЗаполнено(Объект.Наименование) Тогда
Отказ = Истина;
ТекстСообщения = НСтр("ru = 'Не введено наименование.'");
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.Наименование");
КонецЕсли;
Если Объект.ИспользоватьЭлектроннуюПочту И Не Объект.Личная Тогда Если Объект.ИспользоватьЭлектроннуюПочту И Не Объект.Личная Тогда
Если Не ЗначениеЗаполнено(ТипПолучателейРассылки) Тогда Если Не ЗначениеЗаполнено(ТипПолучателейРассылки) Тогда
Отказ = Истина; Отказ = Истина;
@@ -172,11 +172,11 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если Параметр.Отозван Тогда Если Параметр.Отозван Тогда
ЭтотОбъект.Прочитать(); Прочитать();
ОбновитьВидимостьПредупреждения(); ОбновитьВидимостьПредупреждения();
КонецЕсли; КонецЕсли;
Если Параметр.Установлен Тогда Если Параметр.Установлен Тогда
ЭтотОбъект.Прочитать(); Прочитать();
ПодключитьОбработчикОжидания("ОбработчикОжиданияПоказатьСостояниеСертификата", 0.1, Истина); ПодключитьОбработчикОжидания("ОбработчикОжиданияПоказатьСостояниеСертификата", 0.1, Истина);
КонецЕсли; КонецЕсли;
Возврат; Возврат;
@@ -642,7 +642,7 @@
<Value>HK</Value> <Value>HK</Value>
<Value>HKG</Value> <Value>HKG</Value>
<Value>344</Value> <Value>344</Value>
<Value>Специальный административный регион Китая Гонконг</Value> <Value>Специальный административный район Гонконг Китайской Народной Республики</Value>
<Value>false</Value> <Value>false</Value>
<Value>false</Value> <Value>false</Value>
<Value>Hong Kong</Value> <Value>Hong Kong</Value>
@@ -66,16 +66,6 @@
</v8:item> </v8:item>
</title> </title>
</field> </field>
<field xsi:type="DataSetFieldField">
<dataPath>МотивационнаяГруппа</dataPath>
<field>МотивационнаяГруппа</field>
<title xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Мотивационная группа</v8:content>
</v8:item>
</title>
</field>
<field xsi:type="DataSetFieldField"> <field xsi:type="DataSetFieldField">
<dataPath>Рецептурное</dataPath> <dataPath>Рецептурное</dataPath>
<field>Рецептурное</field> <field>Рецептурное</field>
@@ -92,8 +82,7 @@
ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика,
ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия, ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
ЗНАЧЕНИЕ(Справочник.УТР_МаркетинговыеГруппы.ПустаяСсылка) КАК МаркетинговаяГруппа, ЗНАЧЕНИЕ(Справочник.УАС_МаркетинговыеГруппы.ПустаяСсылка) КАК МаркетинговаяГруппа,
ЗНАЧЕНИЕ(Справочник.итм_МотивационныеГруппы.ПустаяСсылка) КАК МотивационнаяГруппа,
ВЫРАЗИТЬ(ЛОЖЬ КАК БУЛЕВО) КАК Рецептурное ВЫРАЗИТЬ(ЛОЖЬ КАК БУЛЕВО) КАК Рецептурное
ПОМЕСТИТЬ ВТ ПОМЕСТИТЬ ВТ
; ;
@@ -126,7 +115,6 @@
Т.Характеристика.*, Т.Характеристика.*,
Т.Серия.*, Т.Серия.*,
Т.МаркетинговаяГруппа.*, Т.МаркетинговаяГруппа.*,
Т.МотивационнаяГруппа.*,
С.Сегмент.*, С.Сегмент.*,
Т.Рецептурное}</query> Т.Рецептурное}</query>
<autoFillFields>false</autoFillFields> <autoFillFields>false</autoFillFields>
@@ -1221,7 +1221,7 @@
&НаСервереБезКонтекста &НаСервереБезКонтекста
Процедура ЗагрузитьИзПланаОбменаНаСервере() Процедура ЗагрузитьИзПланаОбменаНаСервере()
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
РегистрыСведений.УАС_АктивныеСерииНоменклатуры.ОбновитьАктивныеСерии(,1000); РегистрыСведений.УАС_АктивныеСерииНоменклатуры.ОбновитьАктивныеСерии(1000);
Справочники.УАС_РМК.ОбновитьОбщиеНастройкиИзМакета(); Справочники.УАС_РМК.ОбновитьОбщиеНастройкиИзМакета();
КонецПроцедуры КонецПроцедуры
@@ -179,6 +179,19 @@
#Область ДляВызоваИзДругихПодсистем #Область ДляВызоваИзДругихПодсистем
#Область СтандартныеПодсистемы
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ДанныеОбновленыНаНовуюВерсиюПрограммы");
Методы.Вставить("ЗаполнитьРегламентЭДО");
Методы.Вставить("СнятьФлагОтветнойПодписиУСчетаНаОплату");
КонецПроцедуры
#КонецОбласти
// Возвращает профили настроек организации для отправки Запроса коммерческих предложений исходящего через ЭДО. // Возвращает профили настроек организации для отправки Запроса коммерческих предложений исходящего через ЭДО.
// //
// Параметры: // Параметры:
@@ -2,6 +2,21 @@
#Область ПрограммныйИнтерфейс #Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
#Область СтандартныеПодсистемы
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ПеренестиНастройкиСертификатов");
КонецПроцедуры
#КонецОбласти
#КонецОбласти
// Обработчик обновления БЭД 1.1.9.1 // Обработчик обновления БЭД 1.1.9.1
// Заполняет дату окончания действия сертификата // Заполняет дату окончания действия сертификата
// //
@@ -155,6 +155,20 @@
#Область ДляВызоваИзДругихПодсистем #Область ДляВызоваИзДругихПодсистем
#Область СтандартныеПодсистемы
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ДанныеОбновленыНаНовуюВерсиюПрограммы");
Методы.Вставить("ОбновитьВерсиюФорматаИсходящихЭД207_208");
Методы.Вставить("ОбновитьВерсиюФорматаИсходящихЭД501_502");
Методы.Вставить("УдалитьОтветныеТитулы");
КонецПроцедуры
#КонецОбласти
// СтандартныеПодсистемы.УправлениеДоступом // СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. // См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
@@ -1451,7 +1465,6 @@
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -726,6 +726,10 @@
&НаКлиенте &НаКлиенте
Процедура ПродлитьДействиеПодписей(Команда) Процедура ПродлитьДействиеПодписей(Команда)
Если Модифицированность Тогда
ПеренестиРезультатыПроверкиПодписей();
КонецЕсли;
ОбработчикПродолжения = Новый ОписаниеОповещения("ПриПолученииПодписей", ЭтотОбъект); ОбработчикПродолжения = Новый ОписаниеОповещения("ПриПолученииПодписей", ЭтотОбъект);
ПараметрыПродления = Новый Структура; ПараметрыПродления = Новый Структура;
@@ -1617,6 +1621,11 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура ПеренестиРезультатыПроверкиПодписей()
РаботаСФайламиСлужебный.ПеренестиРезультатыПроверкиПодписей(ЭлектронныеПодписи, Объект.Ссылка);
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПрочитатьИУстановитьДоступностьЭлементовФормы(Результат, ДополнительныеПараметры) Экспорт Процедура ПрочитатьИУстановитьДоступностьЭлементовФормы(Результат, ДополнительныеПараметры) Экспорт
@@ -20,9 +20,10 @@
СпособДоставкиПаролей = "phone"; СпособДоставкиПаролей = "phone";
ПараметрыПроцедуры = Новый Структура("ИдентификаторСертификата", СервисКриптографииСлужебный.Идентификатор(Сертификат)); ПараметрыПроцедуры = Новый Структура("ИдентификаторСертификата", СервисКриптографииСлужебный.Идентификатор(Сертификат));
ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
ДлительнаяОперация = СервисКриптографииСлужебный.ВыполнитьВФоне( ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(
"СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры); "СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры, ПараметрыВыполнения);
ИспользоватьТокен = ЭлектроннаяПодписьВМоделиСервиса.ДолговременныйТокенИспользованиеВозможно(); ИспользоватьТокен = ЭлектроннаяПодписьВМоделиСервиса.ДолговременныйТокенИспользованиеВозможно();
ПарольОтправляется = Истина; ПарольОтправляется = Истина;
@@ -260,8 +261,10 @@
ПараметрыПроцедуры.Вставить("Тип", СпособДоставкиПаролей); ПараметрыПроцедуры.Вставить("Тип", СпособДоставкиПаролей);
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии); ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
Возврат СервисКриптографииСлужебный.ВыполнитьВФоне( ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
"СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры);
Возврат ДлительныеОперации.ВыполнитьВФоне(
"СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции КонецФункции
@@ -384,8 +387,10 @@
ПараметрыПроцедуры.Вставить("ВременныйПароль", Пароль); ПараметрыПроцедуры.Вставить("ВременныйПароль", Пароль);
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии); ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
Возврат СервисКриптографииСлужебный.ВыполнитьВФоне( ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
"СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры);
Возврат ДлительныеОперации.ВыполнитьВФоне(
"СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции КонецФункции
@@ -25,9 +25,10 @@
СпособДоставкиПаролей = "phone"; СпособДоставкиПаролей = "phone";
ПараметрыПроцедуры = Новый Структура("ИдентификаторСертификата", СервисКриптографииСлужебный.Идентификатор(Сертификат)); ПараметрыПроцедуры = Новый Структура("ИдентификаторСертификата", СервисКриптографииСлужебный.Идентификатор(Сертификат));
ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
ДлительнаяОперация = СервисКриптографииСлужебный.ВыполнитьВФоне( ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(
"СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры); "СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры, ПараметрыВыполнения);
ПарольОтправляется = Истина; ПарольОтправляется = Истина;
Элементы.ФормаДругойСпособ.Видимость = Ложь; Элементы.ФормаДругойСпособ.Видимость = Ложь;
@@ -167,8 +168,10 @@
ПараметрыПроцедуры.Вставить("Тип", СпособДоставкиПаролей); ПараметрыПроцедуры.Вставить("Тип", СпособДоставкиПаролей);
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии); ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
Возврат СервисКриптографииСлужебный.ВыполнитьВФоне( ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
"СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры);
Возврат ДлительныеОперации.ВыполнитьВФоне(
"СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции КонецФункции
@@ -245,8 +248,10 @@
ПараметрыПроцедуры.Вставить("ВременныйПароль", ТекущийКод); ПараметрыПроцедуры.Вставить("ВременныйПароль", ТекущийКод);
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии); ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
Возврат СервисКриптографииСлужебный.ВыполнитьВФоне( ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
"СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры);
Возврат ДлительныеОперации.ВыполнитьВФоне(
"СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции КонецФункции
@@ -23,8 +23,9 @@
Сертификат = Параметры.Сертификат; Сертификат = Параметры.Сертификат;
ПараметрыПроцедуры = Новый Структура("ИдентификаторСертификата", СервисКриптографииСлужебный.Идентификатор(Сертификат)); ПараметрыПроцедуры = Новый Структура("ИдентификаторСертификата", СервисКриптографииСлужебный.Идентификатор(Сертификат));
ДлительнаяОперация = СервисКриптографииСлужебный.ВыполнитьВФоне( ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
"СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры); ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(
"СервисКриптографииСлужебный.ПолучитьНастройкиПолученияВременныхПаролей", ПараметрыПроцедуры, ПараметрыВыполнения);
ОтпечатокСертификата = ЭлектроннаяПодписьВМоделиСервиса.НайтиСертификатПоИдентификатору(Сертификат); ОтпечатокСертификата = ЭлектроннаяПодписьВМоделиСервиса.НайтиСертификатПоИдентификатору(Сертификат);
ДанныеПользователя = ПолучитьДанныеТекущегоПользователя(); ДанныеПользователя = ПолучитьДанныеТекущегоПользователя();
@@ -415,8 +416,10 @@
ПараметрыПроцедуры.Вставить("Тип", "phone"); ПараметрыПроцедуры.Вставить("Тип", "phone");
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии); ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
Возврат СервисКриптографииСлужебный.ВыполнитьВФоне( ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
"СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры);
Возврат ДлительныеОперации.ВыполнитьВФоне(
"СервисКриптографииСлужебный.ПолучитьВременныйПароль", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции КонецФункции
@@ -493,8 +496,10 @@
ПараметрыПроцедуры.Вставить("ВременныйПароль", КодТелефона); ПараметрыПроцедуры.Вставить("ВременныйПароль", КодТелефона);
ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии); ПараметрыПроцедуры.Вставить("ИдентификаторСессии", ИдентификаторСессии);
Возврат СервисКриптографииСлужебный.ВыполнитьВФоне( ПараметрыВыполнения = СервисКриптографииСлужебный.ПараметрыВыполненияВФоне(ПараметрыПроцедуры);
"СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры);
Возврат ДлительныеОперации.ВыполнитьВФоне(
"СервисКриптографииСлужебный.ПолучитьСеансовыйКлюч", ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции КонецФункции
@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт // Copyright (c) 2026, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются // Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке: // Текст лицензии доступен по ссылке:
@@ -14,10 +14,12 @@
Если ЗначениеЗаполнено(Параметры.ПлатежнаяСсылка) Тогда Если ЗначениеЗаполнено(Параметры.ПлатежнаяСсылка) Тогда
ПлатежнаяСсылка = Параметры.ПлатежнаяСсылка; ПлатежнаяСсылка = Параметры.ПлатежнаяСсылка;
QRКод = СистемаБыстрыхПлатежей.ИзображениеQRКодаСБП( QRКод = НастройкиПлатежныхСистем.ИзображениеQRКода(
Параметры.ПлатежнаяСсылка, Параметры.ПлатежнаяСсылка,
360, 360,
НастройкиПлатежныхСистемКлиентСервер.ИмяПодсистемыСБП(),
0); 0);
QRКодКартинкой = ПоместитьВоВременноеХранилище(QRКод, ЭтотОбъект); QRКодКартинкой = ПоместитьВоВременноеХранилище(QRКод, ЭтотОбъект);
Иначе Иначе
@@ -39,6 +39,7 @@
<v8:content>Страница выбора</v8:content> <v8:content>Страница выбора</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="СтраницаВыбораРасширеннаяПодсказка" id="417"/> <ExtendedTooltip name="СтраницаВыбораРасширеннаяПодсказка" id="417"/>
<ChildItems> <ChildItems>
<Button name="Выбрать" id="418"> <Button name="Выбрать" id="418">
@@ -68,12 +69,31 @@
<MaxHeight>5</MaxHeight> <MaxHeight>5</MaxHeight>
<MaxRowsCount>1</MaxRowsCount> <MaxRowsCount>1</MaxRowsCount>
<Header>false</Header> <Header>false</Header>
<HorizontalLines>false</HorizontalLines>
<VerticalLines>false</VerticalLines>
<AutoInsertNewRow>true</AutoInsertNewRow> <AutoInsertNewRow>true</AutoInsertNewRow>
<EnableStartDrag>true</EnableStartDrag> <EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag> <EnableDrag>true</EnableDrag>
<DataPath>НастройкиПодключения</DataPath> <DataPath>НастройкиПодключения</DataPath>
<CommandSet>
<ExcludedCommand>Add</ExcludedCommand>
<ExcludedCommand>CancelSearch</ExcludedCommand>
<ExcludedCommand>Change</ExcludedCommand>
<ExcludedCommand>Copy</ExcludedCommand>
<ExcludedCommand>CopyToClipboard</ExcludedCommand>
<ExcludedCommand>Delete</ExcludedCommand>
<ExcludedCommand>EndEdit</ExcludedCommand>
<ExcludedCommand>Find</ExcludedCommand>
<ExcludedCommand>FindByCurrentValue</ExcludedCommand>
<ExcludedCommand>MoveDown</ExcludedCommand>
<ExcludedCommand>MoveUp</ExcludedCommand>
<ExcludedCommand>OutputList</ExcludedCommand>
<ExcludedCommand>SearchEverywhere</ExcludedCommand>
<ExcludedCommand>SearchHistory</ExcludedCommand>
<ExcludedCommand>SelectAll</ExcludedCommand>
<ExcludedCommand>ShowMultipleSelection</ExcludedCommand>
<ExcludedCommand>ShowRowRearrangement</ExcludedCommand>
<ExcludedCommand>SortListAsc</ExcludedCommand>
<ExcludedCommand>SortListDesc</ExcludedCommand>
</CommandSet>
<RowFilter xsi:nil="true"/> <RowFilter xsi:nil="true"/>
<ContextMenu name="НастройкиПодключенияКонтекстноеМеню" id="424"/> <ContextMenu name="НастройкиПодключенияКонтекстноеМеню" id="424"/>
<AutoCommandBar name="НастройкиПодключенияКоманднаяПанель" id="425"> <AutoCommandBar name="НастройкиПодключенияКоманднаяПанель" id="425">
@@ -667,7 +687,7 @@
<Presentation> <Presentation>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>MAX</v8:content> <v8:content>МАКС</v8:content>
</v8:item> </v8:item>
</Presentation> </Presentation>
<Value xsi:type="xs:string">MAX</Value> <Value xsi:type="xs:string">MAX</Value>
@@ -848,6 +868,7 @@
<v8:content>Группа шаблон сообщения электронная почта</v8:content> <v8:content>Группа шаблон сообщения электронная почта</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаШаблонСообщенияЭлектроннаяПочтаРасширеннаяПодсказка" id="546"/> <ExtendedTooltip name="ГруппаШаблонСообщенияЭлектроннаяПочтаРасширеннаяПодсказка" id="546"/>
<ChildItems> <ChildItems>
<InputField name="ШаблонСообщенияЭлектроннаяПочта" id="532"> <InputField name="ШаблонСообщенияЭлектроннаяПочта" id="532">
@@ -881,6 +902,7 @@
<v8:content>Группа шаблон сообщения телефон</v8:content> <v8:content>Группа шаблон сообщения телефон</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаШаблонСообщенияТелефонРасширеннаяПодсказка" id="548"/> <ExtendedTooltip name="ГруппаШаблонСообщенияТелефонРасширеннаяПодсказка" id="548"/>
<ChildItems> <ChildItems>
<InputField name="ШаблонСообщенияТелефон" id="535"> <InputField name="ШаблонСообщенияТелефон" id="535">
@@ -914,6 +936,7 @@
<v8:content>Группа декорация отступ</v8:content> <v8:content>Группа декорация отступ</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаДекорацияОтступРасширеннаяПодсказка" id="550"/> <ExtendedTooltip name="ГруппаДекорацияОтступРасширеннаяПодсказка" id="550"/>
<ChildItems> <ChildItems>
<LabelDecoration name="ДекорацияОтступ" id="538"> <LabelDecoration name="ДекорацияОтступ" id="538">
@@ -1066,8 +1089,6 @@
<SelectionMode>SingleRow</SelectionMode> <SelectionMode>SingleRow</SelectionMode>
<RowSelectionMode>Row</RowSelectionMode> <RowSelectionMode>Row</RowSelectionMode>
<Header>false</Header> <Header>false</Header>
<HorizontalLines>false</HorizontalLines>
<VerticalLines>false</VerticalLines>
<AutoInsertNewRow>true</AutoInsertNewRow> <AutoInsertNewRow>true</AutoInsertNewRow>
<FileDragMode>AsFile</FileDragMode> <FileDragMode>AsFile</FileDragMode>
<DataPath>Вложения</DataPath> <DataPath>Вложения</DataPath>
@@ -1078,13 +1099,20 @@
</v8:item> </v8:item>
</Title> </Title>
<CommandSet> <CommandSet>
<ExcludedCommand>Add</ExcludedCommand>
<ExcludedCommand>CancelSearch</ExcludedCommand> <ExcludedCommand>CancelSearch</ExcludedCommand>
<ExcludedCommand>Change</ExcludedCommand> <ExcludedCommand>Change</ExcludedCommand>
<ExcludedCommand>Copy</ExcludedCommand> <ExcludedCommand>Copy</ExcludedCommand>
<ExcludedCommand>CopyToClipboard</ExcludedCommand>
<ExcludedCommand>Delete</ExcludedCommand>
<ExcludedCommand>EndEdit</ExcludedCommand> <ExcludedCommand>EndEdit</ExcludedCommand>
<ExcludedCommand>Find</ExcludedCommand> <ExcludedCommand>Find</ExcludedCommand>
<ExcludedCommand>FindByCurrentValue</ExcludedCommand>
<ExcludedCommand>MoveDown</ExcludedCommand> <ExcludedCommand>MoveDown</ExcludedCommand>
<ExcludedCommand>MoveUp</ExcludedCommand> <ExcludedCommand>MoveUp</ExcludedCommand>
<ExcludedCommand>OutputList</ExcludedCommand>
<ExcludedCommand>SearchEverywhere</ExcludedCommand>
<ExcludedCommand>SearchHistory</ExcludedCommand>
<ExcludedCommand>ShowRowRearrangement</ExcludedCommand> <ExcludedCommand>ShowRowRearrangement</ExcludedCommand>
<ExcludedCommand>SortListAsc</ExcludedCommand> <ExcludedCommand>SortListAsc</ExcludedCommand>
<ExcludedCommand>SortListDesc</ExcludedCommand> <ExcludedCommand>SortListDesc</ExcludedCommand>
@@ -1188,6 +1216,7 @@
</v8:item> </v8:item>
</Title> </Title>
<Group>HorizontalIfPossible</Group> <Group>HorizontalIfPossible</Group>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="СтраницаБуферРасширеннаяПодсказка" id="282"/> <ExtendedTooltip name="СтраницаБуферРасширеннаяПодсказка" id="282"/>
<ChildItems> <ChildItems>
<HTMLDocumentField name="БуферОбмена" id="274"> <HTMLDocumentField name="БуферОбмена" id="274">
@@ -564,6 +564,7 @@
ПараметрыВыгрузки.Вставить("ДокументЗаказа", ОснованиеЗаказа); ПараметрыВыгрузки.Вставить("ДокументЗаказа", ОснованиеЗаказа);
ПараметрыВыгрузки.Вставить("ПечатныеФормы", ВыбранныеВложения.ПечатныеФормы); ПараметрыВыгрузки.Вставить("ПечатныеФормы", ВыбранныеВложения.ПечатныеФормы);
ПараметрыВыгрузки.Вставить("ПрисоединенныеФайлы", ВыбранныеВложения.ПрисоединенныеФайлы); ПараметрыВыгрузки.Вставить("ПрисоединенныеФайлы", ВыбранныеВложения.ПрисоединенныеФайлы);
ПараметрыВыгрузки.Вставить("ЗаказНаОплату", Неопределено);
РезультатВыполнения = ДлительныеОперации.ВыполнитьФункцию( РезультатВыполнения = ДлительныеОперации.ВыполнитьФункцию(
ПараметрыВыполнения, ПараметрыВыполнения,
@@ -98,6 +98,7 @@
<v8:content>Страница выбора</v8:content> <v8:content>Страница выбора</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="СтраницаВыбораРасширеннаяПодсказка" id="81"/> <ExtendedTooltip name="СтраницаВыбораРасширеннаяПодсказка" id="81"/>
<ChildItems> <ChildItems>
<Button name="Выбрать" id="82"> <Button name="Выбрать" id="82">
@@ -127,8 +128,6 @@
<HeightInTableRows>1</HeightInTableRows> <HeightInTableRows>1</HeightInTableRows>
<HeightControlVariant>UseHeightInTableRows</HeightControlVariant> <HeightControlVariant>UseHeightInTableRows</HeightControlVariant>
<Header>false</Header> <Header>false</Header>
<HorizontalLines>false</HorizontalLines>
<VerticalLines>false</VerticalLines>
<AutoInsertNewRow>true</AutoInsertNewRow> <AutoInsertNewRow>true</AutoInsertNewRow>
<EnableStartDrag>true</EnableStartDrag> <EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag> <EnableDrag>true</EnableDrag>
@@ -205,6 +204,7 @@
<v8:content>Страница частичные оплаты</v8:content> <v8:content>Страница частичные оплаты</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="СтраницаЧастичныеОплатыРасширеннаяПодсказка" id="107"/> <ExtendedTooltip name="СтраницаЧастичныеОплатыРасширеннаяПодсказка" id="107"/>
<ChildItems> <ChildItems>
<CommandBar name="ГруппаКомандыЧастичныхОплат" id="197"> <CommandBar name="ГруппаКомандыЧастичныхОплат" id="197">
@@ -298,8 +298,6 @@
<ReadOnly>true</ReadOnly> <ReadOnly>true</ReadOnly>
<HeightInTableRows>3</HeightInTableRows> <HeightInTableRows>3</HeightInTableRows>
<Header>false</Header> <Header>false</Header>
<HorizontalLines>false</HorizontalLines>
<VerticalLines>false</VerticalLines>
<AutoInsertNewRow>true</AutoInsertNewRow> <AutoInsertNewRow>true</AutoInsertNewRow>
<EnableStartDrag>true</EnableStartDrag> <EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag> <EnableDrag>true</EnableDrag>
@@ -850,7 +848,7 @@
<Presentation> <Presentation>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>MAX</v8:content> <v8:content>МАКС</v8:content>
</v8:item> </v8:item>
</Presentation> </Presentation>
<Value xsi:type="xs:string">MAX</Value> <Value xsi:type="xs:string">MAX</Value>
@@ -966,6 +964,7 @@
<v8:content>Группа шаблон сообщения электронная почта</v8:content> <v8:content>Группа шаблон сообщения электронная почта</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаШаблонСообщенияЭлектроннаяПочтаРасширеннаяПодсказка" id="286"/> <ExtendedTooltip name="ГруппаШаблонСообщенияЭлектроннаяПочтаРасширеннаяПодсказка" id="286"/>
<ChildItems> <ChildItems>
<InputField name="ШаблонСообщенияЭлектроннаяПочта" id="274"> <InputField name="ШаблонСообщенияЭлектроннаяПочта" id="274">
@@ -998,6 +997,7 @@
<v8:content>Группа шаблон сообщения телефон</v8:content> <v8:content>Группа шаблон сообщения телефон</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаШаблонСообщенияТелефонРасширеннаяПодсказка" id="291"/> <ExtendedTooltip name="ГруппаШаблонСообщенияТелефонРасширеннаяПодсказка" id="291"/>
<ChildItems> <ChildItems>
<InputField name="ШаблонСообщенияТелефон" id="277"> <InputField name="ШаблонСообщенияТелефон" id="277">
@@ -1030,6 +1030,7 @@
<v8:content>Группа декорация отступ</v8:content> <v8:content>Группа декорация отступ</v8:content>
</v8:item> </v8:item>
</Title> </Title>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаДекорацияОтступРасширеннаяПодсказка" id="296"/> <ExtendedTooltip name="ГруппаДекорацияОтступРасширеннаяПодсказка" id="296"/>
<ChildItems> <ChildItems>
<LabelDecoration name="ДекорацияОтступ" id="280"> <LabelDecoration name="ДекорацияОтступ" id="280">
@@ -1246,6 +1246,22 @@
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
&НаСервере
Функция БезопасноеИмяФайлаДляАрхива(Представление, ИмяВременногоКаталога)
ИмяФайла = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(Представление);
СтруктураИмениФайла = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ИмяФайла);
Если ЗначениеЗаполнено(СтруктураИмениФайла.Расширение) Тогда
ИмяФайла = СтруктураИмениФайла.ИмяБезРасширения + НРег(СтруктураИмениФайла.Расширение);
КонецЕсли;
ПолноеИмяФайла = ИмяВременногоКаталога + ИмяФайла;
Возврат ФайловаяСистема.УникальноеИмяФайла(ПолноеИмяФайла);
КонецФункции
&НаСервере &НаСервере
Функция ПоместитьФайлыВАрхив(ПечатныеФормыДокументов, ПереданныеНастройки) Функция ПоместитьФайлыВАрхив(ПечатныеФормыДокументов, ПереданныеНастройки)
Перем ЗаписьZipФайла, ИмяАрхива; Перем ЗаписьZipФайла, ИмяАрхива;
@@ -1272,9 +1288,7 @@
Для Каждого СтруктураФайла Из ПечатныеФормыДокументов Цикл Для Каждого СтруктураФайла Из ПечатныеФормыДокументов Цикл
ДанныеФайла = ПолучитьИзВременногоХранилища(СтруктураФайла.АдресВоВременномХранилище); ДанныеФайла = ПолучитьИзВременногоХранилища(СтруктураФайла.АдресВоВременномХранилище);
ИмяФайла = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(СтруктураФайла.Представление); ПолноеИмяФайла = БезопасноеИмяФайлаДляАрхива(СтруктураФайла.Представление, ИмяВременногоКаталога);
ПолноеИмяФайла = ИмяВременногоКаталога + ИмяФайла;
ПолноеИмяФайла = ФайловаяСистема.УникальноеИмяФайла(ПолноеИмяФайла);
ДанныеФайла.Записать(ПолноеИмяФайла); ДанныеФайла.Записать(ПолноеИмяФайла);
ОбъектПечати = ?(УстанавливатьОбъектПечати И ЗначениеЗаполнено(СтруктураФайла.ОбъектПечати), СтруктураФайла.ОбъектПечати, Неопределено); ОбъектПечати = ?(УстанавливатьОбъектПечати И ЗначениеЗаполнено(СтруктураФайла.ОбъектПечати), СтруктураФайла.ОбъектПечати, Неопределено);
@@ -293,7 +293,6 @@
| Документ.СчетФактураВыданный.ДокументыОснования КАК ДанныеДокумента | Документ.СчетФактураВыданный.ДокументыОснования КАК ДанныеДокумента
| ГДЕ | ГДЕ
| ДанныеДокумента.Ссылка = &СчетФактура | ДанныеДокумента.Ссылка = &СчетФактура
| И НЕ &ОтобразитьТолькоПодобранные
| |
| ОБЪЕДИНИТЬ ВСЕ | ОБЪЕДИНИТЬ ВСЕ
| |
@@ -303,8 +302,7 @@
| ИЗ | ИЗ
| РегистрСведений.ТребуетсяОформлениеСчетаФактуры КАК ДанныеРегистра | РегистрСведений.ТребуетсяОформлениеСчетаФактуры КАК ДанныеРегистра
| ГДЕ | ГДЕ
| НЕ &ОтобразитьТолькоПодобранные | ДанныеРегистра.ТипСчетаФактуры = &ТипСчетаФактуры
| И ДанныеРегистра.ТипСчетаФактуры = &ТипСчетаФактуры
| //УсловиеОтбораОснований | //УсловиеОтбораОснований
| |
| ОБЪЕДИНИТЬ ВСЕ | ОБЪЕДИНИТЬ ВСЕ
@@ -315,8 +313,7 @@
| ИЗ | ИЗ
| РегистрСведений.ТребуетсяОформлениеСчетаФактуры КАК ДанныеРегистра | РегистрСведений.ТребуетсяОформлениеСчетаФактуры КАК ДанныеРегистра
| ГДЕ | ГДЕ
| НЕ &ОтобразитьТолькоПодобранные | ДанныеРегистра.ТипСчетаФактуры = &ТипСчетаФактуры
| И ДанныеРегистра.ТипСчетаФактуры = &ТипСчетаФактуры
| И (ВЫБОР | И (ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ДанныеРегистра.Основание) = ЗНАЧЕНИЕ(Документ.КорректировкаРеализации) | КОГДА ТИПЗНАЧЕНИЯ(ДанныеРегистра.Основание) = ЗНАЧЕНИЕ(Документ.КорректировкаРеализации)
| ТОГДА ДанныеРегистра.Основание.ДокументОснование В (&ОснованияИсходногоСФ) | ТОГДА ДанныеРегистра.Основание.ДокументОснование В (&ОснованияИсходногоСФ)
@@ -425,7 +422,6 @@
Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Контрагент", Контрагент); Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("Валюта", Валюта); Запрос.УстановитьПараметр("Валюта", Валюта);
Запрос.УстановитьПараметр("ОтобразитьТолькоПодобранные", ЗначениеЗаполнено(СчетФактураИсправление));
Запрос.УстановитьПараметр("ОснованияИсходногоСФ", ОснованияИсходногоСФ); Запрос.УстановитьПараметр("ОснованияИсходногоСФ", ОснованияИсходногоСФ);
Запрос.УстановитьПараметр("НачалоТекущегоДня", НачалоДня(ТекущаяДатаСеанса())); Запрос.УстановитьПараметр("НачалоТекущегоДня", НачалоДня(ТекущаяДатаСеанса()));
@@ -1615,7 +1615,9 @@
Строка = СтруктураВарианта.НайтиПоИдентификатору(ПараметрыПеретаскивания.Значение); Строка = СтруктураВарианта.НайтиПоИдентификатору(ПараметрыПеретаскивания.Значение);
НовыйРодитель = СтруктураВарианта.НайтиПоИдентификатору(ИдентификаторЦели); НовыйРодитель = СтруктураВарианта.НайтиПоИдентификатору(ИдентификаторЦели);
Результат = ПереместитьЭлементыСтруктурыВарианта(Строка, НовыйРодитель); ДополнительныеПараметры = ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта();
ДополнительныеПараметры.Копировать = ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Копирование;
Результат = ПереместитьЭлементыСтруктурыВарианта(Строка, НовыйРодитель, ДополнительныеПараметры);
Элементы.СтруктураВарианта.Развернуть(НовыйРодитель.ПолучитьИдентификатор(), Истина); Элементы.СтруктураВарианта.Развернуть(НовыйРодитель.ПолучитьИдентификатор(), Истина);
Элементы.СтруктураВарианта.ТекущаяСтрока = Результат.Строка.ПолучитьИдентификатор(); Элементы.СтруктураВарианта.ТекущаяСтрока = Результат.Строка.ПолучитьИдентификатор();
@@ -1785,7 +1787,9 @@
КонецЦикла; КонецЦикла;
// 1. Переместить нижнюю строку на уровень с верхней. // 1. Переместить нижнюю строку на уровень с верхней.
Результат = ПереместитьЭлементыСтруктурыВарианта(СтрокаТаблицыВверх, СтрокаТаблицыВниз.ПолучитьРодителя(), СтрокаТаблицыВниз); ДополнительныеПараметры = ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта();
ДополнительныеПараметры.ПередЧемВставить = СтрокаТаблицыВниз;
Результат = ПереместитьЭлементыСтруктурыВарианта(СтрокаТаблицыВверх, СтрокаТаблицыВниз.ПолучитьРодителя(), ДополнительныеПараметры);
СтрокаТаблицыВверх = Результат.Строка; СтрокаТаблицыВверх = Результат.Строка;
// 2. Запомнить какие строки нужно переместить. // 2. Запомнить какие строки нужно переместить.
@@ -1807,7 +1811,9 @@
Иначе Иначе
ПередЧемВставить = СтрокиВверх[Индекс]; ПередЧемВставить = СтрокиВверх[Индекс];
КонецЕсли; КонецЕсли;
Результат = ПереместитьЭлементыСтруктурыВарианта(СтрокаТаблицыВниз, СтрокаТаблицыВверх, ПередЧемВставить); ДополнительныеПараметры = ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта();
ДополнительныеПараметры.ПередЧемВставить = ПередЧемВставить;
Результат = ПереместитьЭлементыСтруктурыВарианта(СтрокаТаблицыВниз, СтрокаТаблицыВверх, ДополнительныеПараметры);
СтрокаТаблицыВниз = Результат.Строка; СтрокаТаблицыВниз = Результат.Строка;
// Бантики. // Бантики.
@@ -5054,11 +5060,31 @@
КонецФункции КонецФункции
&НаКлиенте &НаКлиенте
Функция ПереместитьЭлементыСтруктурыВарианта(Знач Строка, Знач НовыйРодитель, Функция ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта()
Знач ПередЧемВставить = Неопределено, Знач Индекс = Неопределено, Знач ИндексЭлементаНастройки = Неопределено)
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ПередЧемВставить", Неопределено);
ДополнительныеПараметры.Вставить("Индекс", Неопределено);
ДополнительныеПараметры.Вставить("ИндексЭлементаНастройки", Неопределено);
ДополнительныеПараметры.Вставить("Копировать", Ложь);
Возврат ДополнительныеПараметры;
КонецФункции
&НаКлиенте
Функция ПереместитьЭлементыСтруктурыВарианта(Знач Строка, Знач НовыйРодитель, Знач ДополнительныеПараметры = Неопределено)
Результат = Новый Структура("Строка, ЭлементНастройки, Индекс, ИндексЭлементаНастройки"); Результат = Новый Структура("Строка, ЭлементНастройки, Индекс, ИндексЭлементаНастройки");
Если ДополнительныеПараметры = Неопределено Тогда
ДополнительныеПараметры = ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта();
КонецЕсли;
ПередЧемВставить = ДополнительныеПараметры.ПередЧемВставить;
Индекс = ДополнительныеПараметры.Индекс;
ИндексЭлементаНастройки = ДополнительныеПараметры.ИндексЭлементаНастройки;
Копировать = ДополнительныеПараметры.Копировать;
ДобавлятьВКонец = (НовыйРодитель = Неопределено); ДобавлятьВКонец = (НовыйРодитель = Неопределено);
КудаВставить = ПолучитьЭлементы(СтруктураВарианта, НовыйРодитель); КудаВставить = ПолучитьЭлементы(СтруктураВарианта, НовыйРодитель);
@@ -5113,9 +5139,11 @@
НоваяСтрока.Идентификатор = ПоискЭлементовКД.Получить(СтараяСтрока.Идентификатор); НоваяСтрока.Идентификатор = ПоискЭлементовКД.Получить(СтараяСтрока.Идентификатор);
КонецЦикла; КонецЦикла;
Если Не Копировать Тогда
ОткудаПереместить.Удалить(Строка); ОткудаПереместить.Удалить(Строка);
ОткудаПереместитьКД.Удалить(ЭлементКД); ОткудаПереместитьКД.Удалить(ЭлементКД);
КонецЕсли; КонецЕсли;
КонецЕсли;
Результат.Индекс = КудаВставить.Индекс(Результат.Строка); Результат.Индекс = КудаВставить.Индекс(Результат.Строка);
Результат.ИндексЭлементаНастройки = КудаВставитьКД.Индекс(Результат.ЭлементНастройки); Результат.ИндексЭлементаНастройки = КудаВставитьКД.Индекс(Результат.ЭлементНастройки);
@@ -6130,7 +6158,10 @@
Индекс = 0; Индекс = 0;
КонецЕсли; КонецЕсли;
Результат = ПереместитьЭлементыСтруктурыВарианта(Контекст.ТекущаяСтрока, НовыйРодитель,, Индекс, Индекс); ДополнительныеПараметры = ДополнительныеПараметрыПеремещенияЭлементовСтруктурыВарианта();
ДополнительныеПараметры.Индекс = Индекс;
ДополнительныеПараметры.ИндексЭлементаНастройки = Индекс;
Результат = ПереместитьЭлементыСтруктурыВарианта(Контекст.ТекущаяСтрока, НовыйРодитель, ДополнительныеПараметры);
Элементы.СтруктураВарианта.Развернуть(НовыйРодитель.ПолучитьИдентификатор(), Истина); Элементы.СтруктураВарианта.Развернуть(НовыйРодитель.ПолучитьИдентификатор(), Истина);
Элементы.СтруктураВарианта.ТекущаяСтрока = Результат.Строка.ПолучитьИдентификатор(); Элементы.СтруктураВарианта.ТекущаяСтрока = Результат.Строка.ПолучитьИдентификатор();
@@ -111,6 +111,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ОтключитьИспользованиеКлючаДоступаКСервисуЭДО(ИдентификаторЭДО); ОтключитьИспользованиеКлючаДоступаКСервисуЭДО(ИдентификаторЭДО);
РегистрыСведений.СостоянияАвтоматическогоПолученияЭДО.Удалить(ИдентификаторЭДО); РегистрыСведений.СостоянияАвтоматическогоПолученияЭДО.Удалить(ИдентификаторЭДО);
@@ -1251,7 +1252,7 @@
Текст = СтрШаблон(НСтр("ru = 'Начало операции: %1.'"), ВидОперации); Текст = СтрШаблон(НСтр("ru = 'Начало операции: %1.'"), ВидОперации);
Подсистема = ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().АвтоматическоеПолучениеЭДО; Подсистема = ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().АвтоматическоеПолучениеЭДО;
ОбщегоНазначенияБЭД.ЗаписатьВЖурналРегистрации(Текст, Подсистема, УровеньЖурналаРегистрации.Информация); ОбщегоНазначенияБЭД.ЗаписатьВЖурналРегистрации(Текст, Подсистема, УровеньЖурналаРегистрации.Информация);
ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("АвтоматическоеПолучениеЭДО");
Попытка Попытка
СостояниеПоИдентификаторамЭДОДоПолучения = СостояниеПоИдентификаторамЭДОДоПолучения =
@@ -1337,7 +1338,7 @@
ОбработкаНеисправностейБЭД.ДобавитьОшибку(КонтекстДиагностики, Ошибка, Подсистема); ОбработкаНеисправностейБЭД.ДобавитьОшибку(КонтекстДиагностики, Ошибка, Подсистема);
ДиагностикаЭДО.ОбработатьОшибки(КонтекстДиагностики); ДиагностикаЭДО.ОбработатьОшибки(КонтекстДиагностики);
КонецПопытки; КонецПопытки;
ОбщегоНазначенияБЭД.ЗакончитьЗамер("АвтоматическоеПолучениеЭДО", ОписаниеЗамера, Загружено);
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
@@ -1818,4 +1819,13 @@
#КонецОбласти #КонецОбласти
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ВключитьПоУчетнымЗаписямЭДО", Истина);
Методы.Вставить("ПолучитьПоРасписанию", Истина);
Методы.Вставить("ПолучитьЧерезИнтервал", Истина);
КонецПроцедуры
#КонецОбласти // СлужебныеПроцедурыИФункции #КонецОбласти // СлужебныеПроцедурыИФункции
@@ -401,7 +401,7 @@
И ЗагруженныеАдресныеСведения.Получить(КодРегиона).ИспользоватьЗагруженные Тогда И ЗагруженныеАдресныеСведения.Получить(КодРегиона).ИспользоватьЗагруженные Тогда
Адрес = РаспознатьАдресЗагруженныеДанные(ЧастиАдреса, КодРегиона); Адрес = РаспознатьАдресЗагруженныеДанные(ЧастиАдреса, КодРегиона);
Если СтрСравнить(Адрес.addressType, АдресВСвободнойФорме()) <> 0 Тогда Если Адрес <> Неопределено И СтрСравнить(Адрес.addressType, АдресВСвободнойФорме()) <> 0 Тогда
Возврат Адрес; Возврат Адрес;
КонецЕсли; КонецЕсли;
@@ -1339,6 +1339,7 @@
НаименованиеИТипОбъекта = НаименованиеИТипОбъекта(ЧастиАдреса[2]); НаименованиеИТипОбъекта = НаименованиеИТипОбъекта(ЧастиАдреса[2]);
Результат.Area = НаименованиеИТипОбъекта.Наименование; Результат.Area = НаименованиеИТипОбъекта.Наименование;
Результат.AreaType = НаименованиеИТипОбъекта.Сокращение; Результат.AreaType = НаименованиеИТипОбъекта.Сокращение;
Результат.areaValue = ОфициальноеНаименованиеРегиона(Результат.Area);
ОбновитьСписокУровней(Результат, "area", ЗначениеЗаполнено(Результат["area"])); ОбновитьСписокУровней(Результат, "area", ЗначениеЗаполнено(Результат["area"]));
НаименованиеИТипОбъекта = НаименованиеИТипОбъекта(ЧастиАдреса[3]); НаименованиеИТипОбъекта = НаименованиеИТипОбъекта(ЧастиАдреса[3]);
@@ -1397,6 +1398,7 @@
СубъектРФ = НаименованиеИТипОбъекта(АдаптацияНазванияРегиона(АдресРФ.СубъектРФ)); СубъектРФ = НаименованиеИТипОбъекта(АдаптацияНазванияРегиона(АдресРФ.СубъектРФ));
Результат.Area = Строка(СубъектРФ.Наименование); Результат.Area = Строка(СубъектРФ.Наименование);
Результат.AreaType = Строка(СубъектРФ.ТипОбъекта); Результат.AreaType = Строка(СубъектРФ.ТипОбъекта);
Результат.areaValue = ОфициальноеНаименованиеРегиона(Результат.Area);
ОбновитьСписокУровней(Результат, "area", ЗначениеЗаполнено(Результат["area"])); ОбновитьСписокУровней(Результат, "area", ЗначениеЗаполнено(Результат["area"]));
РайонАдреса = НаименованиеИТипОбъекта(РайонАдреса(АдресРФ)); РайонАдреса = НаименованиеИТипОбъекта(РайонАдреса(АдресРФ));
@@ -1409,10 +1411,12 @@
Результат.CityType = Строка(Город.ТипОбъекта); Результат.CityType = Строка(Город.ТипОбъекта);
ОбновитьСписокУровней(Результат, "city", ЗначениеЗаполнено(Результат["city"])); ОбновитьСписокУровней(Результат, "city", ЗначениеЗаполнено(Результат["city"]));
Если ЗначениеГородаОтличаетсяОтНаселенногоПункта(АдресРФ.Город, АдресРФ.НаселПункт) Тогда
НаселПункт = НаименованиеИТипОбъекта(АдресРФ.НаселПункт); НаселПункт = НаименованиеИТипОбъекта(АдресРФ.НаселПункт);
Результат.Locality = Строка(НаселПункт.Наименование); Результат.Locality = Строка(НаселПункт.Наименование);
Результат.LocalityType = Строка(НаселПункт.ТипОбъекта); Результат.LocalityType = Строка(НаселПункт.ТипОбъекта);
ОбновитьСписокУровней(Результат, "locality", ЗначениеЗаполнено(Результат["locality"])); ОбновитьСписокУровней(Результат, "locality", ЗначениеЗаполнено(Результат["locality"]));
КонецЕсли;
ВнутригРайон = НаименованиеИТипОбъекта(АдресРФ.ВнутригРайон); ВнутригРайон = НаименованиеИТипОбъекта(АдресРФ.ВнутригРайон);
Результат.CityDistrict = Строка(ВнутригРайон.Наименование); Результат.CityDistrict = Строка(ВнутригРайон.Наименование);
@@ -3073,6 +3077,21 @@
КонецФункции КонецФункции
Функция ЗначениеГородаОтличаетсяОтНаселенногоПункта(Город, НаселенныйПункт)
Возврат СтрСравнить(Город, НаселенныйПункт) <> 0;
КонецФункции
Функция ОфициальноеНаименованиеРегиона(Знач Наименование)
ДанныеОРегионе = АдресныйКлассификаторПовтИсп.ДанныеОРегионе(Наименование);
Если ДанныеОРегионе <> Неопределено Тогда
Возврат ДанныеОРегионе.ОфициальноеНаименование;
КонецЕсли;
Возврат "";
КонецФункции
Функция ДействующиеНаименованиеКемеровскойОбласти() Экспорт Функция ДействующиеНаименованиеКемеровскойОбласти() Экспорт
// АПК: 1297-выкл Данные адресного классификатора, не локализуются // АПК: 1297-выкл Данные адресного классификатора, не локализуются
Возврат "Кемеровская область - Кузбасс"; Возврат "Кемеровская область - Кузбасс";
@@ -3332,9 +3351,10 @@
КонецФункции КонецФункции
Функция РаспознатьАдресЗагруженныеДанные(ЧастиАдреса, КодРегиона) Функция РаспознатьАдресЗагруженныеДанные(ИсходныеЧастиАдреса, КодРегиона)
ЧастиАдреса = ОбработатьОбщепринятыеСокращенияИУдалитьТочкуВКонецТипа(ИсходныеЧастиАдреса);
ОбработатьОбщепринятыеСокращенияИУдалитьТочкуВКонецТипа(ЧастиАдреса);
Адрес = ОписаниеНовойКонтактнойИнформации(); Адрес = ОписаниеНовойКонтактнойИнформации();
Запрос = Новый Запрос; Запрос = Новый Запрос;
@@ -3344,11 +3364,13 @@
| ДанныеАдреса.Позиция КАК Позиция, | ДанныеАдреса.Позиция КАК Позиция,
| ДанныеАдреса.Значение КАК Значение, | ДанныеАдреса.Значение КАК Значение,
| ДанныеАдреса.Наименование КАК Наименование, | ДанныеАдреса.Наименование КАК Наименование,
| ДанныеАдреса.ТипОбъекта КАК ТипОбъекта | ДанныеАдреса.ТипОбъекта КАК ТипОбъекта,
| ДанныеАдреса.ТипОбъекта2 КАК ТипОбъекта2
|ПОМЕСТИТЬ ДанныеАдреса |ПОМЕСТИТЬ ДанныеАдреса
|ИЗ |ИЗ
| &ДанныеАдреса КАК ДанныеАдреса | &ДанныеАдреса КАК ДанныеАдреса
|ГДЕ ДанныеАдреса.Уровень >= 0 |ГДЕ
| ДанныеАдреса.Уровень >= 0
| |
|ИНДЕКСИРОВАТЬ ПО |ИНДЕКСИРОВАТЬ ПО
| Уровень, | Уровень,
@@ -3358,57 +3380,90 @@
|; |;
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 10 |ВЫБРАТЬ ПЕРВЫЕ 100
| МАКСИМУМ(АдресныеОбъекты.Уровень) КАК Уровень, | АдресныеОбъекты.Уровень КАК Уровень,
| ДанныеАдреса.Позиция КАК Позиция, | ДанныеАдреса.Позиция КАК Позиция,
| ДанныеАдреса.Наименование КАК Наименование, | АдресныеОбъекты.Наименование КАК Наименование,
| ДанныеАдреса.ТипОбъекта КАК ТипОбъекта | АдресныеОбъекты.ТипОбъекта КАК ТипОбъекта,
| ДанныеАдреса.ТипОбъекта КАК ИсходныйТипОбъекта,
| АдресныеОбъекты.Идентификатор КАК Идентификатор
|ПОМЕСТИТЬ НайденныеОбъекты
|ИЗ |ИЗ
| ДанныеАдреса КАК ДанныеАдреса | ДанныеАдреса КАК ДанныеАдреса
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты
| ПО (ДанныеАдреса.Наименование = АдресныеОбъекты.Наименование) | ПО (ДанныеАдреса.Наименование = АдресныеОбъекты.Наименование)
| И (ДанныеАдреса.ТипОбъекта = АдресныеОбъекты.ТипОбъекта ИЛИ ДанныеАдреса.ТипОбъекта + ""."" = АдресныеОбъекты.ТипОбъекта ) | И (ДанныеАдреса.ТипОбъекта = АдресныеОбъекты.ТипОбъекта
| ИЛИ ДанныеАдреса.ТипОбъекта + ""."" = АдресныеОбъекты.ТипОбъекта
| ИЛИ ДанныеАдреса.ТипОбъекта2 = АдресныеОбъекты.ТипОбъекта
| ИЛИ ДанныеАдреса.ТипОбъекта2 + ""."" = АдресныеОбъекты.ТипОбъекта)
|ГДЕ |ГДЕ
| НЕ АдресныеОбъекты.Идентификатор ЕСТЬ NULL | НЕ АдресныеОбъекты.Идентификатор ЕСТЬ NULL
| И АдресныеОбъекты.КодСубъектаРФ = &КодСубъектаРФ
| |
|СГРУППИРОВАТЬ ПО
| ДанныеАдреса.Наименование,
| ДанныеАдреса.ТипОбъекта,
| ДанныеАдреса.Позиция
|
|УПОРЯДОЧИТЬ ПО ДанныеАдреса.Позиция
|; |;
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ |ВЫБРАТЬ ПЕРВЫЕ 100
| ДанныеАдреса.Уровень КАК Уровень,
| ДанныеАдреса.Позиция КАК Позиция, | ДанныеАдреса.Позиция КАК Позиция,
| ДанныеАдреса.Значение КАК Значение,
| ДанныеАдреса.Наименование КАК Наименование, | ДанныеАдреса.Наименование КАК Наименование,
| ДанныеАдреса.ТипОбъекта КАК ТипОбъекта | ДанныеАдреса.ТипОбъекта КАК ТипОбъекта,
| | ДанныеАдреса.ИсходныйТипОбъекта КАК ИсходныйТипОбъекта,
| ДанныеАдреса.Идентификатор КАК Идентификатор,
| АдминистративнаяИерархия.РодительскийИдентификатор КАК АдминистративныйРодительскийИдентификатор,
| МуниципальнаяИерархия.РодительскийИдентификатор КАК МуниципальныйРодительскийИдентификатор
|ИЗ |ИЗ
| ДанныеАдреса КАК ДанныеАдреса | НайденныеОбъекты КАК ДанныеАдреса
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК АдминистративнаяИерархия
| ПО ДанныеАдреса.Наименование = АдресныеОбъекты.Наименование | ПО (АдминистративнаяИерархия.Идентификатор = ДанныеАдреса.Идентификатор)
| И (ДанныеАдреса.ТипОбъекта = АдресныеОбъекты.ТипОбъекта ИЛИ ДанныеАдреса.ТипОбъекта + ""."" = АдресныеОбъекты.ТипОбъекта ) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК МуниципальнаяИерархия
| ПО (МуниципальнаяИерархия.Идентификатор = ДанныеАдреса.Идентификатор)
|ГДЕ |ГДЕ
| АдресныеОбъекты.Идентификатор ЕСТЬ NULL | (АдминистративнаяИерархия.КодСубъектаРФ = &КодСубъектаРФ ИЛИ МуниципальнаяИерархия.КодСубъектаРФ = &КодСубъектаРФ)
| И НЕ ДанныеАдреса.Идентификатор ЕСТЬ NULL
| |
|УПОРЯДОЧИТЬ ПО ДанныеАдреса.Позиция |УПОРЯДОЧИТЬ ПО
| ДанныеАдреса.Уровень УБЫВ, ДанныеАдреса.Позиция УБЫВ
|"; |";
Запрос.УстановитьПараметр("ДанныеАдреса", ЧастиАдреса); Запрос.УстановитьПараметр("ДанныеАдреса", ЧастиАдреса);
Запрос.УстановитьПараметр("КодСубъектаРФ", КодРегиона);
РезультатЗапроса = Запрос.ВыполнитьПакет(); РезультатЗапроса = Запрос.ВыполнитьПакет();
СопоставленныеЧастиАдреса = СопоставленныеЧастиАдреса(РезультатЗапроса); СопоставленныеЧастиАдреса = СопоставленныеЧастиАдреса(РезультатЗапроса);
Если СопоставленныеЧастиАдреса.Количество() = 0 Тогда Если СопоставленныеЧастиАдреса.Количество() = 0 Тогда
Возврат Адрес; Возврат Неопределено;
КонецЕсли; КонецЕсли;
// дома Муниципальный = Истина;
ДомаЗдания = ДомаЗдания(РезультатЗапроса); АдресПоНайденнымДанным = ОпределитьАдресПоНайденнымДанным(СопоставленныеЧастиАдреса, Муниципальный);
Если АдресПоНайденнымДанным.Адрес = Неопределено Тогда
Муниципальный = Ложь;
АдресПоНайденнымДанным = ОпределитьАдресПоНайденнымДанным(СопоставленныеЧастиАдреса, Муниципальный);
КонецЕсли;
Если АдресПоНайденнымДанным.Адрес = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Для Каждого ЭлементАдреса Из АдресПоНайденнымДанным.ЦепочкаАдреса Цикл
ОтборПоУровню = Новый Структура;
ОтборПоУровню.Вставить("Наименование", ЭлементАдреса.Наименование);
ОтборПоУровню.Вставить("ТипОбъекта", ЭлементАдреса.ИсходныйТипОбъекта);
СтрокиПоУровню = ЧастиАдреса.НайтиСтроки(ОтборПоУровню);
Для Каждого СтрокаУровня Из СтрокиПоУровню Цикл
СтрокаУровня.Уровень = ЭлементАдреса.Уровень;
КонецЦикла;
КонецЦикла;
АдресДанные = АдресПоНайденнымДанным.Адрес;
// Все нераспознанное считаем домами.
КодыДомовВладенийИСтроений = КодыДомовВладенийИСтроений(); КодыДомовВладенийИСтроений = КодыДомовВладенийИСтроений();
СокращенияНаименованийДомов = АдресныйКлассификаторПовтИсп.СокращенияНаименованийДомов(); СокращенияНаименованийДомов = АдресныйКлассификаторПовтИсп.СокращенияНаименованийДомов();
СокращенияНаименованийПомещений = АдресныйКлассификаторПовтИсп.СокращенияНаименованийПомещений(); СокращенияНаименованийПомещений = АдресныйКлассификаторПовтИсп.СокращенияНаименованийПомещений();
@@ -3419,14 +3474,17 @@
СведенияОДоме = СведенияОДоме(); СведенияОДоме = СведенияОДоме();
СведенияОЗемельномУчастке = ""; СведенияОЗемельномУчастке = "";
Для Каждого ЭлементАдреса Из ДомаЗдания Цикл Для Каждого ЭлементАдреса Из ЧастиАдреса Цикл
Если ЭлементАдреса.Уровень <> 0 Тогда
Продолжить;
КонецЕсли;
ТипОбъекта = ВРег(СокрЛП(СтрЗаменить(ЭлементАдреса.ТипОбъекта, "№", ""))); ТипОбъекта = ВРег(СокрЛП(СтрЗаменить(ЭлементАдреса.ТипОбъекта, "№", "")));
Значение = ЭлементАдреса.Наименование; Значение = ЭлементАдреса.Наименование;
Если СтрСравнить(ТипОбъекта, "З/У") = 0 Тогда Если ЭтоТипЗемельныйУчасток(ЭлементАдреса) Тогда
СведенияОЗемельномУчастке = Значение; СведенияОЗемельномУчастке = Значение;
Продолжить Продолжить;
КонецЕсли; КонецЕсли;
ТипДомаИлиСтроения = ""; ТипДомаИлиСтроения = "";
@@ -3463,74 +3521,19 @@
КонецЦикла; КонецЦикла;
АдресаПоПолям = НоваяТаблицаАдресовСРазбивкойНаПоля();
АдресМуниципальный = АдресаПоПолям.Добавить();
АдресМуниципальный.Ключ = 0;
АдресМуниципальный.ЭтоМуниципальныйАдрес = Истина;
АдресАдминистративный = АдресаПоПолям.Добавить();
АдресАдминистративный.Ключ = 1;
АдресАдминистративный.ЭтоМуниципальныйАдрес = Ложь;
МаксимальноеКоличествоЧастейАдреса = 5;
КоличествоЧастейАдреса = ?(СопоставленныеЧастиАдреса.Количество() > МаксимальноеКоличествоЧастейАдреса,
МаксимальноеКоличествоЧастейАдреса, СопоставленныеЧастиАдреса.Количество() - 1);
Позиция = 0;
Пока Позиция <= КоличествоЧастейАдреса Цикл
АдресМуниципальный["Наименование" + Строка(Позиция)] = СопоставленныеЧастиАдреса[Позиция]["Наименование"];
АдресМуниципальный["ТипОбъекта" + Строка(Позиция)] = СопоставленныеЧастиАдреса[Позиция]["ТипОбъекта"];
АдресАдминистративный["Наименование" + Строка(Позиция)] = СопоставленныеЧастиАдреса[Позиция]["Наименование"];
АдресАдминистративный["ТипОбъекта" + Строка(Позиция)] = СопоставленныеЧастиАдреса[Позиция]["ТипОбъекта"];
Позиция = Позиция + 1;
КонецЦикла;
КодыРегионов = Новый Массив;
КодыРегионов.Добавить(КодРегиона);
Запрос.Текст = ТекстЗапросаПроверкиАдресов();
Запрос.УстановитьПараметр("АдресаПоПолям", АдресаПоПолям);
Запрос.УстановитьПараметр("КодыРегионов", КодыРегионов);
РезультатЗапроса = Запрос.ВыполнитьПакет();
ВариантыАдресов = РезультатЗапроса[13];
ДомаИСведения = РезультатЗапроса[14];
Участки = РезультатЗапроса[15];
Если ВариантыАдресов.Пустой() Тогда
Возврат Адрес; // Не удалось распознать адрес.
КонецЕсли;
НайденныеАдреса= ВариантыАдресов.Выгрузить();
Если НайденныеАдреса.Количество() > 1 И НайденныеАдреса[0].Уровень < НайденныеАдреса[1].Уровень Тогда
СтрокаАдреса = НайденныеАдреса[1];
Иначе
СтрокаАдреса = НайденныеАдреса[0];
КонецЕсли;
СтрокаИндекс = ЧастиАдреса.Найти(-1, "Уровень"); СтрокаИндекс = ЧастиАдреса.Найти(-1, "Уровень");
ПочтовыйИндекс = ?(СтрокаИндекс <> Неопределено, СтрокаИндекс.Значение, ""); ПочтовыйИндекс = ?(СтрокаИндекс <> Неопределено, СтрокаИндекс.Значение, "");
Муниципальный = ?(СтрокаАдреса.КлючАдреса = 0, Истина, Ложь);
Сведения = СведенияОбАдресномОбъекта(СтрокаАдреса.Идентификатор);
Сведения.ЗагруженныеДанные = Истина;
Сведения.Муниципальный = Муниципальный;
АдресДанные = АктуальныеАдресныеСведения(Сведения);
Адрес = СформироватьАдресПоДаннымИзКлассификатора(АдресДанные.Данные); Адрес = СформироватьАдресПоДаннымИзКлассификатора(АдресДанные.Данные);
ИдентификаторАдресногоЭлемента = ИдентификаторАдресногоОбъекта(Адрес);
Адрес.AddressType = ?(Муниципальный, МуниципальныйАдрес(), АдминистративноТерриториальныйАдрес()); Адрес.AddressType = ?(Муниципальный, МуниципальныйАдрес(), АдминистративноТерриториальныйАдрес());
Адрес.HouseType = ТРег(СведенияОДоме.НаименованиеДома); Адрес.HouseType = ТРег(СведенияОДоме.НаименованиеДома);
Адрес.HouseNumber = ТРег(СведенияОДоме.НомерДома); Адрес.HouseNumber = ТРег(СведенияОДоме.НомерДома);
Если ЗначениеЗаполнено(СведенияОЗемельномУчастке) Тогда Если ЗначениеЗаполнено(СведенияОЗемельномУчастке) Тогда
ДанныеОбУчастке = КодыПоИдентификаторуАдресногоОбъектаЗемельныйУчасток(ИдентификаторАдресногоЭлемента, СведенияОЗемельномУчастке);
ДанныеОбУчастке = НайтиСтрокуСЗемельнымУчастком(Участки.Выгрузить(), СведенияОЗемельномУчастке);
Адрес.stead = ДанныеОбУчастке.НомерЗемельногоУчастка; Адрес.stead = ДанныеОбУчастке.НомерЗемельногоУчастка;
Адрес.steadId = ДанныеОбУчастке.ИдентификаторУчастка; Адрес.steadId = ДанныеОбУчастке.ИдентификаторУчастка;
@@ -3539,7 +3542,8 @@
Адрес.Buildings = Строения; Адрес.Buildings = Строения;
Адрес.Apartments = Квартиры; Адрес.Apartments = Квартиры;
ОписаниеДома = НайтиСтрокуСДомом(ДомаИСведения.Выгрузить(), СведенияОДоме); ОписаниеДома = КодыПоИдентификаторуАдресногоОбъектаДома(ИдентификаторАдресногоЭлемента, СведенияОДоме);
Если ОписаниеДома <> Неопределено Тогда Если ОписаниеДома <> Неопределено Тогда
Адрес.HouseID = ОписаниеДома.ИдентификаторДома; Адрес.HouseID = ОписаниеДома.ИдентификаторДома;
Адрес.OKTMO = Формат(ОписаниеДома.ОКТМО, "ЧГ=0"); Адрес.OKTMO = Формат(ОписаниеДома.ОКТМО, "ЧГ=0");
@@ -3560,20 +3564,74 @@
КонецФункции КонецФункции
// Параметры: Функция ОпределитьАдресПоНайденнымДанным(Знач СопоставленныеЧастиАдреса, Муниципальный)
// РезультатЗапроса - Массив
//
// Возвращаемое значение:
// ТаблицаЗначений:
// * Позиция - Число
// * Значение - Строка
// * Наименование - Строка
// * ТипОбъекта - Строка
//
Функция ДомаЗдания(Знач РезультатЗапроса)
ДомаЗдания = РезультатЗапроса[2].Выгрузить(); РезультатОпределения = Новый Структура;
Возврат ДомаЗдания РезультатОпределения.Вставить("Адрес", Неопределено);
РезультатОпределения.Вставить("ЦепочкаАдреса", Неопределено);
ВерхнийУровеньАдреса = СопоставленныеЧастиАдреса.Получить(0);
ОтборПоУровню = Новый Структура;
ОтборПоУровню.Вставить("Наименование", ВерхнийУровеньАдреса.Наименование);
ОтборПоУровню.Вставить("ТипОбъекта", ВерхнийУровеньАдреса.ТипОбъекта);
СтрокиУровня = СопоставленныеЧастиАдреса.НайтиСтроки(ОтборПоУровню);
ИмяПоляРодительскогоИдентификатора = ?(Муниципальный,
"МуниципальныйРодительскийИдентификатор", "АдминистративныйРодительскийИдентификатор");
СведенияОбАдресе = Неопределено;
Для каждого СтрокаУровня Из СтрокиУровня Цикл
ЦепочкаРодителей = Новый Структура;
ЦепочкаРодителей.Вставить("КореньНайден", Ложь);
ЦепочкаРодителей.Вставить("Уровни", Новый Массив);
ЦепочкаРодителей.Уровни.Добавить(СтрокаУровня);
ЦепочкаРодителей = ПутьДоКорняНайден(СопоставленныеЧастиАдреса,
СтрокаУровня[ИмяПоляРодительскогоИдентификатора], ИмяПоляРодительскогоИдентификатора, ЦепочкаРодителей);
Если ЦепочкаРодителей.КореньНайден Тогда
СведенияОбАдресе = СведенияОбАдресномОбъекта(СтрокаУровня.Идентификатор);
СведенияОбАдресе.ЗагруженныеДанные = Истина;
СведенияОбАдресе.Муниципальный = Муниципальный;
РезультатОпределения.ЦепочкаАдреса = ЦепочкаРодителей.Уровни;
Прервать;
КонецЕсли;
КонецЦикла;
Если СведенияОбАдресе = Неопределено Тогда
Возврат РезультатОпределения;
КонецЕсли;
РезультатОпределения.Адрес = АктуальныеАдресныеСведения(СведенияОбАдресе);
Возврат РезультатОпределения;
КонецФункции
Функция ПутьДоКорняНайден(СопоставленныеЧастиАдреса, Идентификатор, ИмяПоляРодительскогоИдентификатора, ЦепочкаРодителей)
НайденнаяСтрока = СопоставленныеЧастиАдреса.Найти(Идентификатор, "Идентификатор");
Если НайденнаяСтрока = Неопределено Тогда
ЦепочкаРодителей.КореньНайден = Ложь;
Возврат ЦепочкаРодителей;
КонецЕсли;
Если НайденнаяСтрока.Уровень = 1 Тогда
ЦепочкаРодителей.Уровни.Добавить(НайденнаяСтрока);
ЦепочкаРодителей.КореньНайден = Истина;
Возврат ЦепочкаРодителей;
КонецЕсли;
ЦепочкаРодителей.Уровни.Добавить(НайденнаяСтрока);
Возврат ПутьДоКорняНайден(СопоставленныеЧастиАдреса, НайденнаяСтрока[ИмяПоляРодительскогоИдентификатора], ИмяПоляРодительскогоИдентификатора, ЦепочкаРодителей);
КонецФункции КонецФункции
@@ -3589,7 +3647,7 @@
// //
Функция СопоставленныеЧастиАдреса(Знач РезультатЗапроса) Функция СопоставленныеЧастиАдреса(Знач РезультатЗапроса)
СопоставленныеЧастиАдреса = РезультатЗапроса[1].Выгрузить(); СопоставленныеЧастиАдреса = РезультатЗапроса[2].Выгрузить();
Возврат СопоставленныеЧастиАдреса Возврат СопоставленныеЧастиАдреса
КонецФункции КонецФункции
@@ -4149,13 +4207,9 @@
Запрос = Новый Запрос; Запрос = Новый Запрос;
УровеньУлицы = 8; УровеньУлицы = 8;
Если ПустаяСтрока(ТекстПоиска) Тогда ТекстЗапроса = ?(ПустаяСтрока(ТекстПоиска), ТекстЗапросаПодбораВсехУлиц(), ТекстЗапросаПодбораУлицМуниципальнаяИерархия());
ТекстЗапроса = ТекстЗапросаПодбораВсехУлиц();
Иначе
ТекстЗапроса = ТекстЗапросаПодбораУлицМуниципальнаяИерархия();
КонецЕсли;
Если ПараметрыАвтоподбора.ТипАдреса = АдминистративноТерриториальныйАдрес() Тогда Если ЭтоАдминистративноТерриториальныйАдрес(ПараметрыАвтоподбора.ТипАдреса) Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Метаданные.РегистрыСведений.МуниципальнаяИерархия.Имя, ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Метаданные.РегистрыСведений.МуниципальнаяИерархия.Имя,
Метаданные.РегистрыСведений.АдминистративнаяИерархия.Имя); Метаданные.РегистрыСведений.АдминистративнаяИерархия.Имя);
КонецЕсли; КонецЕсли;
@@ -4356,23 +4410,23 @@
|ПОМЕСТИТЬ ИдентификаторыДочернихОбъектов |ПОМЕСТИТЬ ИдентификаторыДочернихОбъектов
|ИЗ |ИЗ
| РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект0 | РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект0
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия1 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия1
| ПО (Иерархия1.РодительскийИдентификатор = АдресныйОбъект0.Идентификатор) | ПО (Иерархия1.РодительскийИдентификатор = АдресныйОбъект0.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект1 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект1
| ПО (Иерархия1.Идентификатор = АдресныйОбъект1.Идентификатор) | ПО (Иерархия1.Идентификатор = АдресныйОбъект1.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия2 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия2
| ПО (Иерархия2.РодительскийИдентификатор = Иерархия1.Идентификатор) | ПО (Иерархия2.РодительскийИдентификатор = Иерархия1.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект2 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект2
| ПО (Иерархия2.Идентификатор = АдресныйОбъект2.Идентификатор) | ПО (Иерархия2.Идентификатор = АдресныйОбъект2.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия3 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия3
| ПО (Иерархия3.РодительскийИдентификатор = Иерархия2.Идентификатор) | ПО (Иерархия3.РодительскийИдентификатор = Иерархия2.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект3 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект3
| ПО (Иерархия3.Идентификатор = АдресныйОбъект3.Идентификатор) | ПО (Иерархия3.Идентификатор = АдресныйОбъект3.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия4 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия4
| ПО (Иерархия4.РодительскийИдентификатор = Иерархия3.Идентификатор) | ПО (Иерархия4.РодительскийИдентификатор = Иерархия3.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект4 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект4
| ПО (Иерархия4.Идентификатор = АдресныйОбъект4.Идентификатор) | ПО (Иерархия4.Идентификатор = АдресныйОбъект4.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия5 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия5
| ПО (Иерархия5.РодительскийИдентификатор = Иерархия4.Идентификатор) | ПО (Иерархия5.РодительскийИдентификатор = Иерархия4.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект5 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект5
| ПО (Иерархия5.Идентификатор = АдресныйОбъект5.Идентификатор) | ПО (Иерархия5.Идентификатор = АдресныйОбъект5.Идентификатор)
@@ -4408,15 +4462,15 @@
| ИдентификаторыДочернихОбъектов КАК ИдентификаторыОбъектов | ИдентификаторыДочернихОбъектов КАК ИдентификаторыОбъектов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект0 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект0
| ПО (ИдентификаторыОбъектов.Идентификатор = АдресныйОбъект0.Идентификатор) | ПО (ИдентификаторыОбъектов.Идентификатор = АдресныйОбъект0.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия1 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия1
| ПО (Иерархия1.Идентификатор = АдресныйОбъект0.Идентификатор) | ПО (Иерархия1.Идентификатор = АдресныйОбъект0.Идентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия2 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия2
| ПО (Иерархия2.Идентификатор = Иерархия1.РодительскийИдентификатор) | ПО (Иерархия2.Идентификатор = Иерархия1.РодительскийИдентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия3 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия3
| ПО (Иерархия3.Идентификатор = Иерархия2.РодительскийИдентификатор) | ПО (Иерархия3.Идентификатор = Иерархия2.РодительскийИдентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия4 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия4
| ПО (Иерархия4.Идентификатор = Иерархия3.РодительскийИдентификатор) | ПО (Иерархия4.Идентификатор = Иерархия3.РодительскийИдентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдминистративнаяИерархия КАК Иерархия5 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МуниципальнаяИерархия КАК Иерархия5
| ПО (Иерархия5.Идентификатор = Иерархия4.РодительскийИдентификатор) | ПО (Иерархия5.Идентификатор = Иерархия4.РодительскийИдентификатор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект1 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныйОбъект1
| ПО (Иерархия1.РодительскийИдентификатор = АдресныйОбъект1.Идентификатор) | ПО (Иерархия1.РодительскийИдентификатор = АдресныйОбъект1.Идентификатор)
@@ -4438,8 +4492,6 @@
КонецФункции КонецФункции
// Параметры: // Параметры:
// СведенияОбАдресномОбъекте - см. СведенияОбАдресномОбъекта // СведенияОбАдресномОбъекте - см. СведенияОбАдресномОбъекта
// //
@@ -4725,6 +4777,15 @@
// АПК: 1036-вкл // АПК: 1036-вкл
КонецФункции КонецФункции
Функция ЭтоТипЗемельныйУчасток(ЭлементАдреса)
// АПК: 1297-выкл Данные адресного классификатора, не локализуются
ТипОбъекта = ВРег(СокрЛП(ЭлементАдреса.ТипОбъекта));
Возврат СтрСравнить(ТипОбъекта, "З/У") = 0 Или СтрНачинаетсяС(ВРег(ЭлементАдреса.Значение), ВРег("Земельный участок"));
// АПК: 1297-вкл
КонецФункции
Функция ПредставлениеУровняАдреса(Адрес, ИмяУровня) Экспорт Функция ПредставлениеУровняАдреса(Адрес, ИмяУровня) Экспорт
ЭтоРегион = СтрСравнить(ИмяУровня, АдресныйКлассификаторПовтИсп.НомераУровнейАдресаПоНаименованию().area) = 0; ЭтоРегион = СтрСравнить(ИмяУровня, АдресныйКлассификаторПовтИсп.НомераУровнейАдресаПоНаименованию().area) = 0;
@@ -4825,7 +4886,6 @@
КонецФункции КонецФункции
// Возвращаемое значение: // Возвращаемое значение:
// Структура: // Структура:
// * Идентификатор - Строка // * Идентификатор - Строка
@@ -4916,13 +4976,13 @@
КонецФункции КонецФункции
Функция КодыПоИдентификаторуАдресногоОбъекта(АдресныйОбъект, СведенияОДоме) Функция КодыПоИдентификаторуАдресногоОбъектаДома(ИдентификаторАдресногоОбъекта, СведенияОДоме)
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ
| ДомаЗданияСтроения.Строения КАК Строения, | ДомаЗданияСтроения.Строения КАК Строения,
| ДополнительныеСведения.ПочтовыйИндекс КАК ПочтовыйИндекс, | ДополнительныеСведения.ПочтовыйИндекс КАК Индекс,
| ДополнительныеСведения.ОКТМО КАК ОКТМО, | ДополнительныеСведения.ОКТМО КАК ОКТМО,
| ДополнительныеСведения.ОКТМОБюджетополучателя КАК ОКТМОБюджетополучателя, | ДополнительныеСведения.ОКТМОБюджетополучателя КАК ОКТМОБюджетополучателя,
| ДополнительныеСведения.OKATO КАК ОКАТО, | ДополнительныеСведения.OKATO КАК ОКАТО,
@@ -4937,21 +4997,73 @@
|ГДЕ |ГДЕ
| ДомаЗданияСтроения.АдресныйОбъект = &АдресныйОбъект"; | ДомаЗданияСтроения.АдресныйОбъект = &АдресныйОбъект";
Запрос.УстановитьПараметр("АдресныйОбъект", АдресныйОбъект); Запрос.УстановитьПараметр("АдресныйОбъект", ИдентификаторАдресногоОбъекта);
РезультатЗапроса = Запрос.Выполнить().Выгрузить(); РезультатЗапроса = Запрос.Выполнить().Выгрузить();
ОписаниеДома = НайтиСтрокуСДомом(РезультатЗапроса, СведенияОДоме); ОписаниеДома = НайтиСтрокуСДомом(РезультатЗапроса, СведенияОДоме);
Если ОписаниеДома <> Неопределено Тогда Если ОписаниеДома <> Неопределено Тогда
Возврат ОписаниеДома; Возврат ОписаниеДома;
Иначе Иначе
// Коды с точностью до дома не найдены. Поэтому используем коды адресного объекта // Коды с точностью до дома не найдены. Поэтому используем коды адресного объекта
Коды = КодыПоИдентификаторуАдресногоОбъекта(ИдентификаторАдресногоОбъекта);
Если Коды <> Неопределено Тогда
Коды.Вставить("ИдентификаторДома", "");
КонецЕсли;
КонецЕсли;
Возврат Коды;
КонецФункции
Функция КодыПоИдентификаторуАдресногоОбъектаЗемельныйУчасток(ИдентификаторАдресногоОбъекта, СведенияОЗемельномУчастке)
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ
| ДополнительныеСведения.ПочтовыйИндекс КАК ПочтовыйИндекс, | ЗемельныеУчастки.Участки КАК Участки,
| ДополнительныеСведения.ПочтовыйИндекс КАК Индекс,
| ДополнительныеСведения.ОКТМО КАК ОКТМО,
| ДополнительныеСведения.ОКТМОБюджетополучателя КАК ОКТМОБюджетополучателя,
| ДополнительныеСведения.OKATO КАК ОКАТО,
| ДополнительныеСведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ,
| ДополнительныеСведения.КодУчасткаИФНСФЛ КАК КодУчасткаИФНСФЛ,
| ДополнительныеСведения.КодИФНСЮЛ КАК КодИФНСЮЛ,
| ДополнительныеСведения.КодИФНСФЛ КАК КодИФНСФЛ
|ИЗ
| РегистрСведений.ЗемельныеУчастки КАК ЗемельныеУчастки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеАдресныеСведения КАК ДополнительныеСведения
| ПО ЗемельныеУчастки.ДополнительныеАдресныеСведения = ДополнительныеСведения.Идентификатор
|ГДЕ
| ЗемельныеУчастки.АдресныйОбъект = &АдресныйОбъект";
Запрос.УстановитьПараметр("АдресныйОбъект", ИдентификаторАдресногоОбъекта);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
ОписаниеУчастка = НайтиСтрокуСЗемельнымУчастком(РезультатЗапроса, СведенияОЗемельномУчастке);
Если ОписаниеУчастка <> Неопределено Тогда
Возврат ОписаниеУчастка;
Иначе
// Коды с точностью до дома не найдены. Поэтому используем коды адресного объекта
Коды = КодыПоИдентификаторуАдресногоОбъекта(ИдентификаторАдресногоОбъекта);
Коды.Вставить("ИдентификаторУчастка", "");
КонецЕсли;
Возврат Коды;
КонецФункции
Функция КодыПоИдентификаторуАдресногоОбъекта(ИдентификаторАдресногоОбъекта)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДополнительныеСведения.ПочтовыйИндекс КАК Индекс,
| ДополнительныеСведения.ОКТМО КАК ОКТМО, | ДополнительныеСведения.ОКТМО КАК ОКТМО,
| ДополнительныеСведения.ОКТМОБюджетополучателя КАК ОКТМОБюджетополучателя, | ДополнительныеСведения.ОКТМОБюджетополучателя КАК ОКТМОБюджетополучателя,
| ДополнительныеСведения.OKATO КАК ОКАТО, | ДополнительныеСведения.OKATO КАК ОКАТО,
@@ -4966,17 +5078,14 @@
|ГДЕ |ГДЕ
| АдресныеОбъекты.Идентификатор = &АдресныйОбъект"; | АдресныеОбъекты.Идентификатор = &АдресныйОбъект";
Запрос.УстановитьПараметр("АдресныйОбъект", АдресныйОбъект); Запрос.УстановитьПараметр("АдресныйОбъект", ИдентификаторАдресногоОбъекта);
РезультатЗапроса = Запрос.Выполнить(); РезультатЗапроса = Запрос.Выполнить();
Коды = Неопределено;
Если Не РезультатЗапроса.Пустой() Тогда Если Не РезультатЗапроса.Пустой() Тогда
Результат = РезультатЗапроса.Выгрузить()[0]; Результат = РезультатЗапроса.Выгрузить()[0];
Коды = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Результат); Коды = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Результат);
Коды.Вставить("ИдентификаторДома", "");
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат Коды; Возврат Коды;
@@ -5009,7 +5118,7 @@
ДомВАдресе.НаименованиеДополнительногоДома2, ОписаниеДома.НаименованиеДополнительногоДома2) = 0 Тогда ДомВАдресе.НаименованиеДополнительногоДома2, ОписаниеДома.НаименованиеДополнительногоДома2) = 0 Тогда
ЗаполнитьЗначенияСвойств(ОписаниеДома, ИнформацияОДомах); ЗаполнитьЗначенияСвойств(ОписаниеДома, ИнформацияОДомах);
ОписаниеДома.Индекс = ИнформацияОДомах.ПочтовыйИндекс; ОписаниеДома.Индекс = ИнформацияОДомах.Индекс;
Возврат ОписаниеДома; Возврат ОписаниеДома;
@@ -6851,7 +6960,7 @@
| ДомаЗданияСтроения.Строения КАК Строения, | ДомаЗданияСтроения.Строения КАК Строения,
| Сведения.Идентификатор КАК Идентификатор, | Сведения.Идентификатор КАК Идентификатор,
| Сведения.КодСубъектаРФ КАК КодСубъектаРФ, | Сведения.КодСубъектаРФ КАК КодСубъектаРФ,
| Сведения.ПочтовыйИндекс КАК ПочтовыйИндекс, | Сведения.ПочтовыйИндекс КАК Индекс,
| Сведения.ОКТМО КАК ОКТМО, | Сведения.ОКТМО КАК ОКТМО,
| Сведения.OKATO КАК OKATO, | Сведения.OKATO КАК OKATO,
| Сведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ, | Сведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ,
@@ -6874,7 +6983,7 @@
| ЗемельныеУчастки.Участки КАК Участки, | ЗемельныеУчастки.Участки КАК Участки,
| Сведения.Идентификатор КАК Идентификатор, | Сведения.Идентификатор КАК Идентификатор,
| Сведения.КодСубъектаРФ КАК КодСубъектаРФ, | Сведения.КодСубъектаРФ КАК КодСубъектаРФ,
| Сведения.ПочтовыйИндекс КАК ПочтовыйИндекс, | Сведения.ПочтовыйИндекс КАК Индекс,
| Сведения.ОКТМО КАК ОКТМО, | Сведения.ОКТМО КАК ОКТМО,
| Сведения.OKATO КАК OKATO, | Сведения.OKATO КАК OKATO,
| Сведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ, | Сведения.КодУчасткаИФНСЮЛ КАК КодУчасткаИФНСЮЛ,
@@ -6893,7 +7002,6 @@
КонецФункции КонецФункции
Процедура АктуализироватьДанныеОРегионе(Знач Адрес, Знач КодСубъектаРФ, Знач Результат) Процедура АктуализироватьДанныеОРегионе(Знач Адрес, Знач КодСубъектаРФ, Знач Результат)
Результат.АдресПроверен = Истина; Результат.АдресПроверен = Истина;
@@ -7158,7 +7266,7 @@
И СтрСравнить(ДомВАдресе.НаименованиеДополнительногоДома2, И СтрСравнить(ДомВАдресе.НаименованиеДополнительногоДома2,
ОписаниеДома.НаименованиеДополнительногоДома2) = 0 Тогда ОписаниеДома.НаименованиеДополнительногоДома2) = 0 Тогда
ДомКорректный = Истина; ДомКорректный = Истина;
ПочтовыйИндекс = ИнформацияОДомах.ПочтовыйИндекс; ПочтовыйИндекс = ИнформацияОДомах.Индекс;
Прервать; Прервать;
Иначе Иначе
@@ -9035,9 +9143,13 @@
Возврат Описание; Возврат Описание;
КонецФункции КонецФункции
Процедура ОбработатьОбщепринятыеСокращенияИУдалитьТочкуВКонецТипа(АдресПоЧастям) Функция ОбработатьОбщепринятыеСокращенияИУдалитьТочкуВКонецТипа(ИсходнаяТаблица)
АдресПоЧастям = ИсходнаяТаблица.Скопировать();
АдресПоЧастям.Колонки.Добавить("ТипОбъекта2", ОбщегоНазначения.ОписаниеТипаСтрока(128));
ОбщепринятыеСокращения = ОбщепринятыеСокращенияАдресныхЭлементовИОбъектов(); ОбщепринятыеСокращения = ОбщепринятыеСокращенияАдресныхЭлементовИОбъектов();
ОбщепринятыеСокращенияЭлементов = ОбщепринятыеСокращенияАдресныхЭлементов();
Фильтр = Новый Структура("Уровень", 0); Фильтр = Новый Структура("Уровень", 0);
НераспознанныеСтроки = АдресПоЧастям.НайтиСтроки(Фильтр); НераспознанныеСтроки = АдресПоЧастям.НайтиСтроки(Фильтр);
@@ -9062,6 +9174,11 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Сокращение = ОбщепринятыеСокращенияЭлементов[ТипВРег];
Если Сокращение <> Неопределено Тогда
ЧастьАдреса.ТипОбъекта2 = Сокращение;
КонецЕсли;
// Замена сокращения // Замена сокращения
ПолноеИмя = ОбщепринятыеСокращения[ТипВРег]; ПолноеИмя = ОбщепринятыеСокращения[ТипВРег];
Если ПолноеИмя <> Неопределено Тогда Если ПолноеИмя <> Неопределено Тогда
@@ -9070,7 +9187,9 @@
КонецЦикла; КонецЦикла;
КонецПроцедуры Возврат АдресПоЧастям;
КонецФункции
Функция ОбщепринятыеСокращенияАдресныхЭлементовИОбъектов() Функция ОбщепринятыеСокращенияАдресныхЭлементовИОбъектов()
@@ -9096,6 +9215,19 @@
КонецФункции КонецФункции
Функция ОбщепринятыеСокращенияАдресныхЭлементов()
СтатическиеСокращения = Новый Соответствие;
СтатическиеСокращения = СокращенияАдресныхОбъектов();
СтатическиеСокращения.Вставить("ЛИНИЯ", "Лн.");
СтатическиеСокращения.Вставить("ПРОЕЗД", "пр-д");
Возврат СтатическиеСокращения;
КонецФункции
Функция ПерваяБукваЗаглавная(Строка) Функция ПерваяБукваЗаглавная(Строка)
Возврат ВРег(Лев(Строка, 1)) + Сред(НРег(Строка), 2); // Использовать ТРег нельзя. Возврат ВРег(Лев(Строка, 1)) + Сред(НРег(Строка), 2); // Использовать ТРег нельзя.
КонецФункции КонецФункции
@@ -9949,7 +10081,7 @@
// //
Функция ЗаполнитьКодыАдреса(Результат, ИдентификаторАдресногоОбъекта, СведенияОДоме) Функция ЗаполнитьКодыАдреса(Результат, ИдентификаторАдресногоОбъекта, СведенияОДоме)
Коды = КодыПоИдентификаторуАдресногоОбъекта(ИдентификаторАдресногоОбъекта, СведенияОДоме); Коды = КодыПоИдентификаторуАдресногоОбъектаДома(ИдентификаторАдресногоОбъекта, СведенияОДоме);
Если Коды <> Неопределено Тогда Если Коды <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Результат, Коды); ЗаполнитьЗначенияСвойств(Результат, Коды);
@@ -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 @@
КонецПроцедуры КонецПроцедуры
Процедура НайтиКонтрагентовПоИдентификаторамВКэшеБизнесСети(ДанныеКонтрагентов)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Данные", ДанныеКонтрагентов);
Запрос.Текст =
"ВЫБРАТЬ
| Данные.Идентификатор КАК Идентификатор,
| Данные.Контрагент КАК Контрагент
|ПОМЕСТИТЬ Данные
|ИЗ
| &Данные КАК Данные
|
|ИНДЕКСИРОВАТЬ ПО
| Идентификатор
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| КонтрагентыБизнесСеть.Контрагент КАК Контрагент,
| Данные.Идентификатор КАК Идентификатор
|ИЗ
| Данные КАК Данные
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтрагентыБизнесСеть КАК КонтрагентыБизнесСеть
| ПО (КонтрагентыБизнесСеть.Идентификатор = Данные.Идентификатор)";
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат;
КонецЕсли;
ДанныеКэша = Результат.Выгрузить();
ДанныеКэша.Индексы.Добавить("Идентификатор");
Для Каждого ДанныеКонтрагента Из ДанныеКонтрагентов Цикл
ЗаписьКэша = ДанныеКэша.Найти(ДанныеКонтрагента.Идентификатор, "Идентификатор");
Если ЗаписьКэша = Неопределено Или Не ЗначениеЗаполнено(ЗаписьКэша.Контрагент) Тогда
Продолжить;
КонецЕсли;
ДанныеКонтрагента.КонтрагентНайден = Истина;
ДанныеКонтрагента.Контрагент = ЗаписьКэша.Контрагент;
КонецЦикла;
КонецПроцедуры
Процедура НайтиКонтрагентовПоНатуральнымКлючам(ДанныеКонтрагентов)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Данные", ДанныеКонтрагентов);
ТекстЗапроса =
"ВЫБРАТЬ
| Данные.Идентификатор КАК Идентификатор,
| Данные.ИНН КАК ИНН,
| Данные.КПП КАК КПП
|ПОМЕСТИТЬ Данные
|ИЗ
| &Данные КАК Данные
|
|ИНДЕКСИРОВАТЬ ПО
| ИНН,
| КПП
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Контрагенты.Ссылка КАК Контрагент,
| Данные.ИНН КАК ИНН,
| Данные.КПП КАК КПП,
| Данные.Идентификатор КАК Идентификатор
|ИЗ
| Данные КАК Данные
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ &Контрагенты КАК Контрагенты
| ПО (Контрагенты.ИНН = Данные.ИНН)
| И (Контрагенты.КПП = Данные.КПП)
|";
ИмяСправочникаКонтрагенты = ОбщегоНазначенияБЭД.ИмяПрикладногоСправочника("Контрагенты");
РеквизитИНН = ОбщегоНазначенияБЭДПовтИсп.ИмяНаличиеОбъектаРеквизитаВПрикладномРешении("ИННКонтрагента");
РеквизитКПП = ОбщегоНазначенияБЭДПовтИсп.ИмяНаличиеОбъектаРеквизитаВПрикладномРешении("КППКонтрагента");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Контрагенты", "Справочник." + ИмяСправочникаКонтрагенты);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Контрагенты.ИНН", "Контрагенты." + РеквизитИНН);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Контрагенты.КПП", "Контрагенты." + РеквизитКПП);
Запрос.Текст = ТекстЗапроса;
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат;
КонецЕсли;
ДанныеИнформационнойБазы = Результат.Выгрузить();
ДанныеИнформационнойБазы.Индексы.Добавить("Идентификатор");
Для Каждого ДанныеКонтрагента Из ДанныеКонтрагентов Цикл
ЗаписьИнформационнойБазы = ДанныеИнформационнойБазы.Найти(ДанныеКонтрагента.Идентификатор, "Идентификатор");
Если ЗаписьИнформационнойБазы = Неопределено
Или Не ЗначениеЗаполнено(ЗаписьИнформационнойБазы.Контрагент) Тогда
ДанныеКонтрагента.КонтрагентНайден = Ложь;
Иначе
ДанныеКонтрагента.КонтрагентНайден = Истина;
ДанныеКонтрагента.Контрагент = ЗаписьИнформационнойБазы.Контрагент;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ЗаполнитьНатуральныеИдентификаторыКонтрагентов(ДанныеКонтрагентов) Процедура ЗаполнитьНатуральныеИдентификаторыКонтрагентов(ДанныеКонтрагентов)
Запрос = Новый Запрос; Запрос = Новый Запрос;
@@ -147,8 +147,9 @@
// Параметры: // Параметры:
// Схема - СхемаКомпоновкиДанных - схема компоновки данных отчета. // Схема - СхемаКомпоновкиДанных - схема компоновки данных отчета.
// КоличествоСтрокПараметров - Число - число по которому будем фиксировать шапку отчета. // КоличествоСтрокПараметров - Число - число по которому будем фиксировать шапку отчета.
// ПараметрыОтчета - Структура - см. ПодготовитьПараметрыОтчета() в ФормаОтчета.
// //
Процедура ВысотаВыводимыхПараметров(Схема, КоличествоСтрокПараметров) Экспорт Процедура ВысотаВыводимыхПараметров(Схема, КоличествоСтрокПараметров, ПараметрыОтчета = Неопределено) Экспорт
КонецПроцедуры КонецПроцедуры
// Вызывается в местах, где требуется получить полный список показателей отчета. Дополняет список показателями, существующими только в // Вызывается в местах, где требуется получить полный список показателей отчета. Дополняет список показателями, существующими только в
@@ -36,13 +36,14 @@
КонецЕсли; КонецЕсли;
НаименованиеЗадания = НСтр("ru = 'Получение визуализации электронного документа'"); НаименованиеЗадания = НСтр("ru = 'Получение визуализации электронного документа'");
ВыполняемыйМетод = "ВизуализацияЭДОСлужебный.ПолучениеВизуализацииЭлектронныхДокументовЭДО";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияПроцедуры(); ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияПроцедуры();
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания; ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.КлючФоновогоЗадания = КлючФоновогоЗадания; ПараметрыВыполнения.КлючФоновогоЗадания = КлючФоновогоЗадания;
ПараметрыВыполнения.ОжидатьЗавершение = 0; ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина; ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, ВыполняемыйМетод); ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения,
"ВизуализацияЭДОСлужебный.ПолучениеВизуализацииЭлектронныхДокументовЭДО");
КонецПроцедуры КонецПроцедуры
// Получить визуализацию из кэша. // Получить визуализацию из кэша.
@@ -142,7 +143,22 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ОсновнойФайл = ЭлектронныеДокументыЭДО.ОсновнойФайлИнформацииОтправителя(ДокументЭДО); ОсновнойФайл = ЭлектронныеДокументыЭДО.ОсновнойФайлИнформацииОтправителя(ДокументЭДО);
Если Не ЗначениеЗаполнено(ОсновнойФайл) Тогда
ТекстСообщения = НСтр("ru = 'Основной файл документа не доступен или удален.'");
ЗаписатьОшибкуВЖурналРегистрации(ДокументЭДО, ТекстСообщения);
Возврат;
КонецЕсли;
СвойстваОсновнойФайл = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ОсновнойФайл, "Расширение, Размер"); СвойстваОсновнойФайл = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ОсновнойФайл, "Расширение, Размер");
Если СвойстваОсновнойФайл.Размер = Неопределено Тогда
ТекстСообщения = НСтр("ru = 'Основной файл документа не доступен. Не удалось прочитать размер файла.'");
ЗаписатьОшибкуВЖурналРегистрации(ДокументЭДО, ТекстСообщения);
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(СвойстваОсновнойФайл.Расширение) Тогда
ТекстСообщения = НСтр("ru = 'Расширение основного файла не заполнено.'");
ЗаписатьОшибкуВЖурналРегистрации(ДокументЭДО, ТекстСообщения);
Возврат;
КонецЕсли;
ДопустимыйРазмерФайла = Интеграция1СШтампСлужебныйКлиентСервер.ДопустимыйРазмерИсходящегоТелаЗапроса(); ДопустимыйРазмерФайла = Интеграция1СШтампСлужебныйКлиентСервер.ДопустимыйРазмерИсходящегоТелаЗапроса();
Если СвойстваОсновнойФайл.Размер > ДопустимыйРазмерФайла Тогда Если СвойстваОсновнойФайл.Размер > ДопустимыйРазмерФайла Тогда
@@ -173,14 +189,8 @@
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Исключение Исключение
ОтменитьТранзакцию(); ОтменитьТранзакцию();
ТекстСообщения = НСтр("ru = 'Не удалось обновить кэш визуализации по причине:'") ТекстСообщения = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ Символы.ПС + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписатьОшибкуВЖурналРегистрации(ДокументЭДО, ТекстСообщения);
ПараметрыЗаписи = ОбщегоНазначенияБЭД.НовыеПараметрыЗаписиВЖурналРегистрации();
ПараметрыЗаписи.Данные = ДокументЭДО;
ПараметрыЗаписи.ОбъектМетаданных = ДокументЭДО.Метаданные();
ОбщегоНазначенияБЭД.ЗаписатьВЖурналРегистрации(ТекстСообщения,
ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().ОбменСКонтрагентами,
УровеньЖурналаРегистрации.Ошибка);
ВызватьИсключение; ВызватьИсключение;
КонецПопытки; КонецПопытки;
КонецЕсли; КонецЕсли;
@@ -193,6 +203,8 @@
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания( ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(
Метаданные.РегламентныеЗадания.ПолучитьДанныеВизуализацииЭДО); Метаданные.РегламентныеЗадания.ПолучитьДанныеВизуализацииЭДО);
ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ПолучениеВизуализацииЭлектронныхДокументовЭДО");
СчетчикДокументов = 0;
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 100 Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 100
| ОчередьЗапросовВизуализации.ВладелецФайла КАК ДокументЭДО, | ОчередьЗапросовВизуализации.ВладелецФайла КАК ДокументЭДО,
@@ -234,11 +246,13 @@
ПараметрыВыполнения.Вставить("ИмяФайла"); ПараметрыВыполнения.Вставить("ИмяФайла");
ЗаполнитьЗначенияСвойств(ПараметрыВыполнения, Выборка); ЗаполнитьЗначенияСвойств(ПараметрыВыполнения, Выборка);
ОбновитьВизуализациюДокументаЭДОИзОчереди(ПараметрыВыполнения); ОбновитьВизуализациюДокументаЭДОИзОчереди(ПараметрыВыполнения);
СчетчикДокументов = СчетчикДокументов + 1;
КонецЦикла; КонецЦикла;
Запрос.УстановитьПараметр("ТекущаяУниверсальнаяДата", ТекущаяУниверсальнаяДата()); Запрос.УстановитьПараметр("ТекущаяУниверсальнаяДата", ТекущаяУниверсальнаяДата());
Результат = Запрос.Выполнить(); Результат = Запрос.Выполнить();
КонецЦикла; КонецЦикла;
ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПолучениеВизуализацииЭлектронныхДокументовЭДО", ОписаниеЗамера,
СчетчикДокументов);
КонецПроцедуры КонецПроцедуры
// Получение визуализации электронных документов ЭДО. // Получение визуализации электронных документов ЭДО.
@@ -246,7 +260,7 @@
// Параметры: // Параметры:
// ДокументЭДО - ОпределяемыйТип.ВладелецФайлаВизуализацииЭДО - Документ ЭДО // ДокументЭДО - ОпределяемыйТип.ВладелецФайлаВизуализацииЭДО - Документ ЭДО
Процедура ОбновитьКэшВизуализацииЭлектронногоДокументаЭДО(ДокументЭДО) Экспорт Процедура ОбновитьКэшВизуализацииЭлектронногоДокументаЭДО(ДокументЭДО) Экспорт
ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ПолучениеВизуализацииЭлектронныхДокументовЭДО");
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| &ЭлектронныйДокумент КАК ДокументЭДО, | &ЭлектронныйДокумент КАК ДокументЭДО,
@@ -277,7 +291,7 @@
ЗаполнитьЗначенияСвойств(ПараметрыВыполнения, Выборка); ЗаполнитьЗначенияСвойств(ПараметрыВыполнения, Выборка);
ОбновитьВизуализациюДокументаЭДОИзОчереди(ПараметрыВыполнения); ОбновитьВизуализациюДокументаЭДОИзОчереди(ПараметрыВыполнения);
КонецЕсли; КонецЕсли;
ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПолучениеВизуализацииЭлектронныхДокументовЭДО", ОписаниеЗамера, 1);
КонецПроцедуры КонецПроцедуры
// Возвращает проштампованный файл. // Возвращает проштампованный файл.
@@ -302,13 +316,16 @@
Если Не ЗначениеЗаполнено(СообщениеЭДО) Тогда Если Не ЗначениеЗаполнено(СообщениеЭДО) Тогда
Возврат СтруктураВозврата; Возврат СтруктураВозврата;
КонецЕсли; КонецЕсли;
ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ПолучениеВизуализацииPdfИзКэша.ФоновоеЗадание");
ЭлектронныйДокумент = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СообщениеЭДО, "ЭлектронныйДокумент"); ЭлектронныйДокумент = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СообщениеЭДО, "ЭлектронныйДокумент");
НастройкиПредставления = ВизуализацияЭДО.НовыеНастройкиПредставления(); НастройкиПредставления = ВизуализацияЭДО.НовыеНастройкиПредставления();
КэшВизуализации = ПолучитьВизуализациюИзКэша(ЭлектронныйДокумент, НастройкиПредставления); КэшВизуализации = ПолучитьВизуализациюИзКэша(ЭлектронныйДокумент, НастройкиПредставления);
ОбщегоНазначенияБЭД.ЗакончитьЗамер("ПолучениеВизуализацииPdfИзКэша.ФоновоеЗадание", ОписаниеЗамера);
Если КэшВизуализации.ТребуетсяОбновить Тогда Если КэшВизуализации.ТребуетсяОбновить Тогда
ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер("ОбновлениеКэшаPdf.ФоновоеЗадание");
ОбновитьКэшВизуализации(ЭлектронныйДокумент); ОбновитьКэшВизуализации(ЭлектронныйДокумент);
КэшВизуализации = ПолучитьВизуализациюИзКэша(ЭлектронныйДокумент, НастройкиПредставления); КэшВизуализации = ПолучитьВизуализациюИзКэша(ЭлектронныйДокумент, НастройкиПредставления);
ОбщегоНазначенияБЭД.ЗакончитьЗамер("ОбновлениеКэшаPdf.ФоновоеЗадание", ОписаниеЗамера);
КонецЕсли; КонецЕсли;
СтруктураВозврата.Успех = КэшВизуализации.ПросмотрДоступен; СтруктураВозврата.Успех = КэшВизуализации.ПросмотрДоступен;
СтруктураВозврата.ПредставлениеДокумента = КэшВизуализации.ПредставлениеДокумента; СтруктураВозврата.ПредставлениеДокумента = КэшВизуализации.ПредставлениеДокумента;
@@ -492,6 +509,7 @@
// * ПодсказкаQRКода - Строка - текст подсказки QR кода. // * ПодсказкаQRКода - Строка - текст подсказки QR кода.
// * ПубличнаяСсылкаQRКода - Строка - текст публичной ссылки QR кода. // * ПубличнаяСсылкаQRКода - Строка - текст публичной ссылки QR кода.
// * Формат - Строка // * Формат - Строка
// * ВыводитьШтампыПодписей - Булево
// //
Функция НовыеПараметрыВизуализацииДокумента() Экспорт Функция НовыеПараметрыВизуализацииДокумента() Экспорт
@@ -503,6 +521,7 @@
ПараметрыВизуализацииДокумента.Вставить("ПодсказкаQRКода", ""); ПараметрыВизуализацииДокумента.Вставить("ПодсказкаQRКода", "");
ПараметрыВизуализацииДокумента.Вставить("ПубличнаяСсылкаQRКода", ""); ПараметрыВизуализацииДокумента.Вставить("ПубличнаяСсылкаQRКода", "");
ПараметрыВизуализацииДокумента.Вставить("Формат", ""); ПараметрыВизуализацииДокумента.Вставить("Формат", "");
ПараметрыВизуализацииДокумента.Вставить("ВыводитьШтампыПодписей", Истина);
Возврат ПараметрыВизуализацииДокумента; Возврат ПараметрыВизуализацииДокумента;
@@ -600,6 +619,10 @@
НастройкиПредставления.ЕстьИдДокумента = ПараметрыВизуализации.ВыводитьШапкуСИдДокумента; НастройкиПредставления.ЕстьИдДокумента = ПараметрыВизуализации.ВыводитьШапкуСИдДокумента;
НастройкиПредставления.ЕстьQRКод = ЗначениеЗаполнено(ПараметрыВизуализации.ПубличнаяСсылкаQRКода); НастройкиПредставления.ЕстьQRКод = ЗначениеЗаполнено(ПараметрыВизуализации.ПубличнаяСсылкаQRКода);
Если Не ПараметрыВизуализации.ВыводитьШтампыПодписей Тогда
Возврат ВизуализацияДокументаБезШтампов(ДанныеДокумента, ПараметрыВизуализации, НастройкиПредставления);
КонецЕсли;
КэшВизуализации = ПолучитьВизуализациюИзКэша(ДанныеДокумента.Ссылка, НастройкиПредставления); КэшВизуализации = ПолучитьВизуализациюИзКэша(ДанныеДокумента.Ссылка, НастройкиПредставления);
Если ТребуетсяОбновитьКэш Тогда Если ТребуетсяОбновитьКэш Тогда
КэшВизуализации.ТребуетсяОбновить = ТребуетсяОбновитьКэш; КэшВизуализации.ТребуетсяОбновить = ТребуетсяОбновитьКэш;
@@ -1273,8 +1296,11 @@
ПараметрыДобавленияФайла.РасширениеБезТочки = РасширениеБезТочки; ПараметрыДобавленияФайла.РасширениеБезТочки = РасширениеБезТочки;
ПараметрыДобавленияФайла.Служебный = Истина; ПараметрыДобавленияФайла.Служебный = Истина;
НоваяСсылкаНаФайл = Справочники.КэшВизуализацииДокументовЭДОПрисоединенныеФайлы.ПолучитьСсылку(); НоваяСсылкаНаФайл = Справочники.КэшВизуализацииДокументовЭДОПрисоединенныеФайлы.ПолучитьСсылку();
КлючЗамера = "РаботаСФайлами.ДобавитьФайлЭДО";
ОписаниеЗамера = ОбщегоНазначенияБЭД.НачатьЗамер(КлючЗамера);
СвойстваВизуализации.ФайлВизуализации = РаботаСФайлами.ДобавитьФайл(ПараметрыДобавленияФайла, СвойстваВизуализации.ФайлВизуализации = РаботаСФайлами.ДобавитьФайл(ПараметрыДобавленияФайла,
АдресФайлаВоВременномХранилище, , , НоваяСсылкаНаФайл); АдресФайлаВоВременномХранилище, , , НоваяСсылкаНаФайл);
ОбщегоНазначенияБЭД.ЗакончитьЗамер(КлючЗамера, ОписаниеЗамера);
КонецЕсли; КонецЕсли;
УстановитьПривилегированныйРежим(Ложь); УстановитьПривилегированныйРежим(Ложь);
@@ -2206,6 +2232,122 @@
КонецПроцедуры КонецПроцедуры
#КонецОбласти // Готовит визуализацию документа без штампов и возвращает результат
// Параметры:
// ДанныеДокумента - См. НовыеСвойстваДокументаДляФормированияВизуализации
// ПараметрыВизуализации - См. НовыеПараметрыВизуализацииДокумента
// НастройкиПредставления - см. ВизуализацияЭДО.НовыеНастройкиПредставления
//
// Возвращаемое значение:
// См. НовыйРезультатПредставленияДанныхСообщения
Функция ВизуализацияДокументаБезШтампов(ДанныеДокумента, ПараметрыВизуализации, НастройкиПредставления)
Результат = НовыйРезультатПредставленияДанныхСообщения();
ДанныеДокументаДляПроверкиРаспознавания = НовыеДанныеДокументаДляПроверкиРаспознавания();
ЗаполнитьЗначенияСвойств(ДанныеДокументаДляПроверкиРаспознавания.ПроверкаЗаписанногоДокумента, ДанныеДокумента);
ДанныеДокументаДляПроверкиРаспознавания.ПроверкаЗаписанногоДокумента.ТипЭлементаРегламента =
Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя;
Если Не ДокументРаспознан(ДанныеДокументаДляПроверкиРаспознавания) Тогда
Результат = ПредставлениеДанныхСообщенияПоФайлу(ДанныеДокумента.Ссылка);
Если Не РаботаСФайламиБЭДКлиентСервер.ЭтоРасширениеФайлаPDF(Результат.РасширениеФайла)
И ФайлПодходитДляОбработкиЧерезСервис1СШтамп(Результат.РасширениеФайла,
Результат.РазмерФайла) Тогда
РезультатШтампования = ВизуализацияДокументаЭДОСПомощьюСервиса1СШтамп(
Результат.ПредставлениеДокумента,
Результат.РасширениеФайла,
БиблиотекаКартинок.Пустая);
Если Не РезультатШтампования.ЕстьОшибки Тогда
Результат.ПредставлениеДокумента = РезультатШтампования.ДвоичныеДанные;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецЕсли;
ПараметрыПолученияПредставления = НовыеПараметрыПолученияПредставленияДанныхСообщенияПоСсылке();
ПараметрыПолученияПредставления.ПараметрыВизуализации = ПараметрыВизуализации;
СвойстваСообщений = ЭлектронныеДокументыЭДОПовтИспНаВызов.СвойстваСообщенийПросмотраКарточкиДокумента(
ДанныеДокумента.Ссылка);
Если ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.ОбменСГИСЭПД") Тогда
МодульОбменСГИСЭПД = ОбщегоНазначения.ОбщийМодуль("ОбменСГИСЭПД");
ПредставлениеДанных = МодульОбменСГИСЭПД.ПриВизуализацииДокумента(ПараметрыПолученияПредставления,
СвойстваСообщений);
Если ПредставлениеДанных <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Результат, ПредставлениеДанных);
Возврат Результат;
КонецЕсли;
КонецЕсли;
ВизуализацияСтроитсяПоОтветномуТитулу =
ДляТипаДокументаВизуализацияСтроитсяПоОтветномуТитулу(ДанныеДокумента.ТипДокумента)
И СвойстваСообщений.Количество() > 1;
Для Каждого СвойстваСообщения Из СвойстваСообщений Цикл
Если СвойстваСообщения.Статус = Перечисления.СтатусыСообщенийЭДО.НеСформирован Тогда
Продолжить;
КонецЕсли;
Если ВизуализацияСтроитсяПоОтветномуТитулу
И СвойстваСообщения.ТипЭлементаРегламента =
Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя Тогда
ПараметрыПолученияПредставления.СообщениеЗапроса = СвойстваСообщения.Ссылка;
ИначеЕсли СвойстваСообщения.ТипЭлементаРегламента =
Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияОтправителя Тогда
ПараметрыПолученияПредставления.Сообщение = СвойстваСообщения.Ссылка;
ИначеЕсли ВизуализацияСтроитсяПоОтветномуТитулу
И СвойстваСообщения.ТипЭлементаРегламента =
Перечисления.ТипыЭлементовРегламентаЭДО.ИнформацияПолучателя Тогда
ПараметрыПолученияПредставления.Сообщение = СвойстваСообщения.Ссылка;
Иначе
ПараметрыПолученияПредставления.СообщениеОтвета = СвойстваСообщения.Ссылка;
КонецЕсли;
КонецЦикла;
ПараметрыПолученияПредставления.ВыводитьШтампыПодписей = Ложь;
Результат = ПредставлениеДанныхСообщенияПоСсылке(ПараметрыПолученияПредставления);
Возврат Результат;
КонецФункции
// Параметры:
// ДокументЭДО - ОпределяемыйТип.ВладелецФайлаВизуализацииЭДО
// ПричинаОшибки - Строка
Процедура ЗаписатьОшибкуВЖурналРегистрации(ДокументЭДО, ПричинаОшибки)
ТекстСообщения = СтрШаблон(НСтр("ru = 'Не удалось обновить кэш визуализации для документа %1 по причине:'")
+ Символы.ПС + ПричинаОшибки,
ДокументЭДО);
Если Не ТранзакцияАктивна() Тогда
ПараметрыЗаписи = ОбщегоНазначенияБЭД.НовыеПараметрыЗаписиВЖурналРегистрации();
ПараметрыЗаписи.Данные = ДокументЭДО;
ПараметрыЗаписи.ОбъектМетаданных = ДокументЭДО.Метаданные();
Иначе
ПараметрыЗаписи = Неопределено;
КонецЕсли;
ОбщегоНазначенияБЭД.ЗаписатьВЖурналРегистрации(ТекстСообщения,
ОбщегоНазначенияБЭДКлиентСервер.ПодсистемыБЭД().ОбменСКонтрагентами,
УровеньЖурналаРегистрации.Ошибка, ПараметрыЗаписи);
КонецПроцедуры
#КонецОбласти
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ПолучениеВизуализацииЭлектронныхДокументовЭДО", Истина);
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -1456,6 +1456,7 @@
| Товары.ТипНоменклатуры КАК ТипНоменклатуры, | Товары.ТипНоменклатуры КАК ТипНоменклатуры,
| ЕСТЬNULL(ВтПодакцизныеТовары.ПодакцизныйТовар, ЛОЖЬ) КАК ПодакцизныйТовар, | ЕСТЬNULL(ВтПодакцизныеТовары.ПодакцизныйТовар, ЛОЖЬ) КАК ПодакцизныйТовар,
| Товары.ОсобенностьУчета КАК ОсобенностьУчета, | Товары.ОсобенностьУчета КАК ОсобенностьУчета,
| ЕСТЬNULL(ОписаниеНоменклатурыИС.КлючВидовПродукции, ЗНАЧЕНИЕ(Справочник.КлючиВидовПродукцииИС.ПустаяСсылка)) КАК ВидПродукцииИС,
| Товары.НоменклатураНаименование КАК НоменклатураНаименование, | Товары.НоменклатураНаименование КАК НоменклатураНаименование,
| Товары.ХарактеристикаНаименование КАК ХарактеристикаНаименование, | Товары.ХарактеристикаНаименование КАК ХарактеристикаНаименование,
| Товары.УпаковкаНаименование КАК УпаковкаНаименование, | Товары.УпаковкаНаименование КАК УпаковкаНаименование,
@@ -1484,6 +1485,8 @@
| И (ШтрихкодыНоменклатуры.Упаковка = Товары.Упаковка) | И (ШтрихкодыНоменклатуры.Упаковка = Товары.Упаковка)
| ЛЕВОЕ СОЕДИНЕНИЕ ВтПодакцизныеТовары КАК ВтПодакцизныеТовары | ЛЕВОЕ СОЕДИНЕНИЕ ВтПодакцизныеТовары КАК ВтПодакцизныеТовары
| ПО Товары.Номенклатура = ВтПодакцизныеТовары.Номенклатура | ПО Товары.Номенклатура = ВтПодакцизныеТовары.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОписаниеНоменклатурыИС КАК ОписаниеНоменклатурыИС
| ПО Товары.Номенклатура = ОписаниеНоменклатурыИС.Номенклатура
|; |;
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
@@ -1511,6 +1514,7 @@
| Товары.Упаковка, | Товары.Упаковка,
| Товары.БазоваяУпаковка, | Товары.БазоваяУпаковка,
| Товары.ОсобенностьУчета, | Товары.ОсобенностьУчета,
| Товары.ВидПродукцииИС КАК ВидПродукцииИС,
| Товары.Номенклатура, | Товары.Номенклатура,
| Товары.НоменклатураНаименование, | Товары.НоменклатураНаименование,
| Товары.Характеристика КАК Характеристика, | Товары.Характеристика КАК Характеристика,
@@ -700,4 +700,11 @@
КонецФункции КонецФункции
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ПоместитьОшибкиВыгружаемыхДанныхВоВременноеХранилище", Истина);
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -1507,7 +1507,7 @@
Для НомерПотока = 1 По ПараметрыПотоков.КоличествоПотоков Цикл Для НомерПотока = 1 По ПараметрыПотоков.КоличествоПотоков Цикл
Задание = ФоновыеЗадания.Выполнить( Задание = ФоновыеЗадания.Выполнить(
ИмяМетодаВыгрузкиЗагрузкиДанныхВПотоке(), "ВыгрузкаЗагрузкаДанныхСлужебный.ВыгрузкаЗагрузкаДанныхИнформационнойБазыВПотоке",
ПараметрыЗадания, ПараметрыЗадания,
КлючЗаданияВыгрузкиЗагрузкиДанных(Контейнер), КлючЗаданияВыгрузкиЗагрузкиДанных(Контейнер),
НаименованиеЗадания); НаименованиеЗадания);
@@ -1859,10 +1859,8 @@
ПараметрыЗадания.Добавить(ПараметрыЗагрузки); ПараметрыЗадания.Добавить(ПараметрыЗагрузки);
ПараметрыЗадания.Добавить(АдресРезультата); ПараметрыЗадания.Добавить(АдресРезультата);
ИмяМетода = "ВыгрузкаЗагрузкаДанныхСлужебный.НачатьЗагрузкуДанныхТекущейОбластиИзАрхива"; Задание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
"ВыгрузкаЗагрузкаДанныхСлужебный.НачатьЗагрузкуДанныхТекущейОбластиИзАрхива",
Задание = ТехнологияСервиса.ВыполнитьЗаданиеСРасширениями(
ИмяМетода,
ПараметрыЗадания, ПараметрыЗадания,
Новый УникальныйИдентификатор, Новый УникальныйИдентификатор,
НСтр("ru = 'Восстановление области данных из архива'")) НСтр("ru = 'Восстановление области данных из архива'"))
@@ -2093,6 +2091,11 @@
УровеньЖурналаРегистрации.Предупреждение,,, УровеньЖурналаРегистрации.Предупреждение,,,
ТекстПредупреждения); ТекстПредупреждения);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Истина, Ложь);
КонецЕсли;
ВыборкаОбъектов.Сбросить(); ВыборкаОбъектов.Сбросить();
Пока ВыборкаОбъектов.Следующий() Цикл Пока ВыборкаОбъектов.Следующий() Цикл
@@ -3119,4 +3122,12 @@
#КонецОбласти #КонецОбласти
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ВыгрузкаЗагрузкаДанныхИнформационнойБазыВПотоке", Истина);
Методы.Вставить("НачатьЗагрузкуДанныхТекущейОбластиИзАрхива", Истина);
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -596,14 +596,6 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначенияБТС.ЭтоСсылочныеДанныеПоддерживающиеПредопределенныеЭлементы(ОбъектМетаданных) Тогда
Если ПроверяемаяСсылка.Предопределенный Тогда
// Сопоставление ссылок на предопределенные элементы выполняется отдельным механизмом
// (см. общий модуль ВыгрузкаЗагрузкаПредопределенныхДанных).
Возврат;
КонецЕсли;
КонецЕсли;
Если ОбъектМетаданныхРазделенХотьОднимРазделителем(ОбъектМетаданных, Контейнер.ДополнительныеСвойства.ЛокальныйКэшСоставовРазделителей) Тогда Если ОбъектМетаданныхРазделенХотьОднимРазделителем(ОбъектМетаданных, Контейнер.ДополнительныеСвойства.ЛокальныйКэшСоставовРазделителей) Тогда
// Разделенные данные будут загружены с сохранением оригинальных уникальных идентификаторов (для объектов, // Разделенные данные будут загружены с сохранением оригинальных уникальных идентификаторов (для объектов,
// разделенных разделителями с типом разделения "Независимо и совместно" все ссылки будут сгенерированы заново). // разделенных разделителями с типом разделения "Независимо и совместно" все ссылки будут сгенерированы заново).
@@ -622,6 +614,14 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначенияБТС.ЭтоСсылочныеДанныеПоддерживающиеПредопределенныеЭлементы(ОбъектМетаданных) Тогда
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПроверяемаяСсылка, "Предопределенный") Тогда //@skip-check bsl-legacy-check-string-literal
// Сопоставление ссылок на предопределенные элементы выполняется отдельным механизмом
// (см. общий модуль ВыгрузкаЗагрузкаПредопределенныхДанных).
Возврат;
КонецЕсли;
КонецЕсли;
ШаблонОшибки = ШаблонОшибки =
НСтр("ru = 'Объект метаданных %1 включен в перечень объектов, для которых не требуется сопоставление ссылок при выгрузке / загрузке НСтр("ru = 'Объект метаданных %1 включен в перечень объектов, для которых не требуется сопоставление ссылок при выгрузке / загрузке
|данных (в переопределяемой процедуре |данных (в переопределяемой процедуре
@@ -132,21 +132,28 @@
// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер контейнера. // Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер контейнера.
Процедура ПередЗагрузкойДанных(Контейнер) Экспорт Процедура ПередЗагрузкойДанных(Контейнер) Экспорт
Если Не ОбщегоНазначения.РазделениеВключено() Тогда Если ОбщегоНазначения.РазделениеВключено() Тогда
Возврат;
КонецЕсли;
ИмяФайла = Контейнер.ПолучитьПроизвольныйФайл(ТипДанныхДляТаблицыДополнительноВыгружаемыхДанных()); ИмяФайла = Контейнер.ПолучитьПроизвольныйФайл(ТипДанныхДляТаблицыДополнительноВыгружаемыхДанных());
ИменаДополнительноЗагружаемых = ВыгрузкаЗагрузкаДанных.ПрочитатьОбъектИзФайла(ИмяФайла); ИменаДополнительноЗагружаемых = ВыгрузкаЗагрузкаДанных.ПрочитатьОбъектИзФайла(ИмяФайла);
УдалитьФайлы(ИмяФайла); УдалитьФайлы(ИмяФайла);
ПараметрыЗагрузки = Новый Структура(Контейнер.ПараметрыЗагрузки()); // см. ВыгрузкаЗагрузкаДанных.ЗагрузитьДанныеТекущейОбластиИзАрхива.ПараметрыЗагрузки Если Не ЗначениеЗаполнено(ИменаДополнительноЗагружаемых) Тогда
Возврат;
КонецЕсли;
ДополнительноЗагружаемыеТипы = Новый Массив();
Для Каждого ИмяДополнительноЗагружаемогоОбъекта Из ИменаДополнительноЗагружаемых Цикл Для Каждого ИмяДополнительноЗагружаемогоОбъекта Из ИменаДополнительноЗагружаемых Цикл
ПараметрыЗагрузки.ЗагружаемыеТипы.Добавить(Метаданные.НайтиПоПолномуИмени(ИмяДополнительноЗагружаемогоОбъекта)); ДополнительноЗагружаемыеТипы.Добавить(Метаданные.НайтиПоПолномуИмени(ИмяДополнительноЗагружаемогоОбъекта));
КонецЦикла; КонецЦикла;
Контейнер.УстановитьПараметрыЗагрузки(ПараметрыЗагрузки); ПараметрыЗагрузки = Новый Структура(Контейнер.ПараметрыЗагрузки()); // см. ВыгрузкаЗагрузкаДанных.ЗагрузитьДанныеТекущейОбластиИзАрхива.ПараметрыЗагрузки
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ПараметрыЗагрузки.ЗагружаемыеТипы, ДополнительноЗагружаемыеТипы, Истина);
КонецЕсли; Контейнер.УстановитьПараметрыЗагрузки(ПараметрыЗагрузки);
КонецПроцедуры КонецПроцедуры
@@ -326,6 +326,8 @@
РезультатЗагрузкиДифференциальногоАрхива.Удалить("СоответствиеСсылок"); РезультатЗагрузкиДифференциальногоАрхива.Удалить("СоответствиеСсылок");
ПоместитьРезультатЗагрузкиВоВременноеХранилище(ПараметрыЗагрузки, РезультатЗагрузкиДифференциальногоАрхива);
Возврат РезультатЗагрузкиДифференциальногоАрхива; Возврат РезультатЗагрузкиДифференциальногоАрхива;
КонецФункции КонецФункции
@@ -682,4 +684,12 @@
ПоместитьВоВременноеХранилище(РезультатЗагрузки, АдресХранилищаРезультата); ПоместитьВоВременноеХранилище(РезультатЗагрузки, АдресХранилищаРезультата);
КонецПроцедуры КонецПроцедуры
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ВыгрузитьТекущуюОбластьВАрхив", Истина);
Методы.Вставить("ЗагрузитьОбластьИзАрхива", Истина);
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -144,7 +144,7 @@
|ГДЕ |ГДЕ
| ТИПЗНАЧЕНИЯ(ТаблицаИзменения.Узел) В (&ТипыВыгружаемыхПлановОбмена)"); | ТИПЗНАЧЕНИЯ(ТаблицаИзменения.Узел) В (&ТипыВыгружаемыхПлановОбмена)");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "#ТаблицаИзменения", ОбъектМетаданных.ПолноеИмя() + ".Изменения"); Запрос.Текст = СтрЗаменить(Запрос.Текст, "#ТаблицаИзменения", СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), ".Перерасчет.", ".") + ".Изменения");
Запрос.УстановитьПараметр("ТипыВыгружаемыхПлановОбмена", ТипыВыгружаемыхПлановОбмена); Запрос.УстановитьПараметр("ТипыВыгружаемыхПлановОбмена", ТипыВыгружаемыхПлановОбмена);
РезультатЗапроса = Запрос.Выполнить(); РезультатЗапроса = Запрос.Выполнить();
@@ -42,6 +42,12 @@
"Дата", "Дата",
"Закупки", "Закупки",
"Организация"); "Организация");
ДатыЗапретаИзменения.ДобавитьСтроку(ИсточникиДанных,
Метаданные.Документы.ДокументОПредстоящейПоставке.ПолноеИмя(),
"Дата",
"Закупки",
"Организация");
#КонецОбласти #КонецОбласти
@@ -2095,6 +2095,11 @@
Функция ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(ЭтоПлательщик, ДокументОбъект, РеквизитыСтороны, ВыводитьСообщение, Отказ = Ложь) Экспорт Функция ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(ЭтоПлательщик, ДокументОбъект, РеквизитыСтороны, ВыводитьСообщение, Отказ = Ложь) Экспорт
ОшибкиЗаполнения = Новый Массив; ОшибкиЗаполнения = Новый Массив;
Если Не ЗначениеЗаполнено(РеквизитыСтороны.Объект) Тогда
Возврат ОшибкиЗаполнения;
КонецЕсли;
ИНН = СокрЛП(РеквизитыСтороны.ИНН); ИНН = СокрЛП(РеквизитыСтороны.ИНН);
КПП = СокрЛП(РеквизитыСтороны.КПП); КПП = СокрЛП(РеквизитыСтороны.КПП);
@@ -192,7 +192,7 @@
// //
// Параметры: // Параметры:
// Дерево - ДеревоЗначений - дерево данных, в котором необходимо сохранить данные // Дерево - ДеревоЗначений - дерево данных, в котором необходимо сохранить данные
// Коллекция - Структура, Выборка, СтрокаТаблицыЗначений - коллекция для сохранения в дереве // Коллекция - Структура, ВыборкаИзРезультатаЗапроса, СтрокаТаблицыЗначений - коллекция для сохранения в дереве
// НазваниеТаблицы - Строка - название таблицы в дереве. // НазваниеТаблицы - Строка - название таблицы в дереве.
// //
Процедура ДобавитьЗаписьВТаблицуДерева(Дерево, Коллекция, НазваниеТаблицы) Экспорт Процедура ДобавитьЗаписьВТаблицуДерева(Дерево, Коллекция, НазваниеТаблицы) Экспорт
@@ -1930,4 +1930,11 @@
#КонецОбласти #КонецОбласти
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
Методы.Вставить("ВыполнитьДиагностику", Истина);
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -1662,8 +1662,7 @@
КраткоеПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(Результат.ИнформацияОбОшибке); КраткоеПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(Результат.ИнформацияОбОшибке);
// АПК:1405-выкл - требуется для быстрого определения причины ошибки // АПК:1405-выкл - требуется для быстрого определения причины ошибки
СтрокаПоиска = НСтр("ru = 'Задание с таким значением ключа уже выполняется'; СтрокаПоиска = НСтр("ru = 'Задание с таким значением ключа уже выполняется'");
|en = 'A job with the same key value is performed already'");
// АПК:1405-вкл // АПК:1405-вкл
Если ЗначениеЗаполнено(СтрокаПоиска) И СтрНачинаетсяС(КраткоеПредставлениеОшибки, СтрокаПоиска) Тогда Если ЗначениеЗаполнено(СтрокаПоиска) И СтрНачинаетсяС(КраткоеПредставлениеОшибки, СтрокаПоиска) Тогда
Возврат Истина; Возврат Истина;
@@ -88,15 +88,7 @@
Процедура ПроверитьЗаполнениеДанныхДоставки(Настройки, МассивНепроверяемыхРеквизитов, Отказ) Экспорт Процедура ПроверитьЗаполнениеДанныхДоставки(Настройки, МассивНепроверяемыхРеквизитов, Отказ) Экспорт
Если ДоставкаТоваровКлиентСервер.ИспользуетсяДоставка20() Тогда Если ДоставкаТоваровКлиентСервер.ИспользуетсяДоставка20() Тогда
ПроверитьЗаполнениеРеквизитовДоставки(
Настройки.ДокументОбъект,
МассивНепроверяемыхРеквизитов,
Отказ,
Настройки.НакладнаяПоЗаказам);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
// Для совместимости с Доставка 2.0 требуется сохранить платформенную проверку, // Для совместимости с Доставка 2.0 требуется сохранить платформенную проверку,
@@ -9270,11 +9262,11 @@
ШаблонЗапроса = ШаблонЗапроса =
"ВЫБРАТЬ "ВЫБРАТЬ
| ИСТИНА КАК ДополненнаяСтрока, | ИСТИНА КАК ДополненнаяСтрока,
| НедостающиеПлечиТ2.Регистратор КАК Регистратор, | Т2.Регистратор КАК Регистратор,
| 0 КАК НомерСтроки, | 0 КАК НомерСтроки,
| НедостающиеПлечиТ2.Период КАК Период, | Т2.Период КАК Период,
| НедостающиеПлечиТ2.Организация КАК Организация, | Т2.Организация КАК Организация,
| НедостающиеПлечиТ2.ТипДоставки КАК ТипДоставки, | Т2.ТипДоставки КАК ТипДоставки,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДатаОтгрузки, | ДАТАВРЕМЯ(1, 1, 1) КАК ДатаОтгрузки,
| ЗНАЧЕНИЕ(Перечисление.СпособыДоставки25.ПустаяСсылка) КАК СпособДоставки, | ЗНАЧЕНИЕ(Перечисление.СпособыДоставки25.ПустаяСсылка) КАК СпособДоставки,
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Отправитель, | ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Отправитель,
@@ -9283,31 +9275,30 @@
| ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка) КАК Получатель, | ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка) КАК Получатель,
| ЗНАЧЕНИЕ(Справочник.ТочкиДоставки.ПустаяСсылка) КАК ТочкаПолучателя, | ЗНАЧЕНИЕ(Справочник.ТочкиДоставки.ПустаяСсылка) КАК ТочкаПолучателя,
| ЗНАЧЕНИЕ(Справочник.ЗоныДоставки.ПустаяСсылка) КАК ЗонаПолучателя, | ЗНАЧЕНИЕ(Справочник.ЗоныДоставки.ПустаяСсылка) КАК ЗонаПолучателя,
| НедостающиеПлечиТ2.Распоряжение КАК Распоряжение, | Т2.Распоряжение КАК Распоряжение,
| НедостающиеПлечиТ2.Номенклатура КАК Номенклатура, | Т2.Номенклатура КАК Номенклатура,
| НедостающиеПлечиТ2.Характеристика КАК Характеристика, | Т2.Характеристика КАК Характеристика,
| НедостающиеПлечиТ2.Серия КАК Серия, | Т2.Серия КАК Серия,
| НедостающиеПлечиТ2.КодСтроки КАК КодСтроки, | Т2.КодСтроки КАК КодСтроки,
| НедостающиеПлечиТ2.Плечо КАК Плечо, | ПлечиТ1.Плечо КАК Плечо,
| ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка) КАК Перевозчик, | ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка) КАК Перевозчик,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка, | ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
| НедостающиеПлечиТ2.УровеньОперации КАК УровеньОперации, | Т2.УровеньОперации КАК УровеньОперации,
| НедостающиеПлечиТ2.ДокументПланирования КАК ДокументПланирования, | Т2.ДокументПланирования КАК ДокументПланирования,
| ЛОЖЬ КАК ЭтоКонечноеПлечо, | ЛОЖЬ КАК ЭтоКонечноеПлечо,
| 0 КАК НомерМинимальногоПлеча, | 0 КАК НомерМинимальногоПлеча,
| НедостающиеПлечиТ2.Количество КАК Количество | Т2.Количество КАК Количество
|ДОБАВИТЬ ТаблицаНазначение |ДОБАВИТЬ ТаблицаНазначение
|ИЗ |ИЗ
| &ТаблицаНедостающиеПлечиТ2 КАК НедостающиеПлечиТ2 | &ТаблицаИсточникТ2 КАК Т2
| ЛЕВОЕ СОЕДИНЕНИЕ &ТаблицаИсточникТ2 КАК Т2 | ВНУТРЕННЕЕ СОЕДИНЕНИЕ &ТаблицаНедостающиеПлечиТ2 КАК ПлечиТ1
| ПО НедостающиеПлечиТ2.Распоряжение = Т2.Распоряжение | ПО Т2.Распоряжение = ПлечиТ1.Распоряжение
| И НедостающиеПлечиТ2.КодСтроки = Т2.КодСтроки | И Т2.КодСтроки = ПлечиТ1.КодСтроки
| И НедостающиеПлечиТ2.ДокументПланирования = Т2.ДокументПланирования | И Т2.ДокументПланирования = ПлечиТ1.ДокументПланирования
| И НедостающиеПлечиТ2.Регистратор = Т2.Регистратор | И Т2.Плечо < ПлечиТ1.Плечо
| И НедостающиеПлечиТ2.Плечо = Т2.Плечо | И Т2.ЭтоКонечноеПлечо
|ГДЕ |ГДЕ
| Т2.Плечо ЕСТЬ NULL | &ВыражениеОтбор";
| И &ВыражениеОтбор";
Возврат ШаблонЗапроса; Возврат ШаблонЗапроса;
@@ -9318,7 +9309,7 @@
ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2(); ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2();
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТТекущийУровеньТ2"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТТекущийУровеньТ2");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТНедостающиеПлечиТекущегоУровняТ2"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТПлечиПредыдущегоУровняТ1");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТТекущийУровеньТ2"); // @Query-part-1, @Query-part-2 ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТТекущийУровеньТ2"); // @Query-part-1, @Query-part-2
ТекстЗапроса = СтрЗаменить( ТекстЗапроса = СтрЗаменить(
@@ -9386,7 +9377,7 @@
ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2(); ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2();
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТПредыдущийУровеньТ1"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТПредыдущийУровеньТ1");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТНедостающиеПлечиПредыдущегоУровняТ1"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТПлечиТекущегоУровняТ2");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТПредыдущийУровеньТ1"); // @Query-part-1, @Query-part-2 ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТПредыдущийУровеньТ1"); // @Query-part-1, @Query-part-2
ТекстЗапроса = СтрЗаменить( ТекстЗапроса = СтрЗаменить(
@@ -9826,7 +9817,7 @@
ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2(); ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2();
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТСледующийУровеньТ2"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТСледующийУровеньТ2");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТНедостающиеПлечиСледующегоУровняТ2"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТПлечиТекущегоУровняТ1");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТСледующийУровеньТ2"); // @Query-part-1, @Query-part-2 ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТСледующийУровеньТ2"); // @Query-part-1, @Query-part-2
ТекстЗапроса = СтрЗаменить( ТекстЗапроса = СтрЗаменить(
@@ -9929,7 +9920,7 @@
ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2(); ТекстЗапроса = ШаблонЗапросаДополнениеПлечТ2();
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТТекущийУровеньТ1"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИсточникТ2", "ВТТекущийУровеньТ1");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТНедостающиеПлечиТекущегоУровняТ1"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаНедостающиеПлечиТ2", "ВТПлечиСледующегоУровняТ2");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТТекущийУровеньТ1"); // @Query-part-1, @Query-part-2 ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДОБАВИТЬ ТаблицаНазначение", "ДОБАВИТЬ ВТТекущийУровеньТ1"); // @Query-part-1, @Query-part-2
ТекстЗапроса = СтрЗаменить( ТекстЗапроса = СтрЗаменить(
@@ -3844,6 +3844,7 @@
|УчетНДСЛокализация.СоздатьЭлементыСтавкиНДС |УчетНДСЛокализация.СоздатьЭлементыСтавкиНДС
|РегистрыСведений.ОчередьПереоформленияРасходныхОрдеров.ОбработатьДанныеДляПереходаНаНовуюВерсию |РегистрыСведений.ОчередьПереоформленияРасходныхОрдеров.ОбработатьДанныеДляПереходаНаНовуюВерсию
|Справочники.НомераГТД.ОбработатьДанныеДляПереходаНаНовуюВерсию |Справочники.НомераГТД.ОбработатьДанныеДляПереходаНаНовуюВерсию
|РегистрыСведений.РаспоряженияНаОтгрузкуИВозвратКВыполнению.ОбработатьДанныеДляПереходаНаНовуюВерсию
|"; |";
ЗакрытиеМесяцаЛокализация.ОбработчикиОбновленияНеВлияющиеНаЗакрытиеМесяца(Обработчики); ЗакрытиеМесяцаЛокализация.ОбработчикиОбновленияНеВлияющиеНаЗакрытиеМесяца(Обработчики);
@@ -9369,7 +9369,7 @@
| И &ПроверкаНаПустоеЗначениеВСоглашении // Значение в соглашении заполнено | И &ПроверкаНаПустоеЗначениеВСоглашении // Значение в соглашении заполнено
| И &ПроверкаНаПустоеЗначениеВДокументе // Значение в документе заполнено | И &ПроверкаНаПустоеЗначениеВДокументе // Значение в документе заполнено
| И СоглашениеСПоставщиком.ИмяРеквизита <> ДокументЗакупки.ИмяРеквизита КАК ИмяПоляЕстьОшибки, | И СоглашениеСПоставщиком.ИмяРеквизита <> ДокументЗакупки.ИмяРеквизита КАК ИмяПоляЕстьОшибки,
| ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.ИмяРеквизита) КАК ИмяРеквизитаСоглашение, | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.ИмяРеквизита) КАК ПсевдонимРеквизитаСоглашения,
| ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.ИмяРеквизита) КАК ИмяРеквизита"; // @query-part | ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.ИмяРеквизита) КАК ИмяРеквизита"; // @query-part
ЗаменяемаяСтрока = "&ПроверкаНаПустоеЗначениеВСоглашении"; ЗаменяемаяСтрока = "&ПроверкаНаПустоеЗначениеВСоглашении";
@@ -9396,6 +9396,10 @@
ТекстУсловия = СтрЗаменить(ТекстУсловия, "ДокументЗакупки", "ВременнаяТаблицаТовары"); ТекстУсловия = СтрЗаменить(ТекстУсловия, "ДокументЗакупки", "ВременнаяТаблицаТовары");
КонецЕсли; КонецЕсли;
ТекстУсловия = СтрЗаменить(ТекстУсловия,
"ПсевдонимРеквизитаСоглашения",
ОписаниеПроверки.ПсевдонимРеквизитаСоглашения);
ТекстУсловия = СтрЗаменить(ТекстУсловия, "ИмяПоляЕстьОшибки", ОписаниеПроверки.ИмяПоляЕстьОшибки); ТекстУсловия = СтрЗаменить(ТекстУсловия, "ИмяПоляЕстьОшибки", ОписаниеПроверки.ИмяПоляЕстьОшибки);
ТекстУсловия = СтрЗаменить(ТекстУсловия, "ИмяРеквизита", ИмяРеквизита); ТекстУсловия = СтрЗаменить(ТекстУсловия, "ИмяРеквизита", ИмяРеквизита);
@@ -9468,7 +9472,7 @@
| ЛОЖЬ | ЛОЖЬ
| КОНЕЦ КАК ЕстьОшибкиЗаполненияХозяйственнаяОперация, | КОНЕЦ КАК ЕстьОшибкиЗаполненияХозяйственнаяОперация,
| ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.ХозяйственнаяОперация) КАК ХозяйственнаяОперация, | ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.ХозяйственнаяОперация) КАК ХозяйственнаяОперация,
| ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.ХозяйственнаяОперация) КАК ХозяйственнаяОперацияСоглашение"); // @query-part | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.ХозяйственнаяОперация) КАК ХозяйственнаяОперацияСоглашения"); // @query-part
КонецЕсли; КонецЕсли;
#КонецОбласти #КонецОбласти
@@ -9481,9 +9485,9 @@
"СоглашениеСПоставщиком.Склад ЕСТЬ НЕ NULL "СоглашениеСПоставщиком.Склад ЕСТЬ НЕ NULL
| И СоглашениеСПоставщиком.Склад <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) | И СоглашениеСПоставщиком.Склад <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| И СкладыКорректныеПоСоглашению.Склад ЕСТЬ NULL КАК ЕстьОшибкиЗаполненияСклад, | И СкладыКорректныеПоСоглашению.Склад ЕСТЬ NULL КАК ЕстьОшибкиЗаполненияСклад,
| ЕСТЬNULL(СоглашениеСПоставщиком.Склад.ЭтоГруппа, ЛОЖЬ) КАК СкладСоглашениеЕстьГруппа, | ЕСТЬNULL(СоглашениеСПоставщиком.Склад.ЭтоГруппа, ЛОЖЬ) КАК СкладСоглашенияЕстьГруппа,
| ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.Склад) КАК Склад, | ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.Склад) КАК Склад,
| ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Склад) КАК СкладСоглашение"); // @query-part | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Склад) КАК СкладСоглашения"); // @query-part
ИначеЕсли ИмяТаблицы = "Документ.ЗаявкаНаЗакупку" Тогда ИначеЕсли ИмяТаблицы = "Документ.ЗаявкаНаЗакупку" Тогда
// Проверка склада в ТЧ по соглашению в ТЧ: // Проверка склада в ТЧ по соглашению в ТЧ:
ВыбираемыеПоля.Добавить( ВыбираемыеПоля.Добавить(
@@ -9491,10 +9495,10 @@
| И СоглашениеСПоставщиком.Склад ЕСТЬ НЕ NULL | И СоглашениеСПоставщиком.Склад ЕСТЬ НЕ NULL
| И СоглашениеСПоставщиком.Склад <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) | И СоглашениеСПоставщиком.Склад <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| И СкладыКорректныеПоСоглашениям.Склад ЕСТЬ NULL КАК ЕстьОшибкиЗаполненияСклад, | И СкладыКорректныеПоСоглашениям.Склад ЕСТЬ NULL КАК ЕстьОшибкиЗаполненияСклад,
| ЕСТЬNULL(СоглашениеСПоставщиком.Склад.ЭтоГруппа, ЛОЖЬ) КАК СкладСоглашениеЕстьГруппа, | ЕСТЬNULL(СоглашениеСПоставщиком.Склад.ЭтоГруппа, ЛОЖЬ) КАК СкладСоглашенияЕстьГруппа,
| ЕСТЬNULL(ДокументЗакупки.Склад.ЭтоГруппа, ЛОЖЬ) КАК СкладВШапкеГруппа, | ЕСТЬNULL(ДокументЗакупки.Склад.ЭтоГруппа, ЛОЖЬ) КАК СкладВШапкеГруппа,
| ПРЕДСТАВЛЕНИЕ(ВременнаяТаблицаТовары.Склад) КАК Склад, | ПРЕДСТАВЛЕНИЕ(ВременнаяТаблицаТовары.Склад) КАК Склад,
| ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Склад) КАК СкладСоглашение"); // @query-part | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Склад) КАК СкладСоглашения"); // @query-part
ПроверятьСкладПоСоглашениюВТабличнойЧасти = Истина; ПроверятьСкладПоСоглашениюВТабличнойЧасти = Истина;
КонецЕсли; КонецЕсли;
@@ -9514,7 +9518,7 @@
| КОГДА СоглашениеСПоставщиком.ИспользуютсяДоговорыКонтрагентов | КОГДА СоглашениеСПоставщиком.ИспользуютсяДоговорыКонтрагентов
| ТОГДА ДокументЗакупки.Договор.ПорядокРасчетов | ТОГДА ДокументЗакупки.Договор.ПорядокРасчетов
| ИНАЧЕ СоглашениеСПоставщиком.ПорядокРасчетов | ИНАЧЕ СоглашениеСПоставщиком.ПорядокРасчетов
| КОНЕЦ) КАК ПорядокРасчетовСоглашение, | КОНЕЦ) КАК ПорядокРасчетовСоглашения,
| СоглашениеСПоставщиком.ИспользуютсяДоговорыКонтрагентов КАК ИспользуютсяДоговорыКонтрагентов"); // @query-part | СоглашениеСПоставщиком.ИспользуютсяДоговорыКонтрагентов КАК ИспользуютсяДоговорыКонтрагентов"); // @query-part
#КонецОбласти #КонецОбласти
КонецЕсли; КонецЕсли;
@@ -9529,7 +9533,7 @@
| И ДокументЗакупки.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи) | И ДокументЗакупки.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи)
| КАК ЕстьОшибкиЗаполненияВалютаВзаиморасчетов, | КАК ЕстьОшибкиЗаполненияВалютаВзаиморасчетов,
| ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.ВалютаВзаиморасчетов) КАК ВалютаВзаиморасчетов, | ПРЕДСТАВЛЕНИЕ(ДокументЗакупки.ВалютаВзаиморасчетов) КАК ВалютаВзаиморасчетов,
| ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Валюта) КАК ВалютаВзаиморасчетовСоглашение"); // @query-part | ПРЕДСТАВЛЕНИЕ(СоглашениеСПоставщиком.Валюта) КАК ВалютаВзаиморасчетовСоглашения"); // @query-part
#КонецОбласти #КонецОбласти
КонецЕсли; КонецЕсли;
@@ -9738,6 +9742,7 @@
// Возвращаемое значение: // Возвращаемое значение:
// ТаблицаЗначений: // ТаблицаЗначений:
// * ИмяРеквизита - Строка - Имя реквизита документа и соглашения. // * ИмяРеквизита - Строка - Имя реквизита документа и соглашения.
// * ПсевдонимРеквизитаСоглашения - Строка - Псевдоним для поля запроса, содержащего представление реквизита соглашения.
// * ИмяПоляЕстьОшибки - Строка - Псевдоним для поля запроса, содержащего флаг (булево) наличия найденных в проверке ошибок. // * ИмяПоляЕстьОшибки - Строка - Псевдоним для поля запроса, содержащего флаг (булево) наличия найденных в проверке ошибок.
// * ПредставлениеРеквизита - Строка - Представление имени реквизита для вывода в отчет. // * ПредставлениеРеквизита - Строка - Представление имени реквизита для вывода в отчет.
// * ПустоеЗначениеВЗапросе - Строка - Если не пустая, то проверка реквизита выполняется только при // * ПустоеЗначениеВЗапросе - Строка - Если не пустая, то проверка реквизита выполняется только при
@@ -9768,6 +9773,7 @@
ВозвращаемоеЗначение = Новый ТаблицаЗначений; ВозвращаемоеЗначение = Новый ТаблицаЗначений;
ВозвращаемоеЗначение.Колонки.Добавить("ИмяРеквизита", ОписаниеТипаСтрока150); ВозвращаемоеЗначение.Колонки.Добавить("ИмяРеквизита", ОписаниеТипаСтрока150);
ВозвращаемоеЗначение.Колонки.Добавить("ПсевдонимРеквизитаСоглашения", ОписаниеТипаСтрока150);
ВозвращаемоеЗначение.Колонки.Добавить("ИмяПоляЕстьОшибки", ОписаниеТипаСтрока150); ВозвращаемоеЗначение.Колонки.Добавить("ИмяПоляЕстьОшибки", ОписаниеТипаСтрока150);
ВозвращаемоеЗначение.Колонки.Добавить("ПредставлениеРеквизита", ОписаниеТипаСтрока150); ВозвращаемоеЗначение.Колонки.Добавить("ПредставлениеРеквизита", ОписаниеТипаСтрока150);
ВозвращаемоеЗначение.Колонки.Добавить("ПустоеЗначениеВЗапросе", ОписаниеТипаСтрока150); ВозвращаемоеЗначение.Колонки.Добавить("ПустоеЗначениеВЗапросе", ОписаниеТипаСтрока150);
@@ -9785,6 +9791,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение, ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"ХозяйственнаяОперация", "ХозяйственнаяОперация",
"ХозяйственнаяОперацияСоглашения",
"ЕстьОшибкиЗаполненияХозяйственнаяОперация", "ЕстьОшибкиЗаполненияХозяйственнаяОперация",
НСтр("ru = 'Операция'")); НСтр("ru = 'Операция'"));
ОписаниеПроверки.ПереопределенРасчетУсловий = Истина; ОписаниеПроверки.ПереопределенРасчетУсловий = Истина;
@@ -9798,6 +9805,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение, ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"ВалютаВзаиморасчетов", "ВалютаВзаиморасчетов",
"ВалютаВзаиморасчетовСоглашения",
"ЕстьОшибкиЗаполненияВалютаВзаиморасчетов", "ЕстьОшибкиЗаполненияВалютаВзаиморасчетов",
НСтр("ru = 'Валюта взаиморасчетов'")); НСтр("ru = 'Валюта взаиморасчетов'"));
ОписаниеПроверки.ПереопределенРасчетУсловий = Истина; ОписаниеПроверки.ПереопределенРасчетУсловий = Истина;
@@ -9811,6 +9819,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение, ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"Партнер", "Партнер",
"ПартнерСоглашения",
"ЕстьОшибкиЗаполненияПартнер", "ЕстьОшибкиЗаполненияПартнер",
НСтр("ru = 'Партнер'"), НСтр("ru = 'Партнер'"),
"ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка)"); "ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка)");
@@ -9825,6 +9834,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение, ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"Контрагент", "Контрагент",
"КонтрагентСоглашения",
"ЕстьОшибкиЗаполненияКонтрагент", "ЕстьОшибкиЗаполненияКонтрагент",
НСтр("ru = 'Контрагент'"), НСтр("ru = 'Контрагент'"),
"ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)"); "ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)");
@@ -9839,6 +9849,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение, ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"Организация", "Организация",
"ОрганизацияСоглашения",
"ЕстьОшибкиЗаполненияОрганизация", "ЕстьОшибкиЗаполненияОрганизация",
НСтр("ru = 'Организация'"), НСтр("ru = 'Организация'"),
"ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)"); "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
@@ -9853,6 +9864,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение, ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"Валюта", "Валюта",
"ВалютаСоглашения",
"ЕстьОшибкиЗаполненияВалюта", "ЕстьОшибкиЗаполненияВалюта",
НСтр("ru = 'Валюта'")); НСтр("ru = 'Валюта'"));
ОписаниеПроверки.ШаблонОшибкиВШапке = НСтр("ru = 'Валюта не должна отличаться от значения в соглашении ""%ЗначениеРеквизитаСоглашения%""'"); ОписаниеПроверки.ШаблонОшибкиВШапке = НСтр("ru = 'Валюта не должна отличаться от значения в соглашении ""%ЗначениеРеквизитаСоглашения%""'");
@@ -9865,6 +9877,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение, ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"ФормаОплаты", "ФормаОплаты",
"ФормаОплатыСоглашения",
"ЕстьОшибкиЗаполненияФормаОплаты", "ЕстьОшибкиЗаполненияФормаОплаты",
НСтр("ru = 'Форма оплаты'"), НСтр("ru = 'Форма оплаты'"),
"ЗНАЧЕНИЕ(Перечисление.ФормыОплаты.ПустаяСсылка)"); "ЗНАЧЕНИЕ(Перечисление.ФормыОплаты.ПустаяСсылка)");
@@ -9878,6 +9891,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение, ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"ЦенаВключаетНДС", "ЦенаВключаетНДС",
"ЦенаВключаетНДССоглашения",
"ЕстьОшибкиЗаполненияЦенаВключаетНДС", "ЕстьОшибкиЗаполненияЦенаВключаетНДС",
НСтр("ru = 'Признак ""Цена включает НДС""'")); НСтр("ru = 'Признак ""Цена включает НДС""'"));
ОписаниеПроверки.ШаблонОшибкиВШапке = НСтр("ru = 'Признак ""Цена включает НДС"" не должен отличаться от значения в соглашении ""%ЗначениеРеквизитаСоглашения%""'"); ОписаниеПроверки.ШаблонОшибкиВШапке = НСтр("ru = 'Признак ""Цена включает НДС"" не должен отличаться от значения в соглашении ""%ЗначениеРеквизитаСоглашения%""'");
@@ -9890,6 +9904,7 @@
ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение, ОписаниеПроверки = НовоеОписаниеПроверкиСоответствияЗначенияСоглашению(ВозвращаемоеЗначение,
"ВидЦеныПоставщика", "ВидЦеныПоставщика",
"ВидЦеныПоставщикаСоглашения",
"ЕстьОшибкиЗаполненияВидЦеныПоставщика", "ЕстьОшибкиЗаполненияВидЦеныПоставщика",
НСтр("ru = 'Вид цен поставщика'"), НСтр("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 = 'Порядок расчетов не должен отличаться от значения в договоре ""%ПорядокРасчетов%""'"); ТекстОшибки = НСтр("ru = 'Порядок расчетов не должен отличаться от значения в договоре ""%ПорядокРасчетов%""'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%ПорядокРасчетов%", Выборка.ПорядокРасчетовСоглашение); ТекстОшибки = СтрЗаменить(ТекстОшибки, "%ПорядокРасчетов%", Выборка.ПорядокРасчетовСоглашения);
Если НЕ ВыводитьВОтчет Тогда Если НЕ ВыводитьВОтчет Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю( ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
ТекстОшибки, ТекстОшибки,
@@ -10985,7 +11003,7 @@
Иначе Иначе
ТекстОшибки = НСтр("ru = 'Порядок расчетов не должен отличаться от значения в соглашении ""%ПорядокРасчетов%""'"); ТекстОшибки = НСтр("ru = 'Порядок расчетов не должен отличаться от значения в соглашении ""%ПорядокРасчетов%""'");
КонецЕсли; КонецЕсли;
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%ПорядокРасчетов%", Выборка.ПорядокРасчетовСоглашение); ТекстОшибки = СтрЗаменить(ТекстОшибки, "%ПорядокРасчетов%", Выборка.ПорядокРасчетовСоглашения);
Если НЕ ВыводитьВОтчет Тогда Если НЕ ВыводитьВОтчет Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю( ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
@@ -17797,6 +17797,28 @@
|; |;
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаТоваров.ДокументПоступления КАК ДокументПоступления,
| ТаблицаТоваров.Номенклатура КАК Номенклатура,
| ТаблицаТоваров.Характеристика КАК Характеристика,
| ТаблицаТоваров.Назначение КАК Назначение,
| ТаблицаТоваров.Серия КАК Серия,
| ТаблицаТоваров.СтатусУказанияСерий КАК СтатусУказанияСерий,
| СУММА(ТаблицаТоваров.Количество) КАК Количество
|ПОМЕСТИТЬ ВтТаблицаТоваровВозврат
|ИЗ
| ТаблицаТоваров КАК ТаблицаТоваров
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТоваров.ДокументПоступления,
| ТаблицаТоваров.Номенклатура,
| ТаблицаТоваров.Характеристика,
| ТаблицаТоваров.Назначение,
| ТаблицаТоваров.Серия,
| ТаблицаТоваров.СтатусУказанияСерий
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ |ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТоваров.ДокументПоступления КАК ДокументПоступления, | ТаблицаТоваров.ДокументПоступления КАК ДокументПоступления,
| АналитикиУчета.КлючАналитики КАК АналитикаУчетаНоменклатуры, | АналитикиУчета.КлючАналитики КАК АналитикаУчетаНоменклатуры,
@@ -18382,6 +18404,7 @@
| ПринятыеТовары.НомерГТД КАК НомерГТД, | ПринятыеТовары.НомерГТД КАК НомерГТД,
| СУММА(ПринятыеТовары.Количество) КАК КоличествоОстаток, | СУММА(ПринятыеТовары.Количество) КАК КоличествоОстаток,
| СУММА(ПринятыеТовары.КоличествоПоРНПТ) КАК КоличествоПоРНПТОстаток | СУММА(ПринятыеТовары.КоличествоПоРНПТ) КАК КоличествоПоРНПТОстаток
| ПОМЕСТИТЬ ВтПринятыеТовары
|ИЗ |ИЗ
| ПринятыеТовары КАК ПринятыеТовары | ПринятыеТовары КАК ПринятыеТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаДанныхДокумента КАК ДанныеДокумента | ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаДанныхДокумента КАК ДанныеДокумента
@@ -18434,6 +18457,39 @@
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ |ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПринятыеТовары.Организация КАК Организация,
| ПринятыеТовары.ДокументПоступления КАК ДокументПоступления,
| ПринятыеТовары.ВидЗапасов КАК ВидЗапасов,
| ПринятыеТовары.Номенклатура КАК Номенклатура,
| ПринятыеТовары.Характеристика КАК Характеристика,
| ПринятыеТовары.Серия КАК Серия,
| ПринятыеТовары.Назначение КАК Назначение,
| ПринятыеТовары.НомерГТД КАК НомерГТД,
| ВЫБОР
| КОГДА ПринятыеТовары.КоличествоОстаток > ТаблицаТоваровВозврат.Количество
| ТОГДА ТаблицаТоваровВозврат.Количество
| ИНАЧЕ ПринятыеТовары.КоличествоОстаток
| КОНЕЦ КАК КоличествоОстаток,
| ВЫБОР
| КОГДА ПринятыеТовары.КоличествоОстаток > ТаблицаТоваровВозврат.Количество
| ТОГДА (ПринятыеТовары.КоличествоПоРНПТОстаток / ПринятыеТовары.КоличествоОстаток) * ТаблицаТоваровВозврат.Количество
| ИНАЧЕ ПринятыеТовары.КоличествоПоРНПТОстаток
| КОНЕЦ КАК КоличествоПоРНПТОстаток
|
|ИЗ
| ВТПринятыеТовары КАК ПринятыеТовары
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаТоваровВозврат КАК ТаблицаТоваровВозврат
| ПО ТаблицаТоваровВозврат.Номенклатура = ПринятыеТовары.Номенклатура
| И ТаблицаТоваровВозврат.Характеристика = ПринятыеТовары.Характеристика
| И (ТаблицаТоваровВозврат.Серия = ПринятыеТовары.Серия
| ИЛИ ТаблицаТоваровВозврат.СтатусУказанияСерий <> 14)
| И ТаблицаТоваровВозврат.Назначение = ПринятыеТовары.Назначение
| И ТаблицаТоваровВозврат.ДокументПоступления = ПринятыеТовары.ДокументПоступления
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДанныеДокумента.Организация КАК Организация, | ДанныеДокумента.Организация КАК Организация,
| ТаблицаТоваров.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры | ТаблицаТоваров.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры
|ПОМЕСТИТЬ ВтТаблицаТоваровПоАналитики |ПОМЕСТИТЬ ВтТаблицаТоваровПоАналитики
@@ -167,10 +167,7 @@
Иначе Иначе
ДенежныеСредстваСерверЛокализация.ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(Истина, Объект, РеквизитыПлательщика, Истина); ДенежныеСредстваСерверЛокализация.ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(Истина, Объект, РеквизитыПлательщика, Истина);
Если ЗначениеЗаполнено(ДанныеПолучателя.Получатель) Тогда
ДенежныеСредстваСерверЛокализация.ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(Ложь, Объект, РеквизитыПолучателя, Истина); ДенежныеСредстваСерверЛокализация.ОшибкиЗаполненияРеквизитовПлательщикаПолучателя(Ложь, Объект, РеквизитыПолучателя, Истина);
КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -321,6 +321,22 @@
КонецПроцедуры КонецПроцедуры
//++ Локализация
// Процедура дополняет тексты запросов проведения документа.
//
// Параметры:
// Запрос - Запрос - Общий запрос проведения документа.
// ТекстыЗапроса - СписокЗначений - Список текстов запроса проведения.
// Регистры - Строка, Структура - Список регистров проведения документа через запятую или в ключах структуры.
//
Процедура ДополнитьТекстыЗапросовПроведенияДОПП(Запрос, ТекстыЗапроса, Регистры) Экспорт
КонецПроцедуры
//-- Локализация
// Процедура пересчитывает значения строк таблицы значений для округления итоговой суммы колонки по целых единиц. // Процедура пересчитывает значения строк таблицы значений для округления итоговой суммы колонки по целых единиц.
// //
// Параметры: // Параметры:
@@ -98,12 +98,24 @@
ПараметрыУстановкиШтампов.ПараметрыРезультата.ФорматРезультата = РасширениеФайлаРезультата; ПараметрыУстановкиШтампов.ПараметрыРезультата.ФорматРезультата = РасширениеФайлаРезультата;
СлужебнаяИнформацияЗапроса = СлужебнаяИнформацияЗапроса(ПользовательскийСценарий, НовыйИдентификаторТрассировки()); СлужебнаяИнформацияЗапроса = СлужебнаяИнформацияЗапроса(ПользовательскийСценарий, НовыйИдентификаторТрассировки());
Результат = НовыйРезультатОбработкиДокумента();
// Создаем ссылку для загрузки файла
Ответ = СсылкаДляЗагрузки(СлужебнаяИнформацияЗапроса);
Если Ответ.Отказ Тогда
Результат.ЕстьОшибки = Истина;
Результат.ИнформацияОбОшибках = Ответ.ТекстОшибки;
Возврат Результат;
КонецЕсли;
URLДляЗагрузки = Ответ.URLРедиректа;
// Создаем задание в очередь в сервисе // Создаем задание в очередь в сервисе
ОтветСервиса = РезультатВыполненияЗапросаСоздатьЗаданиеВСервисеНаУстановкуШтамповВДокумент( ОтветСервиса = РезультатВыполненияЗапросаСоздатьЗаданиеВСервисеНаУстановкуШтамповВДокумент(
ПараметрыУстановкиШтампов, ПараметрыУстановкиШтампов,
СлужебнаяИнформацияЗапроса); СлужебнаяИнформацияЗапроса,
URLДляЗагрузки);
Результат = НовыйРезультатОбработкиДокумента();
Если Не ОтветСервиса.КодСостояния = Интеграция1СШтампСлужебныйКлиентСервер.КодСостоянияОжидание() Тогда Если Не ОтветСервиса.КодСостояния = Интеграция1СШтампСлужебныйКлиентСервер.КодСостоянияОжидание() Тогда
Результат.ЕстьОшибки = Истина; Результат.ЕстьОшибки = Истина;
@@ -259,17 +271,35 @@
#Область МетодыОбращенияКСервису #Область МетодыОбращенияКСервису
// Возвращает результат создания задания в очереди сервиса. // Возвращает ссылку для загрузки файла в сервис.
// //
// Параметры: // Параметры:
// ПараметрыДобавленияШтампов - См. Интеграция1СШтампКлиентСервер.НовыеПараметрыДобавленияШтамповВДокумент
// СлужебнаяИнформацияЗапроса - См. СлужебнаяИнформацияЗапроса // СлужебнаяИнформацияЗапроса - См. СлужебнаяИнформацияЗапроса
// //
// Возвращаемое значение: // Возвращаемое значение:
// См. НовыйРезультатВыполненияЗапроса // См. НовыйРезультатВыполненияЗапроса
// //
Функция СсылкаДляЗагрузки(Знач СлужебнаяИнформацияЗапроса)
ЗапросКСервису = ЗапросКСервисуСсылкаДляЗагрузки(СлужебнаяИнформацияЗапроса);
Результат = ВыполнитьЗапрос(ЗапросКСервису);
Возврат Результат;
КонецФункции
// Возвращает результат создания задания в очереди сервиса.
//
// Параметры:
// ПараметрыДобавленияШтампов - См. Интеграция1СШтампКлиентСервер.НовыеПараметрыДобавленияШтамповВДокумент
// СлужебнаяИнформацияЗапроса - См. СлужебнаяИнформацияЗапроса
// URLДляЗагрузки - Строка - URL-адрес файла для загрузки
//
// Возвращаемое значение:
// См. НовыйРезультатВыполненияЗапроса
//
Функция РезультатВыполненияЗапросаСоздатьЗаданиеВСервисеНаУстановкуШтамповВДокумент( Функция РезультатВыполненияЗапросаСоздатьЗаданиеВСервисеНаУстановкуШтамповВДокумент(
Знач ПараметрыДобавленияШтампов, Знач СлужебнаяИнформацияЗапроса) Знач ПараметрыДобавленияШтампов, Знач СлужебнаяИнформацияЗапроса, URLДляЗагрузки)
ДвоичныеДанные = ДвоичныеДанныеАрхиваСФайламиДляШтампированияДокумента(ПараметрыДобавленияШтампов); ДвоичныеДанные = ДвоичныеДанныеАрхиваСФайламиДляШтампированияДокумента(ПараметрыДобавленияШтампов);
Результат = РезультатВыполненияПрикладныхПроверокПередОтправкойЗапроса(ДвоичныеДанные); Результат = РезультатВыполненияПрикладныхПроверокПередОтправкойЗапроса(ДвоичныеДанные);
@@ -278,7 +308,7 @@
Возврат Результат; Возврат Результат;
КонецЕсли; КонецЕсли;
ЗапросКСервису = ЗапросКСервисуДобавитьШтампыВДокумент(ДвоичныеДанные, СлужебнаяИнформацияЗапроса); ЗапросКСервису = ЗапросКСервисуДобавитьШтампыВДокумент(URLДляЗагрузки, ДвоичныеДанные, СлужебнаяИнформацияЗапроса);
Результат = ВыполнитьЗапрос(ЗапросКСервису); Результат = ВыполнитьЗапрос(ЗапросКСервису);
Возврат Результат; Возврат Результат;
@@ -327,12 +357,30 @@
#Область ВыполнениеЗапросов #Область ВыполнениеЗапросов
Функция ЗапросКСервисуДобавитьШтампыВДокумент(Знач ДвоичныеДанные, Знач СлужебнаяИнформацияЗапроса) Функция ЗапросКСервисуСсылкаДляЗагрузки(СлужебнаяИнформацияЗапроса)
ЗапросСервиса = НовыйЗапросСервиса(); ЗапросСервиса = НовыйЗапросСервиса();
ЗапросСервиса.СтрокаЗапроса = АдресЗапросаДобавитьШтамп(); ЗапросСервиса.СтрокаЗапроса = "/v2/stamp";
ЗапросСервиса.ТипПередаваемогоКонтента = ТипИсходящегоКонтентаДанныеДокументаИШтампов(); ЗапросСервиса.ТипПередаваемогоКонтента = ТипИсходящегоКонтентаДанныеДокументаИШтампов();
ЗапросСервиса.Метод = "POST"; ЗапросСервиса.Метод = "POST";
ЗапросСервиса.Наименование = НСтр(
"ru = 'Получение ссылки для загрузки файла'",
ОбщегоНазначения.КодОсновногоЯзыка());
ЗапросСервиса.ДопустимыеКодыСостояния.Добавить(
Интеграция1СШтампСлужебныйКлиентСервер.КодСостоянияРедиректаЗапроса());
УстановитьЗаголовкиЗапроса(ЗапросСервиса, СлужебнаяИнформацияЗапроса);
Возврат ЗапросСервиса;
КонецФункции
Функция ЗапросКСервисуДобавитьШтампыВДокумент(Знач URLДляЗагрузки, Знач ДвоичныеДанные, Знач СлужебнаяИнформацияЗапроса)
ЗапросСервиса = НовыйЗапросСервиса();
ЗапросСервиса.СтрокаЗапроса = URLДляЗагрузки;
ЗапросСервиса.ТипПередаваемогоКонтента = ТипИсходящегоКонтентаДанныеДокументаИШтампов();
ЗапросСервиса.Метод = "PUT";
ЗапросСервиса.Данные = ДвоичныеДанные; ЗапросСервиса.Данные = ДвоичныеДанные;
ЗапросСервиса.Наименование = НСтр( ЗапросСервиса.Наименование = НСтр(
"ru = 'Добавление штампов в документ в сервисе 1С:Штамп'", "ru = 'Добавление штампов в документ в сервисе 1С:Штамп'",
@@ -428,6 +476,7 @@
ОбщегоНазначения.КодОсновногоЯзыка()); ОбщегоНазначения.КодОсновногоЯзыка());
РезультатВыполнения.ТекстОшибки = ЗафиксироватьОшибкуВЗапросе(ПараметрыСоединения, ЗапросСервиса, ТекстОшибки); РезультатВыполнения.ТекстОшибки = ЗафиксироватьОшибкуВЗапросе(ПараметрыСоединения, ЗапросСервиса, ТекстОшибки);
РезультатВыполнения.КодСостояния = Интеграция1СШтампСлужебныйКлиентСервер.КодСостоянияСервисНеОтвечает(); РезультатВыполнения.КодСостояния = Интеграция1СШтампСлужебныйКлиентСервер.КодСостоянияСервисНеОтвечает();
РезультатВыполнения.Отказ = Истина;
Возврат РезультатВыполнения; Возврат РезультатВыполнения;
КонецПопытки; КонецПопытки;
@@ -464,6 +513,7 @@
ПодробноеОписаниеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ПодробноеОписаниеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
РезультатВыполнения.ТекстОшибки = ЗафиксироватьОшибкуВЗапросе(Соединение, ЗапросСервиса, ПодробноеОписаниеОшибки, Отказ); РезультатВыполнения.ТекстОшибки = ЗафиксироватьОшибкуВЗапросе(Соединение, ЗапросСервиса, ПодробноеОписаниеОшибки, Отказ);
РезультатВыполнения.КодСостояния = Интеграция1СШтампСлужебныйКлиентСервер.КодСостоянияСервисНеОтвечает(); РезультатВыполнения.КодСостояния = Интеграция1СШтампСлужебныйКлиентСервер.КодСостоянияСервисНеОтвечает();
РезультатВыполнения.Отказ = Истина;
Возврат РезультатВыполнения; Возврат РезультатВыполнения;
КонецПопытки; КонецПопытки;
@@ -476,6 +526,7 @@
Если Отказ Тогда Если Отказ Тогда
РезультатВыполнения.ТекстОшибки = ЗафиксироватьОшибкуВЗапросе(ПараметрыСоединения, ЗапросСервиса, РезультатВыполнения.ТекстОшибки); РезультатВыполнения.ТекстОшибки = ЗафиксироватьОшибкуВЗапросе(ПараметрыСоединения, ЗапросСервиса, РезультатВыполнения.ТекстОшибки);
РезультатВыполнения.Отказ = Истина;
Возврат РезультатВыполнения; Возврат РезультатВыполнения;
КонецЕсли; КонецЕсли;
@@ -1130,6 +1181,7 @@
Результат.Вставить("URLРедиректа" , ""); Результат.Вставить("URLРедиректа" , "");
Результат.Вставить("Интервал" , 0); Результат.Вставить("Интервал" , 0);
Результат.Вставить("ТекстОшибки" , ""); Результат.Вставить("ТекстОшибки" , "");
Результат.Вставить("Отказ" , Ложь);
Возврат Результат; Возврат Результат;
@@ -1207,12 +1259,6 @@
КонецФункции КонецФункции
Функция АдресЗапросаДобавитьШтамп()
Возврат "stamp";
КонецФункции
#КонецОбласти #КонецОбласти
#Область Словарь #Область Словарь
@@ -233,7 +233,7 @@
// //
Функция ЗначениеИнтервалаПовторногоОбращенияКСервисуПоУмолчанию() Экспорт Функция ЗначениеИнтервалаПовторногоОбращенияКСервисуПоУмолчанию() Экспорт
Возврат 1; Возврат 0;
КонецФункции КонецФункции

Some files were not shown because too many files have changed in this diff Show More